Passed
Push — master ( 5a5c41...fade3b )
by Cody
04:50 queued 10s
created
lib/MiniTemplator.class.php 1 patch
Indentation   +229 added lines, -229 removed lines patch added patch discarded remove patch
@@ -93,56 +93,56 @@  discard block
 block discarded – undo
93 93
 var $maxInclTemplateSize = 1000000;   // maximum length of template string when including subtemplates
94 94
 var $template;                        // Template file data
95 95
 var $varTab;                          // variables table, array index is variable no
96
-    // Fields:
97
-    //  varName                       // variable name
98
-    //  varValue                      // variable value
96
+	// Fields:
97
+	//  varName                       // variable name
98
+	//  varValue                      // variable value
99 99
 var $varTabCnt;                       // no of entries used in VarTab
100 100
 var $varNameToNoMap;                  // maps variable names to variable numbers
101 101
 var $varRefTab;                       // variable references table
102
-    // Contains an entry for each variable reference in the template. Ordered by TemplatePos.
103
-    // Fields:
104
-    //  varNo                         // variable no
105
-    //  tPosBegin                     // template position of begin of variable reference
106
-    //  tPosEnd                       // template position of end of variable reference
107
-    //  blockNo                       // block no of the (innermost) block that contains this variable reference
108
-    //  blockVarNo                    // block variable no. Index into BlockInstTab.BlockVarTab
102
+	// Contains an entry for each variable reference in the template. Ordered by TemplatePos.
103
+	// Fields:
104
+	//  varNo                         // variable no
105
+	//  tPosBegin                     // template position of begin of variable reference
106
+	//  tPosEnd                       // template position of end of variable reference
107
+	//  blockNo                       // block no of the (innermost) block that contains this variable reference
108
+	//  blockVarNo                    // block variable no. Index into BlockInstTab.BlockVarTab
109 109
 var $varRefTabCnt;                    // no of entries used in VarRefTab
110 110
 var $blockTab;                        // Blocks table, array index is block no
111
-    // Contains an entry for each block in the template. Ordered by TPosBegin.
112
-    // Fields:
113
-    //  blockName                     // block name
114
-    //  nextWithSameName;             // block no of next block with same name or -1 (blocks are backward linked in relation to template position)
115
-    //  tPosBegin                     // template position of begin of block
116
-    //  tPosContentsBegin             // template pos of begin of block contents
117
-    //  tPosContentsEnd               // template pos of end of block contents
118
-    //  tPosEnd                       // template position of end of block
119
-    //  nestingLevel                  // block nesting level
120
-    //  parentBlockNo                 // block no of parent block
121
-    //  definitionIsOpen              // true while $BeginBlock processed but no $EndBlock
122
-    //  instances                     // number of instances of this block
123
-    //  firstBlockInstNo              // block instance no of first instance of this block or -1
124
-    //  lastBlockInstNo               // block instance no of last instance of this block or -1
125
-    //  currBlockInstNo               // current block instance no, used during generation of output file
126
-    //  blockVarCnt                   // no of variables in block
127
-    //  blockVarNoToVarNoMap          // maps block variable numbers to variable numbers
128
-    //  firstVarRefNo                 // variable reference no of first variable of this block or -1
111
+	// Contains an entry for each block in the template. Ordered by TPosBegin.
112
+	// Fields:
113
+	//  blockName                     // block name
114
+	//  nextWithSameName;             // block no of next block with same name or -1 (blocks are backward linked in relation to template position)
115
+	//  tPosBegin                     // template position of begin of block
116
+	//  tPosContentsBegin             // template pos of begin of block contents
117
+	//  tPosContentsEnd               // template pos of end of block contents
118
+	//  tPosEnd                       // template position of end of block
119
+	//  nestingLevel                  // block nesting level
120
+	//  parentBlockNo                 // block no of parent block
121
+	//  definitionIsOpen              // true while $BeginBlock processed but no $EndBlock
122
+	//  instances                     // number of instances of this block
123
+	//  firstBlockInstNo              // block instance no of first instance of this block or -1
124
+	//  lastBlockInstNo               // block instance no of last instance of this block or -1
125
+	//  currBlockInstNo               // current block instance no, used during generation of output file
126
+	//  blockVarCnt                   // no of variables in block
127
+	//  blockVarNoToVarNoMap          // maps block variable numbers to variable numbers
128
+	//  firstVarRefNo                 // variable reference no of first variable of this block or -1
129 129
 var $blockTabCnt;                     // no of entries used in BlockTab
130 130
 var $blockNameToNoMap;                // maps block names to block numbers
131 131
 var $openBlocksTab;
132
-    // During parsing, this table contains the block numbers of the open parent blocks (nested outer blocks).
133
-    // Indexed by the block nesting level.
132
+	// During parsing, this table contains the block numbers of the open parent blocks (nested outer blocks).
133
+	// Indexed by the block nesting level.
134 134
 var $blockInstTab;                    // block instances table
135
-    // This table contains an entry for each block instance that has been added.
136
-    // Indexed by BlockInstNo.
137
-    // Fields:
138
-    //  blockNo                       // block number
139
-    //  instanceLevel                 // instance level of this block
140
-    //     InstanceLevel is an instance counter per block.
141
-    //     (In contrast to blockInstNo, which is an instance counter over the instances of all blocks)
142
-    //  parentInstLevel               // instance level of parent block
143
-    //  nextBlockInstNo               // pointer to next instance of this block or -1
144
-    //     Forward chain for instances of same block.
145
-    //  blockVarTab                   // block instance variables
135
+	// This table contains an entry for each block instance that has been added.
136
+	// Indexed by BlockInstNo.
137
+	// Fields:
138
+	//  blockNo                       // block number
139
+	//  instanceLevel                 // instance level of this block
140
+	//     InstanceLevel is an instance counter per block.
141
+	//     (In contrast to blockInstNo, which is an instance counter over the instances of all blocks)
142
+	//  parentInstLevel               // instance level of parent block
143
+	//  nextBlockInstNo               // pointer to next instance of this block or -1
144
+	//     Forward chain for instances of same block.
145
+	//  blockVarTab                   // block instance variables
146 146
 var $blockInstTabCnt;                 // no of entries used in BlockInstTab
147 147
 
148 148
 var $currentNestingLevel;             // Current block nesting level during parsing.
@@ -173,8 +173,8 @@  discard block
 block discarded – undo
173 173
 */
174 174
 function readTemplateFromFile ($fileName) {
175 175
    if (!$this->readFileIntoString($fileName,$s)) {
176
-      $this->triggerError ("Error while reading template file " . $fileName . ".");
177
-      return false; }
176
+	  $this->triggerError ("Error while reading template file " . $fileName . ".");
177
+	  return false; }
178 178
    if (!$this->setTemplateString($s)) return false;
179 179
    return true; }
180 180
 
@@ -200,8 +200,8 @@  discard block
 block discarded – undo
200 200
 function loadSubtemplate ($subtemplateName, &$s) {
201 201
    $subtemplateFileName = $this->combineFileSystemPath($this->subtemplateBasePath,$subtemplateName);
202 202
    if (!$this->readFileIntoString($subtemplateFileName,$s)) {
203
-      $this->triggerError ("Error while reading subtemplate file " . $subtemplateFileName . ".");
204
-      return false; }
203
+	  $this->triggerError ("Error while reading subtemplate file " . $subtemplateFileName . ".");
204
+	  return false; }
205 205
    return true; }
206 206
 
207 207
 //--- template parsing ----------------------------------------------------------------------------------------------
@@ -271,17 +271,17 @@  discard block
 block discarded – undo
271 271
 function parseTemplateCommands() {
272 272
    $p = 0;
273 273
    while (true) {
274
-      $p0 = strpos($this->template,'<!--',$p);
275
-      if ($p0 === false) break;
276
-      $p = strpos($this->template,'-->',$p0);
277
-      if ($p === false) {
278
-         $this->triggerError ("Invalid HTML comment in template at offset $p0.");
279
-         return false; }
280
-      $p += 3;
281
-      $cmdL = substr($this->template,$p0+4,$p-$p0-7);
282
-      if (!$this->processTemplateCommand($cmdL,$p0,$p,$resumeFromStart))
283
-         return false;
284
-      if ($resumeFromStart) $p = $p0; }
274
+	  $p0 = strpos($this->template,'<!--',$p);
275
+	  if ($p0 === false) break;
276
+	  $p = strpos($this->template,'-->',$p0);
277
+	  if ($p === false) {
278
+		 $this->triggerError ("Invalid HTML comment in template at offset $p0.");
279
+		 return false; }
280
+	  $p += 3;
281
+	  $cmdL = substr($this->template,$p0+4,$p-$p0-7);
282
+	  if (!$this->processTemplateCommand($cmdL,$p0,$p,$resumeFromStart))
283
+		 return false;
284
+	  if ($resumeFromStart) $p = $p0; }
285 285
    return true; }
286 286
 
287 287
 /**
@@ -295,24 +295,24 @@  discard block
 block discarded – undo
295 295
    if (!$this->parseWord($cmdL,$p,$cmd)) return true;
296 296
    $parms = substr($cmdL,$p);
297 297
    switch (strtoupper($cmd)) {
298
-      case '$BEGINBLOCK':
299
-         if (!$this->processBeginBlockCmd($parms,$cmdTPosBegin,$cmdTPosEnd))
300
-            return false;
301
-         break;
302
-      case '$ENDBLOCK':
303
-         if (!$this->processEndBlockCmd($parms,$cmdTPosBegin,$cmdTPosEnd))
304
-            return false;
305
-         break;
306
-      case '$INCLUDE':
307
-         if (!$this->processincludeCmd($parms,$cmdTPosBegin,$cmdTPosEnd))
308
-            return false;
309
-         $resumeFromStart = true;
310
-         break;
311
-      default:
312
-         if ($cmd{0} == '$' && !(strlen($cmd) >= 2 && $cmd{1} == '{')) {
313
-            $this->triggerError ("Unknown command \"$cmd\" in template at offset $cmdTPosBegin.");
314
-            return false; }}
315
-    return true; }
298
+	  case '$BEGINBLOCK':
299
+		 if (!$this->processBeginBlockCmd($parms,$cmdTPosBegin,$cmdTPosEnd))
300
+			return false;
301
+		 break;
302
+	  case '$ENDBLOCK':
303
+		 if (!$this->processEndBlockCmd($parms,$cmdTPosBegin,$cmdTPosEnd))
304
+			return false;
305
+		 break;
306
+	  case '$INCLUDE':
307
+		 if (!$this->processincludeCmd($parms,$cmdTPosBegin,$cmdTPosEnd))
308
+			return false;
309
+		 $resumeFromStart = true;
310
+		 break;
311
+	  default:
312
+		 if ($cmd{0} == '$' && !(strlen($cmd) >= 2 && $cmd{1} == '{')) {
313
+			$this->triggerError ("Unknown command \"$cmd\" in template at offset $cmdTPosBegin.");
314
+			return false; }}
315
+	return true; }
316 316
 
317 317
 /**
318 318
 * Processes the $BeginBlock command.
@@ -322,11 +322,11 @@  discard block
 block discarded – undo
322 322
 function processBeginBlockCmd ($parms, $cmdTPosBegin, $cmdTPosEnd) {
323 323
    $p = 0;
324 324
    if (!$this->parseWord($parms,$p,$blockName)) {
325
-      $this->triggerError ("Missing block name in \$BeginBlock command in template at offset $cmdTPosBegin.");
326
-      return false; }
325
+	  $this->triggerError ("Missing block name in \$BeginBlock command in template at offset $cmdTPosBegin.");
326
+	  return false; }
327 327
    if (trim(substr($parms,$p)) != '') {
328
-      $this->triggerError ("Extra parameter in \$BeginBlock command in template at offset $cmdTPosBegin.");
329
-      return false; }
328
+	  $this->triggerError ("Extra parameter in \$BeginBlock command in template at offset $cmdTPosBegin.");
329
+	  return false; }
330 330
    $this->registerBlock ($blockName, $blockNo);
331 331
    $btr =& $this->blockTab[$blockNo];
332 332
    $btr['tPosBegin'] = $cmdTPosBegin;
@@ -336,8 +336,8 @@  discard block
 block discarded – undo
336 336
    $this->openBlocksTab[$this->currentNestingLevel] = $blockNo;
337 337
    $this->currentNestingLevel += 1;
338 338
    if ($this->currentNestingLevel > $this->maxNestingLevel) {
339
-      $this->triggerError ("Block nesting overflow in template at offset $cmdTPosBegin.");
340
-      return false; }
339
+	  $this->triggerError ("Block nesting overflow in template at offset $cmdTPosBegin.");
340
+	  return false; }
341 341
    return true; }
342 342
 
343 343
 /**
@@ -348,22 +348,22 @@  discard block
 block discarded – undo
348 348
 function processEndBlockCmd ($parms, $cmdTPosBegin, $cmdTPosEnd) {
349 349
    $p = 0;
350 350
    if (!$this->parseWord($parms,$p,$blockName)) {
351
-      $this->triggerError ("Missing block name in \$EndBlock command in template at offset $cmdTPosBegin.");
352
-      return false; }
351
+	  $this->triggerError ("Missing block name in \$EndBlock command in template at offset $cmdTPosBegin.");
352
+	  return false; }
353 353
    if (trim(substr($parms,$p)) != '') {
354
-      $this->triggerError ("Extra parameter in \$EndBlock command in template at offset $cmdTPosBegin.");
355
-      return false; }
354
+	  $this->triggerError ("Extra parameter in \$EndBlock command in template at offset $cmdTPosBegin.");
355
+	  return false; }
356 356
    if (!$this->lookupBlockName($blockName,$blockNo)) {
357
-      $this->triggerError ("Undefined block name \"$blockName\" in \$EndBlock command in template at offset $cmdTPosBegin.");
358
-      return false; }
357
+	  $this->triggerError ("Undefined block name \"$blockName\" in \$EndBlock command in template at offset $cmdTPosBegin.");
358
+	  return false; }
359 359
    $this->currentNestingLevel -= 1;
360 360
    $btr =& $this->blockTab[$blockNo];
361 361
    if (!$btr['definitionIsOpen']) {
362
-      $this->triggerError ("Multiple \$EndBlock command for block \"$blockName\" in template at offset $cmdTPosBegin.");
363
-      return false; }
362
+	  $this->triggerError ("Multiple \$EndBlock command for block \"$blockName\" in template at offset $cmdTPosBegin.");
363
+	  return false; }
364 364
    if ($btr['nestingLevel'] != $this->currentNestingLevel) {
365
-      $this->triggerError ("Block nesting level mismatch at \$EndBlock command for block \"$blockName\" in template at offset $cmdTPosBegin.");
366
-      return false; }
365
+	  $this->triggerError ("Block nesting level mismatch at \$EndBlock command for block \"$blockName\" in template at offset $cmdTPosBegin.");
366
+	  return false; }
367 367
    $btr['tPosContentsEnd'] = $cmdTPosBegin;
368 368
    $btr['tPosEnd'] = $cmdTPosEnd;
369 369
    $btr['definitionIsOpen'] = false;
@@ -378,7 +378,7 @@  discard block
 block discarded – undo
378 378
    $btr = array();
379 379
    $btr['blockName'] = $blockName;
380 380
    if (!$this->lookupBlockName($blockName,$btr['nextWithSameName']))
381
-      $btr['nextWithSameName'] = -1;
381
+	  $btr['nextWithSameName'] = -1;
382 382
    $btr['definitionIsOpen'] = true;
383 383
    $btr['instances'] = 0;
384 384
    $btr['firstBlockInstNo'] = -1;
@@ -395,13 +395,13 @@  discard block
 block discarded – undo
395 395
 */
396 396
 function checkBlockDefinitionsComplete() {
397 397
    for ($blockNo=0; $blockNo < $this->blockTabCnt; $blockNo++) {
398
-      $btr =& $this->blockTab[$blockNo];
399
-      if ($btr['definitionIsOpen']) {
400
-         $this->triggerError ("Missing \$EndBlock command in template for block " . $btr['blockName'] . ".");
401
-         return false; }}
398
+	  $btr =& $this->blockTab[$blockNo];
399
+	  if ($btr['definitionIsOpen']) {
400
+		 $this->triggerError ("Missing \$EndBlock command in template for block " . $btr['blockName'] . ".");
401
+		 return false; }}
402 402
    if ($this->currentNestingLevel != 0) {
403
-      $this->triggerError ("Block nesting level error at end of template.");
404
-      return false; }
403
+	  $this->triggerError ("Block nesting level error at end of template.");
404
+	  return false; }
405 405
    return true; }
406 406
 
407 407
 /**
@@ -412,11 +412,11 @@  discard block
 block discarded – undo
412 412
 function processIncludeCmd ($parms, $cmdTPosBegin, $cmdTPosEnd) {
413 413
    $p = 0;
414 414
    if (!$this->parseWordOrQuotedString($parms,$p,$subtemplateName)) {
415
-      $this->triggerError ("Missing or invalid subtemplate name in \$Include command in template at offset $cmdTPosBegin.");
416
-      return false; }
415
+	  $this->triggerError ("Missing or invalid subtemplate name in \$Include command in template at offset $cmdTPosBegin.");
416
+	  return false; }
417 417
    if (trim(substr($parms,$p)) != '') {
418
-      $this->triggerError ("Extra parameter in \$include command in template at offset $cmdTPosBegin.");
419
-      return false; }
418
+	  $this->triggerError ("Extra parameter in \$include command in template at offset $cmdTPosBegin.");
419
+	  return false; }
420 420
    return $this->insertSubtemplate($subtemplateName,$cmdTPosBegin,$cmdTPosEnd); }
421 421
 
422 422
 /**
@@ -426,8 +426,8 @@  discard block
 block discarded – undo
426 426
 */
427 427
 function insertSubtemplate ($subtemplateName, $tPos1, $tPos2) {
428 428
    if (strlen($this->template) > $this->maxInclTemplateSize) {
429
-      $this->triggerError ("Subtemplate include aborted because the internal template string is longer than $this->maxInclTemplateSize characters.");
430
-      return false; }
429
+	  $this->triggerError ("Subtemplate include aborted because the internal template string is longer than $this->maxInclTemplateSize characters.");
430
+	  return false; }
431 431
    if (!$this->loadSubtemplate($subtemplateName,$subtemplate)) return false;
432 432
    // (Copying the template to insert a subtemplate is a bit slow. In a future implementation of MiniTemplator,
433 433
    // a table could be used that contains references to the string fragments.)
@@ -442,19 +442,19 @@  discard block
 block discarded – undo
442 442
 function parseTemplateVariables() {
443 443
    $p = 0;
444 444
    while (true) {
445
-      $p = strpos($this->template, '${', $p);
446
-      if ($p === false) break;
447
-      $p0 = $p;
448
-      $p = strpos($this->template, '}', $p);
449
-      if ($p === false) {
450
-         $this->triggerError ("Invalid variable reference in template at offset $p0.");
451
-         return false; }
452
-      $p += 1;
453
-      $varName = trim(substr($this->template, $p0+2, $p-$p0-3));
454
-      if (strlen($varName) == 0) {
455
-         $this->triggerError ("Empty variable name in template at offset $p0.");
456
-         return false; }
457
-      $this->registerVariableReference ($varName, $p0, $p); }
445
+	  $p = strpos($this->template, '${', $p);
446
+	  if ($p === false) break;
447
+	  $p0 = $p;
448
+	  $p = strpos($this->template, '}', $p);
449
+	  if ($p === false) {
450
+		 $this->triggerError ("Invalid variable reference in template at offset $p0.");
451
+		 return false; }
452
+	  $p += 1;
453
+	  $varName = trim(substr($this->template, $p0+2, $p-$p0-3));
454
+	  if (strlen($varName) == 0) {
455
+		 $this->triggerError ("Empty variable name in template at offset $p0.");
456
+		 return false; }
457
+	  $this->registerVariableReference ($varName, $p0, $p); }
458 458
    return true; }
459 459
 
460 460
 /**
@@ -462,7 +462,7 @@  discard block
 block discarded – undo
462 462
 */
