+ break;
+ case '0': // A space between two numbers is used to ease reading
+ case '1': // of big numbers, e.g. 1 000 000. Those spaces need
+ case '2': // to be unbreakable
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ if ( ($this->mTextLength >= $this->mPos +2)
+ && ($this->mText[$this->mPos+1] == ' ')
+ && ctype_digit( $this->mText[$this->mPos+2] ) )
+ {
+ $queueToken['type'] = 'blank';
+ $queueToken['text'] = $ch . ' ';
+ $this->mQueuedToken[] = $queueToken;
+ $this->mPos += 2;
+ break 2; // switch + while
+ }
+ break;
+ case "\302": // first byte of UTF-8 Character Guillemet-left
+ if ( $this->continues( "\253 ") ) // second byte and a blank
+ {
+ $queueToken['type'] = 'blank';
+ $queueToken['text'] = "\302\253 ";
+ $this->mQueuedToken[] = $queueToken;
+ $this->mPos += 3;
+ break 2; // switch + while
+ }
+ break;
+ case "\273": //last byte of UTF-8 Character Guillemet-right
+ if ( $this->preceeded( " \302" ) )
+ {
+ $queueToken['type'] = 'blank';
+ $queueToken['text'] = " \302\273";
+ $token['text'] = substr( $token['text'], 0, -2 );
+ $this->mQueuedToken[] = $queueToken;
+ $this->mPos ++;
+ break 2; // switch + while
+ }
+ break;
+ case '&': //extensions like <timeline>, since HTML stripping has already been done,
+ //those look like <timeline>
+ if ( $this->continues( 'lt;timeline>' ) )
+ {
+ $queueToken['type'] = '<timeline>';
+ $queueToken['text'] = '<timeline>';
+ $this->mQueuedToken[] = $queueToken;
+ $this->mPos += 16;
+ break 2; // switch + while
+ }
+ break;
+