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) ( and 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:
header
  1. ...
  2. ...
* Without line numbers:
header...CODE...
=> valid HTML and no need for   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