463 463
 function registerVariableReference ($varName, $tPosBegin, $tPosEnd) {
464 464
    if (!$this->lookupVariableName($varName,$varNo))
465
-      $this->registerVariable($varName,$varNo);
465
+	  $this->registerVariable($varName,$varNo);
466 466
    $varRefNo = $this->varRefTabCnt++;
467 467
    $vrtr =& $this->varRefTab[$varRefNo];
468 468
    $vrtr = array();
@@ -490,27 +490,27 @@  discard block
 block discarded – undo
490 490
    $activeBlockNo = 0;
491 491
    $nextBlockNo = 1;
492 492
    while ($varRefNo < $this->varRefTabCnt) {
493
-      $vrtr =& $this->varRefTab[$varRefNo];
494
-      $varRefTPos = $vrtr['tPosBegin'];
495
-      $varNo = $vrtr['varNo'];
496
-      if ($varRefTPos >= $this->blockTab[$activeBlockNo]['tPosEnd']) {
497
-         $activeBlockNo = $this->blockTab[$activeBlockNo]['parentBlockNo'];
498
-         continue; }
499
-      if ($nextBlockNo < $this->blockTabCnt) {
500
-         if ($varRefTPos >= $this->blockTab[$nextBlockNo]['tPosBegin']) {
501
-            $activeBlockNo = $nextBlockNo;
502
-            $nextBlockNo += 1;
503
-            continue; }}
504
-      $btr =& $this->blockTab[$activeBlockNo];
505
-      if ($varRefTPos < $btr['tPosBegin'])
506
-         $this->programLogicError(1);
507
-      $blockVarNo = $btr['blockVarCnt']++;
508
-      $btr['blockVarNoToVarNoMap'][$blockVarNo] = $varNo;
509
-      if ($btr['firstVarRefNo'] == -1)
510
-         $btr['firstVarRefNo'] = $varRefNo;
511
-      $vrtr['blockNo'] = $activeBlockNo;
512
-      $vrtr['blockVarNo'] = $blockVarNo;
513
-      $varRefNo += 1; }}
493
+	  $vrtr =& $this->varRefTab[$varRefNo];
494
+	  $varRefTPos = $vrtr['tPosBegin'];
495
+	  $varNo = $vrtr['varNo'];
496
+	  if ($varRefTPos >= $this->blockTab[$activeBlockNo]['tPosEnd']) {
497
+		 $activeBlockNo = $this->blockTab[$activeBlockNo]['parentBlockNo'];
498
+		 continue; }
499
+	  if ($nextBlockNo < $this->blockTabCnt) {
500
+		 if ($varRefTPos >= $this->blockTab[$nextBlockNo]['tPosBegin']) {
501
+			$activeBlockNo = $nextBlockNo;
502
+			$nextBlockNo += 1;
503
+			continue; }}
504
+	  $btr =& $this->blockTab[$activeBlockNo];
505
+	  if ($varRefTPos < $btr['tPosBegin'])
506
+		 $this->programLogicError(1);
507
+	  $blockVarNo = $btr['blockVarCnt']++;
508
+	  $btr['blockVarNoToVarNoMap'][$blockVarNo] = $varNo;
509
+	  if ($btr['firstVarRefNo'] == -1)
510
+		 $btr['firstVarRefNo'] = $varRefNo;
511
+	  $vrtr['blockNo'] = $activeBlockNo;
512
+	  $vrtr['blockVarNo'] = $blockVarNo;
513
+	  $varRefNo += 1; }}
514 514
 
515 515
 //--- build up (template variables and blocks) ----------------------------------------------------------------------
516 516
 
@@ -524,12 +524,12 @@  discard block
 block discarded – undo
524 524
 */
525 525
 function reset() {
526 526
    for ($varNo=0; $varNo<$this->varTabCnt; $varNo++)
527
-      $this->varTab[$varNo]['varValue'] = '';
527
+	  $this->varTab[$varNo]['varValue'] = '';
528 528
    for ($blockNo=0; $blockNo<$this->blockTabCnt; $blockNo++) {
529
-      $btr =& $this->blockTab[$blockNo];
530
-      $btr['instances'] = 0;
531
-      $btr['firstBlockInstNo'] = -1;
532
-      $btr['lastBlockInstNo'] = -1; }
529
+	  $btr =& $this->blockTab[$blockNo];
530
+	  $btr['instances'] = 0;
531
+	  $btr['firstBlockInstNo'] = -1;
532
+	  $btr['lastBlockInstNo'] = -1; }
533 533
    $this->blockInstTab = array();
534 534
    $this->blockInstTabCnt = 0; }
535 535
 
@@ -551,9 +551,9 @@  discard block
 block discarded – undo
551 551
 function setVariable ($variableName, $variableValue, $isOptional=false) {
552 552
    if (!$this->templateValid) {$this->triggerError ("Template not valid."); return false; }
553 553
    if (!$this->lookupVariableName($variableName,$varNo)) {
554
-      if ($isOptional) return true;
555
-      $this->triggerError ("Variable \"$variableName\" not defined in template.");
556
-      return false; }
554
+	  if ($isOptional) return true;
555
+	  $this->triggerError ("Variable \"$variableName\" not defined in template.");
556
+	  return false; }
557 557
    $this->varTab[$varNo]['varValue'] = $variableValue;
558 558
    return true; }
559 559
 
@@ -605,11 +605,11 @@  discard block
 block discarded – undo
605 605
 function addBlock($blockName) {
606 606
    if (!$this->templateValid) {$this->triggerError ("Template not valid."); return false; }
607 607
    if (!$this->lookupBlockName($blockName,$blockNo)) {
608
-      $this->triggerError ("Block \"$blockName\" not defined in template.");
609
-      return false; }
608
+	  $this->triggerError ("Block \"$blockName\" not defined in template.");
609
+	  return false; }
610 610
    while ($blockNo != -1) {
611
-      $this->addBlockByNo($blockNo);
612
-      $blockNo = $this->blockTab[$blockNo]['nextWithSameName']; }
611
+	  $this->addBlockByNo($blockNo);
612
+	  $blockNo = $this->blockTab[$blockNo]['nextWithSameName']; }
613 613
    return true; }
614 614
 
615 615
 /**
@@ -620,25 +620,25 @@  discard block
 block discarded – undo
620 620
    $this->registerBlockInstance ($blockInstNo);
621 621
    $bitr =& $this->blockInstTab[$blockInstNo];
622 622
    if ($btr['firstBlockInstNo'] == -1)
623
-      $btr['firstBlockInstNo'] = $blockInstNo;
623
+	  $btr['firstBlockInstNo'] = $blockInstNo;
624 624
    if ($btr['lastBlockInstNo'] != -1)
625
-      $this->blockInstTab[$btr['lastBlockInstNo']]['nextBlockInstNo'] = $blockInstNo;
626
-         // set forward pointer of chain
625
+	  $this->blockInstTab[$btr['lastBlockInstNo']]['nextBlockInstNo'] = $blockInstNo;
626
+		 // set forward pointer of chain
627 627
    $btr['lastBlockInstNo'] = $blockInstNo;
628 628
    $parentBlockNo = $btr['parentBlockNo'];
629 629
    $blockVarCnt = $btr['blockVarCnt'];
630 630
    $bitr['blockNo'] = $blockNo;
631 631
    $bitr['instanceLevel'] = $btr['instances']++;
632 632
    if ($parentBlockNo == -1)
633
-      $bitr['parentInstLevel'] = -1;
634
-    else
635
-      $bitr['parentInstLevel'] = $this->blockTab[$parentBlockNo]['instances'];
633
+	  $bitr['parentInstLevel'] = -1;
634
+	else
635
+	  $bitr['parentInstLevel'] = $this->blockTab[$parentBlockNo]['instances'];
636 636
    $bitr['nextBlockInstNo'] = -1;
637 637
    $bitr['blockVarTab'] = array();
638 638
    // copy instance variables for this block
639 639
    for ($blockVarNo=0; $blockVarNo<$blockVarCnt; $blockVarNo++) {
640
-      $varNo = $btr['blockVarNoToVarNoMap'][$blockVarNo];
641
-      $bitr['blockVarTab'][$blockVarNo] = $this->varTab[$varNo]['varValue']; }}
640
+	  $varNo = $btr['blockVarNoToVarNoMap'][$blockVarNo];
641
+	  $bitr['blockVarTab'][$blockVarNo] = $this->varTab[$varNo]['varValue']; }}
642 642
 
643 643
 /**
644 644
 * @access private
@@ -706,10 +706,10 @@  discard block
 block discarded – undo
706 706
 function generateOutputPage() {
707 707
    if (!$this->templateValid) {$this->triggerError ("Template not valid."); return false; }
708 708
    if ($this->blockTab[0]['instances'] == 0)
709
-      $this->addBlockByNo (0);        // add main block
709
+	  $this->addBlockByNo (0);        // add main block
710 710
    for ($blockNo=0; $blockNo < $this->blockTabCnt; $blockNo++) {
711
-       $btr =& $this->blockTab[$blockNo];
712
-       $btr['currBlockInstNo'] = $btr['firstBlockInstNo']; }
711
+	   $btr =& $this->blockTab[$blockNo];
712
+	   $btr['currBlockInstNo'] = $btr['firstBlockInstNo']; }
713 713
    $this->outputError = false;
714 714
    $this->writeBlockInstances (0, -1);
715 715
    if ($this->outputError) return false;
@@ -724,14 +724,14 @@  discard block
 block discarded – undo
724 724
 function writeBlockInstances ($blockNo, $parentInstLevel) {
725 725
    $btr =& $this->blockTab[$blockNo];
726 726
    while (!$this->outputError) {
727
-      $blockInstNo = $btr['currBlockInstNo'];
728
-      if ($blockInstNo == -1) break;
729
-      $bitr =& $this->blockInstTab[$blockInstNo];
730
-      if ($bitr['parentInstLevel'] < $parentInstLevel)
731
-         $this->programLogicError (2);
732
-      if ($bitr['parentInstLevel'] > $parentInstLevel) break;
733
-      $this->writeBlockInstance ($blockInstNo);
734
-      $btr['currBlockInstNo'] = $bitr['nextBlockInstNo']; }}
727
+	  $blockInstNo = $btr['currBlockInstNo'];
728
+	  if ($blockInstNo == -1) break;
729
+	  $bitr =& $this->blockInstTab[$blockInstNo];
730
+	  if ($bitr['parentInstLevel'] < $parentInstLevel)
731
+		 $this->programLogicError (2);
732
+	  if ($bitr['parentInstLevel'] > $parentInstLevel) break;
733
+	  $this->writeBlockInstance ($blockInstNo);
734
+	  $btr['currBlockInstNo'] = $bitr['nextBlockInstNo']; }}
735 735
 
736 736
 /**
737 737
 * @access private
@@ -744,46 +744,46 @@  discard block
 block discarded – undo
744 744
    $subBlockNo = $blockNo + 1;
745 745
    $varRefNo = $btr['firstVarRefNo'];
746 746
    while (!$this->outputError) {
747
-      $tPos2 = $btr['tPosContentsEnd'];
748
-      $kind = 0;                                // assume end-of-block
749
-      if ($varRefNo != -1 && $varRefNo < $this->varRefTabCnt) {  // check for variable reference
750
-         $vrtr =& $this->varRefTab[$varRefNo];
751
-         if ($vrtr['tPosBegin'] < $tPos) {
752
-            $varRefNo += 1;
753
-            continue; }
754
-         if ($vrtr['tPosBegin'] < $tPos2) {
755
-            $tPos2 = $vrtr['tPosBegin'];
756
-            $kind = 1; }}
757
-      if ($subBlockNo < $this->blockTabCnt) {   // check for subblock
758
-         $subBtr =& $this->blockTab[$subBlockNo];
759
-         if ($subBtr['tPosBegin'] < $tPos) {
760
-            $subBlockNo += 1;
761
-            continue; }
762
-         if ($subBtr['tPosBegin'] < $tPos2) {
763
-            $tPos2 = $subBtr['tPosBegin'];
764
-            $kind = 2; }}
765
-      if ($tPos2 > $tPos)
766
-         $this->writeString (substr($this->template,$tPos,$tPos2-$tPos));
767
-      switch ($kind) {
768
-         case 0:         // end of block
769
-            return;
770
-         case 1:         // variable
771
-            $vrtr =& $this->varRefTab[$varRefNo];
772
-            if ($vrtr['blockNo'] != $blockNo)
773
-               $this->programLogicError (4);
774
-            $variableValue = $bitr['blockVarTab'][$vrtr['blockVarNo']];
775
-            $this->writeString ($variableValue);
776
-            $tPos = $vrtr['tPosEnd'];
777
-            $varRefNo += 1;
778
-            break;
779
-         case 2:         // sub block
780
-            $subBtr =& $this->blockTab[$subBlockNo];
781
-            if ($subBtr['parentBlockNo'] != $blockNo)
782
-               $this->programLogicError (3);
783
-            $this->writeBlockInstances ($subBlockNo, $bitr['instanceLevel']);  // recursive call
784
-            $tPos = $subBtr['tPosEnd'];
785
-            $subBlockNo += 1;
786
-            break; }}}
747
+	  $tPos2 = $btr['tPosContentsEnd'];
748
+	  $kind = 0;                                // assume end-of-block
749
+	  if ($varRefNo != -1 && $varRefNo < $this->varRefTabCnt) {  // check for variable reference
750
+		 $vrtr =& $this->varRefTab[$varRefNo];
751
+		 if ($vrtr['tPosBegin'] < $tPos) {
752
+			$varRefNo += 1;
753
+			continue; }
754
+		 if ($vrtr['tPosBegin'] < $tPos2) {
755
+			$tPos2 = $vrtr['tPosBegin'];
756
+			$kind = 1; }}
757
+	  if ($subBlockNo < $this->blockTabCnt) {   // check for subblock
758
+		 $subBtr =& $this->blockTab[$subBlockNo];
759
+		 if ($subBtr['tPosBegin'] < $tPos) {
760
+			$subBlockNo += 1;
761
+			continue; }
762
+		 if ($subBtr['tPosBegin'] < $tPos2) {
763
+			$tPos2 = $subBtr['tPosBegin'];
764
+			$kind = 2; }}
765
+	  if ($tPos2 > $tPos)
766
+		 $this->writeString (substr($this->template,$tPos,$tPos2-$tPos));
767
+	  switch ($kind) {
768
+		 case 0:         // end of block
769
+			return;
770
+		 case 1:         // variable
771
+			$vrtr =& $this->varRefTab[$varRefNo];
772
+			if ($vrtr['blockNo'] != $blockNo)
773
+			   $this->programLogicError (4);
774
+			$variableValue = $bitr['blockVarTab'][$vrtr['blockVarNo']];
775
+			$this->writeString ($variableValue);
776
+			$tPos = $vrtr['tPosEnd'];
777
+			$varRefNo += 1;
778
+			break;
779
+		 case 2:         // sub block
780
+			$subBtr =& $this->blockTab[$subBlockNo];
781
+			if ($subBtr['parentBlockNo'] != $blockNo)
782
+			   $this->programLogicError (3);
783
+			$this->writeBlockInstances ($subBlockNo, $bitr['instanceLevel']);  // recursive call
784
+			$tPos = $subBtr['tPosEnd'];
785
+			$subBlockNo += 1;
786
+			break; }}}
787 787
 
788 788
 /**
789 789
 * @access private
@@ -791,17 +791,17 @@  discard block
 block discarded – undo
791 791
 function writeString ($s) {
792 792
    if ($this->outputError) return;
793 793
    switch ($this->outputMode) {
794
-      case 0:            // output to PHP output stream
795
-         if (!print($s))
796
-            $this->outputError = true;
797
-         break;
798
-      case 1:            // output to file
799
-         $rc = fwrite($this->outputFileHandle, $s);
800
-         if ($rc === false) $this->outputError = true;
801
-         break;
802
-      case 2:            // output to string
803
-         $this->outputString .= $s;
804
-         break; }}
794
+	  case 0:            // output to PHP output stream
795
+		 if (!print($s))
796
+			$this->outputError = true;
797
+		 break;
798
+	  case 1:            // output to file
799
+		 $rc = fwrite($this->outputFileHandle, $s);
800
+		 if ($rc === false) $this->outputError = true;
801
+		 break;
802
+	  case 2:            // output to string
803
+		 $this->outputString .= $s;
804
+		 break; }}
805 805
 
806 806
 //--- name lookup routines ------------------------------------------------------------------------------------------
807 807
 
@@ -838,9 +838,9 @@  discard block
 block discarded – undo
838 838
 */
839 839
 function readFileIntoString ($fileName, &$s) {
840 840
    if (function_exists('version_compare') && version_compare(phpversion(),"4.3.0",">=")) {
841
-      $s = file_get_contents($fileName);
842
-      if ($s === false) return false;
843
-      return true; }
841
+	  $s = file_get_contents($fileName);
842
+	  if ($s === false) return false;
843
+	  return true; }
844 844
    $fh = fopen($fileName,"rb");
845 845
    if ($fh === false) return false;
846 846
    $fileSize = filesize($fileName);
@@ -888,9 +888,9 @@  discard block
 block discarded – undo
888 888
    while ($p < $sLen && ord($s{$p}) <= 32) $p++;
889 889
    if ($p >= $sLen) return false;
890 890
    if (substr($s,$p,1) == '"')
891
-      return $this->parseQuotedString($s,$p,$w);
892
-    else
893
-      return $this->parseWord($s,$p,$w); }
891
+	  return $this->parseQuotedString($s,$p,$w);
892
+	else
893
+	  return $this->parseWord($s,$p,$w); }
894 894
 
