From f6d65e533c62f6deb21342d4901ece24497b433e Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Thu, 4 Jun 2015 07:31:04 +0200 Subject: Update to MediaWiki 1.25.1 --- extensions/SyntaxHighlight_GeSHi/README | 6 + .../ResourceLoaderGeSHiLocalModule.php | 11 +- .../ResourceLoaderGeSHiModule.php | 12 +- .../SyntaxHighlight_GeSHi.class.php | 159 ++- .../SyntaxHighlight_GeSHi.i18n.php | 35 - .../SyntaxHighlight_GeSHi.langs.php | 236 ++++ .../SyntaxHighlight_GeSHi.php | 98 +- extensions/SyntaxHighlight_GeSHi/extension.json | 53 + .../geshi/contrib/aliased.php | 122 +++ .../SyntaxHighlight_GeSHi/geshi/contrib/cssgen.php | 464 ++++++++ .../geshi/contrib/cssgen2.php | 59 + .../geshi/contrib/example.php | 217 ++++ .../geshi/contrib/langcheck.php | 778 +++++++++++++ .../geshi/contrib/langwiz.php | 1153 ++++++++++++++++++++ .../SyntaxHighlight_GeSHi/geshi/docs/CHANGES | 59 +- .../SyntaxHighlight_GeSHi/geshi/docs/COPYING | 39 +- extensions/SyntaxHighlight_GeSHi/geshi/docs/THANKS | 27 +- extensions/SyntaxHighlight_GeSHi/geshi/docs/TODO | 2 +- .../__filesource/fsource_geshi_core_geshi.php.html | 2 +- .../geshi/docs/api/elementindex.html | 2 +- .../geshi/docs/api/elementindex_geshi.html | 2 +- .../geshi/docs/api/geshi/core/GeSHi.html | 6 +- .../geshi/docs/api/geshi/core/_geshi.php.html | 4 +- .../geshi/docs/geshi-doc.html | 8 +- .../SyntaxHighlight_GeSHi/geshi/docs/geshi-doc.txt | 12 +- extensions/SyntaxHighlight_GeSHi/geshi/geshi.php | 55 +- .../SyntaxHighlight_GeSHi/geshi/geshi/4cs.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/6502acme.php | 4 +- .../geshi/geshi/6502kickass.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/6502tasm.php | 4 +- .../geshi/geshi/68000devpac.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/abap.php | 4 +- .../geshi/geshi/actionscript.php | 4 +- .../geshi/geshi/actionscript3.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/ada.php | 7 +- .../SyntaxHighlight_GeSHi/geshi/geshi/aimms.php | 316 ++++++ .../SyntaxHighlight_GeSHi/geshi/geshi/algol68.php | 7 +- .../SyntaxHighlight_GeSHi/geshi/geshi/apache.php | 4 +- .../geshi/geshi/applescript.php | 4 +- .../geshi/geshi/apt_sources.php | 17 +- .../SyntaxHighlight_GeSHi/geshi/geshi/arm.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/asm.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/asp.php | 4 +- .../geshi/geshi/asymptote.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/autoconf.php | 4 +- .../geshi/geshi/autohotkey.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/autoit.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/avisynth.php | 3 +- .../SyntaxHighlight_GeSHi/geshi/geshi/awk.php | 4 +- .../geshi/geshi/bascomavr.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/bash.php | 70 +- .../SyntaxHighlight_GeSHi/geshi/geshi/basic4gl.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/bf.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/bibtex.php | 4 +- .../geshi/geshi/blitzbasic.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/bnf.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/boo.php | 4 +- extensions/SyntaxHighlight_GeSHi/geshi/geshi/c.php | 4 +- .../geshi/geshi/c_loadrunner.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/c_mac.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/c_winapi.php | 870 +++++++++++++++ .../SyntaxHighlight_GeSHi/geshi/geshi/caddcl.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/cadlisp.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/cfdg.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/cfm.php | 4 +- .../geshi/geshi/chaiscript.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/chapel.php | 169 +++ .../SyntaxHighlight_GeSHi/geshi/geshi/cil.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/clojure.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/cmake.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/cobol.php | 495 ++++++--- .../geshi/geshi/coffeescript.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/cpp-qt.php | 14 +- .../geshi/geshi/cpp-winapi.php | 836 ++++++++++++++ .../SyntaxHighlight_GeSHi/geshi/geshi/cpp.php | 14 +- .../SyntaxHighlight_GeSHi/geshi/geshi/csharp.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/css.php | 290 +++-- .../SyntaxHighlight_GeSHi/geshi/geshi/cuesheet.php | 4 +- extensions/SyntaxHighlight_GeSHi/geshi/geshi/d.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/dart.php | 159 +++ .../SyntaxHighlight_GeSHi/geshi/geshi/dcl.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/dcpu16.php | 6 +- .../SyntaxHighlight_GeSHi/geshi/geshi/dcs.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/delphi.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/diff.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/div.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/dos.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/dot.php | 4 +- extensions/SyntaxHighlight_GeSHi/geshi/geshi/e.php | 4 +- .../geshi/geshi/ecmascript.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/eiffel.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/email.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/epc.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/erlang.php | 10 +- .../SyntaxHighlight_GeSHi/geshi/geshi/euphoria.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/ezt.php | 134 +++ .../SyntaxHighlight_GeSHi/geshi/geshi/f1.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/falcon.php | 3 +- .../SyntaxHighlight_GeSHi/geshi/geshi/fo.php | 3 +- .../SyntaxHighlight_GeSHi/geshi/geshi/fortran.php | 4 +- .../geshi/geshi/freebasic.php | 4 +- .../geshi/geshi/freeswitch.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/fsharp.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/gambas.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/gdb.php | 8 +- .../SyntaxHighlight_GeSHi/geshi/geshi/genero.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/genie.php | 6 +- .../SyntaxHighlight_GeSHi/geshi/geshi/gettext.php | 6 +- .../SyntaxHighlight_GeSHi/geshi/geshi/glsl.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/gml.php | 649 +++++------ .../SyntaxHighlight_GeSHi/geshi/geshi/gnuplot.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/go.php | 6 +- .../SyntaxHighlight_GeSHi/geshi/geshi/groovy.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/gwbasic.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/haskell.php | 58 +- .../SyntaxHighlight_GeSHi/geshi/geshi/haxe.php | 5 +- .../SyntaxHighlight_GeSHi/geshi/geshi/hicest.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/hq9plus.php | 4 +- .../geshi/geshi/html4strict.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/html5.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/icon.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/idl.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/ini.php | 7 +- .../SyntaxHighlight_GeSHi/geshi/geshi/inno.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/intercal.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/io.php | 4 +- .../geshi/geshi/ispfpanel.php | 165 +++ extensions/SyntaxHighlight_GeSHi/geshi/geshi/j.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/java.php | 5 +- .../SyntaxHighlight_GeSHi/geshi/geshi/java5.php | 4 +- .../geshi/geshi/javascript.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/jcl.php | 155 +++ .../SyntaxHighlight_GeSHi/geshi/geshi/jquery.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/kixtart.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/klonec.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/klonecpp.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/latex.php | 6 +- .../SyntaxHighlight_GeSHi/geshi/geshi/lb.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/ldif.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/lisp.php | 11 +- .../SyntaxHighlight_GeSHi/geshi/geshi/llvm.php | 4 +- .../geshi/geshi/locobasic.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/logtalk.php | 20 +- .../SyntaxHighlight_GeSHi/geshi/geshi/lolcode.php | 19 +- .../geshi/geshi/lotusformulas.php | 6 +- .../geshi/geshi/lotusscript.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/lscript.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/lsl2.php | 448 +++++++- .../SyntaxHighlight_GeSHi/geshi/geshi/lua.php | 19 +- .../SyntaxHighlight_GeSHi/geshi/geshi/m68k.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/magiksf.php | 6 +- .../SyntaxHighlight_GeSHi/geshi/geshi/make.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/mapbasic.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/matlab.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/mirc.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/mmix.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/modula2.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/modula3.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/mpasm.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/mxml.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/mysql.php | 5 +- .../SyntaxHighlight_GeSHi/geshi/geshi/nagios.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/netrexx.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/newlisp.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/nginx.php | 868 +++++++++++++++ .../SyntaxHighlight_GeSHi/geshi/geshi/nimrod.php | 201 ++++ .../SyntaxHighlight_GeSHi/geshi/geshi/nsis.php | 40 +- .../SyntaxHighlight_GeSHi/geshi/geshi/oberon2.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/objc.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/objeck.php | 4 +- .../geshi/geshi/ocaml-brief.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/ocaml.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/octave.php | 42 +- .../SyntaxHighlight_GeSHi/geshi/geshi/oobas.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/oorexx.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/oracle11.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/oracle8.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/oxygene.php | 13 +- .../SyntaxHighlight_GeSHi/geshi/geshi/oz.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/parasail.php | 13 +- .../SyntaxHighlight_GeSHi/geshi/geshi/parigp.php | 234 ++-- .../SyntaxHighlight_GeSHi/geshi/geshi/pascal.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/pcre.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/per.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/perl.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/perl6.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/pf.php | 4 +- .../geshi/geshi/php-brief.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/php.php | 10 +- .../SyntaxHighlight_GeSHi/geshi/geshi/pic16.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/pike.php | 4 +- .../geshi/geshi/pixelbender.php | 5 +- .../SyntaxHighlight_GeSHi/geshi/geshi/pli.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/plsql.php | 4 +- .../geshi/geshi/postgresql.php | 5 +- .../geshi/geshi/postscript.php | 217 ++++ .../SyntaxHighlight_GeSHi/geshi/geshi/povray.php | 3 +- .../geshi/geshi/powerbuilder.php | 4 +- .../geshi/geshi/powershell.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/proftpd.php | 12 +- .../SyntaxHighlight_GeSHi/geshi/geshi/progress.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/prolog.php | 4 +- .../geshi/geshi/properties.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/providex.php | 4 +- .../geshi/geshi/purebasic.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/pycon.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/pys60.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/python.php | 4 +- extensions/SyntaxHighlight_GeSHi/geshi/geshi/q.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/qbasic.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/qml.php | 351 ++++++ .../SyntaxHighlight_GeSHi/geshi/geshi/racket.php | 964 ++++++++++++++++ .../SyntaxHighlight_GeSHi/geshi/geshi/rails.php | 6 +- .../SyntaxHighlight_GeSHi/geshi/geshi/rbs.php | 224 ++++ .../SyntaxHighlight_GeSHi/geshi/geshi/rebol.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/reg.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/rexx.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/robots.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/rpmspec.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/rsplus.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/ruby.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/rust.php | 235 ++++ .../SyntaxHighlight_GeSHi/geshi/geshi/sas.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/scala.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/scheme.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/scilab.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/scl.php | 148 +++ .../SyntaxHighlight_GeSHi/geshi/geshi/sdlbasic.php | 4 +- .../geshi/geshi/smalltalk.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/smarty.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/spark.php | 7 +- .../SyntaxHighlight_GeSHi/geshi/geshi/sparql.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/sql.php | 9 +- .../geshi/geshi/standardml.php | 216 ++++ .../geshi/geshi/stonescript.php | 4 +- .../geshi/geshi/systemverilog.php | 10 +- .../SyntaxHighlight_GeSHi/geshi/geshi/tcl.php | 12 +- .../SyntaxHighlight_GeSHi/geshi/geshi/teraterm.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/text.php | 8 +- .../geshi/geshi/thinbasic.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/tsql.php | 18 +- .../geshi/geshi/typoscript.php | 8 +- .../SyntaxHighlight_GeSHi/geshi/geshi/unicon.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/upc.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/urbi.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/uscript.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/vala.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/vb.php | 18 +- .../SyntaxHighlight_GeSHi/geshi/geshi/vbnet.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/vbscript.php | 153 +++ .../SyntaxHighlight_GeSHi/geshi/geshi/vedit.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/verilog.php | 62 +- .../SyntaxHighlight_GeSHi/geshi/geshi/vhdl.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/vim.php | 4 +- .../geshi/geshi/visualfoxpro.php | 4 +- .../geshi/geshi/visualprolog.php | 4 +- .../geshi/geshi/whitespace.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/whois.php | 6 +- .../SyntaxHighlight_GeSHi/geshi/geshi/winbatch.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/xbasic.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/xml.php | 4 +- .../geshi/geshi/xorg_conf.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/xpp.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/yaml.php | 12 +- .../SyntaxHighlight_GeSHi/geshi/geshi/z80.php | 4 +- .../SyntaxHighlight_GeSHi/geshi/geshi/zxbasic.php | 4 +- extensions/SyntaxHighlight_GeSHi/i18n/ksh.json | 6 +- extensions/SyntaxHighlight_GeSHi/i18n/pt-br.json | 3 +- extensions/SyntaxHighlight_GeSHi/i18n/qqq.json | 7 +- .../maintenance/updateLanguageList.php | 54 + 270 files changed, 11681 insertions(+), 1849 deletions(-) delete mode 100644 extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.i18n.php create mode 100644 extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.langs.php create mode 100644 extensions/SyntaxHighlight_GeSHi/extension.json create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/contrib/aliased.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/contrib/cssgen.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/contrib/cssgen2.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/contrib/example.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/contrib/langcheck.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/contrib/langwiz.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/aimms.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/c_winapi.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/chapel.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/cpp-winapi.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/dart.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/ezt.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/ispfpanel.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/jcl.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/nginx.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/nimrod.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/postscript.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/qml.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/racket.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/rbs.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/rust.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/scl.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/standardml.php create mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/geshi/vbscript.php create mode 100644 extensions/SyntaxHighlight_GeSHi/maintenance/updateLanguageList.php (limited to 'extensions/SyntaxHighlight_GeSHi') diff --git a/extensions/SyntaxHighlight_GeSHi/README b/extensions/SyntaxHighlight_GeSHi/README index 31908768..b6af55cf 100644 --- a/extensions/SyntaxHighlight_GeSHi/README +++ b/extensions/SyntaxHighlight_GeSHi/README @@ -50,3 +50,9 @@ GeSHi is generous about creating HTML elements: highlighting large blocks of code can easily generate enough of them to crash a browser. As a guard, symbol highlighting is turned off for code fragments larger than 100 kB. For fragments larger than 200 kB, string highlighting is turned off as well. + +== Note to maintainers == + +Whenever updating the version of GeSHi embedded in the extension, run +maintenance/updateLanguageList.php to re-generate the list of supported +languages. diff --git a/extensions/SyntaxHighlight_GeSHi/ResourceLoaderGeSHiLocalModule.php b/extensions/SyntaxHighlight_GeSHi/ResourceLoaderGeSHiLocalModule.php index c2ad1ef8..7ce87b53 100644 --- a/extensions/SyntaxHighlight_GeSHi/ResourceLoaderGeSHiLocalModule.php +++ b/extensions/SyntaxHighlight_GeSHi/ResourceLoaderGeSHiLocalModule.php @@ -25,8 +25,13 @@ class ResourceLoaderGeSHiLocalModule extends ResourceLoaderWikiModule { * @return array */ protected function getPages( ResourceLoaderContext $context ) { - return array( - 'MediaWiki:Geshi.css' => array( 'type' => 'style' ), - ); + global $wgUseSiteCss; + if ( $wgUseSiteCss ) { + return array( + 'MediaWiki:Geshi.css' => array( 'type' => 'style' ), + ); + } else { + return array(); + } } } diff --git a/extensions/SyntaxHighlight_GeSHi/ResourceLoaderGeSHiModule.php b/extensions/SyntaxHighlight_GeSHi/ResourceLoaderGeSHiModule.php index 63310c5b..98c1c1eb 100644 --- a/extensions/SyntaxHighlight_GeSHi/ResourceLoaderGeSHiModule.php +++ b/extensions/SyntaxHighlight_GeSHi/ResourceLoaderGeSHiModule.php @@ -51,11 +51,16 @@ class ResourceLoaderGeSHiModule extends ResourceLoaderModule { * @return int */ public function getModifiedTime( ResourceLoaderContext $context ) { + static $selfmtime = null; + if ( $selfmtime === null ) { + // Cache this since there are 100s of instances of this module + // See also T93025, T85794. + $selfmtime = self::safeFilemtime( __FILE__ ); + } + return max( array( $this->getDefinitionMtime( $context ), - self::safeFilemtime( __FILE__ ), - self::safeFilemtime( __DIR__ . '/SyntaxHighlight_GeSHi.class.php' ), - self::safeFilemtime( __DIR__ . '/geshi/geshi.php' ), + $selfmtime, self::safeFilemtime( GESHI_LANG_ROOT . "/{$this->lang}.php" ), ) ); } @@ -68,6 +73,7 @@ class ResourceLoaderGeSHiModule extends ResourceLoaderModule { return array( 'class' => get_class( $this ), 'lang' => $this->lang, + 'geshi' => GESHI_VERSION, ); } } diff --git a/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php b/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php index 3580d013..732f2195 100644 --- a/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php +++ b/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php @@ -29,6 +29,36 @@ class SyntaxHighlight_GeSHi { */ private static $languages = null; + /** + * Executed after processing extension.json + */ + public static function registerExtension() { + global $wgVersion; + if ( version_compare( $wgVersion, '1.25', '<' ) ) { + die( 'This version of SyntaxHighlight GeSHi requires MediaWiki 1.25' ); + } + + global $wgGeSHiSupportedLanguages; + if ( !$wgGeSHiSupportedLanguages ) { + // If not set already, load it (@see ExtensionRegistry::exportExtractedData) + require_once __DIR__ . '/SyntaxHighlight_GeSHi.langs.php'; + } + // @fixme we shouldn't be loading this on ever request + require_once __DIR__ . '/geshi/geshi.php'; + } + + /** + * Register parser hook + * + * @param $parser Parser + * @return bool + */ + public static function configureParser( &$parser ) { + $parser->setHook( 'source', array( 'SyntaxHighlight_GeSHi', 'parserHook' ) ); + $parser->setHook( 'syntaxhighlight', array( 'SyntaxHighlight_GeSHi', 'parserHook' ) ); + return true; + } + /** * Parser hook * @@ -38,15 +68,14 @@ class SyntaxHighlight_GeSHi { * @return string */ public static function parserHook( $text, $args = array(), $parser ) { - global $wgSyntaxHighlightDefaultLang, $wgUseSiteCss, $wgUseTidy; - wfProfileIn( __METHOD__ ); + global $wgSyntaxHighlightDefaultLang, $wgUseTidy; self::initialise(); $text = rtrim( $text ); // Don't trim leading spaces away, just the linefeeds $text = preg_replace( '/^\n+/', '', $text ); // Validate language - if( isset( $args['lang'] ) && $args['lang'] ) { + if ( isset( $args['lang'] ) && $args['lang'] ) { $lang = $args['lang']; } else { // language is not specified. Check if default exists, if yes, use it. @@ -54,43 +83,40 @@ class SyntaxHighlight_GeSHi { $lang = $wgSyntaxHighlightDefaultLang; } else { $error = self::formatLanguageError( $text ); - wfProfileOut( __METHOD__ ); return $error; } } $lang = strtolower( $lang ); - if( !preg_match( '/^[a-z_0-9-]*$/', $lang ) ) { + if ( !preg_match( '/^[a-z_0-9-]*$/', $lang ) ) { $error = self::formatLanguageError( $text ); - wfProfileOut( __METHOD__ ); return $error; } $geshi = self::prepare( $text, $lang ); - if( !$geshi instanceof GeSHi ) { + if ( !$geshi instanceof GeSHi ) { $error = self::formatLanguageError( $text ); - wfProfileOut( __METHOD__ ); return $error; } $enclose = self::getEncloseType( $args ); // Line numbers - if( isset( $args['line'] ) ) { + if ( isset( $args['line'] ) ) { $geshi->enable_line_numbers( GESHI_FANCY_LINE_NUMBERS ); } // Highlighting specific lines - if( isset( $args['highlight'] ) ) { + if ( isset( $args['highlight'] ) ) { $lines = self::parseHighlightLines( $args['highlight'] ); if ( count( $lines ) ) { $geshi->highlight_lines_extra( $lines ); } } // Starting line number - if( isset( $args['start'] ) ) { + if ( isset( $args['start'] ) ) { $geshi->start_line_numbers_at( $args['start'] ); } $geshi->set_header_type( $enclose ); // Strict mode - if( isset( $args['strict'] ) ) { + if ( isset( $args['strict'] ) ) { $geshi->enable_strict_mode(); } // Format @@ -98,32 +124,26 @@ class SyntaxHighlight_GeSHi { if ( $geshi->error == GESHI_ERROR_NO_SUCH_LANG ) { // Common error :D $error = self::formatLanguageError( $text ); - wfProfileOut( __METHOD__ ); return $error; } $err = $geshi->error(); - if( $err ) { + if ( $err ) { // Other unknown error! $error = self::formatError( $err ); - wfProfileOut( __METHOD__ ); return $error; } // Armour for Parser::doBlockLevels() - if( $enclose === GESHI_HEADER_DIV ) { + if ( $enclose === GESHI_HEADER_DIV ) { $out = str_replace( "\n", '', $out ); } // HTML Tidy will convert tabs to spaces incorrectly (bug 30930). // But the conversion from tab to space occurs while reading the input, // before the conversion from to tab, so we can armor it that way. - if( $wgUseTidy ) { + if ( $wgUseTidy ) { $out = str_replace( "\t", ' ', $out ); } // Register CSS - $parser->getOutput()->addModuleStyles( "ext.geshi.language.$lang" ); - - if ( $wgUseSiteCss ) { - $parser->getOutput()->addModuleStyles( 'ext.geshi.local' ); - } + $parser->getOutput()->addModuleStyles( array( "ext.geshi.language.$lang", 'ext.geshi.local' ) ); $encloseTag = $enclose === GESHI_HEADER_NONE ? 'span' : 'div'; $attribs = Sanitizer::validateTagAttributes( $args, $encloseTag ); @@ -140,7 +160,6 @@ class SyntaxHighlight_GeSHi { } $out = Html::rawElement( $encloseTag, $attribs, $out ); - wfProfileOut( __METHOD__ ); return $out; } @@ -151,7 +170,7 @@ class SyntaxHighlight_GeSHi { * @return array */ private static function addAttribute( $attribs, $name, $value ) { - if( isset( $attribs[$name] ) ) { + if ( isset( $attribs[$name] ) ) { $attribs[$name] = $value . ' ' . $attribs[$name]; } else { $attribs[$name] = $value; @@ -243,9 +262,11 @@ class SyntaxHighlight_GeSHi { global $wgSyntaxHighlightModels, $wgUseSiteCss, $wgParser, $wgTextModelsToParse; + $highlightModels = ExtensionRegistry::getInstance()->getAttribute( 'SyntaxHighlightModels' ); + // Determine the language $model = $content->getModel(); - if ( !isset( $wgSyntaxHighlightModels[$model] ) ) { + if ( !isset( $highlightModels[$model] ) && !isset( $wgSyntaxHighlightModels[$model] ) ) { // We don't care about this model, carry on. return true; } @@ -269,19 +290,25 @@ class SyntaxHighlight_GeSHi { $output = $wgParser->parse( $text, $title, $options, true, true, $revId ); } - $lang = $wgSyntaxHighlightModels[$model]; + if ( isset( $highlightModels[$model] ) ) { + $lang = $highlightModels[$model]; + } else { + // TODO: Add deprecation warning after a while? + $lang = $wgSyntaxHighlightModels[$model]; + } + // Attempt to format $geshi = self::prepare( $text, $lang ); - if( $geshi instanceof GeSHi ) { + if ( $geshi instanceof GeSHi ) { $out = $geshi->parse_code(); - if( !$geshi->error() ) { + if ( !$geshi->error() ) { // Done $output->addModuleStyles( "ext.geshi.language.$lang" ); $output->setText( "
{$out}
" ); - if( $wgUseSiteCss ) { + if ( $wgUseSiteCss ) { $output->addModuleStyles( 'ext.geshi.local' ); } @@ -294,6 +321,54 @@ class SyntaxHighlight_GeSHi { return true; } + /** + * Hook to provide syntax highlighting for API pretty-printed output + * + * @param IContextSource $context + * @param string $text + * @param string $mime + * @param string $format + * @since MW 1.24 + */ + public static function apiFormatHighlight( IContextSource $context, $text, $mime, $format ) { + switch ( $mime ) { + case 'text/javascript': + case 'application/json': + $lang = 'javascript'; + break; + + case 'text/xml': + $lang = 'xml'; + break; + + default: + // Don't know how to handle this + return true; + } + + $geshi = self::prepare( $text, $lang ); + if ( $geshi instanceof GeSHi ) { + $out = $geshi->parse_code(); + if ( !$geshi->error() ) { + if ( preg_match( '/^]*)>/i', $out, $m ) ) { + $attrs = Sanitizer::decodeTagAttributes( $m[1] ); + $attrs['class'] .= ' api-pretty-content'; + $out = '' . + substr( $out, strlen( $m[0] ) ); + } + $output = $context->getOutput(); + $output->addModuleStyles( array( "ext.geshi.language.$lang", 'ext.geshi.local' ) ); + $output->addHTML( "
{$out}
" ); + + // Inform MediaWiki that we have parsed this page and it shouldn't mess with it. + return false; + } + } + + // Bottle out + return true; + } + /** * Initialise a GeSHi object to format some code, performing * common setup for all our uses of it @@ -308,7 +383,7 @@ class SyntaxHighlight_GeSHi { self::initialise(); $geshi = new GeSHi( $text, $lang ); - if( $geshi->error() == GESHI_ERROR_NO_SUCH_LANG ) { + if ( $geshi->error() == GESHI_ERROR_NO_SUCH_LANG ) { return null; } $geshi->set_encoding( 'UTF-8' ); @@ -410,7 +485,7 @@ class SyntaxHighlight_GeSHi { */ private static function formatError( $error = '' ) { $html = ''; - if( $error ) { + if ( $error ) { $html .= "

{$error}

"; } $html .= '

' . wfMessage( 'syntaxhighlight-specify')->inContentLanguage()->escaped() @@ -428,8 +503,8 @@ class SyntaxHighlight_GeSHi { private static function formatLanguages() { $langs = self::getSupportedLanguages(); $list = array(); - if( count( $langs ) > 0 ) { - foreach( $langs as $lang ) { + if ( count( $langs ) > 0 ) { + foreach ( $langs as $lang ) { $list[] = '' . htmlspecialchars( $lang ) . ''; } return '

' . implode( ', ', $list ) . '


'; @@ -444,15 +519,9 @@ class SyntaxHighlight_GeSHi { * @return array */ private static function getSupportedLanguages() { - if( !is_array( self::$languages ) ) { - self::initialise(); - self::$languages = array(); - foreach( glob( GESHI_LANG_ROOT . "/*.php" ) as $file ) { - self::$languages[] = basename( $file, '.php' ); - } - sort( self::$languages ); - } - return self::$languages; + global $wgGeSHiSupportedLanguages; + self::initialise(); + return $wgGeSHiSupportedLanguages; } /** @@ -460,9 +529,9 @@ class SyntaxHighlight_GeSHi { * @return bool */ private static function initialise() { - if( !self::$initialised ) { - if( !class_exists( 'GeSHi' ) ) { - require( dirname( __FILE__ ) . '/geshi/geshi.php' ); + if ( !self::$initialised ) { + if ( !class_exists( 'GeSHi' ) ) { + require ( dirname( __FILE__ ) . '/geshi/geshi.php' ); } self::$initialised = true; } diff --git a/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.i18n.php b/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.i18n.php deleted file mode 100644 index 32012d47..00000000 --- a/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.i18n.php +++ /dev/null @@ -1,35 +0,0 @@ - - * http://www.mediawiki.org/ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * http://www.gnu.org/copyleft/gpl.html - */ - -/** - * @file - * @ingroup Extensions - * @author Brion Vibber - * - * This extension wraps the GeSHi highlighter: http://qbnz.com/highlighter/ - * - * A language is specified like: void main() {} - * If you forget, or give an unsupported value, the extension spits out - * some help text and a list of all supported languages. - */ - -if( !defined( 'MEDIAWIKI' ) ) { - die(); +if ( function_exists( 'wfLoadExtension' ) ) { + wfLoadExtension( 'SyntaxHighlight_GeSHi' ); + // Keep i18n globals so mergeMessageFileList.php doesn't break + $wgMessagesDirs['SyntaxHighlight_GeSHi'] = __DIR__ . '/i18n'; + /* wfWarn( + 'Deprecated PHP entry point used for SyntaxHighlight_GeSHi extension. Please use wfLoadExtension instead, ' . + 'see https://www.mediawiki.org/wiki/Extension_registration for more details.' + ); */ + return; +} else { + die( 'This version of the SyntaxHighlight_GeSHi extension requires MediaWiki 1.25+' ); } - -require_once __DIR__ . '/geshi/geshi.php'; - -$wgExtensionCredits['parserhook'][] = array( - 'path' => __FILE__, - 'name' => 'SyntaxHighlight', - 'author' => array( 'Brion Vibber', 'Tim Starling', 'Rob Church', 'Niklas Laxström' ), - 'descriptionmsg' => 'syntaxhighlight-desc', - 'url' => 'https://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi', - 'version' => GESHI_VERSION, -); - -// Change these in LocalSettings.php -$wgSyntaxHighlightDefaultLang = null; -$wgSyntaxHighlightKeywordLinks = false; - -$dir = __DIR__ . '/'; -$wgMessagesDirs['SyntaxHighlight_GeSHi'] = __DIR__ . '/i18n'; -$wgExtensionMessagesFiles['SyntaxHighlight_GeSHi'] = $dir . 'SyntaxHighlight_GeSHi.i18n.php'; - -$wgAutoloadClasses['SyntaxHighlight_GeSHi'] = $dir . 'SyntaxHighlight_GeSHi.class.php'; -$wgAutoloadClasses['ResourceLoaderGeSHiModule'] = $dir . 'ResourceLoaderGeSHiModule.php'; -$wgAutoloadClasses['ResourceLoaderGeSHiLocalModule'] = $dir . 'ResourceLoaderGeSHiLocalModule.php'; - -$wgHooks['ResourceLoaderRegisterModules'][] = 'SyntaxHighlight_GeSHi::resourceLoaderRegisterModules'; -$wgHooks['ContentGetParserOutput'][] = 'SyntaxHighlight_GeSHi::renderHook'; - -// Module to load MediaWiki:Geshi.css. -$wgResourceModules['ext.geshi.local'] = array( 'class' => 'ResourceLoaderGeSHiLocalModule' ); -// More modules are defined by SyntaxHighlight_GeSHi::resourceLoaderRegisterModules, -// one for each supported language. The general name template is 'ext.geshi.language.'. - -/** - * Map content models to the corresponding language names to be used with the highlighter. - * Pages with one of the given content models will automatically be highlighted. - */ -$wgSyntaxHighlightModels = array( - CONTENT_MODEL_CSS => 'css', - CONTENT_MODEL_JAVASCRIPT => 'javascript', -); - -/** - * Register parser hook - * - * @param $parser Parser - * @return bool - */ -$wgHooks['ParserFirstCallInit'][] = function ( &$parser ) { - $parser->setHook( 'source', array( 'SyntaxHighlight_GeSHi', 'parserHook' ) ); - $parser->setHook( 'syntaxhighlight', array( 'SyntaxHighlight_GeSHi', 'parserHook' ) ); - return true; -}; diff --git a/extensions/SyntaxHighlight_GeSHi/extension.json b/extensions/SyntaxHighlight_GeSHi/extension.json new file mode 100644 index 00000000..19809bf8 --- /dev/null +++ b/extensions/SyntaxHighlight_GeSHi/extension.json @@ -0,0 +1,53 @@ +{ + "name": "SyntaxHighlight", + "version": "1.0.8.12", + "author": [ + "Brion Vibber", + "Tim Starling", + "Rob Church", + "Niklas Laxström" + ], + "url": "https://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi", + "descriptionmsg": "syntaxhighlight-desc", + "license-name": "GPL-2.0+", + "type": "parserhook", + "callback": "SyntaxHighlight_GeSHi::registerExtension", + "MessagesDirs": { + "SyntaxHighlight_GeSHi": [ + "i18n" + ] + }, + "AutoloadClasses": { + "SyntaxHighlight_GeSHi": "SyntaxHighlight_GeSHi.class.php", + "ResourceLoaderGeSHiModule": "ResourceLoaderGeSHiModule.php", + "ResourceLoaderGeSHiLocalModule": "ResourceLoaderGeSHiLocalModule.php" + }, + "ResourceModules": { + "ext.geshi.local": { + "class": "ResourceLoaderGeSHiLocalModule" + } + }, + "Hooks": { + "ParserFirstCallInit": [ + "SyntaxHighlight_GeSHi::configureParser" + ], + "ResourceLoaderRegisterModules": [ + "SyntaxHighlight_GeSHi::resourceLoaderRegisterModules" + ], + "ContentGetParserOutput": [ + "SyntaxHighlight_GeSHi::renderHook" + ], + "ApiFormatHighlight": [ + "SyntaxHighlight_GeSHi::apiFormatHighlight" + ] + }, + "SyntaxHighlightModels": { + "css": "css", + "javascript": "javascript" + }, + "config": { + "SyntaxHighlightDefaultLang": null, + "SyntaxHighlightKeywordLinks": false, + "GeSHiSupportedLanguages" : null + } +} diff --git a/extensions/SyntaxHighlight_GeSHi/geshi/contrib/aliased.php b/extensions/SyntaxHighlight_GeSHi/geshi/contrib/aliased.php new file mode 100644 index 00000000..0d4b2838 --- /dev/null +++ b/extensions/SyntaxHighlight_GeSHi/geshi/contrib/aliased.php @@ -0,0 +1,122 @@ + + * @version $Id$ + */ + +// Your config here +define("SOURCE_ROOT", "/var/www/your/source/root/"); + +// Assume you've put geshi in the include_path already +require_once("geshi.php"); + +// Get path info +$path = SOURCE_ROOT.$_SERVER['PATH_INFO']; + +// Check for dickheads trying to use '../' to get to sensitive areas +$base_path_len = strlen(SOURCE_ROOT); +$real_path = realpath($path); +if(strncmp($real_path, SOURCE_ROOT, $base_path_len)) { + exit("Access outside acceptable path."); +} + +// Check file exists +if(!file_exists($path)) { + exit("File not found ($path)."); +} + +// Prepare GeSHi instance +$geshi = new GeSHi(); +$geshi->set_language('text'); +$geshi->load_from_file($path); +$geshi->set_header_type(GESHI_HEADER_PRE); +$geshi->enable_classes(); +$geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 10); +$geshi->set_overall_style('color: #000066; border: 1px solid #d0d0d0; background-color: #f0f0f0;', true); +$geshi->set_line_style('font: normal normal 95% \'Courier New\', Courier, monospace; color: #003030;', 'font-weight: bold; color: #006060;', true); +$geshi->set_code_style('color: #000020;', 'color: #000020;'); +$geshi->set_link_styles(GESHI_LINK, 'color: #000060;'); +$geshi->set_link_styles(GESHI_HOVER, 'background-color: #f0f000;'); +$geshi->set_header_content('Source code viewer - ' . $path . ' - ' . $geshi->get_language_name()); +$geshi->set_header_content_style('font-family: Verdana, Arial, sans-serif; color: #808080; font-size: 70%; font-weight: bold; background-color: #f0f0ff; border-bottom: 1px solid #d0d0d0; padding: 2px;'); +$geshi->set_footer_content('Parsed in