CHANGES - Changelog for GeSHi (geshi.php only)

Changes to the code are listed under the version they occured in, with who suggested
it by each one (if there's nobody listed as suggesting it I dreamed it up :)). Users
who suggested an idea often also provided the code that was used as a basis for the
changes - thanks to all who suggested these ideas and gave me the code to show me how!

Language files listed under each version were made by the author beside them, and then
modified by me for consistency/bug fixing.

Please send any bug reports to BenBE@omorphia.de, or use the bug report tracker
at sourceforge (http://sourceforge.net/tracker/?group_id=114997&atid=670231)

Version 1.0.8.3
  -  Added language files
     * DCS (Stelio Passaris)
     * Locomotive Basic (Nacho Cabanes)
     * LSL2 (Linden Scripting Language) (William Fry)
     * Modula-3 (Martin Bishop)
     * Oberon-2 (Mike Mol)
     * Rebol (Lecanu Guillaume)
  -  Fixed a problem where HardEscapes weren't working when no escape char was given (BenBE)
  -  Added a PARSER_CONTROL setting to treat whitespace inside of keywords in
     the language file as "any whitespace" in the source (i.e. "CREATE TABLE"
     in SQL will match "CREATE\s+TABLE" instead of literally matching) (BenBE)
  -  Added a possibility to allow setting the style for escape characters (BenBE)
  -  Improvements to language files (BenBE)
     * Added some missing Perl keywords and obscure default variables (BenBE)
     * Allow for escaped colons to appear in CSS names (BenBE, simon)
     * Added multiline continuation suppoert of preprocessor defines for
       C, C for Mac, C++ and CC++ with Qt support (BenBE)
     * keywords for C-based languages are case-sensitive (BenBE)
     * Broken AutoIt highlighting (BenBE)
     * Problem with escaped backslash in PHP and D (BenBE)
     * Added some more functions for PHP (BenBE)
     * Some changes for AppleScript (Stefan Klieme)
     * Forbid highlighting keywords followed by / in bash (BenBE)
     * Updated the LaTeX file to link some keywords (BenBE)
     * Additional text rendered when matching special variables for PowerShell (BenBE)
     * Added some more keywords for ABAP (BenBE, Sandra Rossi, Jacob Laursen)
Version 1.0.8.2
  -  Added language files
     * Brainfuck \ Brainfork (Benny Baumann)
     * HQ9+ (Benny Baumann)
     * INTERCAL (Benny Baumann)
     * LOLcode (Benny Baumann)
     * LScript (Beau McGuigan)
     * Pixel Bender (Richard Olsson)
     * ProvideX (Jeff Wilder)
     * VIM Script (Swaroop C H)
     * Visual Prolog (Thomas Linder Puls)
     * Whitespace (Benny Baumann)
  -  Changed priority for COMMENT_REGEXP compared to String highlighting (BenBE)
  -  Fixed correct escaping of spaces inside of URLs (BenBE)
  -  Updated the list of common file extensions (BenBE)
  -  Updated the language file check script in contrib/ (BenBE)
  -  Fixed a problem with link targets resulting in unclickable links (SF#2379120, BenBE)
  -  Fixed an undefined variable issue in langcheck.php (BenBE)
  -  Improvements to language files (BenBE)
     * eMail Header highlighting now uses the correct delimiters for keywords (BenBE)
     * eMail (RFC822\mbox) highlighting now highlights IPs, MIME types and
       subfield assignments correctly (BenBE)
     * Minor style changes in COBOL to improve loading performance (BenBE)
     * Added some missing keywords for D (BenBE)
     * Removed duplicate keywords from Progres, SAS and TSQL (BenBE)
     * Fixed Heredoc Syntax for Bash (SF#2185319, BenBE)
     * Moved symbol-lookalike sequences from keyword groups to separate symbol group
       for languages asp, klonec, klonecpp, php, php-brief (BenBE)
     * Fixed a lot of duplicate keyword warnings (BenBE)
     * Added missing keywords to the Python language file,
       introducing support for Python 3.0. (SF#2441839, milian)
     * Updated documentation links for TypoScript (SF#2014276, BenBE)
     * Fixed a problem with tag and attribute names in XML highlighting (SF#2276119, BenBE)
     * Improved MySQL language file (BenBE, JavaWoman)
     * Some commentss accidentially mistaken for DocComments (SF#2454897, BenBE)
     * Added improved Escape Char handling for c, c_mac, cpp and cpp_qt (SF#2458743, BenBE)
Version 1.0.8.1
  -  Added language files
     * AviSynth (Ryan Jones)
     * eMail \ mbox (Benny Baumann)
     * GNU Make (Neil Bird)
     * Oracle 11i support (Simon Redhead)
     * Prolog (Benny Baumann)
     * SciLab (Christophe David)
     * TeraTerm macro language (Boris Maisuradze)
  -  Added support for Escape Regular Expressions (BenBE)
     * Implemented C-style Escapes in PHP (BenBE)
     * Introduced support for \xAB and \007 style Char Escapes in PHP (BenBE)
     * Implemented Variable Highlighting in PHP (BenBE)
     * Implemented Variable Highlighting in Bash (milian)
  -  Fixed a problem with PCRE patterns for Keyword matching sometimes producing
     very large strings, that could not be handled by some versions of PCRE lib,
     causing broken highlighting an Regexp Compile errors (BenBE, milian)
  -  Fixed broken highlighting of bash commands like `dbus-send --dest=org.....`,
     i.e. the dest was highlighted as variable declaration (milian)
  -  Fixed broken highlighting of some symbols in their escaped form (BenBE)
     (<SEMI> and <PIPE> were accidentially filtered even though they are valid)
  -  Fixed a "memory leak" in the *_regexp_caches (milian)
  -  Fixed broken Escape chars if classes were disabled
  -  start_line_numbers_at() was ignored when GESHI_HEADER_PRE_TABLE was set (revulo)
  -  Fixed a problem allowing Remote Code Inclusion under certain circumstances (BenBE)
  -  Changes to default CSS in order to make the GESHI_HEADER_PRE_TABLE align properly,
     even on Windows / Mac systems with strange fonts (milian, revulo, ^RT)
  -  Minor style changes to the following languages:
     * cpp-qt (milian)
     * MySQL (BenBE)
     * PHP (BenBE)
  -  Improvements to language files (BenBE, milian)
     * Added MinSpareThread\MaxSpareThreads to Apache highlighter (BenBE)
     * Added new Keyword group for APT sources.list highlighter (BenBE)
     * Fixed highlighting in LaTeX for \begin{} and \end{}, i.e. the stuff inside
       the curly braces. (milian, thanks for the report go to Matthias Pospiech)
     * Improved String support for D (BenBE)
     * MySQL was seriously broken (BenBE)
     * Reworked Keyword groups for MySQL to allow for more configuration (BenBE)
     * Improved Mirc script language file (milian)
     * Improved C++ Qt language file (milian)
     * Minor bug with Transpose Operator in Matlab (BenBE, Daniele de Rigo)
     * Highlighting of Batch Files for Windows (BenBE)
     * Updated AutoIt to include latest changes for AutoIt v3.2.12.1 (BenBE, Thierry)
     * Fixed duplicate keyword warnings for Perl, Tcl and Typoscript (BenBE)
     * Fixed Doc-URL getting reparsed by highlighted keywords of other groups (BenBE, Jordi Boggiano)
Version 1.0.8
  -  Added language files
     * APT sources.list (milian)
     * Boo (Marcus Griep)
     * CIL (Common Intermediate Language, .NET Assembly) (Marcus Griep)
     * COBOL (Benny Baumann)
     * Gnuplot (milian)
     * KLoneC (Mickael Auger)
     * KLoneC++ (Mickael Auger)
     * PIC16xxx assembler (Phil Mattison)
     * POV-Ray (Carl Fürstenberg)
     * PowerShell (Frode Aarebrot)
     * Progress (Marco Aurelio de Pasqual)
     * TypoScript (Jan-Philipp Halle)
     * Xorg configuration (milian)
  -  Make GeSHi's constructor arguments optional, so something like `$foo = new GeSHi;` is possible. (milian)
  -  Added an optimizer for lists to regular expressions. Using these cached lists results in a speedup of approx. 50%.
     The slightly increased memory consumption (~150KB for PHP language file) is more than worth it! (milian)
  -  Some more memory & speed optimizations all over GeSHi (milian)
     * Reduced memory overhead when highlighting keywords (BenBE)
     * Keyword Linking now uses considerably less strtolower calls (milian)
     * Cache Symbol Search Regexp and make Symbol Highlighting faster (milian)
     * Use more native functions like substr_replace and strcasecmp to speed things up (milian)
     * Use considerably less strlen() calls on various points by caching the results (milian)
     * Properly set comments to be case insensitive where appropriate to increase performance (milian)
     * Improve the performance of the strict mode tokenizer, making highlighting of languages like
       HTML, ColdFusion or XML faster (milian)
     * Setup caches for parsing on demand to make stylesheet generators fast (milian)
  -  Various improvements to Strict Block Handling (BenBE, milian)
     * Added support for RegExp-based Strict Blocks (BenBE)
     * Fixed highlighting incorrectly stopping at ?> in PHP (SF#1330968, BenBE)
     * Languages with STRICT_MODE_APPLIES = GESHI_MAYBE default to strict mode now. When no highlightable
       code is found in this mode, we fallback to the same setting as if GESHI_NEVER was set. That way it
       should not be needed to call enable_strictmode() manually. (milian)
  -  Added new GESHI_HEADER_PRE_VALID type which uses the following markup: (milian)
     * With line numbers:     <div>header<ol><li><pre>...</pre></li>...</ol></div>
     * Without line numbers:  <pre>header...CODE...</pre>
     => valid HTML and no need for &nbsp; indentation
  -  Added new GESHI_HEADER_PRE_TABLE type which can be used to prevent linenumber-selection in Firefox
     on copy'n'paste. (milian)
  -  set_language will not reset any language settings by default anymore.
     * Added $force_reset param for to force full reload of a language. (milian)
     * Make sure strict_mode is set properly when doing repeated set_language calls (milian)
  -  Fixed some problems with old PHP versions (SF#1975625, milian, BenBE)
  -  Fixed broken use with Suhosin Patch when /e modifier was disabled (SF#2021800, BenBE)
  -  Added support for external style information files to override language defaults without modifying language files (BenBE)
  -  The overall_class is now up to the user, and the language-code is _always_ added as a class (milian)
  -  Fixed Economy Mode for GeSHi::get_stylesheet() - now it just makes so much more sense! (milian)
  -  Fixed Economy Mode when COMMENT_REGEXP are used (BenBE)
  -  Changed the default encoding to use UTF-8, due to SF#2037598, BenBE)
  -  Improved overall string support:
     * Added support for multichar string delimiters (SF#1932083, BenBE)
     * Fixed problems of unfinished strings and comments producing invalid XHTML (SF#1996353, BenBE)
     * Multichar Quotemarks sometimes had inconsistent behaviour (BenBE)
     * Support for multiple styles of strings depending on the starter (BenBE)
     * Properly handle escapes in strings, i.e. '\\' was not working properly before (milian)
     * Fixed escape char support when an escape char is followed by multi-byte chars (SF#2037598, BenBE)
  -  Improved flexibility in language files (BenBE, milian)
     * Added PARSER_CONTROL for OOLANG method highlighting (SF#1923060, BenBE)
     * Added possibility to define strict blocks using an Regexp (BenBE)
     * Removed explicit escaping of / in Regular Expressions (BenBE)
     * Ignoring empty keyword groups when highlighting (milian)
     * Make language_permissions configurable in language files via ['PARSER_CONTROL']['ENABLE_FLAGS']
       this makes is_a calls unneeded and thus prevents PHP notices in PHP 5.x (milian)
     * Extended support for number formats now covering the most common formats (SF#1923058, BenBE)
     * Lifted a limitation that keywords had to have at least 2 subsequent letters (BenBE)
     * Changed behaviour of PARSER_CONTROL now allowing to provide the full Lookahead and Lookbehind
       expressions used as delimiters inside keywords instead of a simple char group (BenBE)
     * Fixed improper handling of newlines in REGEXPS so this does not produce invalid html anylonger (milian)
  -  Some typos and mistakes in the documentation (BenBE)
  -  Added a script to contrib/ to verify language files are correct (BenBE)
  -  Fixed loads of compliancy warnings detected with that automated compliance testing script (BenBE)
  -  Many other improvements to various language files (BenBE, milian)
     * Reduce strict errors & notices for language files (milian)
     * Fixed symbol highlighting with C++ sometimes missing keywords after ; and comments (BenBE)
     * Improved comment handling with TCL (Lars Hellström, BenBE)
     * Fixed broken handling with XML comments (BenBE, SF#1849233)
     * Fixed HTML comments spawning multiple lines producing invalid XHTML output (SF#1738173, BenBE)
     * Added support for parameters beginning with dash in BASH language (BenBE)
     * Support Apache's configuration sections, see http://httpd.apache.org/docs/2.2/sections.html (milian)
     * Minor issue with PHP Heredoc and Nowdoc syntax sometimes not getting highlighted (BenBE)
     * Updated Objective-C language file (SF#2013961, Quinn Taylor, BenBE)
     * Added some keywords for VHDL (beshig, BenBE)
     * Fixed severly broken ColdFusion language file (milian)
     * Fixed some incorrectly highlighted things with the CSS language file (milian, BenBE)
     * Improved Smarty language file (milian)
     * Improved CSS language file (milian)
     * Improved Pascal language file (milian)
     * Improved LaTeX language file (Андрей Парамонов, BenBE)
     * Fixed a regular expression in mIRC language file that caused a warning message to be issued (BenBE)
     * Removed <, > and / from HTML names, now only containing the real tag names (BenBE)
     * Use spaces instead of tabs for indendation in language files to have a consistent
       coding standard accross geshi files (milian)
     * Added some comment styles, keywords and added index highlighting (Chusslove Illich, Часлав Илић)
  -  Removed some private methods which were only called at exactly one place (milian)
     * format_header_content
     * format_footer_content
     * get_attributes
  -  Second part of default style changes. Affected in this release:
     * C++
     * C++ (QT)
     * CSS
     * VHDL
Version 1.0.7.22
  -  Added language files
     * glSlang (BenBE)
     * KiXtart (Riley McArdle)
     * Lotus Notes @Formulas (Richard Civil)
     * LotusScript (Richard Civil)
     * MXML (David Spurr)
     * Scala (Franco Lombardo)
     * ActionScript 3 (Jordi Boggiano)
     * GNU Gettext .po/.pot (Milian Wolff)
     * Verilog (Günter Dannoritzer)
  -  Fixed a problem not yet addressed in 1.0.7.21 regarding highlighting of
     symbols that caused some extra characters to be added in the output or
     broke highlighting and standard compliance due to missing escaping of
     internally used characters (SF#192320 and SF#1926259, BenBE)
  -  Fixed missing style information for ocaml language file (The_PHP_Jedi)
  -  Fixed a bug causing masses of warnings in rendered output if language file
     miss style information (The_PHP_Jedi, BenBE)
  -  Missing tab width information could lead to warnings (BenBE)
  -  Missing symbol information for ASP (SF#1952038, nfsupport, BenBE)
  -  Empty delimiter message with OOoBasic (BenBE, Ccornell)
  -  Escaping of comments in LaTeX ignored (SF#1749806, BenBE)
  -  Modified Math environment $$ in LaTeX to be non-greedy (BenBE)
  -  Added possibility to match a regexp as comment (SF#1914640, SF#1945301, SF#1934832, BenBE)
  -  Introduced C-Style multiline continuation comments (SF#1914640, SF#1945301, BenBE)
  -  Introduced Fortran Comments (SF#1914640, SF#1934832, BenBE)
  -  Implemented Heredoc and Nowdoc Syntax for PHP and Perl (SF#1914640, BenBE)
  -  Implemented Compiler Directives for Delphi (SF#1914640, BenBE)
  -  Implemented minimalistic support for JavaScript \ Perl Regular Expressions (SF#1786665, SF#1754333, SF#1956631, BenBE)
  -  Fixed Strings in Matlab to be handled as comments instead of regexps, to prevent keywords being linked (BenBE)
  -  Applied PARSER_CONTROL fix of CPP for CPP-QT-Derivative (BenBE)
  -  Fixed incorrect treatment of unequally long multiline comment separators (related to SF #1891630, BenBE)
  -  Added PARSER_CONTROL settings for keywords in ASM language file (SF#1835148, BenBE)
  -  Fixed missing CASSE_SENSITIVE entry for DOS language file (SF#1956314, BenBE)
  -  Fixed accidential highlighting of keywords in argument names (SF#1956456, Milian Wolff, BenBE)
  -  Fixed yet again some #-related bash problem (SF#1956459, Milian Wolff, BenBE)
  -  Added backticks as symbols (Milian Wolff)
  -  Example script remembers selections and source submitted (Milian Wolff)
  -  Example script allows remembered source and preselected language to be cleared (Milian Wolff)
  -  Example script now properly includes geshi and doesn't suppress error messages anylonger. (Milian Wolff)
  -  Code cleanup by using direct string indexing instead of substr with length 1 (Milian Wolff)
  -  Optimized generation of code parts in strict mode (Milian Wolff)
  -  Optimized COMMENT_REGEXP by using an incremental regexp cache (Milian Wolff, BenBE)
  -  Fixed a problem that rarely skipped highlighting of escaped chars which usually should have gotten highlighted (BenBE)
  -  Optimized generation of highlighted strings to use fast skip forward while highlighting them (Milian Wolff, BenBE)
  -  Optimization using basic rework of indent function improving tab expansion performance (BenBE)
  -  Lots of other minor optimizations based on coding style improvements (Milian Wolff)
  -  Implemented setting to force spans to be closed before newlines, see SF#1727398 (Milian Wolff)
  -  Added missing credits for D language file to THANKS file (SF#1720899, BenBE)
  -  Optimization to prevent loading the current language file twice (Milian Wolff)
  -  Optimization: Use file_get_contents() to load sourcecode from files.
     Even if GeSHi worked with PHP 4.1 before, it doesn't now. (Milian Wolff)
  -  Added description of extra language features (SF#1970248, BenBE)
  -  Added support for highlighting the C# using and namespace directives (SF #1395677, BenBE)
  -  Added support for highlighting the Java import and package directives (SF #1395677, BenBE)
  -  Fixed minor problem in Haskell cuasing accidential start of comment (SF#1987221, BenBE)
  -  Fixed minor issue causing loads of warnings if a language files defines no symbols (BenBE)
  -  Updated some aspects of the documentation and included further hints (BenBE)
  -  First of series of color scheme changes. Affected languages (sofar):
     * Assembler (x86)
     * Bash
     * C
     * C#
     * Delphi
     * Fortran77
     * glSlang
     * Java & Java 5
     * JavaScript
     * OCaml
     * OpenOffice.org Basic
     * Pascal
     * Perl
     * PHP and PHP-Brief
Version 1.0.7.21
  -  Added language files
     * Basic4GL (Matthew Webb)
  -  Fixed problem with mIRC language highlighting spaces only (BenBE)
  -  Language files can now specify a function to be called to decide the
     colour of a regular expression match
  -  Added single quote to Lua (Darrin Roenfanz)
  -  Compare comments case insensitively (fixes AutoIT comments somewhat)
     (Daniel Gordon)
  -  Fixed symbols not being highlighted at all (SF #1767953, BenBE)
  -  Fixed brackets not correctly managed (SF #1767954, BenBE)
  -  Changed default languages for some extensions
  -  Included color and character information for symbol highlighting in some languages (BenBE)
  -  Fixed a problem with extension detection if default was used (BenBE)
  -  Fixed a highlighting problem with the LaTeX language (SF #1776182, BenBE)
  -  Added a new parameter for enable_highlighting to reduce source duplication (SF #1786104, BenBE)
  -  Updated doxygen documentation to include since tags and some missing parameters
  -  Disabled symbol highlighting by default (doesn't affect brackets, cf. documentation) (BenBE)
  -  Added a check for set_case_keywords for the given param to be supported (BenBE)
  -  Minor rework of the HTML documentation layout \ W3C compliance (BenBE)
  -  Fixed highlighting error in bash language avoiding keywords in comments (SF #1786314, SF #1564839, BenBE)
  -  Fixed template params for C++ and C# not being highlighted (SF #1772919, BenBE)
  -  Fixed more reported problems about mirc highlighting
  -  Added some missing keywords for VB.NET
  -  Fixed some warnings in DOS language file (Florian Angehrn)
  -  Add possibility to handle more than one extra line style (SF #1698255, German Rumm, BenBE)
  -  Fixed handling of URLs when output case differs from URL case (SF #1815504, Tom Samstag, BenBE)
  -  Fixed POD (Plain Old Documentation) format problems breaking highlighting of Perl (SF #1891630, Shannon Wynter, BenBE)
  -  Fixed a problem with mIRC when & was used for identifiers (SF #1875552, BenBE)
Version 1.0.7.20
  -  Added language files
     * Genero (logic) and Per (forms) (FOURJ's Genero 4GL) (Lars Gersmann)
     * Haskell (Dagit)
     * ABAP (Andres Picazo)
     * Motorola 68k Assembler (for MC68HC908GP32 Microcontroller) (BenBE)
     * Dot (Adrien Friggeri)
  -  Fixed java documentation search for keywords to actually go to the
     documentation (spaze)
  -  Applied fix for bug 1688864 (bad regexes) (Tim Starling)
  -  Fixed comment CSS rule in visualfoxpro
  -  ThinBASIC language update (Eros Olmi)
  -  mIRC language update (BenBE)
  -  Fixed outdated documentation URL of Perl language file (RuralMoon by BenBE)
  -  Fixed tab replacement code not generating the correct number of spaces in
     some cases (Guillermo Calvo)
  -  Fixed two typos in Z80 language file
  -  Applied fix for bug 1730168 (Daniel Naber)
  -  Applied fix for bug 1705482 (Jason Frame)
     * Configurable line endings (Replace \n by custom string)
     * per-language tab-widths (Adjustable for width>=1)
     * Included defaults for ASM (x86, m68k, z80), C, C (Mac), C++, C++ (QT), C#,
       Delphi, CSS,, HTML, PHP, PHP (Brief), QBasic, Ruby, XML
  -  Added a possibility to force generation of a surrounding tag around
     the highlighted source
  -  Applied fix for additional keywords for the bash language
     (cf. http://bash.thefreebizhost.com/bash_geshi.php, BenBE / Jan G)
  -  Fix bad colour definition in GML language (Andreas Gohr)
  -  Fixed phpdoc comments not being indented one space if they should be (Andy
     Hassall)
Version 1.0.7.19
  -  Added language files
     * X++ (Simon Butcher)
     * Rails (Moises Deniz)
  -  Fixed invalid HTML being generated and doctypes not being highlighted over
     multiple lines properly when line numbers are on (Validome)
  -  Improved the ruby syntax highlighting by basing it off the Rails file
  -  Changed some regular expressions to possibly help with badly performing
     regex support in PHP (Tim Starling)
  -  Allow {TIME}, {LANGUAGE} and {VERSION} to be used in the header as well as
     the normal <TIME>/<LANGUAGE>/<VERSION> (AthanD)
  -  Changed comment regex in bash to prevent malformed XHTML (rv1971)
Version 1.0.7.18
  -  Added language files
     * ZiLOG Z80 Assembly (BenBE)
  -  Fixed incorrect highlighting when the starter of a multiline comment is
     longer than the ender (Robert Anthony).
  -  Fixed "</span" generated if a multiline comment is the last thing in the
     source (related to the above).
  -  Added #cs => #ce comment markers to AutoIT (Robert Anthony)
  -  Fixed spelling mistake for keyword in Python (wd3)
  -  Added a method to enable/disable keyword linking (Ian McKellar)
  -  Improved empty line detection for HTML output (BenBE)
  -  Changed code style of geshi.php, and removed tabs
Version 1.0.7.17
  -  Fixed up ends of files having too many newlines (binarygroop)
  -  Removed background colour on keyword group in eiffel (Julian Tschannen)
  -  Removed GESHI_DIR_SEPARATOR constant usage, it's unnecessary (Aleksey Zapparov)
  -  Added /* ... */ comments to coldfusion (Jeff Howden)
Version 1.0.7.16
  -  Added language files
     * ActionScript (Steffen Krause)
     * C++/QT (Iulian M)
     * PL/SQL (Victor Engmark)
  -  Fixed up my e-mail address everywhere
  -  Fixed notice with "error" property (IZIU Zielona Góra)
  -  Added some entries to the get_language_name_from_extension table
     (Stebastian Schuberth)
Version 1.0.7.15
  - Added language files
     * BNF (Rowan Rodrik van der Molen)
     * IO (me, thanks to Johnathan Wright)
     * mIRC (Alberto de Areba Sánchez)
  -  Fixed use of colon in XML (Grigory Rubtsov)
  -  Fixed notices in text.php, reg.php and latex.php when $this is not
     available (Clemens Weiß)
  -  Made third parameter of geshi_highlight optional (Gaetano Giunta)
  -  Fix incorrect highlighting of the $# variable in bash (Michael Knight)
  -  Fixed single line comment mistake in thinbasic.php (Eros Olmi)
Version 1.0.7.14
  -  Added language files
     * thinBasic (Eros Olmi)
     * LaTeX (Matthais Pospiech)
  -  Removed extra newlines at the end of some files
  -  Fixed SF bug 1556404 - check before using $this in language files
     (Clemens Weiß)
Version 1.0.7.13
  -  Added language files
     * Uno IDL (Cedric Bosdonnat)
  -  Fixed add_ids causing odd XHTML (RyanJ)
  -  Fixed extra newline being added to end of result (Andreas Gohr)
Version 1.0.7.12
  -  Fixed lines being collapsed when they contain just a space (artlover)
  -  Allowed matching for regexes using start/end matchers at the start/end
     of the code (Sheri)
  -  Added (dubious) fix for google "I'm feeling lucky" search for java keywords
     (dubious in that it doesn't work for me)
  -  mysql - Made the symbols into their own keyword group as the symbol group
     isn't used. Added a style for multiline comments.
  -  Added a couple of php5 keywords to the php language files.
  -  Allow XML tags to have dashes.
  -  Changed LANG_NAME for many languages to be more sensible/correct case
     (Matthias Mohr)
  -  Added case-sensitivity indices to python
Version 1.0.7.11
  -  Added language files
     * Smalltalk (Bananeweizen)
  -  Minor style improvements to matlab
  -  Moved a couple of functions to the correct group in smarty (arwan)
Version 1.0.7.10
  -  Added language files
     * TCL (Reid van Melle)
     * Winbatch (Craig Storey)
     * Groovy (Ivan F. Villanueva B.)
     * Text (SmokingRope)
     * Reg (SmokingRope)
  -  Removed \ as an escape character in T-SQL (Dave Jackson)
  -  Reset extra lines to highlight if source is changed (Diogo Resende)
  -  Allow setting of lexic permissions in language files (SmokingRope)
  -  Allow regexes to set a CSS class name (SmokingRope)
  -  Added URL support to DOS language (mastrboy)
Version 1.0.7.9
  -  Added language files
     * Fortran (Cedric Arrabie)
     * SAS (Galen Johnson)
     * CFDG (John Horigan)
  -  Fixed & in URL in java5 (Clemens Weiß)
  -  Added MD5 and SHA1 to mysql keywords (polarina)
  -  Fixes for highlight_lines_extra with line numbers (ithcy)
  -  Fixed backslash characters being removed (ArTourter)
Version 1.0.7.8
  -  Fixed blank at start of MySQL file (W. Tasin)
  -  Fixed smarty functions being broken (ultrabob)
  -  Changed keyword and regexp detection and parsing
     slightly to allow more "meta characters" (like #) in
     keywords
  -  Minor fixes for XML and GML
Version 1.0.7.7
  -  Added language files
     * T-SQL (Duncan Lock)
     * Robots.txt (Christian Lescuyer)
     * AutoIT (mastrboy)
     * Java 5 (Clemens Bruckmann)
     * ColdFusion (Diego)
  -  A few keyword changes in java, removed :: object splitter (amphi)
  -  Now using a simpler regular expression for numbers (Brice Bernard)
  -  Fixed ah, bh etc. regs being highlighted as numbers (Unknown)
Version 1.0.7.6
  -  Fix backtick-string highlighting in ruby (Juan J. Martínez)
  -  Add =begin multiline comments in ruby (Juan J. Martínez)
  -  Added support for :keywords and ::access in lisp (Denis Mashkevich)
  -  Prevented number highlighting if they are just after underscores (Joce)
  -  Removed escape characters for strings in XML and HTML (floele)
  -  Added instanceof keyword to java (jgottschling)
  -  Fixed comments in ASP (SBD)
  -  Removed unnecessary keyword style index from ini
  -  Added support for " strings in ini
  -  Removed unnecessary regex style index from blitzbasic
  -  Keyword case of URL-ed keywords should be defined by language file (Benny Baumann)
  -  Added "Hardquote" feature, provides more accurate string highlighting (Cliff Stanford)
  -  Used hardquote support for @"..." strings in C# (Cliff Stanford)
  -  Used hardquote support for ' strings in perl (Cliff Stanford)
  -  Fixed setting of language path (Cliff Stanford)
  -  Display source correctly formatted with line numbers (if requested) if an error
     has occured (several people)
  -  Having no source to highlight is not an error condition anymore
  -  Delphi language updated to include more keywords and types (BenBE)
  -  Updated NSIS to version 2.11 (deguix)
Version 1.0.7.5
  -  Fix for using escape characters to escape newlines breaking XHTML compliance (Yves Goergen)
  -  Fixed method highlighting in VB (Matt Beale)
  -  Fixed multiline comment highlighting in SQL (MrBaseball34)
  -  Fixed two ">" symbols being outputted when using a footer but not CSS classes (MrBaseball34)
  -  Marked important block stuff as deprecated
  -  Some documentation tidyup
  -  Updated GML language file (Jos? Jorge Enr?quez Rodr?guez)
  -  THANKS file tidied up
  -  Fixed double </a> for elements in HTML (Yves Goergen)
  -  Added some keywords for ASM (Dreuzzo)
Version 1.0.7.4
  -  Added language files
     * MySQL (Carl Fürstenberg)
     * BlitzBasic (Pàdraig O`Connel)
  -  Fixed up geshi_highlight function: it now correctly uses <code> instead of <div> (Remi Faure)
  -  When using GESHI_HEADER_NONE, remove the <ol> if line numbering is not enabled
  -  Commented example.php so people can use it as a guide better
  -  Fixed extra newline being generated if a comment is at the end
     of the source (many people, including Yves Goergen)
  -  Fixed up some documentation issues
  -  Some minor language file fixes (C++, Lua) (Lua fixes by chromix)
  -  Fixed up no </span> in XML and other strict languages (regression from 1.0.7.3 fix: removed
  	 unnecessary </span> when using strict mode) (Daniel Ecer, drskrud),
Version 1.0.7.3
  -  Added language files
     * Scheme (Jon Raphaelson)
     * Ocaml and Ocaml-brief (Flaie)
     * Ruby (Amit Gupta)
  -  Make urls generated for java highlighting XHTML compliant (Tim Van Wassenhove)
  -  Removed unnecessary </span> when using strict mode (Tim Van Wassenhove)
  -  Fixed warning in dos.php about undefined constant (Tim Van Wassenhove)
  -  Fixed security hole in contrib/example.php - able to view any file if source
     not set and language is set to wierd value (Maksymilian Arciemowicz)
Version 1.0.7.2
  -  Added language files
     * Inno (Thomas Klinger)
     * Ini (Deguix)
     * DOS (Batchfile) (Alessandro Staltali)
     * Applescript (Stephan Klimek)
     * Freebasic (Roberto Rossi)
     * SDLBasic (Roberto Rossi)
     * ActionScript (links to French documentation) (NikO)
  -  NSIS language file updated (deguix)
  -  Lua language file updated (Roberto Rossi)
  -  Bugfix: Styles incorrectly overriding default styles instead of being merged
     in set_*_styles methods (Stebastian Werner)
  -  Added GESHI_HEADER_NONE as valid header type. This still allows header content.
Version 1.0.7.1
  -  Added language files:
     * Div (Gabriel Lorenzo)
     * GML (José Jorge Enríquez Rodríguez)
     * Eiffel (Zoran Simic)
  -  Minor change to rules regarding when keywords can appear - now dots (.) are
     allowed before keywords. (NikO)
  -  Bugfix: the line style for non-fancy lines when fancy highlighting is enabled
     is now applied (Amit Gupta)
Version 1.0.7
  -  Added language files:
     * Diff (Conny Brunnkvist)
     * VHDL (Alexander Krause)
     * D (Thomas Kuehne)
     * Matlab (Florian Knorn)
  -  Python highlighting improved (thither, Federico Quagliata)
  -  Changed file comments to use phpdoc syntax, and changed code style to be more
  	 like PEAR
  -  Fixed bug in set_code_style: Second parameter is now optional
  -  The $_GESHI_ERRORS array is gone, error messages are internal to the GeSHi class
  -  Changed name of XML language to XML from HTML
  -  Removed min and max tab width checks
  -  Backported GeSHi 1.1.X's automatic language file path detection so you no longer
     need to use the third parameter of the constructor or set_language_path except for
     special circumstances.
  -  Source is checked to make sure it is not empty else an error occurs
  -  Removed excess characters after ?> in ada.php, apache.php and cpp.php that caused
     http headers to be sent (psichron)
  -  Removed second "foreach" keyword for smarty language file that was causing
     duplication (Iss)
  -  Added underscore to allowed characters in match for XML tags (anonymous)
  -  Added some missing java keywords like "abstract" and "transient"
  -  Added "list" and "continue" PHP keywords
  -  set_language resets error status and strict mode (Andrew Black)
  -  Removed margin:0 declaration from cssgen.php (Andrzej Kubaszek)
  -  Fixed multiline comment selector in cssgen.php (Andrzej Kubaszek)
Version 1.0.6
  -  Added support for smart tabs - tabs that behave just like normal tabs when in
     GESHI_HEADER_DIV mode.
  -  Partial patch for UTF-8 encoding applied (doesn't quite work however...)
Version 1.0.5
  -  Added language files:
     * MPASM (Bakalex)
     * Oracle 8 (Guy Wicks)
  -  Fixed bug where not using an encoding type would sometime result in warnings (although
     there still seems to be issues with encoding in general that I'm trying to gather more
     data on) (Alexander Spennemann)
  -  Removed "margin: 0" from <ol> in an attempt to make line numbers visible in IE again
     by default (untested, but I don't really care if it works... get firefox! ;))
  -  Added note on php5 support (Karim Scheik)
  -  Added two new methods: load_from_file and get_language_name_from_extension, that can
     help automate file highlighting (though the extension array at this time is quite bare)
     (David Gartner, Brian Cheesman)
Version 1.0.4
  -  Fixed many version-reporting bugs (Jack Lloyd)
  -  Fixed bug where methods were not having the correct CSS generated for them
     by get_stylesheet() (Jack Lloyd)
  -  Added new keywords to C and C++ files (Jack Lloyd)
  -  Added section on case sensitivity to documentation that wasn't in the other versions
Version 1.0.3
  -  Added language files:
     * Smarty (Alan Juden)
     * C# (Alan Juden)
     * VB.NET (Alan Juden)
     * C for Macs (M. Uli Kusterer)
     * Objective C (M. Uli Kusterer)
  -  Links can have a target attribute (Andreas Gohr)
  -  Fixed multiline string bug if not using classes
  -  Added method set_encoding that allows you to set the character
     set used by calls to htmlentities() in GeSHi
  -  You can now specify an array of object splitters, and each
     type of method separated by each object splitter can be highlighted
     differently
  -  If a language uses a case sensitive keyword group and that group
     has a URL associated with it, the keyword will not be lowercased
     in the URL (M. Uli Kusterer)
Version 1.0.2
  -  Added language files:
     * Actionscript (Steffen Krause)
     * ASP (Amit Gupta)
     * Bash (Andreas Gohr)
     * CADDCL (Roberto Rossi)
     * CadLisp (Roberto Rossi)
     * C++ (Dennis Bayer)
     * Delphi (Járja Norbert)
     * Javascript (Ben Keen)
     * Lisp (Roberto Rossi)
     * OpenOffice.org BASIC (Roberto Rossi)
     * Perl (Andreas Gohr and Ben Keen)
     * Python (Roberto Rossi)
     * VisualFoxPro (Roberto Armellin)
     * XML (Nigel McNie, from an idea/file by Christian Weiske)
  -  Added contrib/ directory with script to create one external stylesheet
     from many languages(base script by Andreas Gohr, modified by Nigel McNie),
     and an example script (needs lotsa work...)
  -  Code lines can have their own unique ID (for use with javascript)
     (suggested by Andreas von Oettingen)
  -  Certain rows can be specified to be highlighted differently (suggested by
     Andreas von Oettingen)
  -  Getter available for human-readable language name (suggested by Simon Patterson)
  -  Line numbers aren't highlighted when a user selects the code
  -  Contextual highlighting with <BEGIN GeSHi> ... <END GeSHi> in the code (which
     can be disabled)
  -  Functions can be made into URLs to appropriate documentation (suggested
     by cybot_tm). Also thanks to Marcin Gryszkalis for the links for C, Java
     and Perl.
  -  Code can have a header and footer
  -  Time taken to parse the code is recorded and made available with the get_time()
     method
  -  error() now returns a human-readable error message
  -  Function geshi_highlight added to make it even easier to highlight on the fly
  -  Advanced regular expression handling
  -  Bug fixes to lexic_permission handling
Version 1.0.1
  -  Added methods set_symbols_style() and set_symbols_highlighting(). These should be used
     instead of set_brackets_style and set_brackets_highlighting respectively.
  -  Added a new field - language_path - that can be set either when the constructor is
     called, or by the new method set_language_path(), that specifies a path to the directory
     containing the language files (bug reported by bbspliff)
  -  Added a new method set_case_keywords(), that allows the auto-casing feature to be
     changed on the fly instead of simply being specified in the language file
  -  If there is an error the source that is outputted is now handled much better
  -  Lines are broken in the source only by \n now, not by \r\n (to save on output source)
  -  Indentation moved into its own method
  -  Method header() modified to allow the user to choose whether the code is surrounded in
     a <div> or a <pre> (see documentation for benefits of both). Method footer() likewise
     modified.
  -  Method get_stylesheet() modified so that a smaller comment is outputted in economy mode,
     and bugs with when line number classes are outputted in economy mode have been fixed
  -  Bug where spans had two quotes at the end of the attributes fixed (ie. <span style=".."">)
  -  Added language files:
     * Ada (Tux)
     * Apache log file (Tux)
     * ASM (Tux)
     * NSIS (Tux)
     * Pascal (Tux)
Version 1.0.0
  -  Initial Release