895 895
 /**
896 896
 * Combine two file system paths.
@@ -901,9 +901,9 @@  discard block
 block discarded – undo
901 901
    $s = $path1;
902 902
    if (substr($s,-1) != '\\' && substr($s,-1) != '/') $s = $s . "/";
903 903
    if (substr($path2,0,1) == '\\' || substr($path2,0,1) == '/')
904
-      $s = $s . substr($path2,1);
905
-    else
906
-      $s = $s . $path2;
904
+	  $s = $s . substr($path2,1);
905
+	else
906
+	  $s = $s . $path2;
907 907
    return $s; }
908 908
 
909 909
 /**
Please login to merge, or discard this patch.
lib/jimIcon.php 1 patch
Indentation   +233 added lines, -233 removed lines patch added patch discarded remove patch
@@ -17,254 +17,254 @@
 block discarded – undo
17 17
 //   http://creativecommons.org/publicdomain/zero/1.0/
18 18
 
19 19
 class jimIcon {
20
-        // Get an image color from a string
21
-        function get_color($str, $img) {
22
-                $b = ord($str[0]);
23
-                $g = ord($str[1]);
24
-                $r = ord($str[2]);
25
-                if (strlen($str) > 3) {
26
-                        $a = 127 - (ord($str[3]) / 2);
27
-                        if ($a != 0 && $a != 127)
28
-                                $this->had_alpha = 1;
29
-                } else {
30
-                        $a = 0;
31
-                }
32
-                if ($a != 127)
33
-                        $this->all_transaprent = 0;
34
-                return imagecolorallocatealpha($img, $r, $g, $b, $a);
35
-        }
20
+		// Get an image color from a string
21
+		function get_color($str, $img) {
22
+				$b = ord($str[0]);
23
+				$g = ord($str[1]);
24
+				$r = ord($str[2]);
25
+				if (strlen($str) > 3) {
26
+						$a = 127 - (ord($str[3]) / 2);
27
+						if ($a != 0 && $a != 127)
28
+								$this->had_alpha = 1;
29
+				} else {
30
+						$a = 0;
31
+				}
32
+				if ($a != 127)
33
+						$this->all_transaprent = 0;
34
+				return imagecolorallocatealpha($img, $r, $g, $b, $a);
35
+		}
36 36
 
37
-        // Given a string with the contents of an .ICO,
38
-        // return a GD image of the icon, or false on error.
39
-        function fromiconstring($ico) {
40
-                $this->error = "(unknown error)";
41
-                $this->had_alpha = 0;
37
+		// Given a string with the contents of an .ICO,
38
+		// return a GD image of the icon, or false on error.
39
+		function fromiconstring($ico) {
40
+				$this->error = "(unknown error)";
41
+				$this->had_alpha = 0;
42 42
 
43
-                // Read header
44
-                if (strlen($ico) < 6) {
45
-                        $this->error = "too short";
46
-                        return false;
47
-                }
48
-                $h = unpack("vzero/vtype/vnum", $ico);
43
+				// Read header
44
+				if (strlen($ico) < 6) {
45
+						$this->error = "too short";
46
+						return false;
47
+				}
48
+				$h = unpack("vzero/vtype/vnum", $ico);
49 49
 
50
-                // Must be ICO format with at least one image
51
-                if ($h["zero"] != 0 || $h["type"] != 1 || $h["num"] == 0) {
52
-                        // See if we can just parse it with GD directly
53
-                        // if it's not ICO format; maybe it was a mislabeled
54
-                        // PNG or something.
55
-                        $i = @imagecreatefromstring($ico);
56
-                        if ($i) {
57
-                                imagesavealpha($i, true);
58
-                                return $i;
59
-                        }
60
-                        $this->error = "not ICO or other image";
61
-                        return false;
62
-                }
50
+				// Must be ICO format with at least one image
51
+				if ($h["zero"] != 0 || $h["type"] != 1 || $h["num"] == 0) {
52
+						// See if we can just parse it with GD directly
53
+						// if it's not ICO format; maybe it was a mislabeled
54
+						// PNG or something.
55
+						$i = @imagecreatefromstring($ico);
56
+						if ($i) {
57
+								imagesavealpha($i, true);
58
+								return $i;
59
+						}
60
+						$this->error = "not ICO or other image";
61
+						return false;
62
+				}
63 63
 
64
-                // Read directory entries to find the biggest image
65
-                $most_pixels = 0;
66
-                for ($i = 0; $i < $h["num"]; $i++) {
67
-                        $entry = substr($ico, 6 + 16 * $i, 16);
68
-                        if (!$entry || strlen($entry) < 16)
69
-                                continue;
70
-                        $e = unpack("Cwidth/" .
71
-                                    "Cheight/" .
72
-                                    "Ccolors/" .
73
-                                    "Czero/" .
74
-                                    "vplanes/" .
75
-                                    "vbpp/" .
76
-                                    "Vsize/" .
77
-                                    "Voffset/",
78
-                                    $entry);
79
-                        if ($e["width"] == 0)
80
-                                $e["width"] = 256;
81
-                        if ($e["height"] == 0)
82
-                                $e["height"] = 256;
83
-                        if ($e["zero"] != 0) {
84
-                                $this->error = "nonzero reserved field";
85
-                                return false;
86
-                        }
87
-                        $pixels = $e["width"] * $e["height"];
88
-                        if ($pixels > $most_pixels) {
89
-                                $most_pixels = $pixels;
90
-                                $most = $e;
91
-                        }
92
-                }
93
-                if ($most_pixels == 0) {
94
-                        $this->error = "no pixels";
95
-                        return false;
96
-                }
97
-                $e = $most;
64
+				// Read directory entries to find the biggest image
65
+				$most_pixels = 0;
66
+				for ($i = 0; $i < $h["num"]; $i++) {
67
+						$entry = substr($ico, 6 + 16 * $i, 16);
68
+						if (!$entry || strlen($entry) < 16)
69
+								continue;
70
+						$e = unpack("Cwidth/" .
71
+									"Cheight/" .
72
+									"Ccolors/" .
73
+									"Czero/" .
74
+									"vplanes/" .
75
+									"vbpp/" .
76
+									"Vsize/" .
77
+									"Voffset/",
78
+									$entry);
79
+						if ($e["width"] == 0)
80
+								$e["width"] = 256;
81
+						if ($e["height"] == 0)
82
+								$e["height"] = 256;
83
+						if ($e["zero"] != 0) {
84
+								$this->error = "nonzero reserved field";
85
+								return false;
86
+						}
87
+						$pixels = $e["width"] * $e["height"];
88
+						if ($pixels > $most_pixels) {
89
+								$most_pixels = $pixels;
90
+								$most = $e;
91
+						}
92
+				}
93
+				if ($most_pixels == 0) {
94
+						$this->error = "no pixels";
95
+						return false;
96
+				}
97
+				$e = $most;
98 98
 
99
-                // Extract image data
100
-                $data = substr($ico, $e["offset"], $e["size"]);
101
-                if (!$data || strlen($data) != $e["size"]) {
102
-                        $this->error = "bad image data";
103
-                        return false;
104
-                }
99
+				// Extract image data
100
+				$data = substr($ico, $e["offset"], $e["size"]);
101
+				if (!$data || strlen($data) != $e["size"]) {
102
+						$this->error = "bad image data";
103
+						return false;
104
+				}
105 105
 
106
-                // See if we can parse it (might be PNG format here)
107
-                $i = @imagecreatefromstring($data);
108
-                if ($i) {
109
-                        imagesavealpha($img, true);
110
-                        return $i;
111
-                }
106
+				// See if we can parse it (might be PNG format here)
107
+				$i = @imagecreatefromstring($data);
108
+				if ($i) {
109
+						imagesavealpha($img, true);
110
+						return $i;
111
+				}
112 112
 
113
-                // Must be a BMP.  Parse it ourselves.
114
-                $img = imagecreatetruecolor($e["width"], $e["height"]);
115
-                imagesavealpha($img, true);
116
-                $bg = imagecolorallocatealpha($img, 255, 0, 0, 127);
117
-                imagefill($img, 0, 0, $bg);
113
+				// Must be a BMP.  Parse it ourselves.
114
+				$img = imagecreatetruecolor($e["width"], $e["height"]);
115
+				imagesavealpha($img, true);
116
+				$bg = imagecolorallocatealpha($img, 255, 0, 0, 127);
117
+				imagefill($img, 0, 0, $bg);
118 118
 
119
-                // Skip over the BITMAPCOREHEADER or BITMAPINFOHEADER;
120
-                // we'll just assume the palette and pixel data follow
121
-                // in the most obvious format as described by the icon
122
-                // directory entry.
123
-                $bitmapinfo = unpack("Vsize", $data);
124
-                if ($bitmapinfo["size"] == 40) {
125
-                        $info = unpack("Vsize/" .
126
-                                       "Vwidth/" .
127
-                                       "Vheight/" .
128
-                                       "vplanes/" .
129
-                                       "vbpp/" .
130
-                                       "Vcompress/" .
131
-                                       "Vsize/" .
132
-                                       "Vxres/" .
133
-                                       "Vyres/" .
134
-                                       "Vpalcolors/" .
135
-                                       "Vimpcolors/", $data);
136
-                        if ($e["bpp"] == 0) {
137
-                                $e["bpp"] = $info["bpp"];
138
-                        }
139
-                }
140
-                $data = substr($data, $bitmapinfo["size"]);
119
+				// Skip over the BITMAPCOREHEADER or BITMAPINFOHEADER;
120
+				// we'll just assume the palette and pixel data follow
121
+				// in the most obvious format as described by the icon
122
+				// directory entry.
123
+				$bitmapinfo = unpack("Vsize", $data);
124
+				if ($bitmapinfo["size"] == 40) {
125
+						$info = unpack("Vsize/" .
126
+									   "Vwidth/" .
127
+									   "Vheight/" .
128
+									   "vplanes/" .
129
+									   "vbpp/" .
130
+									   "Vcompress/" .
131
+									   "Vsize/" .
132
+									   "Vxres/" .
133
+									   "Vyres/" .
134
+									   "Vpalcolors/" .
135
+									   "Vimpcolors/", $data);
136
+						if ($e["bpp"] == 0) {
137
+								$e["bpp"] = $info["bpp"];
138
+						}
139
+				}
140
+				$data = substr($data, $bitmapinfo["size"]);
141 141
 
142
-                $height = $e["height"];
143
-                $width = $e["width"];
144
-                $bpp = $e["bpp"];
142
+				$height = $e["height"];
143
+				$width = $e["width"];
144
+				$bpp = $e["bpp"];
145 145
 
146
-                // For indexed images, we only support 1, 4, or 8 BPP
147
-                switch ($bpp) {
148
-                case 1:
149
-                case 4:
150
-                case 8:
151
-                        $indexed = 1;
152
-                        break;
153
-                case 24:
154
-                case 32:
155
-                        $indexed = 0;
156
-                        break;
157
-                default:
158
-                        $this->error = "bad BPP $bpp";
159
-                        return false;
160
-                }
146
+				// For indexed images, we only support 1, 4, or 8 BPP
147
+				switch ($bpp) {
148
+				case 1:
149
+				case 4:
150
+				case 8:
151
+						$indexed = 1;
152
+						break;
153
+				case 24:
154
+				case 32:
155
+						$indexed = 0;
156
+						break;
157
+				default:
158
+						$this->error = "bad BPP $bpp";
159
+						return false;
160
+				}
161 161
 
162
-                $offset = 0;
163
-                if ($indexed) {
164
-                        $palette = array();
165
-                        $this->all_transparent = 1;
166
-                        for ($i = 0; $i < (1 << $bpp); $i++) {
167
-                                $entry = substr($data, $i * 4, 4);
168
-                                $palette[$i] = $this->get_color($entry, $img);
169
-                        }
170
-                        $offset = $i * 4;
162
+				$offset = 0;
163
+				if ($indexed) {
164
+						$palette = array();
165
+						$this->all_transparent = 1;
166
+						for ($i = 0; $i < (1 << $bpp); $i++) {
167
+								$entry = substr($data, $i * 4, 4);
168
+								$palette[$i] = $this->get_color($entry, $img);
169
+						}
170
+						$offset = $i * 4;
171 171
 
172
-                        // Hack for some icons: if everything was transparent,
173
-                        // discard alpha channel.
174
-                        if ($this->all_transparent) {
175
-                                for ($i = 0; $i < (1 << $bpp); $i++) {
176
-                                        $palette[$i] &= 0xffffff;
177
-                                }
178
-                        }
179
-                }
172
+						// Hack for some icons: if everything was transparent,
173
+						// discard alpha channel.
174
+						if ($this->all_transparent) {
175
+								for ($i = 0; $i < (1 << $bpp); $i++) {
176
+										$palette[$i] &= 0xffffff;
177
+								}
178
+						}
179
+				}
180 180
 
181
-                // Assume image data follows in bottom-up order.
182
-                // First the "XOR" image
183
-                if ((strlen($data) - $offset) < ($bpp * $height * $width / 8)) {
184
-                        $this->error = "short data";
185
-                        return false;
186
-                }
187
-                $XOR = array();
188
-                for ($y = $height - 1; $y >= 0; $y--) {
189
-                        $x = 0;
190
-                        while ($x < $width) {
191
-                                if (!$indexed) {
192
-                                        $bytes = $bpp / 8;
193
-                                        $entry = substr($data, $offset, $bytes);
194
-                                        $pixel = $this->get_color($entry, $img);
195
-                                        $XOR[$y][$x] = $pixel;
196
-                                        $x++;
197
-                                        $offset += $bytes;
198
-                                } elseif ($bpp == 1) {
199
-                                        $p = ord($data[$offset]);
200
-                                        for ($b = 0x80; $b > 0; $b >>= 1) {
201
-                                                if ($p & $b) {
202
-                                                        $pixel = $palette[1];
203
-                                                } else {
204
-                                                        $pixel = $palette[0];
205
-                                                }
206
-                                                $XOR[$y][$x] = $pixel;
207
-                                                $x++;
208
-                                        }
209
-                                        $offset++;
210
-                                } elseif ($bpp == 4) {
211
-                                        $p = ord($data[$offset]);
212
-                                        $pixel1 = $palette[$p >> 4];
213
-                                        $pixel2 = $palette[$p & 0x0f];
214
-                                        $XOR[$y][$x] = $pixel1;
215
-                                        $XOR[$y][$x+1] = $pixel2;
216
-                                        $x += 2;
217
-                                        $offset++;
218
-                                } elseif ($bpp == 8) {
219
-                                        $pixel = $palette[ord($data[$offset])];
220
-                                        $XOR[$y][$x] = $pixel;
221
-                                        $x += 1;
222
-                                        $offset++;
223
-                                } else {
224
-                                        $this->error = "bad BPP";
225
-                                        return false;
226
-                                }
227
-                        }
228
-                        // End of row padding
229
-                        while ($offset & 3)
230
-                                $offset++;
231
-                }
181
+				// Assume image data follows in bottom-up order.
182
+				// First the "XOR" image
183
+				if ((strlen($data) - $offset) < ($bpp * $height * $width / 8)) {
184
+						$this->error = "short data";
185
+						return false;
186
+				}
187
+				$XOR = array();
188
+				for ($y = $height - 1; $y >= 0; $y--) {
189
+						$x = 0;
190
+						while ($x < $width) {
191
+								if (!$indexed) {
192
+										$bytes = $bpp / 8;
193
+										$entry = substr($data, $offset, $bytes);
194
+										$pixel = $this->get_color($entry, $img);
195
+										$XOR[$y][$x] = $pixel;
196
+										$x++;
197
+										$offset += $bytes;
198
+								} elseif ($bpp == 1) {
199
+										$p = ord($data[$offset]);
200
+										for ($b = 0x80; $b > 0; $b >>= 1) {
201
+												if ($p & $b) {
202
+														$pixel = $palette[1];
203
+												} else {
204
+														$pixel = $palette[0];
205
+												}
206
+												$XOR[$y][$x] = $pixel;
207
+												$x++;
208
+										}
209
+										$offset++;
210
+								} elseif ($bpp == 4) {
211
+										$p = ord($data[$offset]);
212
+										$pixel1 = $palette[$p >> 4];
213
+										$pixel2 = $palette[$p & 0x0f];
214
+										$XOR[$y][$x] = $pixel1;
215
+										$XOR[$y][$x+1] = $pixel2;
216
+										$x += 2;
217
+										$offset++;
218
+								} elseif ($bpp == 8) {
219
+										$pixel = $palette[ord($data[$offset])];
220
+										$XOR[$y][$x] = $pixel;
221
+										$x += 1;
222
+										$offset++;
223
+								} else {
224
+										$this->error = "bad BPP";
225
+										return false;
226
+								}
227
+						}
228
+						// End of row padding
229
+						while ($offset & 3)
230
+								$offset++;
231
+				}
232 232
 
233
-                // Now the "AND" image, which is 1 bit per pixel.  Ignore
234
-                // if some of our image data already had alpha values,
235
-                // or if there isn't enough data left.
236
-                if ($this->had_alpha ||
237
-                    ((strlen($data) - $offset) < ($height * $width / 8))) {
238
-                        // Just return what we've got
239
-                        for ($y = 0; $y < $height; $y++) {
240
-                                for ($x = 0; $x < $width; $x++) {
241
-                                        imagesetpixel($img, $x, $y,
242
-                                                      $XOR[$y][$x]);
243
-                                }
244
-                        }
245
-                        return $img;
246
-                }
233
+				// Now the "AND" image, which is 1 bit per pixel.  Ignore
234
+				// if some of our image data already had alpha values,
235
+				// or if there isn't enough data left.
236
+				if ($this->had_alpha ||
237
+					((strlen($data) - $offset) < ($height * $width / 8))) {
238
+						// Just return what we've got
239
+						for ($y = 0; $y < $height; $y++) {
240
+								for ($x = 0; $x < $width; $x++) {
241
+										imagesetpixel($img, $x, $y,
242
+													  $XOR[$y][$x]);
243
+								}
244
+						}
245
+						return $img;
246
+				}
247 247
 
248
-                // Mask what we have with the "AND" image
249
-                for ($y = $height - 1; $y >= 0; $y--) {
250
-                        $x = 0;
251
-                        while ($x < $width) {
252
-                                for ($b = 0x80;
253
-                                     $b > 0 && $x < $width; $b >>= 1) {
254
-                                        if (!(ord($data[$offset]) & $b)) {
255
-                                                imagesetpixel($img, $x, $y,
256
-                                                              $XOR[$y][$x]);
257
-                                        }
258
-                                        $x++;
259
-                                }
260
-                                $offset++;
261
-                        }
248
+				// Mask what we have with the "AND" image
249
+				for ($y = $height - 1; $y >= 0; $y--) {
250
+						$x = 0;
251
+						while ($x < $width) {
252
+								for ($b = 0x80;
253
+									 $b > 0 && $x < $width; $b >>= 1) {
254
+										if (!(ord($data[$offset]) & $b)) {
255
+												imagesetpixel($img, $x, $y,
256
+															  $XOR[$y][$x]);
257
+										}
258
+										$x++;
259
+								}
260
+								$offset++;
261
+						}
262 262
 
263
-                        // End of row padding
264
-                        while ($offset & 3)
265
-                                $offset++;
266
-                }
267
-                return $img;
268
-        }
263
+						// End of row padding
264
+						while ($offset & 3)
265
+								$offset++;
266
+				}
267
+				return $img;
268
+		}
269 269
 }
270 270
 ?>
271 271
\ No newline at end of file
Please login to merge, or discard this patch.
lib/floIcon.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -4,17 +4,17 @@
 block discarded – undo
4 4
 require_once "jimIcon.php";
5 5
 
6 6
 class floIconIcon {
7
-        function getImageResource() {
8
-                return $this->img;
9
-        }
7
+		function getImageResource() {
8
+				return $this->img;
9
+		}
10 10
 }
11 11
 
12 12
 class floIcon {
13
-        function readICO($file) {
14
-                $jim = new jimIcon();
15
-                $icon = new floIconIcon();
16
-                $icon->img = $jim->fromiconstring(file_get_contents($file));
17
-                $this->images = array($icon);
18
-        }
13
+		function readICO($file) {
14
+				$jim = new jimIcon();
15
+				$icon = new floIconIcon();
16
+				$icon->img = $jim->fromiconstring(file_get_contents($file));
17
+				$this->images = array($icon);
18
+		}
19 19
 }
20 20
 ?>
Please login to merge, or discard this patch.
lib/phpqrcode/tools/merge.php 1 patch
Indentation   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -25,46 +25,46 @@
 block discarded – undo
25 25
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 26
  */
27 27
  
28
-    $QR_BASEDIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR;
29
-    $QR_TOOLSDIR = dirname(__FILE__).DIRECTORY_SEPARATOR;
28
+	$QR_BASEDIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR;
29
+	$QR_TOOLSDIR = dirname(__FILE__).DIRECTORY_SEPARATOR;
30 30
     
31
-    $outputFile = $QR_BASEDIR.'phpqrcode.php';
31
+	$outputFile = $QR_BASEDIR.'phpqrcode.php';
32 32
     
33
-    // Required libs
33
+	// Required libs
34 34
     
35
-    $fileList = array(
36
-        $QR_BASEDIR.'qrconst.php',
37
-        $QR_TOOLSDIR.'merged_config.php',
38
-        $QR_BASEDIR.'qrtools.php',
39
-        $QR_BASEDIR.'qrspec.php',
40
-        $QR_BASEDIR.'qrimage.php',
41
-        $QR_BASEDIR.'qrinput.php',
42
-        $QR_BASEDIR.'qrbitstream.php',
43
-        $QR_BASEDIR.'qrsplit.php',
44
-        $QR_BASEDIR.'qrrscode.php',
45
-        $QR_BASEDIR.'qrmask.php',
46
-        $QR_BASEDIR.'qrencode.php'
47
-    );
35
+	$fileList = array(
36
+		$QR_BASEDIR.'qrconst.php',
37
+		$QR_TOOLSDIR.'merged_config.php',
38
+		$QR_BASEDIR.'qrtools.php',
39
+		$QR_BASEDIR.'qrspec.php',
40
+		$QR_BASEDIR.'qrimage.php',
41
+		$QR_BASEDIR.'qrinput.php',
42
+		$QR_BASEDIR.'qrbitstream.php',
43
+		$QR_BASEDIR.'qrsplit.php',
44
+		$QR_BASEDIR.'qrrscode.php',
45
+		$QR_BASEDIR.'qrmask.php',
46
+		$QR_BASEDIR.'qrencode.php'
47
+	);
48 48
     
49
-    $headerFile = $QR_TOOLSDIR.'merged_header.php';
50
-    $versionFile = $QR_BASEDIR.'VERSION';
49
+	$headerFile = $QR_TOOLSDIR.'merged_header.php';
50
+	$versionFile = $QR_BASEDIR.'VERSION';
51 51
     
52
-    $outputCode = '';
52
+	$outputCode = '';
53 53
     
54
-    foreach($fileList as $fileName) {
55
-        $outputCode .= "\n\n".'//---- '.basename($fileName).' -----------------------------'."\n\n";
56
-        $anotherCode = file_get_contents($fileName);
57
-        $anotherCode = preg_replace ('/^<\?php/', '', $anotherCode);
58
-        $anotherCode = preg_replace ('/\?>\*$/', '', $anotherCode);
59
-        $outputCode .= "\n\n".$anotherCode."\n\n";
60
-    }
54
+	foreach($fileList as $fileName) {
55
+		$outputCode .= "\n\n".'//---- '.basename($fileName).' -----------------------------'."\n\n";
56
+		$anotherCode = file_get_contents($fileName);
57
+		$anotherCode = preg_replace ('/^<\?php/', '', $anotherCode);
58
+		$anotherCode = preg_replace ('/\?>\*$/', '', $anotherCode);
59
+		$outputCode .= "\n\n".$anotherCode."\n\n";
60
+	}
61 61
     
62 62
 	$versionDataEx = explode("\n", file_get_contents($versionFile));
63 63
 	
64
-    $outputContents = file_get_contents($headerFile);
65
-    $outputContents .= "\n\n/*\n * Version: ".trim($versionDataEx[0])."\n * Build: ".trim($versionDataEx[1])."\n */\n\n";
66
-    $outputContents .= $outputCode;
64
+	$outputContents = file_get_contents($headerFile);
65
+	$outputContents .= "\n\n/*\n * Version: ".trim($versionDataEx[0])."\n * Build: ".trim($versionDataEx[1])."\n */\n\n";
66
+	$outputContents .= $outputCode;
67 67
     
