2014-08-22 / v1.4.6 / theyak * All code has been reformatted to make it easier to debug * Fixed bug with BBCODE_VERBATIM which would not parse correctly if end tag was not lower case * Remove PCRE_EXTENDED mode which would crash PHP. * Cleaned up some notices * Fix bug in Internal_RebuildSmileys debug statement * Add ability to set maximum number of smileys * Add allow_params rule to prevent params on some tags, e.g., [b], [i], [u] 2010-09-17 / v1.4.5 / Phantom Inker (inker2576@yahoo.com) * SECURITY FIX: Fixed a bug that would allow arbitrary HTML injection via the standard [acronym] tag. 2010-08-16 / non-released / Phantom Inker (inker2576@yahoo.com) * Added another unit test for unclosed lists. 2010-06-05 / v1.4.4 / Phantom Inker (inker2576@yahoo.com) * Fixed the long-standing bug in verbatim parsing so that interior content is now truly verbatim and unprocessed. This allows source code to be correctly represented inside a [code] block even if it contains things like ['foo']. * Fixed typos (missing $this-> and wrong variable names) in SetDefaultRule() and SetWikiURL() that caused them to reference things that didn't exist. * Fixed a typo (missing backslash) in IsValidURL() that caused it to miss some legal URLs. * Fixed a bug that was incorrectly generating lists in some cases. 2009-10-31 / non-released / Phantom Inker (inker2576@yahoo.com) * Fixed a bug in SetWikiURL that referenced an invalid function parameter. * Fixed a bug in the lexer that was causing comments to produce an invalid following state (and thus causing comments to effectively turn off tag parsing thereafter!). * Added tests for the comment bug, and for a reported (but not yet reproduced) quote bug. 2009-10-10 / v1.4.3 / Phantom Inker (inker2576@yahoo.com) * Fixed a bug in plain mode that was causing tags processed in plain mode to throw errors (it was calling a function that had since been renamed). * Added tests for plain mode to ensure this omission won't happen again. 2009-06-21 / v1.4.2 / Phantom Inker (inker2576@yahoo.com) * SECURITY FIX: [img] tag was allowing HTML content to be passed through. 2009-04-03 / v1.4.1 / Phantom Inker (inker2576@yahoo.com) * Fixed documentation for [quote] tag's url= attribute. 2009-03-20 / v1.4.1 / Phantom Inker (inker2576@yahoo.com) * Added support for SetURLTarget() and GetURLTarget(), and extended support for SetURLTargeting(). * Added four more regression tests for URL targeting. 2009-02-16 / v1.4.0 RELEASE / Phantom Inker (inker2576@yahoo.com) * Replaced parsing logic for tags so that an equal-sign before whitespace can be considered part of a tag's value. This allows [url=http://foo.com?bar=baz] to be parsed the way the user expects. Note that this does break some (probably invalid) tags, but overall, the new parsing algorithm seems to be a win. * Added several regression tests for the new tag-parsing logic. * Added SetURLTargetable() and GetURLTargetable(). However, the default setting is to have this disabled for security reasons. * Updated [url] tag to support URL targeting, using the standard target="" form. * Fixed Wikify() so that wiki links with ' or , in them will be processed correctly. * Added the _tag, _endtag, _hasend, and _params tag parameters. * Added new appendix H for the tag parameters; added additional documentation for Set/GetURLTargetable(). * Added $debug flag to BBCodeLexer, replicated from the same flag in class BBCode itself. 2009-01-08 / v1.3.4 / Phantom Inker (inker2576@yahoo.com) * Replaced IsValidEmail() with e-mail validator from AddedBytes.com, which does a considerably better job of validating incorrect e-mails. This fixes a bug were some e-mail addresses in [email] tags were being rejected even though they were legal. 2008-12-01 / v1.3.3 / Phantom Inker (inker2576@yahoo.com) * Added regression tests for [[wiki]] tags due to possible issue identified in debugging CMXpress v0.9.8. 2008-11-06 / v1.3.2 / Phantom Inker (inker2576@yahoo.com) * Added regression tests for parsing equal signs in tags per tracker ID #2220598. 2008-08-08 / v1.3.1 RELEASE / Phantom Inker (inker2576@yahoo.com) * Added profiler class and profiling code. * Added support for removable sections in compressed version. * Removed major performance bottleneck in Internal_ProcessSmileys() that cut overall parsing times to about one third of what they were before. * Added PHP 4 compatiblity check for str_split; fixes a significant bug on PHP 4 systems. * Simplified test script's time output, since the new profiling code can track it more accurately when debugging. 2008-08-07 / v1.3 RELEASE / Phantom Inker (inker2576@yahoo.com) * Exposed the functionality of FillTemplate() as a public function. * Changed template-filling to have its default encoding be RAW, not HTMLEncode(). This will affect any ENHANCED rule used with v1.2 or earlier; those rules MUST be converted to use the new /e flag or they will not function properly. * Changed 'plain_link' processing to use FillTemplate(). * Added URL/domain-name/email-address auto-detection (turned off by default). * Added conformance tests for URL/etc. auto-detection. * Added URL/etc. auto-detection APIs to documentation. * Added 'k' flag and '.' operator to FillTemplate(). * Added FillTemplate() API to documentation. * Added FillTemplate() example. * Changed example programs to use "nbbc.php", not "src/nbbc_main.php". * Added RSS example to demonstrate limiting and plain modes. * Changed full example to offer checkboxes for testing various modes. * Added an appendix containing sample CSS. * Added usage sections to the documentation for limited-length mode, plain-HTML mode, and URL-autodetection mode. * Added new NBBC logo :-) Stats: 127 KB source, 260 KB user's manual, 131 conformance tests [ALL PASS]. 2008-08-04 / v1.2 RELEASE / Phantom Inker (inker2576@yahoo.com) * Added output-limiting mode. * Added output-limit tails. * Added fuzzy output limiting. * Added plain-text mode. * Added API documentation for output-limit and plain-text mode. * Changed examples to use XHTML header declarations * Added limiting example. * Added strip_tags() calls to [url], [email], and [img] tags for safety. * Fixed double-encoding bug in [url], [email], and [img] tags when specifying the URL as content instead of in the tag itself. * Fixed double-encoding bug in the [color] and [acronym] tags. 2008-07-30 / v1.1 RELEASE / Phantom Inker (inker2576@yahoo.com) * Added more conformance tests and expanded some existing ones. * Added performance-measuring to test_nbbc.php. * Optimized lexer pattern to return fewer text tokens whenever possible. * Optimized stack to use symbolic constants instead of strings. * Optimized whitespace removal to perform fewer lexer calls. * Optimized parser core when dealing with text/whitespace/newlines. * Optimized text-collection to use output buffering instead of string cats. * Optimized smiley conversions for the most common case. * Several other small optimizations and cleanups. * Overall performance improvement of about 30%. * Fixed incorrect rule declaration logic for callback functions. * Fixed section-link glitch in user's manual. * Fixed bug that was prohibiting uncompressed version from working right. * Removed (currently) unused BBCODE_OUTPUT_TEXT declarations (these probably need to be added in for real at a later date). * Added sample CSS appendix to user's manual. * Added short table-of-contents to user's manual for web site. * Added five example scripts to the new examples/ directory. Stats: 105 KB source, 217 KB user's manual, 121 conformance tests [ALL PASS]. 2008-07-29 / v1.0 RELEASE / Phantom Inker (inker2576@yahoo.com) * Added newline-ignore mode and conformance tests for it. * Finished writing first-edition user's manual. Stats: 102 KB source, 212 KB user's manual, 120 conformance tests [ALL PASS]. 2008-07-24 / v1.0 RC5 / Phantom Inker (inker2576@yahoo.com) * Added alternate tag-marker modes and conformance tests for it. * Added ampersand pass-through mode and conformance tests for it. * Fixed HTML-encoding error in BBCODE_VERBATIM tags; converted [code] tag to use direct htmlspecialchars() calls. 2008-07-23 / v1.0 RC4 / Phantom Inker (inker2576@yahoo.com) * Updated tests to recognize new CSS classes in standard library's output. * Fixed class-output bugs in standard library. 2008-07-21 / v1.0 RC3 / Phantom Inker (inker2576@yahoo.com) * Converted user's manual to new auto-generating format, and wrote additional documentation. User's manual is now about 90% complete. * Reworked directory structure to be cleaner, and added support for generating compacted "nbbc.php" version. 2008-07-16 / v1.0 RC2 / Phantom Inker (inker2576@yahoo.com) * Fix decoding issue to be more permissive, which corrects nesting errors for broken [column] tags and other class-nesting issues. * Add support for removing floating ending tags whose start tags had been consumed during output-generation. 2008-07-14 / v1.0 RC / Phantom Inker (inker2576@yahoo.com) * Proposed final release candidate: Implements full BBCode language, plus smileys and wiki-links, with no apparent failures or caveats. * Added conformance test script with 49 tests. 2008-07-01 / alpha / Phantom Inker (inker2576@yahoo.com) * First usable build; no version number. Performs basic compiling and stack transforms; currently very limited in what it can process.