68
-    file_put_contents($outputFile, $outputContents);
68
+	file_put_contents($outputFile, $outputContents);
69 69
     
70
-    
71 70
\ No newline at end of file
71
+	
72 72
\ No newline at end of file
Please login to merge, or discard this patch.
lib/phpqrcode/tools/merged_config.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -5,13 +5,13 @@
 block discarded – undo
5 5
  * Config file, tuned-up for merged verion
6 6
  */
7 7
      
8
-    define('QR_CACHEABLE', false);       // use cache - more disk reads but less CPU power, masks and format templates are stored there
9
-    define('QR_CACHE_DIR', false);       // used when QR_CACHEABLE === true
10
-    define('QR_LOG_DIR', false);         // default error logs dir   
8
+	define('QR_CACHEABLE', false);       // use cache - more disk reads but less CPU power, masks and format templates are stored there
9
+	define('QR_CACHE_DIR', false);       // used when QR_CACHEABLE === true
10
+	define('QR_LOG_DIR', false);         // default error logs dir   
11 11
     
12
-    define('QR_FIND_BEST_MASK', true);                                                          // if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code
13
-    define('QR_FIND_FROM_RANDOM', 2);                                                       // if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly
14
-    define('QR_DEFAULT_MASK', 2);                                                               // when QR_FIND_BEST_MASK === false
12
+	define('QR_FIND_BEST_MASK', true);                                                          // if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code
13
+	define('QR_FIND_FROM_RANDOM', 2);                                                       // if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly
14
+	define('QR_DEFAULT_MASK', 2);                                                               // when QR_FIND_BEST_MASK === false
15 15
                                                   
16
-    define('QR_PNG_MAXIMUM_SIZE',  1024);                                                       // maximum allowed png image width (in pixels), tune to make sure GD and PHP can handle such big images
17
-                                                  
18 16
\ No newline at end of file
17
+	define('QR_PNG_MAXIMUM_SIZE',  1024);                                                       // maximum allowed png image width (in pixels), tune to make sure GD and PHP can handle such big images
18
+												  
19 19
\ No newline at end of file
Please login to merge, or discard this patch.
lib/phpqrcode/qrbitstream.php 1 patch
Indentation   +120 added lines, -120 removed lines patch added patch discarded remove patch
@@ -25,156 +25,156 @@
 block discarded – undo
25 25
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 26
  */
27 27
      
28
-    class QRbitstream {
28
+	class QRbitstream {
29 29
     
30
-        public $data = array();
30
+		public $data = array();
31 31
         
32
-        //----------------------------------------------------------------------
33
-        public function size()
34
-        {
35
-            return count($this->data);
36
-        }
32
+		//----------------------------------------------------------------------
33
+		public function size()
34
+		{
35
+			return count($this->data);
36
+		}
37 37
         
38
-        //----------------------------------------------------------------------
39
-        public function allocate($setLength)
40
-        {
41
-            $this->data = array_fill(0, $setLength, 0);
42
-            return 0;
43
-        }
38
+		//----------------------------------------------------------------------
39
+		public function allocate($setLength)
40
+		{
41
+			$this->data = array_fill(0, $setLength, 0);
42
+			return 0;
43
+		}
44 44
     
45
-        //----------------------------------------------------------------------
46
-        public static function newFromNum($bits, $num)
47
-        {
48
-            $bstream = new QRbitstream();
49
-            $bstream->allocate($bits);
45
+		//----------------------------------------------------------------------
46
+		public static function newFromNum($bits, $num)
47
+		{
48
+			$bstream = new QRbitstream();
49
+			$bstream->allocate($bits);
50 50
             
51
-            $mask = 1 << ($bits - 1);
52
-            for($i=0; $i<$bits; $i++) {
53
-                if($num & $mask) {
54
-                    $bstream->data[$i] = 1;
55
-                } else {
56
-                    $bstream->data[$i] = 0;
57
-                }
58
-                $mask = $mask >> 1;
59
-            }
51
+			$mask = 1 << ($bits - 1);
52
+			for($i=0; $i<$bits; $i++) {
53
+				if($num & $mask) {
54
+					$bstream->data[$i] = 1;
55
+				} else {
56
+					$bstream->data[$i] = 0;
57
+				}
58
+				$mask = $mask >> 1;
59
+			}
60 60
 
61
-            return $bstream;
62
-        }
61
+			return $bstream;
62
+		}
63 63
         
64
-        //----------------------------------------------------------------------
65
-        public static function newFromBytes($size, $data)
66
-        {
67
-            $bstream = new QRbitstream();
68
-            $bstream->allocate($size * 8);
69
-            $p=0;
64
+		//----------------------------------------------------------------------
65
+		public static function newFromBytes($size, $data)
66
+		{
67
+			$bstream = new QRbitstream();
68
+			$bstream->allocate($size * 8);
69
+			$p=0;
70 70
 
71
-            for($i=0; $i<$size; $i++) {
72
-                $mask = 0x80;
73
-                for($j=0; $j<8; $j++) {
74
-                    if($data[$i] & $mask) {
75
-                        $bstream->data[$p] = 1;
76
-                    } else {
77
-                        $bstream->data[$p] = 0;
78
-                    }
79
-                    $p++;
80
-                    $mask = $mask >> 1;
81
-                }
82
-            }
71
+			for($i=0; $i<$size; $i++) {
72
+				$mask = 0x80;
73
+				for($j=0; $j<8; $j++) {
74
+					if($data[$i] & $mask) {
75
+						$bstream->data[$p] = 1;
76
+					} else {
77
+						$bstream->data[$p] = 0;
78
+					}
79
+					$p++;
80
+					$mask = $mask >> 1;
81
+				}
82
+			}
83 83
 
84
-            return $bstream;
85
-        }
84
+			return $bstream;
85
+		}
86 86
         
87
-        //----------------------------------------------------------------------
88
-        public function append(QRbitstream $arg)
89
-        {
90
-            if (is_null($arg)) {
91
-                return -1;
92
-            }
87
+		//----------------------------------------------------------------------
88
+		public function append(QRbitstream $arg)
89
+		{
90
+			if (is_null($arg)) {
91
+				return -1;
92
+			}
93 93
             
94
-            if($arg->size() == 0) {
95
-                return 0;
96
-            }
94
+			if($arg->size() == 0) {
95
+				return 0;
96
+			}
97 97
             
98
-            if($this->size() == 0) {
99
-                $this->data = $arg->data;
100
-                return 0;
101
-            }
98
+			if($this->size() == 0) {
99
+				$this->data = $arg->data;
100
+				return 0;
101
+			}
102 102
             
103
-            $this->data = array_values(array_merge($this->data, $arg->data));
103
+			$this->data = array_values(array_merge($this->data, $arg->data));
104 104
 
105
-            return 0;
106
-        }
105
+			return 0;
106
+		}
107 107
         
108
-        //----------------------------------------------------------------------
109
-        public function appendNum($bits, $num)
110
-        {
111
-            if ($bits == 0) 
112
-                return 0;
108
+		//----------------------------------------------------------------------
109
+		public function appendNum($bits, $num)
110
+		{
111
+			if ($bits == 0) 
112
+				return 0;
113 113
 
114
-            $b = QRbitstream::newFromNum($bits, $num);
114
+			$b = QRbitstream::newFromNum($bits, $num);
115 115
             
116
-            if(is_null($b))
117
-                return -1;
116
+			if(is_null($b))
117
+				return -1;
118 118
 
119
-            $ret = $this->append($b);
120
-            unset($b);
119
+			$ret = $this->append($b);
120
+			unset($b);
121 121
 
122
-            return $ret;
123
-        }
122
+			return $ret;
123
+		}
124 124
 
125
-        //----------------------------------------------------------------------
126
-        public function appendBytes($size, $data)
127
-        {
128
-            if ($size == 0) 
129
-                return 0;
125
+		//----------------------------------------------------------------------
126
+		public function appendBytes($size, $data)
127
+		{
128
+			if ($size == 0) 
129
+				return 0;
130 130
 
131
-            $b = QRbitstream::newFromBytes($size, $data);
131
+			$b = QRbitstream::newFromBytes($size, $data);
132 132
             
133
-            if(is_null($b))
134
-                return -1;
133
+			if(is_null($b))
134
+				return -1;
135 135
 
136
-            $ret = $this->append($b);
137
-            unset($b);
136
+			$ret = $this->append($b);
137
+			unset($b);
138 138
 
139
-            return $ret;
140
-        }
139
+			return $ret;
140
+		}
141 141
         
142
-        //----------------------------------------------------------------------
143
-        public function toByte()
144
-        {
142
+		//----------------------------------------------------------------------
143
+		public function toByte()
144
+		{
145 145
         
146
-            $size = $this->size();
146
+			$size = $this->size();
147 147
 
148
-            if($size == 0) {
149
-                return array();
150
-            }
148
+			if($size == 0) {
149
+				return array();
150
+			}
151 151
             
152
-            $data = array_fill(0, (int)(($size + 7) / 8), 0);
153
-            $bytes = (int)($size / 8);
152
+			$data = array_fill(0, (int)(($size + 7) / 8), 0);
153
+			$bytes = (int)($size / 8);
154 154
 
155
-            $p = 0;
155
+			$p = 0;
156 156
             
157
-            for($i=0; $i<$bytes; $i++) {
158
-                $v = 0;
159
-                for($j=0; $j<8; $j++) {
160
-                    $v = $v << 1;
161
-                    $v |= $this->data[$p];
162
-                    $p++;
163
-                }
164
-                $data[$i] = $v;
165
-            }
157
+			for($i=0; $i<$bytes; $i++) {
158
+				$v = 0;
159
+				for($j=0; $j<8; $j++) {
160
+					$v = $v << 1;
161
+					$v |= $this->data[$p];
162
+					$p++;
163
+				}
164
+				$data[$i] = $v;
165
+			}
166 166
             
167
-            if($size & 7) {
168
-                $v = 0;
169
-                for($j=0; $j<($size & 7); $j++) {
170
-                    $v = $v << 1;
171
-                    $v |= $this->data[$p];
172
-                    $p++;
173
-                }
174
-                $data[$bytes] = $v;
175
-            }
167
+			if($size & 7) {
168
+				$v = 0;
169
+				for($j=0; $j<($size & 7); $j++) {
170
+					$v = $v << 1;
171
+					$v |= $this->data[$p];
172
+					$p++;
173
+				}
174
+				$data[$bytes] = $v;
175
+			}
176 176
 
177
-            return $data;
178
-        }
177
+			return $data;
178
+		}
179 179
 
180
-    }
180
+	}
Please login to merge, or discard this patch.
lib/phpqrcode/qrsplit.php 1 patch
Indentation   +229 added lines, -229 removed lines patch added patch discarded remove patch
@@ -30,282 +30,282 @@
 block discarded – undo
30 30
  * License along with this library; if not, write to the Free Software
31 31
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
32 32
  */
33
-    class QRsplit {
33
+	class QRsplit {
34 34
 
35
-        public $dataStr = '';
36
-        public $input;
37
-        public $modeHint;
35
+		public $dataStr = '';
36
+		public $input;
37
+		public $modeHint;
38 38
 
39
-        //----------------------------------------------------------------------
40
-        public function __construct($dataStr, $input, $modeHint) 
41
-        {
42
-            $this->dataStr  = $dataStr;
43
-            $this->input    = $input;
44
-            $this->modeHint = $modeHint;
45
-        }
39
+		//----------------------------------------------------------------------
40
+		public function __construct($dataStr, $input, $modeHint) 
41
+		{
42
+			$this->dataStr  = $dataStr;
43
+			$this->input    = $input;
44
+			$this->modeHint = $modeHint;
45
+		}
46 46
         
47
-        //----------------------------------------------------------------------
48
-        public static function isdigitat($str, $pos)
49
-        {    
50
-            if ($pos >= strlen($str))
51
-                return false;
47
+		//----------------------------------------------------------------------
48
+		public static function isdigitat($str, $pos)
49
+		{    
50
+			if ($pos >= strlen($str))
51
+				return false;
52 52
             
53
-            return ((ord($str[$pos]) >= ord('0'))&&(ord($str[$pos]) <= ord('9')));
54
-        }
53
+			return ((ord($str[$pos]) >= ord('0'))&&(ord($str[$pos]) <= ord('9')));
54
+		}
55 55
         
56
-        //----------------------------------------------------------------------
57
-        public static function isalnumat($str, $pos)
58
-        {
59
-            if ($pos >= strlen($str))
60
-                return false;
56
+		//----------------------------------------------------------------------
57
+		public static function isalnumat($str, $pos)
58
+		{
59
+			if ($pos >= strlen($str))
60
+				return false;
61 61
                 
62
-            return (QRinput::lookAnTable(ord($str[$pos])) >= 0);
63
-        }
62
+			return (QRinput::lookAnTable(ord($str[$pos])) >= 0);
63
+		}
64 64
 
65
-        //----------------------------------------------------------------------
66
-        public function identifyMode($pos)
67
-        {
68
-            if ($pos >= strlen($this->dataStr)) 
69
-                return QR_MODE_NUL;
65
+		//----------------------------------------------------------------------
66
+		public function identifyMode($pos)
67
+		{
68
+			if ($pos >= strlen($this->dataStr)) 
69
+				return QR_MODE_NUL;
70 70
                 
71
-            $c = $this->dataStr[$pos];
71
+			$c = $this->dataStr[$pos];
72 72
             
73
-            if(self::isdigitat($this->dataStr, $pos)) {
74
-                return QR_MODE_NUM;
75
-            } else if(self::isalnumat($this->dataStr, $pos)) {
76
-                return QR_MODE_AN;
77
-            } else if($this->modeHint == QR_MODE_KANJI) {
73
+			if(self::isdigitat($this->dataStr, $pos)) {
74
+				return QR_MODE_NUM;
75
+			} else if(self::isalnumat($this->dataStr, $pos)) {
76
+				return QR_MODE_AN;
77
+			} else if($this->modeHint == QR_MODE_KANJI) {
78 78
             
79
-                if ($pos+1 < strlen($this->dataStr)) 
80
-                {
81
-                    $d = $this->dataStr[$pos+1];
82
-                    $word = (ord($c) << 8) | ord($d);
83
-                    if(($word >= 0x8140 && $word <= 0x9ffc) || ($word >= 0xe040 && $word <= 0xebbf)) {
84
-                        return QR_MODE_KANJI;
85
-                    }
86
-                }
87
-            }
79
+				if ($pos+1 < strlen($this->dataStr)) 
80
+				{
81
+					$d = $this->dataStr[$pos+1];
82
+					$word = (ord($c) << 8) | ord($d);
83
+					if(($word >= 0x8140 && $word <= 0x9ffc) || ($word >= 0xe040 && $word <= 0xebbf)) {
84
+						return QR_MODE_KANJI;
85
+					}
86
+				}
87
+			}
88 88
 
89
-            return QR_MODE_8;
90
-        } 
89
+			return QR_MODE_8;
90
+		} 
91 91
         
92
-        //----------------------------------------------------------------------
93
-        public function eatNum()
94
-        {
95
-            $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
92
+		//----------------------------------------------------------------------
93
+		public function eatNum()
94
+		{
95
+			$ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
96 96
 
97
-            $p = 0;
98
-            while(self::isdigitat($this->dataStr, $p)) {
99
-                $p++;
100
-            }
97
+			$p = 0;
98
+			while(self::isdigitat($this->dataStr, $p)) {
99
+				$p++;
100
+			}
101 101
             
102
-            $run = $p;
103
-            $mode = $this->identifyMode($p);
102
+			$run = $p;
103
+			$mode = $this->identifyMode($p);
104 104
             
105
-            if($mode == QR_MODE_8) {
106
-                $dif = QRinput::estimateBitsModeNum($run) + 4 + $ln
107
-                     + QRinput::estimateBitsMode8(1)         // + 4 + l8
108
-                     - QRinput::estimateBitsMode8($run + 1); // - 4 - l8
109
-                if($dif > 0) {
110
-                    return $this->eat8();
111
-                }
112
-            }
113
-            if($mode == QR_MODE_AN) {
114
-                $dif = QRinput::estimateBitsModeNum($run) + 4 + $ln
115
-                     + QRinput::estimateBitsModeAn(1)        // + 4 + la
116
-                     - QRinput::estimateBitsModeAn($run + 1);// - 4 - la
117
-                if($dif > 0) {
118
-                    return $this->eatAn();
119
-                }
120
-            }
105
+			if($mode == QR_MODE_8) {
106
+				$dif = QRinput::estimateBitsModeNum($run) + 4 + $ln
107
+					 + QRinput::estimateBitsMode8(1)         // + 4 + l8
108
+					 - QRinput::estimateBitsMode8($run + 1); // - 4 - l8
109
+				if($dif > 0) {
110
+					return $this->eat8();
111
+				}
112
+			}
113
+			if($mode == QR_MODE_AN) {
114
+				$dif = QRinput::estimateBitsModeNum($run) + 4 + $ln
115
+					 + QRinput::estimateBitsModeAn(1)        // + 4 + la
116
+					 - QRinput::estimateBitsModeAn($run + 1);// - 4 - la
117
+				if($dif > 0) {
118
+					return $this->eatAn();
119
+				}
120
+			}
121 121
             
122
-            $ret = $this->input->append(QR_MODE_NUM, $run, str_split($this->dataStr));
123
-            if($ret < 0)
124
-                return -1;
122
+			$ret = $this->input->append(QR_MODE_NUM, $run, str_split($this->dataStr));
123
+			if($ret < 0)
124
+				return -1;
125 125
 
126
-            return $run;
127
-        }
126
+			return $run;
127
+		}
128 128
         
129
-        //----------------------------------------------------------------------
130
-        public function eatAn()
131
-        {
132
-            $la = QRspec::lengthIndicator(QR_MODE_AN,  $this->input->getVersion());
133
-            $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
129
+		//----------------------------------------------------------------------
130
+		public function eatAn()
131
+		{
132
+			$la = QRspec::lengthIndicator(QR_MODE_AN,  $this->input->getVersion());
133
+			$ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
134 134
 
135
-            $p = 0;
135
+			$p = 0;
136 136
             
137
-            while(self::isalnumat($this->dataStr, $p)) {
138
-                if(self::isdigitat($this->dataStr, $p)) {
139
-                    $q = $p;
140
-                    while(self::isdigitat($this->dataStr, $q)) {
141
-                        $q++;
142
-                    }
137
+			while(self::isalnumat($this->dataStr, $p)) {
138
+				if(self::isdigitat($this->dataStr, $p)) {
139
+					$q = $p;
140
+					while(self::isdigitat($this->dataStr, $q)) {
141
+						$q++;
142
+					}
143 143
                     
144
-                    $dif = QRinput::estimateBitsModeAn($p) // + 4 + la
145
-                         + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln
146
-                         - QRinput::estimateBitsModeAn($q); // - 4 - la
144
+					$dif = QRinput::estimateBitsModeAn($p) // + 4 + la
145
+						 + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln
146
+						 - QRinput::estimateBitsModeAn($q); // - 4 - la
147 147
                          
148
-                    if($dif < 0) {
149
-                        break;
150
-                    } else {
151
-                        $p = $q;
152
-                    }
153
-                } else {
154
-                    $p++;
155
-                }
156
-            }
148
+					if($dif < 0) {
149
+						break;
150
+					} else {
151
+						$p = $q;
152
+					}
153
+				} else {
154
+					$p++;
155
+				}
156
+			}
157 157
 
158
-            $run = $p;
158
+			$run = $p;
159 159
 
160
-            if(!self::isalnumat($this->dataStr, $p)) {
161
-                $dif = QRinput::estimateBitsModeAn($run) + 4 + $la
162
-                     + QRinput::estimateBitsMode8(1) // + 4 + l8
163
-                      - QRinput::estimateBitsMode8($run + 1); // - 4 - l8
164
-                if($dif > 0) {
165
-                    return $this->eat8();
166
-                }
167
-            }
160
+			if(!self::isalnumat($this->dataStr, $p)) {
161
+				$dif = QRinput::estimateBitsModeAn($run) + 4 + $la
162
+					 + QRinput::estimateBitsMode8(1) // + 4 + l8
163
+					  - QRinput::estimateBitsMode8($run + 1); // - 4 - l8
164
+				if($dif > 0) {
165
+					return $this->eat8();
166
+				}
167
+			}
168 168
 
169
-            $ret = $this->input->append(QR_MODE_AN, $run, str_split($this->dataStr));
170
-            if($ret < 0)
171
-                return -1;
169
+			$ret = $this->input->append(QR_MODE_AN, $run, str_split($this->dataStr));
170
+			if($ret < 0)
171
+				return -1;
172 172
 
173
-            return $run;
174
-        }
173
+			return $run;
174
+		}
175 175
         
176
-        //----------------------------------------------------------------------
177
-        public function eatKanji()
178
-        {
179
-            $p = 0;
176
+		//----------------------------------------------------------------------
177
+		public function eatKanji()
178
+		{
179
+			$p = 0;
180 180
             
181
-            while($this->identifyMode($p) == QR_MODE_KANJI) {
182
-                $p += 2;
183
-            }
181
+			while($this->identifyMode($p) == QR_MODE_KANJI) {
182
+				$p += 2;
183
+			}
184 184
             
185
-            $ret = $this->input->append(QR_MODE_KANJI, $p, str_split($this->dataStr));
186
-            if($ret < 0)
187
-                return -1;
185
+			$ret = $this->input->append(QR_MODE_KANJI, $p, str_split($this->dataStr));
186
+			if($ret < 0)
187
+				return -1;
188 188
 
189
-            return $ret;
190
-        }
189
+			return $ret;
190
+		}
191 191
 
192
-        //----------------------------------------------------------------------
193
-        public function eat8()
194
-        {
195
-            $la = QRspec::lengthIndicator(QR_MODE_AN, $this->input->getVersion());
196
-            $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
192
+		//----------------------------------------------------------------------
193
+		public function eat8()
194
+		{
195
+			$la = QRspec::lengthIndicator(QR_MODE_AN, $this->input->getVersion());
196
+			$ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
197 197
 
198
-            $p = 1;
199
-            $dataStrLen = strlen($this->dataStr);
198
+			$p = 1;
199
+			$dataStrLen = strlen($this->dataStr);
200 200
             
201
-            while($p < $dataStrLen) {
201
+			while($p < $dataStrLen) {
202 202
                 
203
-                $mode = $this->identifyMode($p);
204
-                if($mode == QR_MODE_KANJI) {
205
-                    break;
206
-                }
207
-                if($mode == QR_MODE_NUM) {
208
-                    $q = $p;
209
-                    while(self::isdigitat($this->dataStr, $q)) {
210
-                        $q++;
211
-                    }
212
-                    $dif = QRinput::estimateBitsMode8($p) // + 4 + l8
213
-                         + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln
214
-                         - QRinput::estimateBitsMode8($q); // - 4 - l8
215
-                    if($dif < 0) {
216
-                        break;
217
-                    } else {
218
-                        $p = $q;
219
-                    }
220
-                } else if($mode == QR_MODE_AN) {
221
-                    $q = $p;
222
-                    while(self::isalnumat($this->dataStr, $q)) {
223
-                        $q++;
224
-                    }
225
-                    $dif = QRinput::estimateBitsMode8($p)  // + 4 + l8
226
-                         + QRinput::estimateBitsModeAn($q - $p) + 4 + $la
227
-                         - QRinput::estimateBitsMode8($q); // - 4 - l8
228
-                    if($dif < 0) {
229
-                        break;
230
-                    } else {
231
-                        $p = $q;
232
-                    }
233
-                } else {
234
-                    $p++;
235
-                }
236
-            }
203
+				$mode = $this->identifyMode($p);
204
+				if($mode == QR_MODE_KANJI) {
205
+					break;
206
+				}
207
+				if($mode == QR_MODE_NUM) {
208
+					$q = $p;
209
+					while(self::isdigitat($this->dataStr, $q)) {
210
+						$q++;
211
+					}
212
+					$dif = QRinput::estimateBitsMode8($p) // + 4 + l8
213
+						 + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln
214
+						 - QRinput::estimateBitsMode8($q); // - 4 - l8
215
+					if($dif < 0) {
216
+						break;
217
+					} else {
218
+						$p = $q;
219
+					}
220
+				} else if($mode == QR_MODE_AN) {
221
+					$q = $p;
222
+					while(self::isalnumat($this->dataStr, $q)) {
223
+						$q++;
224
+					}
225
+					$dif = QRinput::estimateBitsMode8($p)  // + 4 + l8
226
+						 + QRinput::estimateBitsModeAn($q - $p) + 4 + $la
227
+						 - QRinput::estimateBitsMode8($q); // - 4 - l8
228
+					if($dif < 0) {
229
+						break;
230
+					} else {
231
+						$p = $q;
232
+					}
233
+				} else {
234
+					$p++;
235
+				}
236
+			}
237 237
 
238
-            $run = $p;
239
-            $ret = $this->input->append(QR_MODE_8, $run, str_split($this->dataStr));
238
+			$run = $p;
239
+			$ret = $this->input->append(QR_MODE_8, $run, str_split($this->dataStr));
240 240
             
241
-            if($ret < 0)
242
-                return -1;
241
+			if($ret < 0)
242
+				return -1;
243 243
 
244
-            return $run;
245
-        }
244
+			return $run;
245
+		}
246 246
 
247
-        //----------------------------------------------------------------------
248
-        public function splitString()
249
-        {
250
-            while (strlen($this->dataStr) > 0)
251
-            {
252
-                if($this->dataStr == '')
253
-                    return 0;
247
+		//----------------------------------------------------------------------
248
+		public function splitString()
249
+		{
250
+			while (strlen($this->dataStr) > 0)
251
+			{
252
+				if($this->dataStr == '')
253
+					return 0;
254 254
 
255
-                $mode = $this->identifyMode(0);
255
+				$mode = $this->identifyMode(0);
256 256
                 
257
-                switch ($mode) {
258
-                    case QR_MODE_NUM: $length = $this->eatNum(); break;
259
-                    case QR_MODE_AN:  $length = $this->eatAn(); break;
260
-                    case QR_MODE_KANJI:
261
-                        if ($this->modeHint == QR_MODE_KANJI)
262
-                                $length = $this->eatKanji();
263
-                        else    $length = $this->eat8();
264
-                        break;
265
-                    default: $length = $this->eat8(); break;
257
+				switch ($mode) {
258
+					case QR_MODE_NUM: $length = $this->eatNum(); break;
259
+					case QR_MODE_AN:  $length = $this->eatAn(); break;
260
+					case QR_MODE_KANJI:
261
+						if ($this->modeHint == QR_MODE_KANJI)
262
+								$length = $this->eatKanji();
263
+						else    $length = $this->eat8();
264
+						break;
265
+					default: $length = $this->eat8(); break;
266 266
                 
267
-                }
267
+				}
268 268
 
269
-                if($length == 0) return 0;
270
-                if($length < 0)  return -1;
269
+				if($length == 0) return 0;
270
+				if($length < 0)  return -1;
271 271
                 
272
-                $this->dataStr = substr($this->dataStr, $length);
273
-            }
274
-        }
272
+				$this->dataStr = substr($this->dataStr, $length);
273
+			}
274
+		}
275 275
 
276
-        //----------------------------------------------------------------------
277
-        public function toUpper()
278
-        {
279
-            $stringLen = strlen($this->dataStr);
280
-            $p = 0;
276
+		//----------------------------------------------------------------------
277
+		public function toUpper()
278
+		{
279
+			$stringLen = strlen($this->dataStr);
280
+			$p = 0;
281 281
             
282
-            while ($p<$stringLen) {
283
-                $mode = self::identifyMode(substr($this->dataStr, $p));
284
-                if($mode == QR_MODE_KANJI) {
285
-                    $p += 2;
286
-                } else {
287
-                    if (ord($this->dataStr[$p]) >= ord('a') && ord($this->dataStr[$p]) <= ord('z')) {
288
-                        $this->dataStr[$p] = chr(ord($this->dataStr[$p]) - 32);
289
-                    }
290
-                    $p++;
291
-                }
292
-            }
282
+			while ($p<$stringLen) {
283
+				$mode = self::identifyMode(substr($this->dataStr, $p));
284
+				if($mode == QR_MODE_KANJI) {
285
+					$p += 2;
286
+				} else {
287
+					if (ord($this->dataStr[$p]) >= ord('a') && ord($this->dataStr[$p]) <= ord('z')) {
288
+						$this->dataStr[$p] = chr(ord($this->dataStr[$p]) - 32);
289
+					}
290
+					$p++;
291
+				}
292
+			}
293 293
 
294
-            return $this->dataStr;
295
-        }
294
+			return $this->dataStr;
295
+		}
296 296
 
297
-        //----------------------------------------------------------------------
298
-        public static function splitStringToQRinput($string, QRinput $input, $modeHint, $casesensitive = true)
299
-        {
300
-            if(is_null($string) || $string == '\0' || $string == '') {
301
-                throw new Exception('empty string!!!');
302
-            }
297
+		//----------------------------------------------------------------------
298
+		public static function splitStringToQRinput($string, QRinput $input, $modeHint, $casesensitive = true)
299
+		{
300
+			if(is_null($string) || $string == '\0' || $string == '') {
301
+				throw new Exception('empty string!!!');
302
+			}
303 303
 
304
-            $split = new QRsplit($string, $input, $modeHint);
304
+			$split = new QRsplit($string, $input, $modeHint);
305 305
             
306
-            if(!$casesensitive)
307
-                $split->toUpper();
306
+			if(!$casesensitive)
307
+				$split->toUpper();
308 308
                 
309
-            return $split->splitString();
310
-        }
311
-    }
309
+			return $split->splitString();
310
+		}
311
+	}
Please login to merge, or discard this patch.
lib/phpqrcode/qrinput.php 1 patch
Indentation   +619 added lines, -619 removed lines patch added patch discarded remove patch
@@ -25,705 +25,705 @@
 block discarded – undo
25 25
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 26
  */
27 27
  
28
-    define('STRUCTURE_HEADER_BITS',  20);
29
-    define('MAX_STRUCTURED_SYMBOLS', 16);
28
+	define('STRUCTURE_HEADER_BITS',  20);
29
+	define('MAX_STRUCTURED_SYMBOLS', 16);
30 30
 
31
-    class QRinputItem {
31
+	class QRinputItem {
32 32
     
33
-        public $mode;
34
-        public $size;
35
-        public $data;
36
-        public $bstream;
37
-
38
-        public function __construct($mode, $size, $data, $bstream = null) 
39
-        {
40
-            $setData = array_slice($data, 0, $size);
33
+		public $mode;
34
+		public $size;
35
+		public $data;
36
+		public $bstream;
37
+
38
+		public function __construct($mode, $size, $data, $bstream = null) 
39
+		{
40
+			$setData = array_slice($data, 0, $size);
41 41
             
42
-            if (count($setData) < $size) {
43
-                $setData = array_merge($setData, array_fill(0,$size-count($setData),0));
44
-            }
45
-        
46
-            if(!QRinput::check($mode, $size, $setData)) {
47
-                throw new Exception('Error m:'.$mode.',s:'.$size.',d:'.join(',',$setData));
48
-                return null;
49
-            }
42
+			if (count($setData) < $size) {
43
+				$setData = array_merge($setData, array_fill(0,$size-count($setData),0));
44
+			}
45
+        
46
+			if(!QRinput::check($mode, $size, $setData)) {
47
+				throw new Exception('Error m:'.$mode.',s:'.$size.',d:'.join(',',$setData));
48
+				return null;
49
+			}
50 50
             
51
-            $this->mode = $mode;
52
-            $this->size = $size;
53
-            $this->data = $setData;
54
-            $this->bstream = $bstream;
55
-        }
56
-        
57
-        //----------------------------------------------------------------------
58
-        public function encodeModeNum($version)
59
-        {
60
-            try {
51
+			$this->mode = $mode;
52
+			$this->size = $size;
53
+			$this->data = $setData;
54
+			$this->bstream = $bstream;
55
+		}
56
+        
57
+		//----------------------------------------------------------------------
58
+		public function encodeModeNum($version)
59
+		{
60
+			try {
61 61
             
62
-                $words = (int)($this->size / 3);
63
-                $bs = new QRbitstream();
62
+				$words = (int)($this->size / 3);
63
+				$bs = new QRbitstream();
64 64
                 
65
-                $val = 0x1;
66
-                $bs->appendNum(4, $val);
67
-                $bs->appendNum(QRspec::lengthIndicator(QR_MODE_NUM, $version), $this->size);
68
-
69
-                for($i=0; $i<$words; $i++) {
70
-                    $val  = (ord($this->data[$i*3  ]) - ord('0')) * 100;
71
-                    $val += (ord($this->data[$i*3+1]) - ord('0')) * 10;
72
-                    $val += (ord($this->data[$i*3+2]) - ord('0'));
73
-                    $bs->appendNum(10, $val);
74
-                }
75
-
76
-                if($this->size - $words * 3 == 1) {
77
-                    $val = ord($this->data[$words*3]) - ord('0');
78
-                    $bs->appendNum(4, $val);
79
-                } else if($this->size - $words * 3 == 2) {
80
-                    $val  = (ord($this->data[$words*3  ]) - ord('0')) * 10;
81
-                    $val += (ord($this->data[$words*3+1]) - ord('0'));
82
-                    $bs->appendNum(7, $val);
83
-                }
84
-
85
-                $this->bstream = $bs;
86
-                return 0;
65
+				$val = 0x1;
66
+				$bs->appendNum(4, $val);
67
+				$bs->appendNum(QRspec::lengthIndicator(QR_MODE_NUM, $version), $this->size);
68
+
69
+				for($i=0; $i<$words; $i++) {
70
+					$val  = (ord($this->data[$i*3  ]) - ord('0')) * 100;
71
+					$val += (ord($this->data[$i*3+1]) - ord('0')) * 10;
72
+					$val += (ord($this->data[$i*3+2]) - ord('0'));
73
+					$bs->appendNum(10, $val);
74
+				}
75
+
76
+				if($this->size - $words * 3 == 1) {
77
+					$val = ord($this->data[$words*3]) - ord('0');
78
+					$bs->appendNum(4, $val);
79
+				} else if($this->size - $words * 3 == 2) {
80
+					$val  = (ord($this->data[$words*3  ]) - ord('0')) * 10;
81
+					$val += (ord($this->data[$words*3+1]) - ord('0'));
82
+					$bs->appendNum(7, $val);
83
+				}
84
+
85
+				$this->bstream = $bs;
86
+				return 0;
87 87
                 
88
-            } catch (Exception $e) {
89
-                return -1;
90
-            }
91
-        }
92
-        
93
-        //----------------------------------------------------------------------
94
-        public function encodeModeAn($version)
95
-        {
96
-            try {
97
-                $words = (int)($this->size / 2);
98
-                $bs = new QRbitstream();
88
+			} catch (Exception $e) {
89
+				return -1;
90
+			}
91
+		}
92
+        
93
+		//----------------------------------------------------------------------
94
+		public function encodeModeAn($version)
95
+		{
96
+			try {
97
+				$words = (int)($this->size / 2);
98
+				$bs = new QRbitstream();
99 99
                 
100
-                $bs->appendNum(4, 0x02);
101
-                $bs->appendNum(QRspec::lengthIndicator(QR_MODE_AN, $version), $this->size);
100
+				$bs->appendNum(4, 0x02);
101
+				$bs->appendNum(QRspec::lengthIndicator(QR_MODE_AN, $version), $this->size);
102 102
 
103
-                for($i=0; $i<$words; $i++) {
104
-                    $val  = (int)QRinput::lookAnTable(ord($this->data[$i*2  ])) * 45;
105
-                    $val += (int)QRinput::lookAnTable(ord($this->data[$i*2+1]));
103
+				for($i=0; $i<$words; $i++) {
104
+					$val  = (int)QRinput::lookAnTable(ord($this->data[$i*2  ])) * 45;
105
+					$val += (int)QRinput::lookAnTable(ord($this->data[$i*2+1]));
106 106
 
107
-                    $bs->appendNum(11, $val);
108
-                }
107
+					$bs->appendNum(11, $val);
108
+				}
109 109
 
110
-                if($this->size & 1) {
111
-                    $val = QRinput::lookAnTable(ord($this->data[$words * 2]));
112
-                    $bs->appendNum(6, $val);
113
-                }
110
+				if($this->size & 1) {
111
+					$val = QRinput::lookAnTable(ord($this->data[$words * 2]));
112
+					$bs->appendNum(6, $val);
113
+				}
114 114
         
115
-                $this->bstream = $bs;
116
-                return 0;
115
+				$this->bstream = $bs;
116
+				return 0;
117 117
             
118
-            } catch (Exception $e) {
119
-                return -1;
120
-            }
121
-        }
122
-        
123
-        //----------------------------------------------------------------------
124
-        public function encodeMode8($version)
125
-        {
126
-            try {
127
-                $bs = new QRbitstream();
128
-
129
-                $bs->appendNum(4, 0x4);
130
-                $bs->appendNum(QRspec::lengthIndicator(QR_MODE_8, $version), $this->size);
131
-
132
-                for($i=0; $i<$this->size; $i++) {
133
-                    $bs->appendNum(8, ord($this->data[$i]));
134
-                }
135
-
136
-                $this->bstream = $bs;
137
-                return 0;
118
+			} catch (Exception $e) {
119
+				return -1;
120
+			}
121
+		}
122
+        
123
+		//----------------------------------------------------------------------
124
+		public function encodeMode8($version)
125
+		{
126
+			try {
127
+				$bs = new QRbitstream();
128
+
129
+				$bs->appendNum(4, 0x4);
130
+				$bs->appendNum(QRspec::lengthIndicator(QR_MODE_8, $version), $this->size);
131
+
132
+				for($i=0; $i<$this->size; $i++) {
133
+					$bs->appendNum(8, ord($this->data[$i]));
134
+				}
135
+
136
+				$this->bstream = $bs;
137
+				return 0;
138 138
             
139
-            } catch (Exception $e) {
140
-                return -1;
141
-            }
142
-        }
139
+			} catch (Exception $e) {
140
+				return -1;
141
+			}
142
+		}
143 143
         
144
-        //----------------------------------------------------------------------
145
-        public function encodeModeKanji($version)
146
-        {
147
-            try {
144
+		//----------------------------------------------------------------------
145
+		public function encodeModeKanji($version)
146
+		{
147
+			try {
148 148
 
149
-                $bs = new QRbitrtream();
149
+				$bs = new QRbitrtream();
150 150
                 
151
-                $bs->appendNum(4, 0x8);
152
-                $bs->appendNum(QRspec::lengthIndicator(QR_MODE_KANJI, $version), (int)($this->size / 2));
153
-
154
-                for($i=0; $i<$this->size; $i+=2) {
155
-                    $val = (ord($this->data[$i]) << 8) | ord($this->data[$i+1]);
156
-                    if($val <= 0x9ffc) {
157
-                        $val -= 0x8140;
158
-                    } else {
159
-                        $val -= 0xc140;
160
-                    }
151
+				$bs->appendNum(4, 0x8);
152
+				$bs->appendNum(QRspec::lengthIndicator(QR_MODE_KANJI, $version), (int)($this->size / 2));
153
+
154
+				for($i=0; $i<$this->size; $i+=2) {
155
+					$val = (ord($this->data[$i]) << 8) | ord($this->data[$i+1]);
156
+					if($val <= 0x9ffc) {
157
+						$val -= 0x8140;
158
+					} else {
159
+						$val -= 0xc140;
160
+					}
161 161
                     
162
-                    $h = ($val >> 8) * 0xc0;
163
-                    $val = ($val & 0xff) + $h;
162
+					$h = ($val >> 8) * 0xc0;
163
+					$val = ($val & 0xff) + $h;
164 164
 
165
-                    $bs->appendNum(13, $val);
166
-                }
165
+					$bs->appendNum(13, $val);
166
+				}
167 167
 
168
-                $this->bstream = $bs;
169
-                return 0;
168
+				$this->bstream = $bs;
169
+				return 0;
170 170
             
171
-            } catch (Exception $e) {
172
-                return -1;
173
-            }
174
-        }
175
-
176
-        //----------------------------------------------------------------------
177
-        public function encodeModeStructure()
178
-        {
179
-            try {
180
-                $bs =  new QRbitstream();
171
+			} catch (Exception $e) {
172
+				return -1;
173
+			}
174
+		}
175
+
176
+		//----------------------------------------------------------------------
177
+		public function encodeModeStructure()
178
+		{
179
+			try {
180
+				$bs =  new QRbitstream();
181 181
                 
182
-                $bs->appendNum(4, 0x03);
183
-                $bs->appendNum(4, ord($this->data[1]) - 1);
184
-                $bs->appendNum(4, ord($this->data[0]) - 1);
185
-                $bs->appendNum(8, ord($this->data[2]));
182
+				$bs->appendNum(4, 0x03);
183
+				$bs->appendNum(4, ord($this->data[1]) - 1);
184
+				$bs->appendNum(4, ord($this->data[0]) - 1);
185
+				$bs->appendNum(8, ord($this->data[2]));
186 186
 
187
-                $this->bstream = $bs;
188
-                return 0;
187
+				$this->bstream = $bs;
188
+				return 0;
189 189
             
190
-            } catch (Exception $e) {
191
-                return -1;
192
-            }
193
-        }
194
-        
195
-        //----------------------------------------------------------------------
196
-        public function estimateBitStreamSizeOfEntry($version)
197
-        {
198
-            $bits = 0;
199
-
200
-            if($version == 0) 
201
-                $version = 1;
202
-
203
-            switch($this->mode) {
204
-                case QR_MODE_NUM:        $bits = QRinput::estimateBitsModeNum($this->size);    break;
205
-                case QR_MODE_AN:        $bits = QRinput::estimateBitsModeAn($this->size);    break;
206
-                case QR_MODE_8:            $bits = QRinput::estimateBitsMode8($this->size);    break;
207
-                case QR_MODE_KANJI:        $bits = QRinput::estimateBitsModeKanji($this->size);break;
208
-                case QR_MODE_STRUCTURE:    return STRUCTURE_HEADER_BITS;            
209
-                default:
210
-                    return 0;
211
-            }
212
-
213
-            $l = QRspec::lengthIndicator($this->mode, $version);
214
-            $m = 1 << $l;
215
-            $num = (int)(($this->size + $m - 1) / $m);
216
-
217
-            $bits += $num * (4 + $l);
218
-
219
-            return $bits;
220
-        }
221
-        
222
-        //----------------------------------------------------------------------
223
-        public function encodeBitStream($version)
224
-        {
225
-            try {
190
+			} catch (Exception $e) {
191
+				return -1;
192
+			}
193
+		}
194
+        
195
+		//----------------------------------------------------------------------
196
+		public function estimateBitStreamSizeOfEntry($version)
197
+		{
198
+			$bits = 0;
199
+
200
+			if($version == 0) 
201
+				$version = 1;
202
+
203
+			switch($this->mode) {
204
+				case QR_MODE_NUM:        $bits = QRinput::estimateBitsModeNum($this->size);    break;
205
+				case QR_MODE_AN:        $bits = QRinput::estimateBitsModeAn($this->size);    break;
206
+				case QR_MODE_8:            $bits = QRinput::estimateBitsMode8($this->size);    break;
207
+				case QR_MODE_KANJI:        $bits = QRinput::estimateBitsModeKanji($this->size);break;
208
+				case QR_MODE_STRUCTURE:    return STRUCTURE_HEADER_BITS;            
209
+				default:
210
+					return 0;
211
+			}
212
+
213
+			$l = QRspec::lengthIndicator($this->mode, $version);
214
+			$m = 1 << $l;
215
+			$num = (int)(($this->size + $m - 1) / $m);
216
+
217
+			$bits += $num * (4 + $l);
218
+
219
+			return $bits;
220
+		}
221
+        
222
+		//----------------------------------------------------------------------
223
+		public function encodeBitStream($version)
224
+		{
225
+			try {
226 226
             
227
-                unset($this->bstream);
228
-                $words = QRspec::maximumWords($this->mode, $version);
227
+				unset($this->bstream);
228
+				$words = QRspec::maximumWords($this->mode, $version);
229 229
                 
230
-                if($this->size > $words) {
230
+				if($this->size > $words) {
231 231
                 
232
-                    $st1 = new QRinputItem($this->mode, $words, $this->data);
233
-                    $st2 = new QRinputItem($this->mode, $this->size - $words, array_slice($this->data, $words));
232
+					$st1 = new QRinputItem($this->mode, $words, $this->data);
233
+					$st2 = new QRinputItem($this->mode, $this->size - $words, array_slice($this->data, $words));
234 234
 
235
-                    $st1->encodeBitStream($version);
236
-                    $st2->encodeBitStream($version);
235
+					$st1->encodeBitStream($version);
236
+					$st2->encodeBitStream($version);
237 237
                     
238
-                    $this->bstream = new QRbitstream();
239
-                    $this->bstream->append($st1->bstream);
240
-                    $this->bstream->append($st2->bstream);
238
+					$this->bstream = new QRbitstream();
239
+					$this->bstream->append($st1->bstream);
240
+					$this->bstream->append($st2->bstream);
241 241
                     
242
-                    unset($st1);
243
-                    unset($st2);
242
+					unset($st1);
243
+					unset($st2);
244 244
                     
245
-                } else {
245
+				} else {
246 246
                     
247
-                    $ret = 0;
247
+					$ret = 0;
248 248
                     
249
-                    switch($this->mode) {
250
-                        case QR_MODE_NUM:        $ret = $this->encodeModeNum($version);    break;
251
-                        case QR_MODE_AN:        $ret = $this->encodeModeAn($version);    break;
252
-                        case QR_MODE_8:            $ret = $this->encodeMode8($version);    break;
253
-                        case QR_MODE_KANJI:        $ret = $this->encodeModeKanji($version);break;
254
-                        case QR_MODE_STRUCTURE:    $ret = $this->encodeModeStructure();    break;
249
+					switch($this->mode) {
250
+						case QR_MODE_NUM:        $ret = $this->encodeModeNum($version);    break;
251
+						case QR_MODE_AN:        $ret = $this->encodeModeAn($version);    break;
252
+						case QR_MODE_8:            $ret = $this->encodeMode8($version);    break;
253
+						case QR_MODE_KANJI:        $ret = $this->encodeModeKanji($version);break;
254
+						case QR_MODE_STRUCTURE:    $ret = $this->encodeModeStructure();    break;
255 255
                         
256
-                        default:
257
-                            break;
258
-                    }
256
+						default:
257
+							break;
258
+					}
259 259
                     
260
-                    if($ret < 0)
261
-                        return -1;
262
-                }
260
+					if($ret < 0)
261
+						return -1;
262
+				}
263 263
 
264
-                return $this->bstream->size();
264
+				return $this->bstream->size();
265 265
             
266
-            } catch (Exception $e) {
267
-                return -1;
268
-            }
269
-        }
270
-    };
266
+			} catch (Exception $e) {
267
+				return -1;
268
+			}
269
+		}
270
+	};
271 271
     
272
-    //##########################################################################
272
+	//##########################################################################
273 273
 
274
-    class QRinput {
274
+	class QRinput {
275 275
 
276
-        public $items;
276
+		public $items;
277 277
         
278
-        private $version;
279
-        private $level;
278
+		private $version;
279
+		private $level;
280 280
         
281
-        //----------------------------------------------------------------------
282
-        public function __construct($version = 0, $level = QR_ECLEVEL_L)
283
-        {
284
-            if ($version < 0 || $version > QRSPEC_VERSION_MAX || $level > QR_ECLEVEL_H) {
285
-                throw new Exception('Invalid version no');
286
-                return NULL;
287
-            }
281
+		//----------------------------------------------------------------------
282
+		public function __construct($version = 0, $level = QR_ECLEVEL_L)
283
+		{
284
+			if ($version < 0 || $version > QRSPEC_VERSION_MAX || $level > QR_ECLEVEL_H) {
285
+				throw new Exception('Invalid version no');
286
+				return NULL;
287
+			}
288 288
             
289
-            $this->version = $version;
290
-            $this->level = $level;
291
-        }
292
-        
293
-        //----------------------------------------------------------------------
294
-        public function getVersion()
295
-        {
296
-            return $this->version;
297
-        }
298
-        
299
-        //----------------------------------------------------------------------
300
-        public function setVersion($version)
301
-        {
302
-            if($version < 0 || $version > QRSPEC_VERSION_MAX) {
303
-                throw new Exception('Invalid version no');
304
-                return -1;
305
-            }
306
-
307
-            $this->version = $version;
308
-
309
-            return 0;
310
-        }
311
-        
312
-        //----------------------------------------------------------------------
313
-        public function getErrorCorrectionLevel()
314
-        {
315
-            return $this->level;
316
-        }
317
-
318
-        //----------------------------------------------------------------------
319
-        public function setErrorCorrectionLevel($level)
320
-        {
321
-            if($level > QR_ECLEVEL_H) {
322
-                throw new Exception('Invalid ECLEVEL');
323
-                return -1;
324
-            }
325
-
326
-            $this->level = $level;
327
-
328
-            return 0;
329
-        }
330
-        
331
-        //----------------------------------------------------------------------
332
-        public function appendEntry(QRinputItem $entry)
333
-        {
334
-            $this->items[] = $entry;
335
-        }
336
-        
337
-        //----------------------------------------------------------------------
338
-        public function append($mode, $size, $data)
339
-        {
340
-            try {
341
-                $entry = new QRinputItem($mode, $size, $data);
342
-                $this->items[] = $entry;
343
-                return 0;
344
-            } catch (Exception $e) {
345
-                return -1;
346
-            }
347
-        }
348
-        
349
-        //----------------------------------------------------------------------
350
-        
351
-        public function insertStructuredAppendHeader($size, $index, $parity)
352
-        {
353
-            if( $size > MAX_STRUCTURED_SYMBOLS ) {
354
-                throw new Exception('insertStructuredAppendHeader wrong size');
355
-            }
289
+			$this->version = $version;
290
+			$this->level = $level;
291
+		}
292
+        
293
+		//----------------------------------------------------------------------
294
+		public function getVersion()
295
+		{
296
+			return $this->version;
297
+		}
298
+        
299
+		//----------------------------------------------------------------------
300
+		public function setVersion($version)
301
+		{
302
+			if($version < 0 || $version > QRSPEC_VERSION_MAX) {
303
+				throw new Exception('Invalid version no');
304
+				return -1;
305
+			}
306
+
307
+			$this->version = $version;
308
+
309
+			return 0;
310
+		}
311
+        
312
+		//----------------------------------------------------------------------
313
+		public function getErrorCorrectionLevel()
314
+		{
315
+			return $this->level;
316
+		}
317
+
318
+		//----------------------------------------------------------------------
319
+		public function setErrorCorrectionLevel($level)
320
+		{
321
+			if($level > QR_ECLEVEL_H) {
322
+				throw new Exception('Invalid ECLEVEL');
323
+				return -1;
324
+			}
325
+
326
+			$this->level = $level;
327
+
328
+			return 0;
329
+		}
330
+        
331
+		//----------------------------------------------------------------------
332
+		public function appendEntry(QRinputItem $entry)
333
+		{
334
+			$this->items[] = $entry;
335
+		}
336
+        
337
+		//----------------------------------------------------------------------
338
+		public function append($mode, $size, $data)
339
+		{
340
+			try {
341
+				$entry = new QRinputItem($mode, $size, $data);
342
+				$this->items[] = $entry;
343
+				return 0;
344
+			} catch (Exception $e) {
345
+				return -1;
346
+			}
347
+		}
348
+        
349
+		//----------------------------------------------------------------------
350
+        
351
+		public function insertStructuredAppendHeader($size, $index, $parity)
352
+		{
353
+			if( $size > MAX_STRUCTURED_SYMBOLS ) {
354
+				throw new Exception('insertStructuredAppendHeader wrong size');
355
+			}
356 356
             
357
-            if( $index <= 0 || $index > MAX_STRUCTURED_SYMBOLS ) {
358
-                throw new Exception('insertStructuredAppendHeader wrong index');
359
-            }
357
+			if( $index <= 0 || $index > MAX_STRUCTURED_SYMBOLS ) {
358
+				throw new Exception('insertStructuredAppendHeader wrong index');
359
+			}
360 360
 
361
-            $buf = array($size, $index, $parity);
361
+			$buf = array($size, $index, $parity);
362 362
             
363
-            try {
364
-                $entry = new QRinputItem(QR_MODE_STRUCTURE, 3, buf);
365
-                array_unshift($this->items, $entry);
366
-                return 0;
367
-            } catch (Exception $e) {
368
-                return -1;
369
-            }
370
-        }
371
-
372
-        //----------------------------------------------------------------------
373
-        public function calcParity()
374
-        {
375
-            $parity = 0;
363
+			try {
364
+				$entry = new QRinputItem(QR_MODE_STRUCTURE, 3, buf);
365
+				array_unshift($this->items, $entry);
366
+				return 0;
367
+			} catch (Exception $e) {
368
+				return -1;
369
+			}
370
+		}
371
+
372
+		//----------------------------------------------------------------------
373
+		public function calcParity()
374
+		{
375
+			$parity = 0;
376 376
             
377
-            foreach($this->items as $item) {
378
-                if($item->mode != QR_MODE_STRUCTURE) {
379
-                    for($i=$item->size-1; $i>=0; $i--) {
380
-                        $parity ^= $item->data[$i];
381
-                    }
382
-                }
383
-            }
384
-
385
-            return $parity;
386
-        }
387
-        
388
-        //----------------------------------------------------------------------
389
-        public static function checkModeNum($size, $data)
390
-        {
391
-            for($i=0; $i<$size; $i++) {
392
-                if((ord($data[$i]) < ord('0')) || (ord($data[$i]) > ord('9'))){
393
-                    return false;
394
-                }
395
-            }
396
-
397
-            return true;
398
-        }
399
-
400
-        //----------------------------------------------------------------------
401
-        public static function estimateBitsModeNum($size)
402
-        {
403
-            $w = (int)$size / 3;
404
-            $bits = $w * 10;
377
+			foreach($this->items as $item) {
378
+				if($item->mode != QR_MODE_STRUCTURE) {
379
+					for($i=$item->size-1; $i>=0; $i--) {
380
+						$parity ^= $item->data[$i];
381
+					}
382
+				}
383
+			}
384
+
385
+			return $parity;
386
+		}
387
+        
388
+		//----------------------------------------------------------------------
389
+		public static function checkModeNum($size, $data)
390
+		{
391
+			for($i=0; $i<$size; $i++) {
392
+				if((ord($data[$i]) < ord('0')) || (ord($data[$i]) > ord('9'))){
393
+					return false;
394
+				}
395
+			}
396
+
397
+			return true;
398
+		}
399
+
400
+		//----------------------------------------------------------------------
401
+		public static function estimateBitsModeNum($size)
402
+		{
403
+			$w = (int)$size / 3;
404
+			$bits = $w * 10;
405 405
             
406
-            switch($size - $w * 3) {
407
-                case 1:
408
-                    $bits += 4;
409
-                    break;
410
-                case 2:
411
-                    $bits += 7;
412
-                    break;
413
-                default:
414
-                    break;
415
-            }
416
-
417
-            return $bits;
418
-        }
419
-        
420
-        //----------------------------------------------------------------------
421
-        public static $anTable = array(
422
-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
423
-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
424
-            36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43,
425
-             0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 44, -1, -1, -1, -1, -1,
426
-            -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
427
-            25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
428
-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
429
-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
430
-        );
431
-        
432
-        //----------------------------------------------------------------------
433
-        public static function lookAnTable($c)
434
-        {
435
-            return (($c > 127)?-1:self::$anTable[$c]);
436
-        }
437
-        
438
-        //----------------------------------------------------------------------
439
-        public static function checkModeAn($size, $data)
440
-        {
441
-            for($i=0; $i<$size; $i++) {
442
-                if (self::lookAnTable(ord($data[$i])) == -1) {
443
-                    return false;
444
-                }
445
-            }
446
-
447
-            return true;
448
-        }
449
-        
450
-        //----------------------------------------------------------------------
451
-        public static function estimateBitsModeAn($size)
452
-        {
453
-            $w = (int)($size / 2);
454
-            $bits = $w * 11;
406
+			switch($size - $w * 3) {
407
+				case 1:
408
+					$bits += 4;
409
+					break;
410
+				case 2:
411
+					$bits += 7;
412
+					break;
413
+				default:
414
+					break;
415
+			}
416
+
417
+			return $bits;
418
+		}
419
+        
420
+		//----------------------------------------------------------------------
421
+		public static $anTable = array(
422
+			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
423
+			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
424
+			36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43,
425
+			 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 44, -1, -1, -1, -1, -1,
426
+			-1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
427
+			25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
428
+			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
429
+			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
430
+		);
431
+        
432
+		//----------------------------------------------------------------------
433
+		public static function lookAnTable($c)
434
+		{
435
+			return (($c > 127)?-1:self::$anTable[$c]);
436
+		}
437
+        
438
+		//----------------------------------------------------------------------
439
+		public static function checkModeAn($size, $data)
440
+		{
441
+			for($i=0; $i<$size; $i++) {
442
+				if (self::lookAnTable(ord($data[$i])) == -1) {
443
+					return false;
444
+				}
445
+			}
446
+
447
+			return true;
448
+		}
449
+        
450
+		//----------------------------------------------------------------------
451
+		public static function estimateBitsModeAn($size)
452
+		{
453
+			$w = (int)($size / 2);
454
+			$bits = $w * 11;
455 455
             
456
-            if($size & 1) {
457
-                $bits += 6;
458
-            }
456
+			if($size & 1) {
457
+				$bits += 6;
458
+			}
459 459
 
460
-            return $bits;
461
-        }
460
+			return $bits;
461
+		}
462 462
     
463
-        //----------------------------------------------------------------------
464
-        public static function estimateBitsMode8($size)
465
-        {
466
-            return $size * 8;
467
-        }
468
-        
469
-        //----------------------------------------------------------------------
470
-        public function estimateBitsModeKanji($size)
471
-        {
472
-            return (int)(($size / 2) * 13);
473
-        }
474
-        
475
-        //----------------------------------------------------------------------
476
-        public static function checkModeKanji($size, $data)
477
-        {
478
-            if($size & 1)
479
-                return false;
480
-
481
-            for($i=0; $i<$size; $i+=2) {
482
-                $val = (ord($data[$i]) << 8) | ord($data[$i+1]);
483
-                if( $val < 0x8140 
484
-                || ($val > 0x9ffc && $val < 0xe040) 
485
-                || $val > 0xebbf) {
486
-                    return false;
487
-                }
488
-            }
489
-
490
-            return true;
491
-        }
492
-
493
-        /***********************************************************************
463
+		//----------------------------------------------------------------------
464
+		public static function estimateBitsMode8($size)
465
+		{
466
+			return $size * 8;
467
+		}
468
+        
469
+		//----------------------------------------------------------------------
470
+		public function estimateBitsModeKanji($size)
471
+		{
472
+			return (int)(($size / 2) * 13);
473
+		}
474
+        
475
+		//----------------------------------------------------------------------
476
+		public static function checkModeKanji($size, $data)
477
+		{
478
+			if($size & 1)
479
+				return false;
480
+
481
+			for($i=0; $i<$size; $i+=2) {
482
+				$val = (ord($data[$i]) << 8) | ord($data[$i+1]);
483
+				if( $val < 0x8140 
484
+				|| ($val > 0x9ffc && $val < 0xe040) 
485
+				|| $val > 0xebbf) {
486
+					return false;
487
+				}
488
+			}
489
+
490
+			return true;
491
+		}
492
+
493
+		/***********************************************************************
494 494
          * Validation
495 495
          **********************************************************************/
496 496
 
497
-        public static function check($mode, $size, $data)
498
-        {
499
-            if($size <= 0) 
500
-                return false;
501
-
502
-            switch($mode) {
503
-                case QR_MODE_NUM:       return self::checkModeNum($size, $data);   break;
504
-                case QR_MODE_AN:        return self::checkModeAn($size, $data);    break;
505
-                case QR_MODE_KANJI:     return self::checkModeKanji($size, $data); break;
506
-                case QR_MODE_8:         return true; break;
507
-                case QR_MODE_STRUCTURE: return true; break;
497
+		public static function check($mode, $size, $data)
498
+		{
499
+			if($size <= 0) 
500
+				return false;
501
+
502
+			switch($mode) {
503
+				case QR_MODE_NUM:       return self::checkModeNum($size, $data);   break;
504
+				case QR_MODE_AN:        return self::checkModeAn($size, $data);    break;
505
+				case QR_MODE_KANJI:     return self::checkModeKanji($size, $data); break;
506
+				case QR_MODE_8:         return true; break;
507
+				case QR_MODE_STRUCTURE: return true; break;
508 508
                 
509
-                default:
510
-                    break;
511
-            }
512
-
513
-            return false;
514
-        }
515
-        
516
-        
517
-        //----------------------------------------------------------------------
518
-        public function estimateBitStreamSize($version)
519
-        {
520
-            $bits = 0;
521
-
522
-            foreach($this->items as $item) {
523
-                $bits += $item->estimateBitStreamSizeOfEntry($version);
524
-            }
525
-
526
-            return $bits;
527
-        }
528
-        
529
-        //----------------------------------------------------------------------
530
-        public function estimateVersion()
531
-        {
532
-            $version = 0;
533
-            $prev = 0;
534
-            do {
535
-                $prev = $version;
536
-                $bits = $this->estimateBitStreamSize($prev);
537
-                $version = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level);
538
-                if ($version < 0) {
539
-                    return -1;
540
-                }
541
-            } while ($version > $prev);
542
-
543
-            return $version;
544
-        }
545
-        
546
-        //----------------------------------------------------------------------
547
-        public static function lengthOfCode($mode, $version, $bits)
548
-        {
549
-            $payload = $bits - 4 - QRspec::lengthIndicator($mode, $version);
550
-            switch($mode) {
551
-                case QR_MODE_NUM:
552
-                    $chunks = (int)($payload / 10);
553
-                    $remain = $payload - $chunks * 10;
554
-                    $size = $chunks * 3;
555
-                    if($remain >= 7) {
556
-                        $size += 2;
557
-                    } else if($remain >= 4) {
558
-                        $size += 1;
559
-                    }
560
-                    break;
561
-                case QR_MODE_AN:
562
-                    $chunks = (int)($payload / 11);
563
-                    $remain = $payload - $chunks * 11;
564
-                    $size = $chunks * 2;
565
-                    if($remain >= 6) 
566
-                        $size++;
567
-                    break;
568
-                case QR_MODE_8:
569
-                    $size = (int)($payload / 8);
570
-                    break;
571
-                case QR_MODE_KANJI:
572
-                    $size = (int)(($payload / 13) * 2);
573
-                    break;
574
-                case QR_MODE_STRUCTURE:
575
-                    $size = (int)($payload / 8);
576
-                    break;
577
-                default:
578
-                    $size = 0;
579
-                    break;
580
-            }
509
+				default:
510
+					break;
511
+			}
512
+
513
+			return false;
514
+		}
515
+        
516
+        
517
+		//----------------------------------------------------------------------
518
+		public function estimateBitStreamSize($version)
519
+		{
520
+			$bits = 0;
521
+
522
+			foreach($this->items as $item) {
523
+				$bits += $item->estimateBitStreamSizeOfEntry($version);
524
+			}
525
+
526
+			return $bits;
527
+		}
528
+        
529
+		//----------------------------------------------------------------------
530
+		public function estimateVersion()
531
+		{
532
+			$version = 0;
533
+			$prev = 0;
534
+			do {
535
+				$prev = $version;
536
+				$bits = $this->estimateBitStreamSize($prev);
537
+				$version = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level);
538
+				if ($version < 0) {
539
+					return -1;
540
+				}
541
+			} while ($version > $prev);
542
+
543
+			return $version;
544
+		}
545
+        
546
+		//----------------------------------------------------------------------
547
+		public static function lengthOfCode($mode, $version, $bits)
548
+		{
549
+			$payload = $bits - 4 - QRspec::lengthIndicator($mode, $version);
550
+			switch($mode) {
551
+				case QR_MODE_NUM:
552
+					$chunks = (int)($payload / 10);
553
+					$remain = $payload - $chunks * 10;
554
+					$size = $chunks * 3;
555
+					if($remain >= 7) {
556
+						$size += 2;
557
+					} else if($remain >= 4) {
558
+						$size += 1;
559
+					}
560
+					break;
561
+				case QR_MODE_AN:
562
+					$chunks = (int)($payload / 11);
563
+					$remain = $payload - $chunks * 11;
564
+					$size = $chunks * 2;
565
+					if($remain >= 6) 
566
+						$size++;
567
+					break;
568
+				case QR_MODE_8:
569
+					$size = (int)($payload / 8);
570
+					break;
571
+				case QR_MODE_KANJI:
572
+					$size = (int)(($payload / 13) * 2);
573
+					break;
574
+				case QR_MODE_STRUCTURE:
575
+					$size = (int)($payload / 8);
576
+					break;
577
+				default:
578
+					$size = 0;
579
+					break;
580
+			}
581 581
             
582
-            $maxsize = QRspec::maximumWords($mode, $version);
583
-            if($size < 0) $size = 0;
584
-            if($size > $maxsize) $size = $maxsize;
582
+			$maxsize = QRspec::maximumWords($mode, $version);
583
+			if($size < 0) $size = 0;
584
+			if($size > $maxsize) $size = $maxsize;
585 585
 
586
-            return $size;
587
-        }
586
+			return $size;
587
+		}
588 588
         
589
-        //----------------------------------------------------------------------
590
-        public function createBitStream()
591
-        {
592
-            $total = 0;
589
+		//----------------------------------------------------------------------
590
+		public function createBitStream()
591
+		{
592
+			$total = 0;
593 593
 
594
-            foreach($this->items as $item) {
595
-                $bits = $item->encodeBitStream($this->version);
594
+			foreach($this->items as $item) {
595
+				$bits = $item->encodeBitStream($this->version);
596 596
                 
597
-                if($bits < 0) 
598
-                    return -1;
597
+				if($bits < 0) 
598
+					return -1;
599 599
                     
600
-                $total += $bits;
601
-            }
602
-
603
-            return $total;
604
-        }
605
-        
606
-        //----------------------------------------------------------------------
607
-        public function convertData()
608
-        {
609
-            $ver = $this->estimateVersion();
610
-            if($ver > $this->getVersion()) {
611
-                $this->setVersion($ver);
612
-            }
613
-
614
-            for(;;) {
615
-                $bits = $this->createBitStream();
600
+				$total += $bits;
601
+			}
602
+
603
+			return $total;
604
+		}
605
+        
606
+		//----------------------------------------------------------------------
607
+		public function convertData()
608
+		{
609
+			$ver = $this->estimateVersion();
610
+			if($ver > $this->getVersion()) {
611
+				$this->setVersion($ver);
612
+			}
613
+
614
+			for(;;) {
615
+				$bits = $this->createBitStream();
616 616
                 
617
-                if($bits < 0) 
618
-                    return -1;
617
+				if($bits < 0) 
618
+					return -1;
619 619
                     
620
-                $ver = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level);
621
-                if($ver < 0) {
622
-                    throw new Exception('WRONG VERSION');
623
-                    return -1;
624
-                } else if($ver > $this->getVersion()) {
625
-                    $this->setVersion($ver);
626
-                } else {
627
-                    break;
628
-                }
629
-            }
630
-
631
-            return 0;
632
-        }
633
-        
634
-        //----------------------------------------------------------------------
635
-        public function appendPaddingBit(&$bstream)
636
-        {
637
-            $bits = $bstream->size();
638
-            $maxwords = QRspec::getDataLength($this->version, $this->level);
639
-            $maxbits = $maxwords * 8;
640
-
641
-            if ($maxbits == $bits) {
642
-                return 0;
643
-            }
644
-
645
-            if ($maxbits - $bits < 5) {
646
-                return $bstream->appendNum($maxbits - $bits, 0);
647
-            }
648
-
649
-            $bits += 4;
650
-            $words = (int)(($bits + 7) / 8);
651
-
652
-            $padding = new QRbitstream();
653
-            $ret = $padding->appendNum($words * 8 - $bits + 4, 0);
620
+				$ver = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level);
621
+				if($ver < 0) {
622
+					throw new Exception('WRONG VERSION');
623
+					return -1;
624
+				} else if($ver > $this->getVersion()) {
625
+					$this->setVersion($ver);
626
+				} else {
627
+					break;
628
+				}
629
+			}
630
+
631
+			return 0;
632
+		}
633
+        
634
+		//----------------------------------------------------------------------
635
+		public function appendPaddingBit(&$bstream)
636
+		{
637
+			$bits = $bstream->size();
638
+			$maxwords = QRspec::getDataLength($this->version, $this->level);
639
+			$maxbits = $maxwords * 8;
640
+
641
+			if ($maxbits == $bits) {
642
+				return 0;
643
+			}
644
+
645
+			if ($maxbits - $bits < 5) {
646
+				return $bstream->appendNum($maxbits - $bits, 0);
647
+			}
648
+
649
+			$bits += 4;
650
+			$words = (int)(($bits + 7) / 8);
651
+
652
+			$padding = new QRbitstream();
653
+			$ret = $padding->appendNum($words * 8 - $bits + 4, 0);
654 654
             
655
-            if($ret < 0) 
656
-                return $ret;
655
+			if($ret < 0) 
656
+				return $ret;
657 657
 
658
-            $padlen = $maxwords - $words;
658
+			$padlen = $maxwords - $words;
659 659
             
660
-            if($padlen > 0) {
660
+			if($padlen > 0) {
661 661
                 
662
-                $padbuf = array();
663
-                for($i=0; $i<$padlen; $i++) {
664
-                    $padbuf[$i] = ($i&1)?0x11:0xec;
665
-                }
662
+				$padbuf = array();
663
+				for($i=0; $i<$padlen; $i++) {
664
+					$padbuf[$i] = ($i&1)?0x11:0xec;
665
+				}
666 666
                 
667
-                $ret = $padding->appendBytes($padlen, $padbuf);
667
+				$ret = $padding->appendBytes($padlen, $padbuf);
668 668
                 
669
-                if($ret < 0)
670
-                    return $ret;
669
+				if($ret < 0)
670
+					return $ret;
671 671
                 
672
-            }
672
+			}
673 673
 
674
-            $ret = $bstream->append($padding);
674
+			$ret = $bstream->append($padding);
675 675
             
676
-            return $ret;
677
-        }
676
+			return $ret;
677
+		}
678 678
 
679
-        //----------------------------------------------------------------------
680
-        public function mergeBitStream()
681
-        {
682
-            if($this->convertData() < 0) {
683
-                return null;
684
-            }
679
+		//----------------------------------------------------------------------
680
+		public function mergeBitStream()
681
+		{
682
+			if($this->convertData() < 0) {
683
+				return null;
684
+			}
685 685
 
686
-            $bstream = new QRbitstream();
686
+			$bstream = new QRbitstream();
687 687
             
688
-            foreach($this->items as $item) {
689
-                $ret = $bstream->append($item->bstream);
690
-                if($ret < 0) {
691
-                    return null;
692
-                }
693
-            }
688
+			foreach($this->items as $item) {
689
+				$ret = $bstream->append($item->bstream);
690
+				if($ret < 0) {
691
+					return null;
692
+				}
693
+			}
694 694
 
695
-            return $bstream;
696
-        }
695
+			return $bstream;
696
+		}
697 697
 
698
-        //----------------------------------------------------------------------
699
-        public function getBitStream()
700
-        {
698
+		//----------------------------------------------------------------------
699
+		public function getBitStream()
700
+		{
701 701
 
702
-            $bstream = $this->mergeBitStream();
702
+			$bstream = $this->mergeBitStream();
703 703
             
704
-            if($bstream == null) {
705
-                return null;
706
-            }
704
+			if($bstream == null) {
705
+				return null;
706
+			}
707 707
             
708
-            $ret = $this->appendPaddingBit($bstream);
709
-            if($ret < 0) {
710
-                return null;
711
-            }
712
-
713
-            return $bstream;
714
-        }
715
-        
716
-        //----------------------------------------------------------------------
717
-        public function getByteStream()
718
-        {
719
-            $bstream = $this->getBitStream();
720
-            if($bstream == null) {
721
-                return null;
722
-            }
708
+			$ret = $this->appendPaddingBit($bstream);
709
+			if($ret < 0) {
710
+				return null;
711
+			}
712
+
713
+			return $bstream;
714
+		}
715
+        
716
+		//----------------------------------------------------------------------
717
+		public function getByteStream()
718
+		{
719
+			$bstream = $this->getBitStream();
720
+			if($bstream == null) {
721
+				return null;
722
+			}
723 723
             
724
-            return $bstream->toByte();
725
-        }
726
-    }
724
+			return $bstream->toByte();
725
+		}
726
+	}
727 727
         
728 728
         
729
-    
730 729
\ No newline at end of file
730
+	
731 731
\ No newline at end of file
Please login to merge, or discard this patch.
lib/phpqrcode/qrencode.php 1 patch
Indentation   +381 added lines, -381 removed lines patch added patch discarded remove patch
@@ -25,478 +25,478 @@
 block discarded – undo
25 25
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 26
  */
27 27
  
28
-    class QRrsblock {
29
-        public $dataLength;
30
-        public $data = array();
31
-        public $eccLength;
32
-        public $ecc = array();
28
+	class QRrsblock {
29
+		public $dataLength;
30
+		public $data = array();
31
+		public $eccLength;
32
+		public $ecc = array();
33 33
         
34
-        public function __construct($dl, $data, $el, &$ecc, QRrsItem $rs)
35
-        {
36
-            $rs->encode_rs_char($data, $ecc);
34
+		public function __construct($dl, $data, $el, &$ecc, QRrsItem $rs)
35
+		{
36
+			$rs->encode_rs_char($data, $ecc);
37 37
         
38
-            $this->dataLength = $dl;
39
-            $this->data = $data;
40
-            $this->eccLength = $el;
41
-            $this->ecc = $ecc;
42
-        }
43
-    };
38
+			$this->dataLength = $dl;
39
+			$this->data = $data;
40
+			$this->eccLength = $el;
41
+			$this->ecc = $ecc;
42
+		}
43
+	};
44 44
     
45
-    //##########################################################################
45
+	//##########################################################################
46 46
 
47
-    class QRrawcode {
48
-        public $version;
49
-        public $datacode = array();
50
-        public $ecccode = array();
51
-        public $blocks;
52
-        public $rsblocks = array(); //of RSblock
53
-        public $count;
54
-        public $dataLength;
55
-        public $eccLength;
56
-        public $b1;
47
+	class QRrawcode {
48
+		public $version;
49
+		public $datacode = array();
50
+		public $ecccode = array();
51
+		public $blocks;
52
+		public $rsblocks = array(); //of RSblock
53
+		public $count;
54
+		public $dataLength;
55
+		public $eccLength;
56
+		public $b1;
57 57
         
58
-        //----------------------------------------------------------------------
59
-        public function __construct(QRinput $input)
60
-        {
61
-            $spec = array(0,0,0,0,0);
58
+		//----------------------------------------------------------------------
59
+		public function __construct(QRinput $input)
60
+		{
61
+			$spec = array(0,0,0,0,0);
62 62
             
63
-            $this->datacode = $input->getByteStream();
64
-            if(is_null($this->datacode)) {
65
-                throw new Exception('null imput string');
66
-            }
63
+			$this->datacode = $input->getByteStream();
64
+			if(is_null($this->datacode)) {
65
+				throw new Exception('null imput string');
66
+			}
67 67
 
68
-            QRspec::getEccSpec($input->getVersion(), $input->getErrorCorrectionLevel(), $spec);
68
+			QRspec::getEccSpec($input->getVersion(), $input->getErrorCorrectionLevel(), $spec);
69 69
 
70
-            $this->version = $input->getVersion();
71
-            $this->b1 = QRspec::rsBlockNum1($spec);
72
-            $this->dataLength = QRspec::rsDataLength($spec);
73
-            $this->eccLength = QRspec::rsEccLength($spec);
74
-            $this->ecccode = array_fill(0, $this->eccLength, 0);
75
-            $this->blocks = QRspec::rsBlockNum($spec);
70
+			$this->version = $input->getVersion();
71
+			$this->b1 = QRspec::rsBlockNum1($spec);
72
+			$this->dataLength = QRspec::rsDataLength($spec);
73
+			$this->eccLength = QRspec::rsEccLength($spec);
74
+			$this->ecccode = array_fill(0, $this->eccLength, 0);
75
+			$this->blocks = QRspec::rsBlockNum($spec);
76 76
             
77
-            $ret = $this->init($spec);
78
-            if($ret < 0) {
79
-                throw new Exception('block alloc error');
80
-                return null;
81
-            }
77
+			$ret = $this->init($spec);
78
+			if($ret < 0) {
79
+				throw new Exception('block alloc error');
80
+				return null;
81
+			}
82 82
 
83
-            $this->count = 0;
84
-        }
83
+			$this->count = 0;
84
+		}
85 85
         
86
-        //----------------------------------------------------------------------
87
-        public function init(array $spec)
88
-        {
89
-            $dl = QRspec::rsDataCodes1($spec);
90
-            $el = QRspec::rsEccCodes1($spec);
91
-            $rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
86
+		//----------------------------------------------------------------------
87
+		public function init(array $spec)
88
+		{
89
+			$dl = QRspec::rsDataCodes1($spec);
90
+			$el = QRspec::rsEccCodes1($spec);
91
+			$rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
92 92
             
93 93
 
94
-            $blockNo = 0;
95
-            $dataPos = 0;
96
-            $eccPos = 0;
97
-            for($i=0; $i<QRspec::rsBlockNum1($spec); $i++) {
98
-                $ecc = array_slice($this->ecccode,$eccPos);
99
-                $this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el,  $ecc, $rs);
100
-                $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
94
+			$blockNo = 0;
95
+			$dataPos = 0;
96
+			$eccPos = 0;
97
+			for($i=0; $i<QRspec::rsBlockNum1($spec); $i++) {
98
+				$ecc = array_slice($this->ecccode,$eccPos);
99
+				$this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el,  $ecc, $rs);
100
+				$this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
101 101
                 
102
-                $dataPos += $dl;
103
-                $eccPos += $el;
104
-                $blockNo++;
105
-            }
102
+				$dataPos += $dl;
103
+				$eccPos += $el;
104
+				$blockNo++;
105
+			}
106 106
 
107
-            if(QRspec::rsBlockNum2($spec) == 0)
108
-                return 0;
107
+			if(QRspec::rsBlockNum2($spec) == 0)
108
+				return 0;
109 109
 
110
-            $dl = QRspec::rsDataCodes2($spec);
111
-            $el = QRspec::rsEccCodes2($spec);
112
-            $rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
110
+			$dl = QRspec::rsDataCodes2($spec);
111
+			$el = QRspec::rsEccCodes2($spec);
112
+			$rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
113 113
             
114
-            if($rs == NULL) return -1;
114
+			if($rs == NULL) return -1;
115 115
             
116
-            for($i=0; $i<QRspec::rsBlockNum2($spec); $i++) {
117
-                $ecc = array_slice($this->ecccode,$eccPos);
118
-                $this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el, $ecc, $rs);
119
-                $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
116
+			for($i=0; $i<QRspec::rsBlockNum2($spec); $i++) {
117
+				$ecc = array_slice($this->ecccode,$eccPos);
118
+				$this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el, $ecc, $rs);
119
+				$this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
120 120
                 
121
-                $dataPos += $dl;
122
-                $eccPos += $el;
123
-                $blockNo++;
124
-            }
121
+				$dataPos += $dl;
122
+				$eccPos += $el;
123
+				$blockNo++;
124
+			}
125 125
 
126
-            return 0;
127
-        }
126
+			return 0;
127
+		}
128 128
         
129
-        //----------------------------------------------------------------------
130
-        public function getCode()
131
-        {
132
-            $ret = 0;
129
+		//----------------------------------------------------------------------
130
+		public function getCode()
131
+		{
132
+			$ret = 0;
133 133
 
134
-            if($this->count < $this->dataLength) {
135
-                $row = $this->count % $this->blocks;
136
-                $col = $this->count / $this->blocks;
137
-                if($col >= $this->rsblocks[0]->dataLength) {
138
-                    $row += $this->b1;
139
-                }
140
-                $ret = $this->rsblocks[$row]->data[$col];
141
-            } else if($this->count < $this->dataLength + $this->eccLength) {
142
-                $row = ($this->count - $this->dataLength) % $this->blocks;
143
-                $col = ($this->count - $this->dataLength) / $this->blocks;
144
-                $ret = $this->rsblocks[$row]->ecc[$col];
145
-            } else {
146
-                return 0;
147
-            }
148
-            $this->count++;
134
+			if($this->count < $this->dataLength) {
135
+				$row = $this->count % $this->blocks;
136
+				$col = $this->count / $this->blocks;
137
+				if($col >= $this->rsblocks[0]->dataLength) {
138
+					$row += $this->b1;
139
+				}
140
+				$ret = $this->rsblocks[$row]->data[$col];
141
+			} else if($this->count < $this->dataLength + $this->eccLength) {
142
+				$row = ($this->count - $this->dataLength) % $this->blocks;
143
+				$col = ($this->count - $this->dataLength) / $this->blocks;
144
+				$ret = $this->rsblocks[$row]->ecc[$col];
145
+			} else {
146
+				return 0;
147
+			}
148
+			$this->count++;
149 149
             
150
-            return $ret;
151
-        }
152
-    }
150
+			return $ret;
151
+		}
152
+	}
153 153
 
154
-    //##########################################################################
154
+	//##########################################################################
155 155
     
156
-    class QRcode {
156
+	class QRcode {
157 157
     
158
-        public $version;
159
-        public $width;
160
-        public $data; 
158
+		public $version;
159
+		public $width;
160
+		public $data; 
161 161
         
162
-        //----------------------------------------------------------------------
163
-        public function encodeMask(QRinput $input, $mask)
164
-        {
165
-            if($input->getVersion() < 0 || $input->getVersion() > QRSPEC_VERSION_MAX) {
166
-                throw new Exception('wrong version');
167
-            }
168
-            if($input->getErrorCorrectionLevel() > QR_ECLEVEL_H) {
169
-                throw new Exception('wrong level');
170
-            }
162
+		//----------------------------------------------------------------------
163
+		public function encodeMask(QRinput $input, $mask)
164
+		{
165
+			if($input->getVersion() < 0 || $input->getVersion() > QRSPEC_VERSION_MAX) {
166
+				throw new Exception('wrong version');
167
+			}
168
+			if($input->getErrorCorrectionLevel() > QR_ECLEVEL_H) {
169
+				throw new Exception('wrong level');
170
+			}
171 171
 
172
-            $raw = new QRrawcode($input);
172
+			$raw = new QRrawcode($input);
173 173
             
174
-            QRtools::markTime('after_raw');
174
+			QRtools::markTime('after_raw');
175 175
             
176
-            $version = $raw->version;
177
-            $width = QRspec::getWidth($version);
178
-            $frame = QRspec::newFrame($version);
176
+			$version = $raw->version;
177
+			$width = QRspec::getWidth($version);
178
+			$frame = QRspec::newFrame($version);
179 179
             
180
-            $filler = new FrameFiller($width, $frame);
181
-            if(is_null($filler)) {
182
-                return NULL;
183
-            }
180
+			$filler = new FrameFiller($width, $frame);
181
+			if(is_null($filler)) {
182
+				return NULL;
183
+			}
184 184
 
185
-            // inteleaved data and ecc codes
186
-            for($i=0; $i<$raw->dataLength + $raw->eccLength; $i++) {
187
-                $code = $raw->getCode();
188
-                $bit = 0x80;
189
-                for($j=0; $j<8; $j++) {
190
-                    $addr = $filler->next();
191
-                    $filler->setFrameAt($addr, 0x02 | (($bit & $code) != 0));
192
-                    $bit = $bit >> 1;
193
-                }
194
-            }
185
+			// inteleaved data and ecc codes
186
+			for($i=0; $i<$raw->dataLength + $raw->eccLength; $i++) {
187
+				$code = $raw->getCode();
188
+				$bit = 0x80;
189
+				for($j=0; $j<8; $j++) {
190
+					$addr = $filler->next();
191
+					$filler->setFrameAt($addr, 0x02 | (($bit & $code) != 0));
192
+					$bit = $bit >> 1;
193
+				}
194
+			}
195 195
             
196
-            QRtools::markTime('after_filler');
196
+			QRtools::markTime('after_filler');
197 197
             
198
-            unset($raw);
198
+			unset($raw);
199 199
             
200
-            // remainder bits
201
-            $j = QRspec::getRemainder($version);
202
-            for($i=0; $i<$j; $i++) {
203
-                $addr = $filler->next();
204
-                $filler->setFrameAt($addr, 0x02);
205
-            }
200
+			// remainder bits
201
+			$j = QRspec::getRemainder($version);
202
+			for($i=0; $i<$j; $i++) {
203
+				$addr = $filler->next();
204
+				$filler->setFrameAt($addr, 0x02);
205
+			}
206 206
             
207
-            $frame = $filler->frame;
208
-            unset($filler);
207
+			$frame = $filler->frame;
208
+			unset($filler);
209 209
             
210 210
             
211
-            // masking
212
-            $maskObj = new QRmask();
213
-            if($mask < 0) {
211
+			// masking
212
+			$maskObj = new QRmask();
213
+			if($mask < 0) {
214 214
             
215
-                if (QR_FIND_BEST_MASK) {
216
-                    $masked = $maskObj->mask($width, $frame, $input->getErrorCorrectionLevel());
217
-                } else {
218
-                    $masked = $maskObj->makeMask($width, $frame, (intval(QR_DEFAULT_MASK) % 8), $input->getErrorCorrectionLevel());
219
-                }
220
-            } else {
221
-                $masked = $maskObj->makeMask($width, $frame, $mask, $input->getErrorCorrectionLevel());
222
-            }
215
+				if (QR_FIND_BEST_MASK) {
216
+					$masked = $maskObj->mask($width, $frame, $input->getErrorCorrectionLevel());
217
+				} else {
218
+					$masked = $maskObj->makeMask($width, $frame, (intval(QR_DEFAULT_MASK) % 8), $input->getErrorCorrectionLevel());
219
+				}
220
+			} else {
221
+				$masked = $maskObj->makeMask($width, $frame, $mask, $input->getErrorCorrectionLevel());
222
+			}
223 223
             
224
-            if($masked == NULL) {
225
-                return NULL;
226
-            }
224
+			if($masked == NULL) {
225
+				return NULL;
226
+			}
227 227
             
228
-            QRtools::markTime('after_mask');
228
+			QRtools::markTime('after_mask');
229 229
             
230
-            $this->version = $version;
231
-            $this->width = $width;
232
-            $this->data = $masked;
230
+			$this->version = $version;
231
+			$this->width = $width;
232
+			$this->data = $masked;
233 233
             
234
-            return $this;
235
-        }
234
+			return $this;
235
+		}
236 236
     
237
-        //----------------------------------------------------------------------
238
-        public function encodeInput(QRinput $input)
239
-        {
240
-            return $this->encodeMask($input, -1);
241
-        }
237
+		//----------------------------------------------------------------------
238
+		public function encodeInput(QRinput $input)
239
+		{
240
+			return $this->encodeMask($input, -1);
241
+		}
242 242
         
243
-        //----------------------------------------------------------------------
244
-        public function encodeString8bit($string, $version, $level)
245
-        {
246
-            if(string == NULL) {
247
-                throw new Exception('empty string!');
248
-                return NULL;
249
-            }
243
+		//----------------------------------------------------------------------
244
+		public function encodeString8bit($string, $version, $level)
245
+		{
246
+			if(string == NULL) {
247
+				throw new Exception('empty string!');
248
+				return NULL;
249
+			}
250 250
 
251
-            $input = new QRinput($version, $level);
252
-            if($input == NULL) return NULL;
251
+			$input = new QRinput($version, $level);
252
+			if($input == NULL) return NULL;
253 253
 
254
-            $ret = $input->append($input, QR_MODE_8, strlen($string), str_split($string));
255
-            if($ret < 0) {
256
-                unset($input);
257
-                return NULL;
258
-            }
259
-            return $this->encodeInput($input);
260
-        }
254
+			$ret = $input->append($input, QR_MODE_8, strlen($string), str_split($string));
255
+			if($ret < 0) {
256
+				unset($input);
257
+				return NULL;
258
+			}
259
+			return $this->encodeInput($input);
260
+		}
261 261
 
262
-        //----------------------------------------------------------------------
263
-        public function encodeString($string, $version, $level, $hint, $casesensitive)
264
-        {
262
+		//----------------------------------------------------------------------
263
+		public function encodeString($string, $version, $level, $hint, $casesensitive)
264
+		{
265 265
 
266
-            if($hint != QR_MODE_8 && $hint != QR_MODE_KANJI) {
267
-                throw new Exception('bad hint');
268
-                return NULL;
269
-            }
266
+			if($hint != QR_MODE_8 && $hint != QR_MODE_KANJI) {
267
+				throw new Exception('bad hint');
268
+				return NULL;
269
+			}
270 270
 
271
-            $input = new QRinput($version, $level);
272
-            if($input == NULL) return NULL;
271
+			$input = new QRinput($version, $level);
272
+			if($input == NULL) return NULL;
273 273
 
274
-            $ret = QRsplit::splitStringToQRinput($string, $input, $hint, $casesensitive);
275
-            if($ret < 0) {
276
-                return NULL;
277
-            }
274
+			$ret = QRsplit::splitStringToQRinput($string, $input, $hint, $casesensitive);
275
+			if($ret < 0) {
276
+				return NULL;
277
+			}
278 278
 
279
-            return $this->encodeInput($input);
280
-        }
279
+			return $this->encodeInput($input);
280
+		}
281 281
         
282
-        //----------------------------------------------------------------------
283
-        public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false) 
284
-        {
285
-            $enc = QRencode::factory($level, $size, $margin);
286
-            return $enc->encodePNG($text, $outfile, $saveandprint=false);
287
-        }
282
+		//----------------------------------------------------------------------
283
+		public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false) 
284
+		{
285
+			$enc = QRencode::factory($level, $size, $margin);
286
+			return $enc->encodePNG($text, $outfile, $saveandprint=false);
287
+		}
288 288
 
289
-        //----------------------------------------------------------------------
290
-        public static function text($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4) 
291
-        {
292
-            $enc = QRencode::factory($level, $size, $margin);
293
-            return $enc->encode($text, $outfile);
294
-        }
289
+		//----------------------------------------------------------------------
290
+		public static function text($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4) 
291
+		{
292
+			$enc = QRencode::factory($level, $size, $margin);
293
+			return $enc->encode($text, $outfile);
294
+		}
295 295
 
296
-        //----------------------------------------------------------------------
297
-        public static function raw($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4) 
298
-        {
299
-            $enc = QRencode::factory($level, $size, $margin);
300
-            return $enc->encodeRAW($text, $outfile);
301
-        }
302
-    }
296
+		//----------------------------------------------------------------------
297
+		public static function raw($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4) 
298
+		{
299
+			$enc = QRencode::factory($level, $size, $margin);
300
+			return $enc->encodeRAW($text, $outfile);
301
+		}
302
+	}
303 303
     
304
-    //##########################################################################
304
+	//##########################################################################
305 305
     
306
-    class FrameFiller {
306
+	class FrameFiller {
307 307
     
308
-        public $width;
309
-        public $frame;
310
-        public $x;
311
-        public $y;
312
-        public $dir;
313
-        public $bit;
308
+		public $width;
309
+		public $frame;
310
+		public $x;
311
+		public $y;
312
+		public $dir;
313
+		public $bit;
314 314
         
315
-        //----------------------------------------------------------------------
316
-        public function __construct($width, &$frame)
317
-        {
318
-            $this->width = $width;
319
-            $this->frame = $frame;
320
-            $this->x = $width - 1;
321
-            $this->y = $width - 1;
322
-            $this->dir = -1;
323
-            $this->bit = -1;
324
-        }
315
+		//----------------------------------------------------------------------
316
+		public function __construct($width, &$frame)
317
+		{
318
+			$this->width = $width;
319
+			$this->frame = $frame;
320
+			$this->x = $width - 1;
321
+			$this->y = $width - 1;
322
+			$this->dir = -1;
323
+			$this->bit = -1;
324
+		}
325 325
         
326
-        //----------------------------------------------------------------------
327
-        public function setFrameAt($at, $val)
328
-        {
329
-            $this->frame[$at['y']][$at['x']] = chr($val);
330
-        }
326
+		//----------------------------------------------------------------------
327
+		public function setFrameAt($at, $val)
328
+		{
329
+			$this->frame[$at['y']][$at['x']] = chr($val);
330
+		}
331 331
         
332
-        //----------------------------------------------------------------------
333
-        public function getFrameAt($at)
334
-        {
335
-            return ord($this->frame[$at['y']][$at['x']]);
336
-        }
332
+		//----------------------------------------------------------------------
333
+		public function getFrameAt($at)
334
+		{
335
+			return ord($this->frame[$at['y']][$at['x']]);
336
+		}
337 337
         
338
-        //----------------------------------------------------------------------
339
-        public function next()
340
-        {
341
-            do {
338
+		//----------------------------------------------------------------------
339
+		public function next()
340
+		{
341
+			do {
342 342
             
343
-                if($this->bit == -1) {
344
-                    $this->bit = 0;
345
-                    return array('x'=>$this->x, 'y'=>$this->y);
346
-                }
343
+				if($this->bit == -1) {
344
+					$this->bit = 0;
345
+					return array('x'=>$this->x, 'y'=>$this->y);
346
+				}
347 347
 
348
-                $x = $this->x;
349
-                $y = $this->y;
350
-                $w = $this->width;
348
+				$x = $this->x;
349
+				$y = $this->y;
350
+				$w = $this->width;
351 351
 
352
-                if($this->bit == 0) {
353
-                    $x--;
354
-                    $this->bit++;
355
-                } else {
356
-                    $x++;
357
-                    $y += $this->dir;
358
-                    $this->bit--;
359
-                }
352
+				if($this->bit == 0) {
353
+					$x--;
354
+					$this->bit++;
355
+				} else {
356
+					$x++;
357
+					$y += $this->dir;
358
+					$this->bit--;
359
+				}
360 360
 
361
-                if($this->dir < 0) {
362
-                    if($y < 0) {
363
-                        $y = 0;
364
-                        $x -= 2;
365
-                        $this->dir = 1;
366
-                        if($x == 6) {
367
-                            $x--;
368
-                            $y = 9;
369
-                        }
370
-                    }
371
-                } else {
372
-                    if($y == $w) {
373
-                        $y = $w - 1;
374
-                        $x -= 2;
375
-                        $this->dir = -1;
376
-                        if($x == 6) {
377
-                            $x--;
378
-                            $y -= 8;
379
-                        }
380
-                    }
381
-                }
382
-                if($x < 0 || $y < 0) return null;
361
+				if($this->dir < 0) {
362
+					if($y < 0) {
363
+						$y = 0;
364
+						$x -= 2;
365
+						$this->dir = 1;
366
+						if($x == 6) {
367
+							$x--;
368
+							$y = 9;
369
+						}
370
+					}
371
+				} else {
372
+					if($y == $w) {
373
+						$y = $w - 1;
374
+						$x -= 2;
375
+						$this->dir = -1;
376
+						if($x == 6) {
377
+							$x--;
378
+							$y -= 8;
379
+						}
380
+					}
381
+				}
382
+				if($x < 0 || $y < 0) return null;
383 383
 
384
-                $this->x = $x;
385
-                $this->y = $y;
384
+				$this->x = $x;
385
+				$this->y = $y;
386 386
 
387
-            } while(ord($this->frame[$y][$x]) & 0x80);
387
+			} while(ord($this->frame[$y][$x]) & 0x80);
388 388
                         
389
-            return array('x'=>$x, 'y'=>$y);
390
-        }
389
+			return array('x'=>$x, 'y'=>$y);
390
+		}
391 391
         
392
-    } ;
392
+	} ;
393 393
     
394
-    //##########################################################################    
394
+	//##########################################################################    
395 395
     
396
-    class QRencode {
396
+	class QRencode {
397 397
     
398
-        public $casesensitive = true;
399
-        public $eightbit = false;
398
+		public $casesensitive = true;
399
+		public $eightbit = false;
400 400
         
401
-        public $version = 0;
402
-        public $size = 3;
403
-        public $margin = 4;
401
+		public $version = 0;
402
+		public $size = 3;
403
+		public $margin = 4;
404 404
         
405
-        public $structured = 0; // not supported yet
405
+		public $structured = 0; // not supported yet
406 406
         
407
-        public $level = QR_ECLEVEL_L;
408
-        public $hint = QR_MODE_8;
407
+		public $level = QR_ECLEVEL_L;
408
+		public $hint = QR_MODE_8;
409 409
         
410
-        //----------------------------------------------------------------------
411
-        public static function factory($level = QR_ECLEVEL_L, $size = 3, $margin = 4)
412
-        {
413
-            $enc = new QRencode();
414
-            $enc->size = $size;
415
-            $enc->margin = $margin;
410
+		//----------------------------------------------------------------------
411
+		public static function factory($level = QR_ECLEVEL_L, $size = 3, $margin = 4)
412
+		{
413
+			$enc = new QRencode();
414
+			$enc->size = $size;
415
+			$enc->margin = $margin;
416 416
             
417
-            switch ($level.'') {
418
-                case '0':
419
-                case '1':
420
-                case '2':
421
-                case '3':
422
-                        $enc->level = $level;
423
-                    break;
424
-                case 'l':
425
-                case 'L':
426
-                        $enc->level = QR_ECLEVEL_L;
427
-                    break;
428
-                case 'm':
429
-                case 'M':
430
-                        $enc->level = QR_ECLEVEL_M;
431
-                    break;
432
-                case 'q':
433
-                case 'Q':
434
-                        $enc->level = QR_ECLEVEL_Q;
435
-                    break;
436
-                case 'h':
437
-                case 'H':
438
-                        $enc->level = QR_ECLEVEL_H;
439
-                    break;
440
-            }
417
+			switch ($level.'') {
418
+				case '0':
419
+				case '1':
420
+				case '2':
421
+				case '3':
422
+						$enc->level = $level;
423
+					break;
424
+				case 'l':
425
+				case 'L':
426
+						$enc->level = QR_ECLEVEL_L;
427
+					break;
428
+				case 'm':
429
+				case 'M':
430
+						$enc->level = QR_ECLEVEL_M;
431
+					break;
432
+				case 'q':
433
+				case 'Q':
434
+						$enc->level = QR_ECLEVEL_Q;
435
+					break;
436
+				case 'h':
437
+				case 'H':
438
+						$enc->level = QR_ECLEVEL_H;
439
+					break;
440
+			}
441 441
             
442
-            return $enc;
443
-        }
442
+			return $enc;
443
+		}
444 444
         
445
-        //----------------------------------------------------------------------
446
-        public function encodeRAW($intext, $outfile = false) 
447
-        {
448
-            $code = new QRcode();
445
+		//----------------------------------------------------------------------
446
+		public function encodeRAW($intext, $outfile = false) 
447
+		{
448
+			$code = new QRcode();
449 449
 
450
-            if($this->eightbit) {
451
-                $code->encodeString8bit($intext, $this->version, $this->level);
452
-            } else {
453
-                $code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive);
454
-            }
450
+			if($this->eightbit) {
451
+				$code->encodeString8bit($intext, $this->version, $this->level);
452
+			} else {
453
+				$code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive);
454
+			}
455 455
             
456
-            return $code->data;
457
-        }
456
+			return $code->data;
457
+		}
458 458
 
459
-        //----------------------------------------------------------------------
460
-        public function encode($intext, $outfile = false) 
461
-        {
462
-            $code = new QRcode();
459
+		//----------------------------------------------------------------------
460
+		public function encode($intext, $outfile = false) 
461
+		{
462
+			$code = new QRcode();
463 463
 
464
-            if($this->eightbit) {
465
-                $code->encodeString8bit($intext, $this->version, $this->level);
466
-            } else {
467
-                $code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive);
468
-            }
464
+			if($this->eightbit) {
465
+				$code->encodeString8bit($intext, $this->version, $this->level);
466
+			} else {
467
+				$code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive);
468
+			}
469 469
             
470
-            QRtools::markTime('after_encode');
470
+			QRtools::markTime('after_encode');
471 471
             
472
-            if ($outfile!== false) {
473
-                file_put_contents($outfile, join("\n", QRtools::binarize($code->data)));
474
-            } else {
475
-                return QRtools::binarize($code->data);
476
-            }
477
-        }
472
+			if ($outfile!== false) {
473
+				file_put_contents($outfile, join("\n", QRtools::binarize($code->data)));
474
+			} else {
475
+				return QRtools::binarize($code->data);
476
+			}
477
+		}
478 478
         
479
-        //----------------------------------------------------------------------
480
-        public function encodePNG($intext, $outfile = false,$saveandprint=false) 
481
-        {
482
-            try {
479
+		//----------------------------------------------------------------------
480
+		public function encodePNG($intext, $outfile = false,$saveandprint=false) 
481
+		{
482
+			try {
483 483
             
484
-                ob_start();
485
-                $tab = $this->encode($intext);
486
-                $err = ob_get_contents();
487
-                ob_end_clean();
484
+				ob_start();
485
+				$tab = $this->encode($intext);
486
+				$err = ob_get_contents();
487
+				ob_end_clean();
488 488
                 
489
-                if ($err != '')
490
-                    QRtools::log($outfile, $err);
489
+				if ($err != '')
490
+					QRtools::log($outfile, $err);
491 491
                 
492
-                $maxSize = (int)(QR_PNG_MAXIMUM_SIZE / (count($tab)+2*$this->margin));
492
+				$maxSize = (int)(QR_PNG_MAXIMUM_SIZE / (count($tab)+2*$this->margin));
493 493
                 
494
-                QRimage::png($tab, $outfile, min(max(1, $this->size), $maxSize), $this->margin,$saveandprint);
494
+				QRimage::png($tab, $outfile, min(max(1, $this->size), $maxSize), $this->margin,$saveandprint);
495 495
             
496
-            } catch (Exception $e) {
496
+			} catch (Exception $e) {
497 497
             
498
-                QRtools::log($outfile, $e->getMessage());
498
+				QRtools::log($outfile, $e->getMessage());
499 499
             
500
-            }
501
-        }
502
-    }
500
+			}
501
+		}
502
+	}
Please login to merge, or discard this patch.