summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2012-11-08 23:15:08 +0100
committerAndreas Gohr <andi@splitbrain.org>2012-11-08 23:15:08 +0100
commit04924b7a9d090c0814cfff3e6706263e4d5a46e8 (patch)
treed83fc6b5683fbc9c639bfd1832f96dca2f3c8646 /inc
parent1ea7a6bada66fc9b7a45f61b4892e4ea23196d89 (diff)
parenta731ed1d6736ca405b3559adfd9500affcc59412 (diff)
downloadrpg-04924b7a9d090c0814cfff3e6706263e4d5a46e8.tar.gz
rpg-04924b7a9d090c0814cfff3e6706263e4d5a46e8.tar.bz2
Merge branch 'master' into proxyconnect
* master: (169 commits) added PCRE UTF-8 checks to do=check FS#2636 avoid multiple paralell update checks fix regression bug in HTTPClient FS#2621 changed PAGEUTILS_ID_HIDEPAGE to has BEFORE/AFTER TarLib code cleanup TarLib: fixed appending in non-dynamic mode fixed third method of adding files in TarLib fix lone zero block in TarLib created archives fix use of constructor in TarLib Slovak language update Korean language update Latvian language update added event PAGEUTILS_ID_HIDEPAGE added test for isHiddenPage() removed redundant variables in tpl_include_page() (because of 3ff8773b) added cut off points for mobile devices as parameters to style.ini Corrected typo: ruke -> rule Persian language update Spanish language update russian language update ...
Diffstat (limited to 'inc')
-rw-r--r--inc/HTTPClient.php54
-rw-r--r--inc/Input.class.php34
-rw-r--r--inc/JpegMeta.php2
-rw-r--r--inc/SafeFN.class.php12
-rw-r--r--inc/Sitemapper.php23
-rw-r--r--inc/TarLib.class.php420
-rw-r--r--inc/actions.php17
-rw-r--r--inc/auth.php49
-rw-r--r--inc/changelog.php8
-rw-r--r--inc/common.php34
-rw-r--r--inc/confutils.php3
-rw-r--r--inc/events.php2
-rw-r--r--inc/fulltext.php11
-rw-r--r--inc/geshi/4cs.php2
-rw-r--r--inc/geshi/6502acme.php2
-rw-r--r--inc/geshi/6502kickass.php2
-rw-r--r--inc/geshi/6502tasm.php2
-rw-r--r--inc/geshi/68000devpac.php2
-rw-r--r--inc/geshi/abap.php2
-rw-r--r--inc/geshi/actionscript.php2
-rw-r--r--inc/geshi/actionscript3.php4
-rw-r--r--inc/geshi/ada.php2
-rw-r--r--inc/geshi/algol68.php2
-rw-r--r--inc/geshi/apache.php2
-rw-r--r--inc/geshi/applescript.php2
-rw-r--r--inc/geshi/apt_sources.php2
-rw-r--r--inc/geshi/arm.php3318
-rw-r--r--inc/geshi/asm.php534
-rw-r--r--inc/geshi/asp.php2
-rw-r--r--inc/geshi/asymptote.php194
-rw-r--r--inc/geshi/autoconf.php2
-rw-r--r--inc/geshi/autohotkey.php2
-rw-r--r--inc/geshi/autoit.php2
-rw-r--r--inc/geshi/avisynth.php2
-rw-r--r--inc/geshi/awk.php2
-rw-r--r--inc/geshi/bascomavr.php2
-rw-r--r--inc/geshi/bash.php6
-rw-r--r--inc/geshi/basic4gl.php2
-rw-r--r--inc/geshi/bf.php15
-rw-r--r--inc/geshi/bibtex.php2
-rw-r--r--inc/geshi/blitzbasic.php4
-rw-r--r--inc/geshi/bnf.php2
-rw-r--r--inc/geshi/boo.php2
-rw-r--r--inc/geshi/c.php2
-rw-r--r--inc/geshi/c_loadrunner.php2
-rw-r--r--inc/geshi/c_mac.php2
-rw-r--r--inc/geshi/caddcl.php2
-rw-r--r--inc/geshi/cadlisp.php2
-rw-r--r--inc/geshi/cfdg.php2
-rw-r--r--inc/geshi/cfm.php2
-rw-r--r--inc/geshi/chaiscript.php4
-rw-r--r--inc/geshi/cil.php2
-rw-r--r--inc/geshi/clojure.php2
-rw-r--r--inc/geshi/cmake.php2
-rw-r--r--inc/geshi/cobol.php2
-rw-r--r--inc/geshi/coffeescript.php2
-rw-r--r--inc/geshi/cpp-qt.php6
-rw-r--r--inc/geshi/cpp.php2
-rw-r--r--inc/geshi/csharp.php19
-rw-r--r--inc/geshi/css.php7
-rw-r--r--inc/geshi/cuesheet.php2
-rw-r--r--inc/geshi/d.php68
-rw-r--r--inc/geshi/dcl.php192
-rw-r--r--inc/geshi/dcpu16.php131
-rw-r--r--inc/geshi/dcs.php2
-rw-r--r--inc/geshi/delphi.php46
-rw-r--r--inc/geshi/diff.php2
-rw-r--r--inc/geshi/div.php2
-rw-r--r--inc/geshi/dos.php8
-rw-r--r--inc/geshi/dot.php2
-rw-r--r--inc/geshi/e.php2
-rw-r--r--inc/geshi/ecmascript.php2
-rw-r--r--inc/geshi/eiffel.php2
-rw-r--r--inc/geshi/email.php16
-rw-r--r--inc/geshi/epc.php2
-rw-r--r--inc/geshi/erlang.php2
-rw-r--r--inc/geshi/euphoria.php2
-rw-r--r--inc/geshi/f1.php2
-rw-r--r--inc/geshi/falcon.php2
-rw-r--r--inc/geshi/fo.php2
-rw-r--r--inc/geshi/fortran.php2
-rw-r--r--inc/geshi/freebasic.php2
-rw-r--r--inc/geshi/freeswitch.php168
-rw-r--r--inc/geshi/fsharp.php4
-rw-r--r--inc/geshi/gambas.php2
-rw-r--r--inc/geshi/gdb.php2
-rw-r--r--inc/geshi/genero.php2
-rw-r--r--inc/geshi/genie.php2
-rw-r--r--inc/geshi/gettext.php2
-rw-r--r--inc/geshi/glsl.php2
-rw-r--r--inc/geshi/gml.php2
-rw-r--r--inc/geshi/gnuplot.php2
-rw-r--r--inc/geshi/go.php2
-rw-r--r--inc/geshi/groovy.php2
-rw-r--r--inc/geshi/gwbasic.php2
-rw-r--r--inc/geshi/haskell.php8
-rw-r--r--inc/geshi/haxe.php161
-rw-r--r--inc/geshi/hicest.php2
-rw-r--r--inc/geshi/hq9plus.php2
-rw-r--r--inc/geshi/html4strict.php4
-rw-r--r--inc/geshi/html5.php8
-rw-r--r--inc/geshi/icon.php2
-rw-r--r--inc/geshi/idl.php2
-rw-r--r--inc/geshi/ini.php2
-rw-r--r--inc/geshi/inno.php2
-rw-r--r--inc/geshi/intercal.php2
-rw-r--r--inc/geshi/io.php2
-rw-r--r--inc/geshi/j.php2
-rw-r--r--inc/geshi/java.php4
-rw-r--r--inc/geshi/java5.php328
-rw-r--r--inc/geshi/javascript.php62
-rw-r--r--inc/geshi/jquery.php2
-rw-r--r--inc/geshi/kixtart.php2
-rw-r--r--inc/geshi/klonec.php2
-rw-r--r--inc/geshi/klonecpp.php2
-rw-r--r--inc/geshi/latex.php6
-rw-r--r--inc/geshi/lb.php2
-rw-r--r--inc/geshi/ldif.php116
-rw-r--r--inc/geshi/lisp.php2
-rw-r--r--inc/geshi/llvm.php2
-rw-r--r--inc/geshi/locobasic.php2
-rw-r--r--inc/geshi/logtalk.php2
-rw-r--r--inc/geshi/lolcode.php2
-rw-r--r--inc/geshi/lotusformulas.php2
-rw-r--r--inc/geshi/lotusscript.php2
-rw-r--r--inc/geshi/lscript.php2
-rw-r--r--inc/geshi/lsl2.php2
-rw-r--r--inc/geshi/lua.php6
-rw-r--r--inc/geshi/m68k.php2
-rw-r--r--inc/geshi/magiksf.php2
-rw-r--r--inc/geshi/make.php2
-rw-r--r--inc/geshi/mapbasic.php2
-rw-r--r--inc/geshi/matlab.php2
-rw-r--r--inc/geshi/mirc.php2
-rw-r--r--inc/geshi/mmix.php66
-rw-r--r--inc/geshi/modula2.php2
-rw-r--r--inc/geshi/modula3.php4
-rw-r--r--inc/geshi/mpasm.php2
-rw-r--r--inc/geshi/mxml.php2
-rw-r--r--inc/geshi/mysql.php34
-rw-r--r--inc/geshi/nagios.php225
-rw-r--r--inc/geshi/netrexx.php163
-rw-r--r--inc/geshi/newlisp.php2
-rw-r--r--inc/geshi/nsis.php2
-rw-r--r--inc/geshi/oberon2.php2
-rw-r--r--inc/geshi/objc.php2
-rw-r--r--inc/geshi/objeck.php2
-rw-r--r--inc/geshi/ocaml-brief.php2
-rw-r--r--inc/geshi/ocaml.php2
-rw-r--r--inc/geshi/octave.php515
-rw-r--r--inc/geshi/oobas.php2
-rw-r--r--inc/geshi/oorexx.php171
-rw-r--r--inc/geshi/oracle11.php2
-rw-r--r--inc/geshi/oracle8.php2
-rw-r--r--inc/geshi/oxygene.php6
-rw-r--r--inc/geshi/oz.php2
-rw-r--r--inc/geshi/parasail.php133
-rw-r--r--inc/geshi/parigp.php277
-rw-r--r--inc/geshi/pascal.php53
-rw-r--r--inc/geshi/pcre.php2
-rw-r--r--inc/geshi/per.php2
-rw-r--r--inc/geshi/perl.php2
-rw-r--r--inc/geshi/perl6.php2
-rw-r--r--inc/geshi/pf.php2
-rw-r--r--inc/geshi/php-brief.php4
-rw-r--r--inc/geshi/php.php21
-rw-r--r--inc/geshi/pic16.php2
-rw-r--r--inc/geshi/pike.php2
-rw-r--r--inc/geshi/pixelbender.php2
-rw-r--r--inc/geshi/pli.php2
-rw-r--r--inc/geshi/plsql.php2
-rw-r--r--inc/geshi/postgresql.php2
-rw-r--r--inc/geshi/povray.php2
-rw-r--r--inc/geshi/powerbuilder.php2
-rw-r--r--inc/geshi/powershell.php2
-rw-r--r--inc/geshi/proftpd.php2
-rw-r--r--inc/geshi/progress.php2
-rw-r--r--inc/geshi/prolog.php2
-rw-r--r--inc/geshi/properties.php2
-rw-r--r--inc/geshi/providex.php2
-rw-r--r--inc/geshi/purebasic.php2
-rw-r--r--inc/geshi/pycon.php2
-rw-r--r--inc/geshi/pys60.php273
-rw-r--r--inc/geshi/python.php2
-rw-r--r--inc/geshi/q.php2
-rw-r--r--inc/geshi/qbasic.php6
-rw-r--r--inc/geshi/rails.php2
-rw-r--r--inc/geshi/rebol.php2
-rw-r--r--inc/geshi/reg.php2
-rw-r--r--inc/geshi/rexx.php162
-rw-r--r--inc/geshi/robots.php2
-rw-r--r--inc/geshi/rpmspec.php2
-rw-r--r--inc/geshi/rsplus.php20
-rw-r--r--inc/geshi/ruby.php2
-rw-r--r--inc/geshi/sas.php2
-rw-r--r--inc/geshi/scala.php26
-rw-r--r--inc/geshi/scheme.php2
-rw-r--r--inc/geshi/scilab.php2
-rw-r--r--inc/geshi/sdlbasic.php2
-rw-r--r--inc/geshi/smalltalk.php2
-rw-r--r--inc/geshi/smarty.php2
-rw-r--r--inc/geshi/spark.php132
-rw-r--r--inc/geshi/sparql.php155
-rw-r--r--inc/geshi/sql.php2
-rw-r--r--inc/geshi/stonescript.php307
-rw-r--r--inc/geshi/systemverilog.php6
-rw-r--r--inc/geshi/tcl.php2
-rw-r--r--inc/geshi/teraterm.php2
-rw-r--r--inc/geshi/text.php2
-rw-r--r--inc/geshi/thinbasic.php2
-rw-r--r--inc/geshi/tsql.php6
-rw-r--r--inc/geshi/typoscript.php20
-rw-r--r--inc/geshi/unicon.php2
-rw-r--r--inc/geshi/upc.php270
-rw-r--r--inc/geshi/urbi.php200
-rw-r--r--inc/geshi/uscript.php2
-rw-r--r--inc/geshi/vala.php2
-rw-r--r--inc/geshi/vb.php2
-rw-r--r--inc/geshi/vbnet.php127
-rw-r--r--inc/geshi/vedit.php103
-rw-r--r--inc/geshi/verilog.php4
-rw-r--r--inc/geshi/vhdl.php105
-rw-r--r--inc/geshi/vim.php2
-rw-r--r--inc/geshi/visualfoxpro.php2
-rw-r--r--inc/geshi/visualprolog.php2
-rw-r--r--inc/geshi/whitespace.php2
-rw-r--r--inc/geshi/whois.php2
-rw-r--r--inc/geshi/winbatch.php2
-rw-r--r--inc/geshi/xbasic.php2
-rw-r--r--inc/geshi/xml.php2
-rw-r--r--inc/geshi/xorg_conf.php2
-rw-r--r--inc/geshi/xpp.php2
-rw-r--r--inc/geshi/yaml.php2
-rw-r--r--inc/geshi/z80.php2
-rw-r--r--inc/geshi/zxbasic.php2
-rw-r--r--inc/html.php76
-rw-r--r--inc/httputils.php2
-rw-r--r--inc/infoutils.php27
-rw-r--r--inc/init.php8
-rw-r--r--inc/io.php11
-rw-r--r--inc/lang/ar/lang.php1
-rw-r--r--inc/lang/bg/lang.php2
-rw-r--r--inc/lang/cs/lang.php5
-rw-r--r--inc/lang/cs/mailwrap.html13
-rw-r--r--inc/lang/cs/resetpwd.txt3
-rw-r--r--inc/lang/da/lang.php1
-rw-r--r--inc/lang/de-informal/lang.php1
-rw-r--r--inc/lang/de/lang.php1
-rw-r--r--inc/lang/el/lang.php1
-rw-r--r--inc/lang/en/lang.php2
-rw-r--r--inc/lang/en/preview.txt2
-rw-r--r--inc/lang/eo/lang.php3
-rw-r--r--inc/lang/eo/mailwrap.html13
-rw-r--r--inc/lang/eo/resetpwd.txt4
-rw-r--r--inc/lang/es/lang.php15
-rw-r--r--inc/lang/es/mailwrap.html13
-rw-r--r--inc/lang/es/resetpwd.txt3
-rw-r--r--inc/lang/es/subscr_single.txt4
-rw-r--r--inc/lang/eu/lang.php46
-rw-r--r--inc/lang/eu/mailwrap.html13
-rw-r--r--inc/lang/eu/resetpwd.txt3
-rw-r--r--inc/lang/fa/lang.php3
-rw-r--r--inc/lang/fi/lang.php11
-rw-r--r--inc/lang/fi/mailwrap.html13
-rw-r--r--inc/lang/fi/resetpwd.txt3
-rw-r--r--inc/lang/fr/lang.php3
-rw-r--r--inc/lang/fr/mailtext.txt1
-rw-r--r--inc/lang/fr/mailwrap.html13
-rw-r--r--inc/lang/gl/lang.php1
-rw-r--r--inc/lang/it/lang.php9
-rw-r--r--inc/lang/ja/lang.php1
-rw-r--r--inc/lang/kk/lang.php18
-rw-r--r--inc/lang/ko/install.html6
-rw-r--r--inc/lang/ko/lang.php20
-rw-r--r--inc/lang/ko/mailtext.txt2
-rw-r--r--inc/lang/ko/preview.txt2
-rw-r--r--inc/lang/ko/showrev.txt2
-rw-r--r--inc/lang/ko/updateprofile.txt2
-rw-r--r--inc/lang/lv/lang.php12
-rw-r--r--inc/lang/lv/mailwrap.html13
-rw-r--r--inc/lang/lv/resetpwd.txt3
-rw-r--r--inc/lang/nl/index.txt2
-rw-r--r--inc/lang/nl/install.html8
-rw-r--r--inc/lang/nl/lang.php7
-rw-r--r--inc/lang/nl/register.txt2
-rw-r--r--inc/lang/nl/resetpwd.txt3
-rw-r--r--inc/lang/nl/subscr_digest.txt2
-rw-r--r--inc/lang/nl/subscr_single.txt5
-rw-r--r--inc/lang/nl/uploadmail.txt1
-rw-r--r--inc/lang/no/lang.php1
-rw-r--r--inc/lang/pl/lang.php1
-rw-r--r--inc/lang/pt-br/lang.php59
-rw-r--r--inc/lang/pt-br/mailwrap.html13
-rw-r--r--inc/lang/pt-br/resetpwd.txt3
-rw-r--r--inc/lang/pt/lang.php1
-rw-r--r--inc/lang/ro/lang.php1
-rw-r--r--inc/lang/ru/lang.php2
-rw-r--r--inc/lang/sk/lang.php13
-rw-r--r--inc/lang/sk/mailwrap.html13
-rw-r--r--inc/lang/sk/resetpwd.txt3
-rw-r--r--inc/lang/sl/lang.php1
-rw-r--r--inc/lang/vi/lang.php2
-rw-r--r--inc/lang/zh-tw/admin.txt3
-rw-r--r--inc/lang/zh-tw/diff.txt3
-rw-r--r--inc/lang/zh-tw/index.txt2
-rw-r--r--inc/lang/zh-tw/install.html6
-rw-r--r--inc/lang/zh-tw/lang.php72
-rw-r--r--inc/lang/zh-tw/mailwrap.html13
-rw-r--r--inc/lang/zh-tw/resetpwd.txt3
-rw-r--r--inc/lang/zh-tw/subscr_digest.txt4
-rw-r--r--inc/lang/zh-tw/subscr_form.txt2
-rw-r--r--inc/lang/zh-tw/subscr_list.txt6
-rw-r--r--inc/lang/zh-tw/subscr_single.txt4
-rw-r--r--inc/lang/zh/lang.php4
-rw-r--r--inc/load.php4
-rw-r--r--inc/mail.php28
-rw-r--r--inc/media.php32
-rw-r--r--inc/pageutils.php23
-rw-r--r--inc/parser/metadata.php41
-rw-r--r--inc/parser/renderer.php2
-rw-r--r--inc/parser/xhtml.php2
-rw-r--r--inc/parserutils.php25
-rw-r--r--inc/plugin.php2
-rw-r--r--inc/plugincontroller.class.php6
-rw-r--r--inc/pluginutils.php2
-rw-r--r--inc/search.php2
-rw-r--r--inc/subscription.php68
-rw-r--r--inc/template.php947
-rw-r--r--inc/utf8.php9
329 files changed, 10207 insertions, 1698 deletions
diff --git a/inc/HTTPClient.php b/inc/HTTPClient.php
index 8d2c10be1..51c1de875 100644
--- a/inc/HTTPClient.php
+++ b/inc/HTTPClient.php
@@ -565,15 +565,17 @@ class HTTPClient {
if(feof($socket))
throw new HTTPClientException("Socket disconnected while writing $message");
- // wait for stream ready or timeout
- self::selecttimeout($this->timeout - $time_used, $sec, $usec);
- if(@stream_select($sel_r, $sel_w, $sel_e, $sec, $usec) !== false){
- // write to stream
- $nbytes = fwrite($socket, substr($data,$written,4096));
- if($nbytes === false)
- throw new HTTPClientException("Failed writing to socket while sending $message", -100);
- $written += $nbytes;
+ // wait for stream ready or timeout (1sec)
+ if(@stream_select($sel_r,$sel_w,$sel_e,1) === false){
+ usleep(1000);
+ continue;
}
+
+ // write to stream
+ $nbytes = fwrite($socket, substr($data,$written,4096));
+ if($nbytes === false)
+ throw new HTTPClientException("Failed writing to socket while sending $message", -100);
+ $written += $nbytes;
}
}
@@ -612,15 +614,17 @@ class HTTPClient {
}
if ($to_read > 0) {
- // wait for stream ready or timeout
- self::selecttimeout($this->timeout - $time_used, $sec, $usec);
- if(@stream_select($sel_r, $sel_w, $sel_e, $sec, $usec) !== false){
- $bytes = fread($socket, $to_read);
- if($bytes === false)
- throw new HTTPClientException("Failed reading from socket while reading $message", -100);
- $r_data .= $bytes;
- $to_read -= strlen($bytes);
+ // wait for stream ready or timeout (1sec)
+ if(@stream_select($sel_r,$sel_w,$sel_e,1) === false){
+ usleep(1000);
+ continue;
}
+
+ $bytes = fread($socket, $to_read);
+ if($bytes === false)
+ throw new HTTPClientException("Failed reading from socket while reading $message", -100);
+ $r_data .= $bytes;
+ $to_read -= strlen($bytes);
}
} while ($to_read > 0 && strlen($r_data) < $nbytes);
return $r_data;
@@ -651,11 +655,13 @@ class HTTPClient {
if(feof($socket))
throw new HTTPClientException("Premature End of File (socket) while reading $message");
- // wait for stream ready or timeout
- self::selecttimeout($this->timeout - $time_used, $sec, $usec);
- if(@stream_select($sel_r, $sel_w, $sel_e, $sec, $usec) !== false){
- $r_data = fgets($socket, 1024);
+ // wait for stream ready or timeout (1sec)
+ if(@stream_select($sel_r,$sel_w,$sel_e,1) === false){
+ usleep(1000);
+ continue;
}
+
+ $r_data = fgets($socket, 1024);
} while (!preg_match('/\n$/',$r_data));
return $r_data;
}
@@ -686,14 +692,6 @@ class HTTPClient {
}
/**
- * Calculate seconds and microseconds
- */
- static function selecttimeout($time, &$sec, &$usec){
- $sec = floor($time);
- $usec = (int)(($time - $sec) * 1000000);
- }
-
- /**
* convert given header string to Header array
*
* All Keys are lowercased.
diff --git a/inc/Input.class.php b/inc/Input.class.php
index f4174404a..35aecdb45 100644
--- a/inc/Input.class.php
+++ b/inc/Input.class.php
@@ -175,6 +175,40 @@ class Input {
return (array) $this->access[$name];
}
+ /**
+ * Create a simple key from an array key
+ *
+ * This is useful to access keys where the information is given as an array key or as a single array value.
+ * For example when the information was submitted as the name of a submit button.
+ *
+ * This function directly changes the access array.
+ *
+ * Eg. $_REQUEST['do']['save']='Speichern' becomes $_REQUEST['do'] = 'save'
+ *
+ * This function returns the $INPUT object itself for easy chaining
+ *
+ * @param $name
+ * @return Input
+ */
+ public function extract($name){
+ if(!isset($this->access[$name])) return $this;
+ if(!is_array($this->access[$name])) return $this;
+ $keys = array_keys($this->access[$name]);
+ if(!$keys){
+ // this was an empty array
+ $this->remove($name);
+ return $this;
+ }
+ // get the first key
+ $value = array_shift($keys);
+ if($value === 0){
+ // we had a numeric array, assume the value is not in the key
+ $value = array_shift($this->access[$name]);
+ }
+
+ $this->set($name, $value);
+ return $this;
+ }
}
/**
diff --git a/inc/JpegMeta.php b/inc/JpegMeta.php
index ce643a7e6..ba6a2b5bb 100644
--- a/inc/JpegMeta.php
+++ b/inc/JpegMeta.php
@@ -1209,7 +1209,7 @@ class JpegMeta {
function _parseFileInfo() {
if (file_exists($this->_fileName) && is_file($this->_fileName)) {
$this->_info['file'] = array();
- $this->_info['file']['Name'] = utf8_basename($this->_fileName);
+ $this->_info['file']['Name'] = utf8_decodeFN(utf8_basename($this->_fileName));
$this->_info['file']['Path'] = fullpath($this->_fileName);
$this->_info['file']['Size'] = filesize($this->_fileName);
if ($this->_info['file']['Size'] < 1024) {
diff --git a/inc/SafeFN.class.php b/inc/SafeFN.class.php
index ab05b9eae..b9e4a2b2a 100644
--- a/inc/SafeFN.class.php
+++ b/inc/SafeFN.class.php
@@ -44,7 +44,7 @@ class SafeFN {
*
* @author Christopher Smith <chris@jalakai.co.uk>
*/
- public function encode($filename) {
+ public static function encode($filename) {
return self::unicode_to_safe(utf8_to_unicode($filename));
}
@@ -73,15 +73,15 @@ class SafeFN {
*
* @author Christopher Smith <chris@jalakai.co.uk>
*/
- public function decode($filename) {
+ public static function decode($filename) {
return unicode_to_utf8(self::safe_to_unicode(strtolower($filename)));
}
- public function validate_printable_utf8($printable_utf8) {
+ public static function validate_printable_utf8($printable_utf8) {
return !preg_match('#[\x01-\x1f]#',$printable_utf8);
}
- public function validate_safe($safe) {
+ public static function validate_safe($safe) {
return !preg_match('#[^'.self::$plain.self::$post_indicator.self::$pre_indicator.']#',$safe);
}
@@ -93,7 +93,7 @@ class SafeFN {
*
* @author Christopher Smith <chris@jalakai.co.uk>
*/
- private function unicode_to_safe($unicode) {
+ private static function unicode_to_safe($unicode) {
$safe = '';
$converted = false;
@@ -126,7 +126,7 @@ class SafeFN {
*
* @author Christopher Smith <chris@jalakai.co.uk>
*/
- private function safe_to_unicode($safe) {
+ private static function safe_to_unicode($safe) {
$unicode = array();
$split = preg_split('#(?=['.self::$post_indicator.self::$pre_indicator.'])#',$safe,-1,PREG_SPLIT_NO_EMPTY);
diff --git a/inc/Sitemapper.php b/inc/Sitemapper.php
index bbea73b52..bf89a311c 100644
--- a/inc/Sitemapper.php
+++ b/inc/Sitemapper.php
@@ -63,11 +63,11 @@ class Sitemapper {
$event = new Doku_Event('SITEMAP_GENERATE', $eventData);
if ($event->advise_before(true)) {
//save the new sitemap
- $result = io_saveFile($sitemap, Sitemapper::getXML($items));
+ $event->result = io_saveFile($sitemap, Sitemapper::getXML($items));
}
$event->advise_after();
- return $result;
+ return $event->result;
}
/**
@@ -82,6 +82,7 @@ class Sitemapper {
echo '<?xml version="1.0" encoding="UTF-8"?>'.NL;
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'.NL;
foreach ($items as $item) {
+ /** @var SitemapItem $item */
echo $item->toXML();
}
echo '</urlset>'.NL;
@@ -93,14 +94,14 @@ class Sitemapper {
/**
* Helper function for getting the path to the sitemap file.
*
- * @return The path to the sitemap file.
+ * @return string The path to the sitemap file.
* @author Michael Hamann
*/
public static function getFilePath() {
global $conf;
$sitemap = $conf['cachedir'].'/sitemap.xml';
- if($conf['compression'] === 'bz2' || $conf['compression'] === 'gz'){
+ if (self::sitemapIsCompressed()) {
$sitemap .= '.gz';
}
@@ -108,6 +109,16 @@ class Sitemapper {
}
/**
+ * Helper function for checking if the sitemap is compressed
+ *
+ * @return bool If the sitemap file is compressed
+ */
+ public static function sitemapIsCompressed() {
+ global $conf;
+ return $conf['compression'] === 'bz2' || $conf['compression'] === 'gz';
+ }
+
+ /**
* Pings search engines with the sitemap url. Plugins can add or remove
* urls to ping using the SITEMAP_PING event.
*
@@ -175,7 +186,7 @@ class SitemapItem {
* @param $id string A wikipage id.
* @param $changefreq string How frequently the item is likely to change. Valid values: always, hourly, daily, weekly, monthly, yearly, never.
* @param $priority float|string The priority of the item relative to other URLs on your site. Valid values range from 0.0 to 1.0.
- * @return The sitemap item.
+ * @return SitemapItem The sitemap item.
*/
public static function createFromID($id, $changefreq = null, $priority = null) {
$id = trim($id);
@@ -187,7 +198,7 @@ class SitemapItem {
/**
* Get the XML representation of the sitemap item.
*
- * @return The XML representation.
+ * @return string The XML representation.
*/
public function toXML() {
$result = ' <url>'.NL
diff --git a/inc/TarLib.class.php b/inc/TarLib.class.php
index 126604cd1..e04c47cb8 100644
--- a/inc/TarLib.class.php
+++ b/inc/TarLib.class.php
@@ -13,7 +13,6 @@
* @author Christopher Smith <chris@jalakai.co.uk>
*/
-
/**
* Those constants represent the compression method to use.
* COMPRESS_GZIP is used for the GZIP compression; COMPRESS_BZIP for
@@ -68,15 +67,15 @@ class TarLib {
var $_result;
var $_initerror;
- const COMPRESS_GZIP = 1;
- const COMPRESS_BZIP = 2;
- const COMPRESS_AUTO = 3;
- const COMPRESS_NONE = 0;
- const TARLIB_VERSION = '1.2';
- const FULL_ARCHIVE = -1;
- const ARCHIVE_DYNAMIC = 0;
+ const COMPRESS_GZIP = 1;
+ const COMPRESS_BZIP = 2;
+ const COMPRESS_AUTO = 3;
+ const COMPRESS_NONE = 0;
+ const TARLIB_VERSION = '1.2';
+ const FULL_ARCHIVE = -1;
+ const ARCHIVE_DYNAMIC = 0;
const ARCHIVE_RENAMECOMP = 5;
- const COMPRESS_DETECT = -1;
+ const COMPRESS_DETECT = -1;
/**
* constructor, initialize the class
@@ -108,21 +107,21 @@ class TarLib {
* represent the GZIP or BZIP compression level. 1 produce fast compression,
* and 9 produce smaller files. See the RFC 1952 for more infos.
*/
- function __construct($p_filen = TarLib::ARCHIVE_DYNAMIC , $p_comptype = TarLib::COMPRESS_AUTO, $p_complevel = 9) {
+ function __construct($p_filen = TarLib::ARCHIVE_DYNAMIC, $p_comptype = TarLib::COMPRESS_AUTO, $p_complevel = 9) {
$this->_initerror = 0;
- $this->_nomf = $p_filen;
- $flag=0;
- if($p_comptype && $p_comptype % 5 == 0){
+ $this->_nomf = $p_filen;
+ $flag = 0;
+ if($p_comptype && $p_comptype % 5 == 0) {
$p_comptype /= TarLib::ARCHIVE_RENAMECOMP;
- $flag=1;
+ $flag = 1;
}
if($p_complevel > 0 && $p_complevel <= 9) $this->_compzlevel = $p_complevel;
- else $p_complevel = 9;
+ else $this->_compzlevel = 9;
if($p_comptype == TarLib::COMPRESS_DETECT) {
- if(strtolower(substr($p_filen,-3)) == '.gz') $p_comptype = TarLib::COMPRESS_GZIP;
- elseif(strtolower(substr($p_filen,-4)) == '.bz2') $p_comptype = TarLib::COMPRESS_BZIP;
+ if(strtolower(substr($p_filen, -3)) == '.gz') $p_comptype = TarLib::COMPRESS_GZIP;
+ elseif(strtolower(substr($p_filen, -4)) == '.bz2') $p_comptype = TarLib::COMPRESS_BZIP;
else $p_comptype = TarLib::COMPRESS_NONE;
}
@@ -152,7 +151,7 @@ class TarLib {
if($this->_initerror < 0) $this->_comptype = TarLib::COMPRESS_NONE;
- if($flag) $this->_nomf.= '.'.$this->getCompression(1);
+ if($flag) $this->_nomf .= '.'.$this->getCompression(1);
$this->_result = true;
}
@@ -162,9 +161,9 @@ class TarLib {
* This function does exactly the same as TarLib (constructor), except it
* returns a status code.
*/
- function setArchive($p_name='', $p_comp = TarLib::COMPRESS_AUTO, $p_level=9) {
+ function setArchive($p_name = '', $p_comp = TarLib::COMPRESS_AUTO, $p_level = 9) {
$this->_CompTar();
- $this->TarLib($p_name, $p_comp, $p_level);
+ $this->__construct($p_name, $p_comp, $p_level);
return $this->_result;
}
@@ -186,7 +185,7 @@ class TarLib {
* MaxgTar Constants
*/
function getCompression($ext = false) {
- $exts = Array('tar','tar.gz','tar.bz2');
+ $exts = Array('tar', 'tar.gz', 'tar.bz2');
if($ext) return $exts[$this->_comptype];
return $this->_comptype;
}
@@ -263,8 +262,10 @@ class TarLib {
if(!$archive && !$this->_memdat) return -10;
if(!$name) $name = utf8_basename($this->_nomf);
- if($archive){ if(!file_exists($archive)) return -11; }
- else $decoded = $this->getDynamicArchive();
+ if($archive) {
+ if(!file_exists($archive)) return -11;
+ }
+ $decoded = $this->getDynamicArchive();
if($headers) {
header('Content-Type: application/x-gtar');
@@ -274,10 +275,10 @@ class TarLib {
}
if($archive) {
- $fp = @fopen($archive,'rb');
+ $fp = @fopen($archive, 'rb');
if(!$fp) return -4;
- while(!feof($fp)) echo fread($fp,2048);
+ while(!feof($fp)) echo fread($fp, 2048);
} else {
echo $decoded;
}
@@ -311,10 +312,10 @@ class TarLib {
* permission in octal mode (prefixed with a 0) that will be given on each
* extracted file.
*/
- function Extract($p_what = TarLib::FULL_ARCHIVE, $p_to = '.', $p_remdir='', $p_mode = 0755) {
+ function Extract($p_what = TarLib::FULL_ARCHIVE, $p_to = '.', $p_remdir = '', $p_mode = 0755) {
if(!$this->_OpenRead()) return -4;
// if(!@is_dir($p_to)) if(!@mkdir($p_to, 0777)) return -8; --CS
- if(!@is_dir($p_to)) if(!$this->_dirApp($p_to)) return -8; //--CS (route through correct dir fn)
+ if(!@is_dir($p_to)) if(!$this->_dirApp($p_to)) return -8; //--CS (route through correct dir fn)
$ok = $this->_extractList($p_to, $p_what, $p_remdir, $p_mode);
$this->_CompTar();
@@ -327,21 +328,20 @@ class TarLib {
*
* This function will attempt to create a new archive with global headers
* then add the given files into. If the archive is a real file, the
- * contents are written directly into the file, if it is a dynamic archive
+ * contents are written directly into the file. If it is a dynamic archive,
* contents are only stored in memory. This function should not be used to
* add files to an existing archive, you should use Add() instead.
*
- * The FileList actually supports three different modes :
+ * The FileList actually supports three different modes:
*
* - You can pass a string containing filenames separated by pipes '|'.
- * In this case the file are read from the webserver filesystem and the
- * root folder is the folder where the script using the MaxgTar is called.
+ * In this case thes file are read from the filesystem and the root folder
+ * is the folder running script located. NOT RECOMMENDED
*
- * - You can also give a unidimensional indexed array containing the
- * filenames. The behaviour for the content reading is the same that a
- * '|'ed string.
+ * - You can also give an indexed array containing the filenames. The
+ * behaviour for the content reading is the same as above.
*
- * - The more useful usage is to pass bidimensional arrays, where the
+ * - You can pass an array of arrays. For each file use an array where the
* first element contains the filename and the second contains the file
* contents. You can even add empty folders to the package if the filename
* has a leading '/'. Once again, have a look at the exemples to understand
@@ -357,15 +357,15 @@ class TarLib {
* to the file you store. Note also that the RemovePath is applied before the
* AddPath is added, so it HAS a sense to use both parameters together.
*/
- function Create($p_filelist,$p_add='',$p_rem='') {
+ function Create($p_filelist, $p_add = '', $p_rem = '') {
if(!$fl = $this->_fetchFilelist($p_filelist)) return -5;
if(!$this->_OpenWrite()) return -6;
- $ok = $this->_addFileList($fl,$p_add,$p_rem);
+ $ok = $this->_addFileList($fl, $p_add, $p_rem);
- if($ok){
+ if($ok) {
$this->_writeFooter();
- }else{
+ } else {
$this->_CompTar();
@unlink($this->_nomf);
}
@@ -376,18 +376,26 @@ class TarLib {
/**
* Add files to an existing package.
*
- * This function does exactly the same than Create() exept it
- * will append the given files at the end of the archive. Please not the is
- * safe to call Add() on a newly created archive whereas the
- * contrary will fail !
+ * This function does exactly the same as Create() exept it
+ * will append the given files at the end of the archive.
+ *
+ * Note: This is only supported for dynamic in memory files and uncompressed
+ * tar files
*
* This function returns a status code, you can use TarErrorStr() on
* it to get the human-readable description of the error.
*/
function Add($p_filelist, $p_add = '', $p_rem = '') {
- if (($this->_nomf != TarLib::ARCHIVE_DYNAMIC && @is_file($this->_nomf)) ||
- ($this->_nomf == TarLib::ARCHIVE_DYNAMIC && !$this->_memdat)){
- return $this->Create($p_filelist, $p_add, $p_rem);
+ if($this->_nomf !== TarLib::ARCHIVE_DYNAMIC &&
+ $this->_comptype !== TarLib::COMPRESS_NONE
+ ) {
+ return -12;
+ }
+
+ if(($this->_nomf !== TarLib::ARCHIVE_DYNAMIC && !$this->_fp) ||
+ ($this->_nomf === TarLib::ARCHIVE_DYNAMIC && !$this->_memdat)
+ ) {
+ return $this->Create($p_filelist, $p_add, $p_rem);
}
if(!$fl = $this->_fetchFilelist($p_filelist)) return -5;
@@ -419,15 +427,15 @@ class TarLib {
$result = Array();
- while ($dat = $this->_read(512)) {
+ while($dat = $this->_read(512)) {
$dat = $this->_readHeader($dat);
if(!is_array($dat)) continue;
- $this->_seek(ceil($dat['size']/512)*512,1);
+ $this->_seek(ceil($dat['size'] / 512) * 512, 1);
$result[] = $dat;
}
- return $result;
+ return $result;
}
/**
@@ -439,35 +447,48 @@ class TarLib {
*/
function TarErrorStr($i) {
$ecodes = Array(
- 1 => true,
- 0 => "Undocumented error",
- -1 => "Can't use COMPRESS_GZIP compression : ZLIB extensions are not loaded !",
- -2 => "Can't use COMPRESS_BZIP compression : BZ2 extensions are not loaded !",
- -3 => "You must set a archive file to read the contents !",
- -4 => "Can't open the archive file for read !",
- -5 => "Invalide file list !",
- -6 => "Can't open the archive in write mode !",
- -7 => "There is no ARCHIVE_DYNAMIC to write !",
- -8 => "Can't create the directory to extract files !",
- -9 => "Please pass a archive name to send if you made created an ARCHIVE_DYNAMIC !",
- -10 => "You didn't pass an archive filename and there is no stored ARCHIVE_DYNAMIC !",
- -11 => "Given archive doesn't exist !"
- );
+ 1 => true,
+ 0 => "Undocumented error",
+ -1 => "Can't use COMPRESS_GZIP compression : ZLIB extensions are not loaded !",
+ -2 => "Can't use COMPRESS_BZIP compression : BZ2 extensions are not loaded !",
+ -3 => "You must set a archive file to read the contents !",
+ -4 => "Can't open the archive file for read !",
+ -5 => "Invalide file list !",
+ -6 => "Can't open the archive in write mode !",
+ -7 => "There is no ARCHIVE_DYNAMIC to write !",
+ -8 => "Can't create the directory to extract files !",
+ -9 => "Please pass a archive name to send if you made created an ARCHIVE_DYNAMIC !",
+ -10 => "You didn't pass an archive filename and there is no stored ARCHIVE_DYNAMIC !",
+ -11 => "Given archive doesn't exist !",
+ -12 => "Appending not supported for compressed files"
+ );
return isset($ecodes[$i]) ? $ecodes[$i] : $ecodes[0];
}
- function _seek($p_flen, $tell=0) {
+ /**
+ * Seek in the data stream
+ *
+ * @todo probably broken for bzip tars
+ * @param int $p_flen seek to this position
+ * @param bool $tell seek from current position?
+ */
+ function _seek($p_flen, $tell = false) {
if($this->_nomf === TarLib::ARCHIVE_DYNAMIC)
- $this->_memdat=substr($this->_memdat,0,($tell ? strlen($this->_memdat) : 0) + $p_flen);
+ $this->_memdat = substr($this->_memdat, 0, ($tell ? strlen($this->_memdat) : 0) + $p_flen);
elseif($this->_comptype == TarLib::COMPRESS_GZIP)
- @gzseek($this->_fp, ($tell ? @gztell($this->_fp) : 0)+$p_flen);
+ @gzseek($this->_fp, ($tell ? @gztell($this->_fp) : 0) + $p_flen);
elseif($this->_comptype == TarLib::COMPRESS_BZIP)
- @fseek($this->_fp, ($tell ? @ftell($this->_fp) : 0)+$p_flen);
+ @fseek($this->_fp, ($tell ? @ftell($this->_fp) : 0) + $p_flen);
else
- @fseek($this->_fp, ($tell ? @ftell($this->_fp) : 0)+$p_flen);
+ @fseek($this->_fp, ($tell ? @ftell($this->_fp) : 0) + $p_flen);
}
+ /**
+ * Open the archive for reading
+ *
+ * @return bool true if succesfull
+ */
function _OpenRead() {
if($this->_comptype == TarLib::COMPRESS_GZIP)
$this->_fp = @gzopen($this->_nomf, 'rb');
@@ -479,6 +500,12 @@ class TarLib {
return ($this->_fp ? true : false);
}
+ /**
+ * Open the archive for writing
+ *
+ * @param string $add filemode
+ * @return bool true on success
+ */
function _OpenWrite($add = 'w') {
if($this->_nomf === TarLib::ARCHIVE_DYNAMIC) return true;
@@ -492,6 +519,9 @@ class TarLib {
return ($this->_fp ? true : false);
}
+ /**
+ * Closes the open file pointer
+ */
function _CompTar() {
if($this->_nomf === TarLib::ARCHIVE_DYNAMIC || !$this->_fp) return;
@@ -500,27 +530,46 @@ class TarLib {
else @fclose($this->_fp);
}
+ /**
+ * Read from the open file pointer
+ *
+ * @param int $p_len bytes to read
+ * @return string
+ */
function _read($p_len) {
if($this->_comptype == TarLib::COMPRESS_GZIP)
- return @gzread($this->_fp,$p_len);
+ return @gzread($this->_fp, $p_len);
elseif($this->_comptype == TarLib::COMPRESS_BZIP)
- return @bzread($this->_fp,$p_len);
+ return @bzread($this->_fp, $p_len);
else
- return @fread($this->_fp,$p_len);
+ return @fread($this->_fp, $p_len);
}
+ /**
+ * Write to the open filepointer or memory
+ *
+ * @param string $p_data
+ * @return int
+ */
function _write($p_data) {
- if($this->_nomf === TarLib::ARCHIVE_DYNAMIC) $this->_memdat .= $p_data;
- elseif($this->_comptype == TarLib::COMPRESS_GZIP)
- return @gzwrite($this->_fp,$p_data);
-
- elseif($this->_comptype == TarLib::COMPRESS_BZIP)
- return @bzwrite($this->_fp,$p_data);
-
- else
- return @fwrite($this->_fp,$p_data);
+ if($this->_nomf === TarLib::ARCHIVE_DYNAMIC) {
+ $this->_memdat .= $p_data;
+ return strlen($p_data);
+ } elseif($this->_comptype == TarLib::COMPRESS_GZIP) {
+ return @gzwrite($this->_fp, $p_data);
+ } elseif($this->_comptype == TarLib::COMPRESS_BZIP) {
+ return @bzwrite($this->_fp, $p_data);
+ } else {
+ return @fwrite($this->_fp, $p_data);
+ }
}
+ /**
+ * Compress given data according to the set compression method
+ *
+ * @param $p_dat
+ * @return string
+ */
function _encode($p_dat) {
if($this->_comptype == TarLib::COMPRESS_GZIP)
return gzencode($p_dat, $this->_compzlevel);
@@ -529,55 +578,77 @@ class TarLib {
else return $p_dat;
}
+ /**
+ * Decode the given tar file header
+ *
+ * @param $p_dat
+ * @return array|bool
+ */
function _readHeader($p_dat) {
- if (!$p_dat || strlen($p_dat) != 512) return false;
+ if(!$p_dat || strlen($p_dat) != 512) return false;
- for ($i=0, $chks=0; $i<148; $i++)
+ for($i = 0, $chks = 0; $i < 148; $i++)
$chks += ord($p_dat[$i]);
- for ($i=156,$chks+=256; $i<512; $i++)
+ for($i = 156, $chks += 256; $i < 512; $i++)
$chks += ord($p_dat[$i]);
$headers = @unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor", $p_dat);
if(!$headers) return false;
$return['checksum'] = OctDec(trim($headers['checksum']));
- if ($return['checksum'] != $chks) return false;
+ if($return['checksum'] != $chks) return false;
$return['filename'] = trim($headers['filename']);
- $return['mode'] = OctDec(trim($headers['mode']));
- $return['uid'] = OctDec(trim($headers['uid']));
- $return['gid'] = OctDec(trim($headers['gid']));
- $return['size'] = OctDec(trim($headers['size']));
- $return['mtime'] = OctDec(trim($headers['mtime']));
+ $return['mode'] = OctDec(trim($headers['mode']));
+ $return['uid'] = OctDec(trim($headers['uid']));
+ $return['gid'] = OctDec(trim($headers['gid']));
+ $return['size'] = OctDec(trim($headers['size']));
+ $return['mtime'] = OctDec(trim($headers['mtime']));
$return['typeflag'] = $headers['typeflag'];
- $return['link'] = trim($headers['link']);
- $return['uname'] = trim($headers['uname']);
- $return['gname'] = trim($headers['gname']);
+ $return['link'] = trim($headers['link']);
+ $return['uname'] = trim($headers['uname']);
+ $return['gname'] = trim($headers['gname']);
return $return;
}
+ /**
+ * Builds a normalized file list
+ *
+ * @todo remove string support, use saner format
+ *
+ * @param $p_filelist
+ * @return array|bool
+ */
function _fetchFilelist($p_filelist) {
if(!$p_filelist || (is_array($p_filelist) && !@count($p_filelist))) return false;
if(is_string($p_filelist)) {
- $p_filelist = explode('|',$p_filelist);
+ $p_filelist = explode('|', $p_filelist);
if(!is_array($p_filelist)) $p_filelist = Array($p_filelist);
}
return $p_filelist;
}
+ /**
+ * Adds files given as file list
+ *
+ * @param array $p_fl
+ * @param string $p_addir
+ * @param string $p_remdir
+ * @return bool
+ */
function _addFileList($p_fl, $p_addir, $p_remdir) {
foreach($p_fl as $file) {
- if(($file == $this->_nomf && $this->_nomf != TarLib::ARCHIVE_DYNAMIC) || !$file || (!file_exists($file) && !is_array($file)))
+ if(($file == $this->_nomf && $this->_nomf !== TarLib::ARCHIVE_DYNAMIC) || !$file || (!is_array($file) && !file_exists($file)))
continue;
- if (!$this->_addFile($file, $p_addir, $p_remdir))
+ if(!$this->_addFile($file, $p_addir, $p_remdir))
continue;
- if (@is_dir($file)) {
+ if(@is_dir($file)) {
$d = @opendir($file);
if(!$d) continue;
@@ -592,26 +663,36 @@ class TarLib {
}
closedir($d);
- unset($tmplist,$f);
+ unset($tmplist, $f);
}
}
return true;
}
+ /**
+ * Adds a single file
+ *
+ * @param array|string $p_fn
+ * @param string $p_addir
+ * @param string $p_remdir
+ * @return bool
+ */
function _addFile($p_fn, $p_addir = '', $p_remdir = '') {
+ $data = false;
if(is_array($p_fn)) list($p_fn, $data) = $p_fn;
$sname = $p_fn;
if($p_remdir) {
- if(substr($p_remdir,-1) != '/') $p_remdir .= "/";
+ if(substr($p_remdir, -1) != '/') $p_remdir .= "/";
if(substr($sname, 0, strlen($p_remdir)) == $p_remdir)
$sname = substr($sname, strlen($p_remdir));
}
- if($p_addir) $sname = $p_addir.(substr($p_addir,-1) == '/' ? '' : "/").$sname;
+ if($p_addir) $sname = $p_addir.(substr($p_addir, -1) == '/' ? '' : "/").$sname;
- if(strlen($sname) > 99) return;
+ // FIXME ustar should support up 256 chars
+ if(strlen($sname) > 99) return false;
if(@is_dir($p_fn)) {
if(!$this->_writeFileHeader($p_fn, $sname)) return false;
@@ -625,14 +706,14 @@ class TarLib {
if(!$data) {
while(!feof($fp)) {
- $packed = pack("a512", fread($fp,512));
+ $packed = pack("a512", fread($fp, 512));
$this->_write($packed);
}
fclose($fp);
} else {
$len = strlen($data);
- for($s = 0; $s < $len; $s += 512){
- $this->_write(pack("a512",substr($data,$s,512)));
+ for($s = 0; $s < $len; $s += 512) {
+ $this->_write(pack("a512", substr($data, $s, 512)));
}
}
}
@@ -640,53 +721,70 @@ class TarLib {
return true;
}
- function _writeFileHeader($p_file, $p_sname, $p_data=false) {
+ /**
+ * Write the header for a file in the TAR archive
+ *
+ * @param string $p_file
+ * @param string $p_sname
+ * @param bool $p_data
+ * @return bool
+ */
+ function _writeFileHeader($p_file, $p_sname, $p_data = false) {
if(!$p_data) {
- if (!$p_sname) $p_sname = $p_file;
+ if(!$p_sname) $p_sname = $p_file;
$p_sname = $this->_pathTrans($p_sname);
$h_info = stat($p_file);
- $h[0] = sprintf("%6s ", DecOct($h_info[4]));
- $h[] = sprintf("%6s ", DecOct($h_info[5]));
- $h[] = sprintf("%6s ", DecOct(fileperms($p_file)));
+ $h[0] = sprintf("%6s ", DecOct($h_info[4]));
+ $h[] = sprintf("%6s ", DecOct($h_info[5]));
+ $h[] = sprintf("%6s ", DecOct(fileperms($p_file)));
clearstatcache();
$h[] = sprintf("%11s ", DecOct(filesize($p_file)));
$h[] = sprintf("%11s", DecOct(filemtime($p_file)));
$dir = @is_dir($p_file) ? '5' : '';
} else {
- $dir = '';
+ $dir = '';
$p_data = sprintf("%11s ", DecOct($p_data));
- $time = sprintf("%11s ", DecOct(time()));
- $h = Array(" 0 "," 0 "," 40777 ",$p_data,$time);
+ $time = sprintf("%11s ", DecOct(time()));
+ $h = Array(" 0 ", " 0 ", " 40777 ", $p_data, $time);
}
$data_first = pack("a100a8a8a8a12A12", $p_sname, $h[2], $h[0], $h[1], $h[3], $h[4]);
- $data_last = pack("a1a100a6a2a32a32a8a8a155a12", $dir, '', '', '', '', '', '', '', '', "");
+ $data_last = pack("a1a100a6a2a32a32a8a8a155a12", $dir, '', '', '', '', '', '', '', '', "");
- for ($i=0,$chks=0; $i<148; $i++)
+ for($i = 0, $chks = 0; $i < 148; $i++)
$chks += ord($data_first[$i]);
- for ($i=156, $chks+=256, $j=0; $i<512; $i++, $j++)
+ for($i = 156, $chks += 256, $j = 0; $i < 512; $i++, $j++)
$chks += ord($data_last[$j]);
$this->_write($data_first);
- $chks = pack("a8",sprintf("%6s ", DecOct($chks)));
+ $chks = pack("a8", sprintf("%6s ", DecOct($chks)));
$this->_write($chks.$data_last);
return true;
}
- function _append($p_filelist, $p_addir="", $p_remdir="") {
+ /**
+ * Append the given files to the already open archive
+ *
+ * @param array $p_filelist
+ * @param string $p_addir
+ * @param string $p_remdir
+ * @return bool|int
+ */
+ function _append($p_filelist, $p_addir = "", $p_remdir = "") {
if(!$this->_fp) if(!$this->_OpenWrite('a')) return -6;
- if($this->_nomf == TarLib::ARCHIVE_DYNAMIC) {
- $s = strlen($this->_memdat);
- $this->_memdat = substr($this->_memdat,0,-512);
+ if($this->_nomf === TarLib::ARCHIVE_DYNAMIC) {
+ $this->_memdat = substr($this->_memdat, 0, -512 * 2); // remove footer
} else {
+ clearstatcache();
$s = filesize($this->_nomf);
- $this->_seek($s-512);
+
+ $this->_seek($s - (512 * 2)); // remove footer
}
$ok = $this->_addFileList($p_filelist, $p_addir, $p_remdir);
@@ -695,48 +793,70 @@ class TarLib {
return $ok;
}
+ /**
+ * Cleans up a path and removes relative parts
+ *
+ * @param string $p_dir
+ * @return string
+ */
function _pathTrans($p_dir) {
- if ($p_dir) {
+ $r = '';
+ if($p_dir) {
$subf = explode("/", $p_dir);
- $r='';
- for ($i=count($subf)-1; $i>=0; $i--) {
- if ($subf[$i] == ".") {
+ for($i = count($subf) - 1; $i >= 0; $i--) {
+ if($subf[$i] == ".") {
# do nothing
- } elseif ($subf[$i] == "..") {
+ } elseif($subf[$i] == "..") {
$i--;
- } elseif (!$subf[$i] && $i!=count($subf)-1 && $i) {
+ } elseif(!$subf[$i] && $i != count($subf) - 1 && $i) {
# do nothing
} else {
- $r = $subf[$i].($i!=(count($subf)-1) ? "/".$r : "");
+ $r = $subf[$i].($i != (count($subf) - 1) ? "/".$r : "");
}
}
}
return $r;
}
+ /**
+ * Add the closing footer to the archive
+ *
+ * Physically, an archive consists of a series of file entries terminated by an end-of-archive entry, which
+ * consists of two 512 blocks of zero bytes
+ *
+ * @link http://www.gnu.org/software/tar/manual/html_chapter/tar_8.html#SEC134
+ */
function _writeFooter() {
$this->_write(pack("a512", ""));
+ $this->_write(pack("a512", ""));
}
+ /**
+ * @param $p_to
+ * @param $p_files
+ * @param $p_remdir
+ * @param int $p_mode
+ * @return array|bool|int|string
+ */
function _extractList($p_to, $p_files, $p_remdir, $p_mode = 0755) {
- if (!$p_to || ($p_to[0]!="/"&&substr($p_to,0,3)!="../"&&substr($p_to,1,3)!=":\\"&&substr($p_to,1,2)!=":/")) /*" // <- PHP Coder bug */
+ if(!$p_to || ($p_to[0] != "/" && substr($p_to, 0, 3) != "../" && substr($p_to, 1, 3) != ":\\" && substr($p_to, 1, 2) != ":/")) /*" // <- PHP Coder bug */
$p_to = "./$p_to";
- if ($p_remdir && substr($p_remdir,-1)!='/') $p_remdir .= '/';
+ if($p_remdir && substr($p_remdir, -1) != '/') $p_remdir .= '/';
$p_remdirs = strlen($p_remdir);
while($dat = $this->_read(512)) {
$headers = $this->_readHeader($dat);
if(!$headers['filename']) continue;
- if($p_files == -1 || $p_files[0] == -1){
+ if($p_files == -1 || $p_files[0] == -1) {
$extract = true;
} else {
$extract = false;
foreach($p_files as $f) {
- if(substr($f,-1) == "/") {
- if((strlen($headers['filename']) > strlen($f)) && (substr($headers['filename'],0,strlen($f))==$f)) {
+ if(substr($f, -1) == "/") {
+ if((strlen($headers['filename']) > strlen($f)) && (substr($headers['filename'], 0, strlen($f)) == $f)) {
$extract = true;
break;
}
@@ -747,15 +867,15 @@ class TarLib {
}
}
- if ($extract) {
+ if($extract) {
$det[] = $headers;
- if ($p_remdir && substr($headers['filename'],0,$p_remdirs)==$p_remdir)
- $headers['filename'] = substr($headers['filename'],$p_remdirs);
+ if($p_remdir && substr($headers['filename'], 0, $p_remdirs) == $p_remdir)
+ $headers['filename'] = substr($headers['filename'], $p_remdirs);
- if($headers['filename'].'/' == $p_remdir && $headers['typeflag']=='5') continue;
+ if($headers['filename'].'/' == $p_remdir && $headers['typeflag'] == '5') continue;
- if ($p_to != "./" && $p_to != "/") {
- while($p_to{-1}=="/") $p_to = substr($p_to,0,-1);
+ if($p_to != "./" && $p_to != "/") {
+ while($p_to{-1} == "/") $p_to = substr($p_to, 0, -1);
if($headers['filename']{0} == "/")
$headers['filename'] = $p_to.$headers['filename'];
@@ -763,29 +883,35 @@ class TarLib {
$headers['filename'] = $p_to."/".$headers['filename'];
}
- $ok = $this->_dirApp($headers['typeflag']=="5" ? $headers['filename'] : dirname($headers['filename']));
+ $ok = $this->_dirApp($headers['typeflag'] == "5" ? $headers['filename'] : dirname($headers['filename']));
if($ok < 0) return $ok;
- if (!$headers['typeflag']) {
- if (!$fp = @fopen($headers['filename'], "wb")) return -6;
- $n = floor($headers['size']/512);
+ if(!$headers['typeflag']) {
+ if(!$fp = @fopen($headers['filename'], "wb")) return -6;
+ $n = floor($headers['size'] / 512);
- for ($i=0; $i<$n; $i++){
- fwrite($fp, $this->_read(512),512);
+ for($i = 0; $i < $n; $i++) {
+ fwrite($fp, $this->_read(512), 512);
}
- if (($headers['size'] % 512) != 0) fwrite($fp, $this->_read(512), $headers['size'] % 512);
+ if(($headers['size'] % 512) != 0) fwrite($fp, $this->_read(512), $headers['size'] % 512);
fclose($fp);
touch($headers['filename'], $headers['mtime']);
chmod($headers['filename'], $p_mode);
} else {
- $this->_seek(ceil($headers['size']/512)*512,1);
+ $this->_seek(ceil($headers['size'] / 512) * 512, 1);
}
- }else $this->_seek(ceil($headers['size']/512)*512,1);
+ } else $this->_seek(ceil($headers['size'] / 512) * 512, 1);
}
return $det;
}
+ /**
+ * Create a directory hierarchy in filesystem
+ *
+ * @param string $d
+ * @return bool
+ */
function _dirApp($d) {
// map to dokuwiki function (its more robust)
return io_mkdir_p($d);
diff --git a/inc/actions.php b/inc/actions.php
index 4356662d7..f65b47451 100644
--- a/inc/actions.php
+++ b/inc/actions.php
@@ -64,11 +64,11 @@ function act_dispatch(){
//sitemap
if ($ACT == 'sitemap'){
- $ACT = act_sitemap($ACT);
+ act_sitemap($ACT);
}
//register
- if($ACT == 'register' && $_POST['save'] && register()){
+ if($ACT == 'register' && $INPUT->post->bool('save') && register()){
$ACT = 'login';
}
@@ -137,6 +137,7 @@ function act_dispatch(){
if (in_array($page, $pluginlist)) {
// attempt to load the plugin
if ($plugin =& plugin_load('admin',$page) !== null){
+ /** @var DokuWiki_Admin_Plugin $plugin */
if($plugin->forAdminOnly() && !$INFO['isadmin']){
// a manager tried to load a plugin that's for admins only
$INPUT->remove('page');
@@ -177,6 +178,11 @@ function act_dispatch(){
// in function tpl_content()
}
+/**
+ * Send the given headers using header()
+ *
+ * @param array $headers The headers that shall be sent
+ */
function act_sendheaders($headers) {
foreach ($headers as $hdr) header($hdr);
}
@@ -437,6 +443,11 @@ function act_redirect($id,$preact){
trigger_event('ACTION_SHOW_REDIRECT',$opts,'act_redirect_execute');
}
+/**
+ * Execute the redirect
+ *
+ * @param array $opts id and fragment for the redirect
+ */
function act_redirect_execute($opts){
$go = wl($opts['id'],'',true);
if(isset($opts['fragment'])) $go .= '#'.$opts['fragment'];
@@ -637,7 +648,7 @@ function act_sitemap($act) {
}
$sitemap = Sitemapper::getFilePath();
- if(strrchr($sitemap, '.') === '.gz'){
+ if (Sitemapper::sitemapIsCompressed()) {
$mime = 'application/x-gzip';
}else{
$mime = 'application/xml; charset=utf-8';
diff --git a/inc/auth.php b/inc/auth.php
index cedfdee36..1c8a8f5f5 100644
--- a/inc/auth.php
+++ b/inc/auth.php
@@ -65,7 +65,7 @@ function auth_setup() {
nice_die($lang['authmodfailed']);
}
- if(!$auth) return false;
+ if(!isset($auth) || !$auth) return false;
// do the login either by cookie or provided credentials XXX
$INPUT->set('http_credentials', false);
@@ -299,7 +299,7 @@ function auth_createToken() {
*
* This is neither unique nor unfakable - still it adds some
* security. Using the first part of the IP makes sure
- * proxy farms like AOLs are stil okay.
+ * proxy farms like AOLs are still okay.
*
* @author Andreas Gohr <andi@splitbrain.org>
*
@@ -313,6 +313,7 @@ function auth_browseruid() {
$uid .= $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$uid .= $_SERVER['HTTP_ACCEPT_CHARSET'];
$uid .= substr($ip, 0, strpos($ip, '.'));
+ $uid = strtolower($uid);
return md5($uid);
}
@@ -733,68 +734,62 @@ function register() {
global $conf;
/* @var auth_basic $auth */
global $auth;
+ global $INPUT;
- if(!$_POST['save']) return false;
+ if(!$INPUT->post->bool('save')) return false;
if(!actionOK('register')) return false;
- //clean username
- $_POST['login'] = trim($auth->cleanUser($_POST['login']));
-
- //clean fullname and email
- $_POST['fullname'] = trim(preg_replace('/[\x00-\x1f:<>&%,;]+/', '', $_POST['fullname']));
- $_POST['email'] = trim(preg_replace('/[\x00-\x1f:<>&%,;]+/', '', $_POST['email']));
+ // gather input
+ $login = trim($auth->cleanUser($INPUT->post->str('login')));
+ $fullname = trim(preg_replace('/[\x00-\x1f:<>&%,;]+/', '', $INPUT->post->str('fullname')));
+ $email = trim(preg_replace('/[\x00-\x1f:<>&%,;]+/', '', $INPUT->post->str('email')));
+ $pass = $INPUT->post->str('pass');
+ $passchk = $INPUT->post->str('passchk');
- if(empty($_POST['login']) ||
- empty($_POST['fullname']) ||
- empty($_POST['email'])
- ) {
+ if(empty($login) || empty($fullname) || empty($email)) {
msg($lang['regmissing'], -1);
return false;
}
if($conf['autopasswd']) {
$pass = auth_pwgen(); // automatically generate password
- } elseif(empty($_POST['pass']) ||
- empty($_POST['passchk'])
- ) {
+ } elseif(empty($pass) || empty($passchk)) {
msg($lang['regmissing'], -1); // complain about missing passwords
return false;
- } elseif($_POST['pass'] != $_POST['passchk']) {
+ } elseif($pass != $passchk) {
msg($lang['regbadpass'], -1); // complain about misspelled passwords
return false;
- } else {
- $pass = $_POST['pass']; // accept checked and valid password
}
//check mail
- if(!mail_isvalid($_POST['email'])) {
+ if(!mail_isvalid($email)) {
msg($lang['regbadmail'], -1);
return false;
}
//okay try to create the user
- if(!$auth->triggerUserMod('create', array($_POST['login'], $pass, $_POST['fullname'], $_POST['email']))) {
+ if(!$auth->triggerUserMod('create', array($login, $pass, $fullname, $email))) {
msg($lang['reguexists'], -1);
return false;
}
// create substitutions for use in notification email
$substitutions = array(
- 'NEWUSER' => $_POST['login'],
- 'NEWNAME' => $_POST['fullname'],
- 'NEWEMAIL' => $_POST['email'],
+ 'NEWUSER' => $login,
+ 'NEWNAME' => $fullname,
+ 'NEWEMAIL' => $email,
);
if(!$conf['autopasswd']) {
msg($lang['regsuccess2'], 1);
- notify('', 'register', '', $_POST['login'], false, $substitutions);
+ notify('', 'register', '', $login, false, $substitutions);
return true;
}
// autogenerated password? then send him the password
- if(auth_sendPassword($_POST['login'], $pass)) {
+ if(auth_sendPassword($login, $pass)) {
msg($lang['regsuccess'], 1);
- notify('', 'register', '', $_POST['login'], false, $substitutions);
+ notify('', 'register', '', $login, false, $substitutions);
return true;
} else {
msg($lang['regmailfail'], -1);
diff --git a/inc/changelog.php b/inc/changelog.php
index 24583b341..688aebfd6 100644
--- a/inc/changelog.php
+++ b/inc/changelog.php
@@ -157,7 +157,8 @@ function addMediaLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='',
* @param int $first number of first entry returned (for paginating
* @param int $num return $num entries
* @param string $ns restrict to given namespace
- * @param bool $flags see above
+ * @param int $flags see above
+ * @return array recently changed files
*
* @author Ben Coburn <btcoburn@silicodon.net>
* @author Kate Arzamastseva <pshns@ukr.net>
@@ -177,6 +178,8 @@ function getRecents($first,$num,$ns='',$flags=0){
$lines = @file($conf['changelog']);
}
$lines_position = count($lines)-1;
+ $media_lines_position = 0;
+ $media_lines = array();
if ($flags & RECENTS_MEDIA_PAGES_MIXED) {
$media_lines = @file($conf['media_changelog']);
@@ -236,7 +239,8 @@ function getRecents($first,$num,$ns='',$flags=0){
* @param int $from date of the oldest entry to return
* @param int $to date of the newest entry to return (for pagination, optional)
* @param string $ns restrict to given namespace (optional)
- * @param bool $flags see above (optional)
+ * @param int $flags see above (optional)
+ * @return array of files
*
* @author Michael Hamann <michael@content-space.de>
* @author Ben Coburn <btcoburn@silicodon.net>
diff --git a/inc/common.php b/inc/common.php
index 33da2523a..20baed6c0 100644
--- a/inc/common.php
+++ b/inc/common.php
@@ -1150,14 +1150,18 @@ function notify($id, $who, $rev = '', $summary = '', $minor = false, $replace =
} elseif($rev) {
$subject = $lang['mail_changed'].' '.$id;
$trep['OLDPAGE'] = wl($id, "rev=$rev", true, '&');
- $df = new Diff(explode("\n", rawWiki($id, $rev)),
- explode("\n", rawWiki($id)));
+ $old_content = rawWiki($id, $rev);
+ $new_content = rawWiki($id);
+ $df = new Diff(explode("\n", $old_content),
+ explode("\n", $new_content));
$dformat = new UnifiedDiffFormatter();
$tdiff = $dformat->format($df);
$DIFF_INLINESTYLES = true;
+ $hdf = new Diff(explode("\n", hsc($old_content)),
+ explode("\n", hsc($new_content)));
$dformat = new InlineDiffFormatter();
- $hdiff = $dformat->format($df);
+ $hdiff = $dformat->format($hdf);
$hdiff = '<table>'.$hdiff.'</table>';
$DIFF_INLINESTYLES = false;
} else {
@@ -1197,8 +1201,10 @@ function getGoogleQuery() {
}
$url = parse_url($_SERVER['HTTP_REFERER']);
- $query = array();
+ // only handle common SEs
+ if(!preg_match('/(google|bing|yahoo|ask|duckduckgo|babylon|aol|yandex)/',$url['host'])) return '';
+ $query = array();
// temporary workaround against PHP bug #49733
// see http://bugs.php.net/bug.php?id=49733
if(UTF8_MBSTRING) $enc = mb_internal_encoding();
@@ -1206,16 +1212,16 @@ function getGoogleQuery() {
if(UTF8_MBSTRING) mb_internal_encoding($enc);
$q = '';
- if(isset($query['q']))
- $q = $query['q']; // google, live/msn, aol, ask, altavista, alltheweb, gigablast
- elseif(isset($query['p']))
- $q = $query['p']; // yahoo
- elseif(isset($query['query']))
- $q = $query['query']; // lycos, netscape, clusty, hotbot
- elseif(preg_match("#a9\.com#i", $url['host'])) // a9
- $q = urldecode(ltrim($url['path'], '/'));
-
- if($q === '') return '';
+ if(isset($query['q'])){
+ $q = $query['q'];
+ }elseif(isset($query['p'])){
+ $q = $query['p'];
+ }elseif(isset($query['query'])){
+ $q = $query['query'];
+ }
+ $q = trim($q);
+
+ if(!$q) return '';
$q = preg_split('/[\s\'"\\\\`()\]\[?:!\.{};,#+*<>\\/]+/', $q, -1, PREG_SPLIT_NO_EMPTY);
return $q;
}
diff --git a/inc/confutils.php b/inc/confutils.php
index edea80092..404cc6050 100644
--- a/inc/confutils.php
+++ b/inc/confutils.php
@@ -143,6 +143,9 @@ function getSchemes() {
*/
function linesToHash($lines, $lower=false) {
$conf = array();
+ // remove BOM
+ if (isset($lines[0]) && substr($lines[0],0,3) == pack('CCC',0xef,0xbb,0xbf))
+ $lines[0] = substr($lines[0],3);
foreach ( $lines as $line ) {
//ignore comments (except escaped ones)
$line = preg_replace('/(?<![&\\\\])#.*$/','',$line);
diff --git a/inc/events.php b/inc/events.php
index 4e81f85c8..f7b1a7a16 100644
--- a/inc/events.php
+++ b/inc/events.php
@@ -132,7 +132,7 @@ class Doku_Event_Handler {
$pluginlist = plugin_list('action');
foreach ($pluginlist as $plugin_name) {
- $plugin =& plugin_load('action',$plugin_name);
+ $plugin = plugin_load('action',$plugin_name);
if ($plugin !== null) $plugin->register($this);
}
diff --git a/inc/fulltext.php b/inc/fulltext.php
index 8f4db111d..eab8850dc 100644
--- a/inc/fulltext.php
+++ b/inc/fulltext.php
@@ -394,19 +394,24 @@ function ft_snippet_re_preprocess($term) {
return $term;
}
+ // unicode word boundaries
+ // see http://stackoverflow.com/a/2449017/172068
+ $BL = '(?<!\pL)';
+ $BR = '(?!\pL)';
+
if(substr($term,0,2) == '\\*'){
$term = substr($term,2);
}else{
- $term = '\b'.$term;
+ $term = $BL.$term;
}
if(substr($term,-2,2) == '\\*'){
$term = substr($term,0,-2);
}else{
- $term = $term.'\b';
+ $term = $term.$BR;
}
- if($term == '\b' || $term == '\b\b') $term = '';
+ if($term == $BL || $term == $BR || $term == $BL.$BR) $term = '';
return $term;
}
diff --git a/inc/geshi/4cs.php b/inc/geshi/4cs.php
index 7b1efec9a..5209c51e8 100644
--- a/inc/geshi/4cs.php
+++ b/inc/geshi/4cs.php
@@ -4,7 +4,7 @@
* ------
* Author: Jason Curl (jason.curl@continental-corporation.com)
* Copyright: (c) 2009 Jason Curl
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/09/05
*
* 4CS language file for GeSHi.
diff --git a/inc/geshi/6502acme.php b/inc/geshi/6502acme.php
index 880211d5b..203e04dfa 100644
--- a/inc/geshi/6502acme.php
+++ b/inc/geshi/6502acme.php
@@ -4,7 +4,7 @@
* -------
* Author: Warren Willmey
* Copyright: (c) 2010 Warren Willmey.
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/05/26
*
* MOS 6502 (more specifically 6510) ACME Cross Assembler 0.93 by Marco Baye language file for GeSHi.
diff --git a/inc/geshi/6502kickass.php b/inc/geshi/6502kickass.php
index b1edcaa5b..804282629 100644
--- a/inc/geshi/6502kickass.php
+++ b/inc/geshi/6502kickass.php
@@ -4,7 +4,7 @@
* -------
* Author: Warren Willmey
* Copyright: (c) 2010 Warren Willmey.
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/06/07
*
* MOS 6502 (6510) Kick Assembler 3.13 language file for GeSHi.
diff --git a/inc/geshi/6502tasm.php b/inc/geshi/6502tasm.php
index 5f9f2b9be..86aa479df 100644
--- a/inc/geshi/6502tasm.php
+++ b/inc/geshi/6502tasm.php
@@ -4,7 +4,7 @@
* -------
* Author: Warren Willmey
* Copyright: (c) 2010 Warren Willmey.
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/06/02
*
* MOS 6502 (6510) TASM/64TASS (64TASS being the super set of TASM) language file for GeSHi.
diff --git a/inc/geshi/68000devpac.php b/inc/geshi/68000devpac.php
index efd800809..f46387ae9 100644
--- a/inc/geshi/68000devpac.php
+++ b/inc/geshi/68000devpac.php
@@ -4,7 +4,7 @@
* -------
* Author: Warren Willmey
* Copyright: (c) 2010 Warren Willmey.
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/06/09
*
* Motorola 68000 - HiSoft Devpac ST 2 Assembler language file for GeSHi.
diff --git a/inc/geshi/abap.php b/inc/geshi/abap.php
index 6ce930c7c..5acd261c6 100644
--- a/inc/geshi/abap.php
+++ b/inc/geshi/abap.php
@@ -7,7 +7,7 @@
* - Sandra Rossi (sandra.rossi@gmail.com)
* - Jacob Laursen (jlu@kmd.dk)
* Copyright: (c) 2007 Andres Picazo
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/06/04
*
* ABAP language file for GeSHi.
diff --git a/inc/geshi/actionscript.php b/inc/geshi/actionscript.php
index 47eec3950..08e5b49ac 100644
--- a/inc/geshi/actionscript.php
+++ b/inc/geshi/actionscript.php
@@ -4,7 +4,7 @@
* ----------------
* Author: Steffen Krause (Steffen.krause@muse.de)
* Copyright: (c) 2004 Steffen Krause, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/06/20
*
* Actionscript language file for GeSHi.
diff --git a/inc/geshi/actionscript3.php b/inc/geshi/actionscript3.php
index ba27573cc..189d714b3 100644
--- a/inc/geshi/actionscript3.php
+++ b/inc/geshi/actionscript3.php
@@ -4,7 +4,7 @@
* ----------------
* Author: Jordi Boggiano (j.boggiano@seld.be)
* Copyright: (c) 2007 Jordi Boggiano (http://www.seld.be/), Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/11/26
*
* ActionScript3 language file for GeSHi.
@@ -72,7 +72,7 @@ $language_data = array (
'private', 'null', 'new', 'is', 'internal', 'instanceof', 'in',
'import', 'if', 'get', 'for', 'false', 'else', 'each', 'do',
'delete', 'default', 'continue', 'catch', 'case', 'break', 'as',
- 'extends'
+ 'extends', 'override'
),
2 => array(
'var'
diff --git a/inc/geshi/ada.php b/inc/geshi/ada.php
index 8f8390952..c4ef2c395 100644
--- a/inc/geshi/ada.php
+++ b/inc/geshi/ada.php
@@ -4,7 +4,7 @@
* -------
* Author: Tux (tux@inmail.cz)
* Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/07/29
*
* Ada language file for GeSHi.
diff --git a/inc/geshi/algol68.php b/inc/geshi/algol68.php
index 1f79f10eb..5b1e5aa7f 100644
--- a/inc/geshi/algol68.php
+++ b/inc/geshi/algol68.php
@@ -4,7 +4,7 @@
* --------
* Author: Neville Dempsey (NevilleD.sourceforge@sgr-a.net)
* Copyright: (c) 2010 Neville Dempsey (https://sourceforge.net/projects/algol68/files/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/04/24
*
* ALGOL 68 language file for GeSHi.
diff --git a/inc/geshi/apache.php b/inc/geshi/apache.php
index ace3862ef..c944443c7 100644
--- a/inc/geshi/apache.php
+++ b/inc/geshi/apache.php
@@ -4,7 +4,7 @@
* ----------
* Author: Tux (tux@inmail.cz)
* Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/29/07
*
* Apache language file for GeSHi.
diff --git a/inc/geshi/applescript.php b/inc/geshi/applescript.php
index c64a4974d..603fa4a3e 100644
--- a/inc/geshi/applescript.php
+++ b/inc/geshi/applescript.php
@@ -4,7 +4,7 @@
* --------
* Author: Stephan Klimek (http://www.initware.org)
* Copyright: Stephan Klimek (http://www.initware.org)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/07/20
*
* AppleScript language file for GeSHi.
diff --git a/inc/geshi/apt_sources.php b/inc/geshi/apt_sources.php
index 9feefceaf..9f1ed045e 100644
--- a/inc/geshi/apt_sources.php
+++ b/inc/geshi/apt_sources.php
@@ -4,7 +4,7 @@
* ----------
* Author: Milian Wolff (mail@milianw.de)
* Copyright: (c) 2008 Milian Wolff (http://milianw.de)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/06/17
*
* Apt sources.list language file for GeSHi.
diff --git a/inc/geshi/arm.php b/inc/geshi/arm.php
new file mode 100644
index 000000000..8e3c0a37e
--- /dev/null
+++ b/inc/geshi/arm.php
@@ -0,0 +1,3318 @@
+<?php
+/*************************************************************************************
+ * arm.php
+ * -------
+ * Author: Marat Dukhan (mdukhan3.at.gatech.dot.edu)
+ * Copyright: (c) Marat Dukhan (mdukhan3.at.gatech.dot.edu)
+ * Release Version: 1.0.8.11
+ * Date Started: 2011/10/06
+ *
+ * ARM Assembler language file for GeSHi.
+ * Based on the following documents:
+ * - "ARM Architecture Reference Manual: ARMv7-A and ARMv7-R edition"
+ * - "Intel XScale Technology: Intel Wireless MMX2 Coprocessor",
+ * Revision 1.5, July 2006
+ *
+ * CHANGES
+ * -------
+ * 2011/10/06
+ * - First Release (supported UAL syntax for up to ARMv7 A/R, VFPv3, NEON, WMMX/WMMX2)
+ *
+ * TODO (updated 2011/10/06)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'ARM ASSEMBLER',
+ 'COMMENT_SINGLE' => array(
+ 1 => ';'
+ ),
+ 'COMMENT_MULTI' => array(),
+ //Line address prefix suppression
+ 'COMMENT_REGEXP' => array(
+ 2 => "/^(?:[0-9a-f]{0,4}:)?[0-9a-f]{4}(?:[0-9a-f]{4})?/mi"
+ ),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array("'", '"'),
+ 'ESCAPE_CHAR' => '',
+ 'KEYWORDS' => array(
+ /* Unconditional Data Processing Instructions */
+ 1 => array(
+ /* Data Processing: Unconditional Addition & Subtraction */
+ 'adc.w','adcal.w',
+ 'adc','adcal',
+ 'add.w','addal.w',
+ 'add','addal',
+ 'addw','addwal',
+ 'rsb.w','rsbal.w',
+ 'rsb','rsbal',
+ 'rsc','rscal',
+ 'sbc.w','sbcal.w',
+ 'sbc','sbcal',
+ 'sub.w','subal.w',
+ 'sub','subal',
+ 'neg.w','negal.w',
+ 'neg','negal',
+ 'adr.w','adral.w',
+ 'adr','adral',
+ /* Data Processing: Unconditional Logical */
+ 'and.w','andal.w',
+ 'and','andal',
+ 'bic.w','bical.w',
+ 'bic','bical',
+ 'orr.w','orral.w',
+ 'orr','orral',
+ 'orn.w','ornal.w',
+ 'orn','ornal',
+ 'eor.w','eoral.w',
+ 'eor','eoral',
+ 'mov.w','moval.w',
+ 'mov','moval',
+ 'movw','movwal',
+ 'movt','movtal',
+ 'cpy','cpyal',
+ 'mvn.w','mvnal.w',
+ 'mvn','mvnal',
+ /* Data Processing: Unconditional Shifts and Rotates */
+ 'asr.w','asral.w',
+ 'asr','asral',
+ 'lsl.w','lslal.w',
+ 'lsl','lslal',
+ 'lsr.w','lsral.w',
+ 'lsr','lsral',
+ 'ror.w','roral.w',
+ 'ror','roral',
+ 'rrx','rrxal',
+ /* Data Processing: Unconditional Word Multiply and Multiply-Add */
+ 'mul','mulal',
+ 'mla','mlaal',
+ 'mls','mlsal',
+ 'smull','smullal',
+ 'muls','mulsal',
+ 'umull','umullal',
+ 'smlal','smlalal',
+ 'umlal','umlalal',
+ /* Data Processing: Unconditional Halfword Multiply and Multiply-Add (ARMv5TE) */
+ 'smulbb','smulbbal',
+ 'smulbt','smulbtal',
+ 'smultb','smultbal',
+ 'smultt','smulttal',
+ 'smulwb','smulwbal',
+ 'smulwt','smulwtal',
+ 'smlalbb','smlalbbal',
+ 'smlalbt','smlalbtal',
+ 'smlaltb','smlaltbal',
+ 'smlaltt','smlalttal',
+ 'smlabb','smlabbal',
+ 'smlabt','smlabtal',
+ 'smlatb','smlatbal',
+ 'smlatt','smlattal',
+ 'smlawb','smlawbal',
+ 'smlawt','smlawtal',
+ /* Data Processing: Unconditional Bit Operations */
+ 'ubfx','ubfxal',
+ 'sbfx','sbfxal',
+ 'bfc','bfcal',
+ 'bfi','bfial',
+ 'clz','clzal',
+ /* Data Processing: Unconditional Divide (ARMv7-R) */
+ 'sdiv','sdival',
+ 'udiv','udival'
+ ),
+ /* Conditional Data Processing Instructions */
+ 2 => array(
+ /* Data Processing: Conditional Addition & Subtraction */
+ 'adceq.w','adcne.w','adccs.w','adchs.w','adccc.w','adclo.w','adcmi.w','adcpl.w','adcvs.w','adcvc.w','adchi.w','adcls.w','adcge.w','adclt.w','adcgt.w','adcle.w',
+ 'adceq','adcne','adccs','adchs','adccc','adclo','adcmi','adcpl','adcvs','adcvc','adchi','adcls','adcge','adclt','adcgt','adcle',
+ 'addeq.w','addne.w','addcs.w','addhs.w','addcc.w','addlo.w','addmi.w','addpl.w','addvs.w','addvc.w','addhi.w','addls.w','addge.w','addlt.w','addgt.w','addle.w',
+ 'addeq','addne','addcs','addhs','addcc','addlo','addmi','addpl','addvs','addvc','addhi','addls','addge','addlt','addgt','addle',
+ 'addweq','addwne','addwcs','addwhs','addwcc','addwlo','addwmi','addwpl','addwvs','addwvc','addwhi','addwls','addwge','addwlt','addwgt','addwle',
+ 'rsbeq.w','rsbne.w','rsbcs.w','rsbhs.w','rsbcc.w','rsblo.w','rsbmi.w','rsbpl.w','rsbvs.w','rsbvc.w','rsbhi.w','rsbls.w','rsbge.w','rsblt.w','rsbgt.w','rsble.w',
+ 'rsbeq','rsbne','rsbcs','rsbhs','rsbcc','rsblo','rsbmi','rsbpl','rsbvs','rsbvc','rsbhi','rsbls','rsbge','rsblt','rsbgt','rsble',
+ 'rsceq','rscne','rsccs','rschs','rsccc','rsclo','rscmi','rscpl','rscvs','rscvc','rschi','rscls','rscge','rsclt','rscgt','rscle',
+ 'sbceq.w','sbcne.w','sbccs.w','sbchs.w','sbccc.w','sbclo.w','sbcmi.w','sbcpl.w','sbcvs.w','sbcvc.w','sbchi.w','sbcls.w','sbcge.w','sbclt.w','sbcgt.w','sbcle.w',
+ 'sbceq','sbcne','sbccs','sbchs','sbccc','sbclo','sbcmi','sbcpl','sbcvs','sbcvc','sbchi','sbcls','sbcge','sbclt','sbcgt','sbcle',
+ 'subeq.w','subne.w','subcs.w','subhs.w','subcc.w','sublo.w','submi.w','subpl.w','subvs.w','subvc.w','subhi.w','subls.w','subge.w','sublt.w','subgt.w','suble.w',
+ 'subeq','subne','subcs','subhs','subcc','sublo','submi','subpl','subvs','subvc','subhi','subls','subge','sublt','subgt','suble',
+ 'negeq.w','negne.w','negcs.w','neghs.w','negcc.w','neglo.w','negmi.w','negpl.w','negvs.w','negvc.w','neghi.w','negls.w','negge.w','neglt.w','neggt.w','negle.w',
+ 'negeq','negne','negcs','neghs','negcc','neglo','negmi','negpl','negvs','negvc','neghi','negls','negge','neglt','neggt','negle',
+ 'adreq.w','adrne.w','adrcs.w','adrhs.w','adrcc.w','adrlo.w','adrmi.w','adrpl.w','adrvs.w','adrvc.w','adrhi.w','adrls.w','adrge.w','adrlt.w','adrgt.w','adrle.w',
+ 'adreq','adrne','adrcs','adrhs','adrcc','adrlo','adrmi','adrpl','adrvs','adrvc','adrhi','adrls','adrge','adrlt','adrgt','adrle',
+ /* Data Processing: Conditional Logical */
+ 'andeq.w','andne.w','andcs.w','andhs.w','andcc.w','andlo.w','andmi.w','andpl.w','andvs.w','andvc.w','andhi.w','andls.w','andge.w','andlt.w','andgt.w','andle.w',
+ 'andeq','andne','andcs','andhs','andcc','andlo','andmi','andpl','andvs','andvc','andhi','andls','andge','andlt','andgt','andle',
+ 'biceq.w','bicne.w','biccs.w','bichs.w','biccc.w','biclo.w','bicmi.w','bicpl.w','bicvs.w','bicvc.w','bichi.w','bicls.w','bicge.w','biclt.w','bicgt.w','bicle.w',
+ 'biceq','bicne','biccs','bichs','biccc','biclo','bicmi','bicpl','bicvs','bicvc','bichi','bicls','bicge','biclt','bicgt','bicle',
+ 'orreq.w','orrne.w','orrcs.w','orrhs.w','orrcc.w','orrlo.w','orrmi.w','orrpl.w','orrvs.w','orrvc.w','orrhi.w','orrls.w','orrge.w','orrlt.w','orrgt.w','orrle.w',
+ 'orreq','orrne','orrcs','orrhs','orrcc','orrlo','orrmi','orrpl','orrvs','orrvc','orrhi','orrls','orrge','orrlt','orrgt','orrle',
+ 'orneq.w','ornne.w','orncs.w','ornhs.w','orncc.w','ornlo.w','ornmi.w','ornpl.w','ornvs.w','ornvc.w','ornhi.w','ornls.w','ornge.w','ornlt.w','orngt.w','ornle.w',
+ 'orneq','ornne','orncs','ornhs','orncc','ornlo','ornmi','ornpl','ornvs','ornvc','ornhi','ornls','ornge','ornlt','orngt','ornle',
+ 'eoreq.w','eorne.w','eorcs.w','eorhs.w','eorcc.w','eorlo.w','eormi.w','eorpl.w','eorvs.w','eorvc.w','eorhi.w','eorls.w','eorge.w','eorlt.w','eorgt.w','eorle.w',
+ 'eoreq','eorne','eorcs','eorhs','eorcc','eorlo','eormi','eorpl','eorvs','eorvc','eorhi','eorls','eorge','eorlt','eorgt','eorle',
+ 'moveq.w','movne.w','movcs.w','movhs.w','movcc.w','movlo.w','movmi.w','movpl.w','movvs.w','movvc.w','movhi.w','movls.w','movge.w','movlt.w','movgt.w','movle.w',
+ 'moveq','movne','movcs','movhs','movcc','movlo','movmi','movpl','movvs','movvc','movhi','movls','movge','movlt','movgt','movle',
+ 'movweq','movwne','movwcs','movwhs','movwcc','movwlo','movwmi','movwpl','movwvs','movwvc','movwhi','movwls','movwge','movwlt','movwgt','movwle',
+ 'movteq','movtne','movtcs','movths','movtcc','movtlo','movtmi','movtpl','movtvs','movtvc','movthi','movtls','movtge','movtlt','movtgt','movtle',
+ 'cpyeq','cpyne','cpycs','cpyhs','cpycc','cpylo','cpymi','cpypl','cpyvs','cpyvc','cpyhi','cpyls','cpyge','cpylt','cpygt','cpyle',
+ 'mvneq.w','mvnne.w','mvncs.w','mvnhs.w','mvncc.w','mvnlo.w','mvnmi.w','mvnpl.w','mvnvs.w','mvnvc.w','mvnhi.w','mvnls.w','mvnge.w','mvnlt.w','mvngt.w','mvnle.w',
+ 'mvneq','mvnne','mvncs','mvnhs','mvncc','mvnlo','mvnmi','mvnpl','mvnvs','mvnvc','mvnhi','mvnls','mvnge','mvnlt','mvngt','mvnle',
+ /* Data Processing: Conditional Shifts and Rotates */
+ 'asreq.w','asrne.w','asrcs.w','asrhs.w','asrcc.w','asrlo.w','asrmi.w','asrpl.w','asrvs.w','asrvc.w','asrhi.w','asrls.w','asrge.w','asrlt.w','asrgt.w','asrle.w',
+ 'asreq','asrne','asrcs','asrhs','asrcc','asrlo','asrmi','asrpl','asrvs','asrvc','asrhi','asrls','asrge','asrlt','asrgt','asrle',
+ 'lsleq.w','lslne.w','lslcs.w','lslhs.w','lslcc.w','lsllo.w','lslmi.w','lslpl.w','lslvs.w','lslvc.w','lslhi.w','lslls.w','lslge.w','lsllt.w','lslgt.w','lslle.w',
+ 'lsleq','lslne','lslcs','lslhs','lslcc','lsllo','lslmi','lslpl','lslvs','lslvc','lslhi','lslls','lslge','lsllt','lslgt','lslle',
+ 'lsreq.w','lsrne.w','lsrcs.w','lsrhs.w','lsrcc.w','lsrlo.w','lsrmi.w','lsrpl.w','lsrvs.w','lsrvc.w','lsrhi.w','lsrls.w','lsrge.w','lsrlt.w','lsrgt.w','lsrle.w',
+ 'lsreq','lsrne','lsrcs','lsrhs','lsrcc','lsrlo','lsrmi','lsrpl','lsrvs','lsrvc','lsrhi','lsrls','lsrge','lsrlt','lsrgt','lsrle',
+ 'roreq.w','rorne.w','rorcs.w','rorhs.w','rorcc.w','rorlo.w','rormi.w','rorpl.w','rorvs.w','rorvc.w','rorhi.w','rorls.w','rorge.w','rorlt.w','rorgt.w','rorle.w',
+ 'roreq','rorne','rorcs','rorhs','rorcc','rorlo','rormi','rorpl','rorvs','rorvc','rorhi','rorls','rorge','rorlt','rorgt','rorle',
+ 'rrxeq','rrxne','rrxcs','rrxhs','rrxcc','rrxlo','rrxmi','rrxpl','rrxvs','rrxvc','rrxhi','rrxls','rrxge','rrxlt','rrxgt','rrxle',
+ /* Data Processing: Conditional Word Multiply and Multiply-Add */
+ 'muleq','mulne','mulcs','mulhs','mulcc','mullo','mulmi','mulpl','mulvs','mulvc','mulhi','mulls','mulge','mullt','mulgt','mulle',
+ 'mlaeq','mlane','mlacs','mlahs','mlacc','mlalo','mlami','mlapl','mlavs','mlavc','mlahi','mlals','mlage','mlalt','mlagt','mlale',
+ 'mlseq','mlsne','mlscs','mlshs','mlscc','mlslo','mlsmi','mlspl','mlsvs','mlsvc','mlshi','mlsls','mlsge','mlslt','mlsgt','mlsle',
+ 'smulleq','smullne','smullcs','smullhs','smullcc','smulllo','smullmi','smullpl','smullvs','smullvc','smullhi','smullls','smullge','smulllt','smullgt','smullle',
+ 'mulseq','mulsne','mulscs','mulshs','mulscc','mulslo','mulsmi','mulspl','mulsvs','mulsvc','mulshi','mulsls','mulsge','mulslt','mulsgt','mulsle',
+ 'umulleq','umullne','umullcs','umullhs','umullcc','umulllo','umullmi','umullpl','umullvs','umullvc','umullhi','umullls','umullge','umulllt','umullgt','umullle',
+ 'smlaleq','smlalne','smlalcs','smlalhs','smlalcc','smlallo','smlalmi','smlalpl','smlalvs','smlalvc','smlalhi','smlalls','smlalge','smlallt','smlalgt','smlalle',
+ 'umlaleq','umlalne','umlalcs','umlalhs','umlalcc','umlallo','umlalmi','umlalpl','umlalvs','umlalvc','umlalhi','umlalls','umlalge','umlallt','umlalgt','umlalle',
+ /* Data Processing: Conditional Halfword Multiply and Multiply-Add (ARMv5TE) */
+ 'smulbbeq','smulbbne','smulbbcs','smulbbhs','smulbbcc','smulbblo','smulbbmi','smulbbpl','smulbbvs','smulbbvc','smulbbhi','smulbbls','smulbbge','smulbblt','smulbbgt','smulbble',
+ 'smulbteq','smulbtne','smulbtcs','smulbths','smulbtcc','smulbtlo','smulbtmi','smulbtpl','smulbtvs','smulbtvc','smulbthi','smulbtls','smulbtge','smulbtlt','smulbtgt','smulbtle',
+ 'smultbeq','smultbne','smultbcs','smultbhs','smultbcc','smultblo','smultbmi','smultbpl','smultbvs','smultbvc','smultbhi','smultbls','smultbge','smultblt','smultbgt','smultble',
+ 'smultteq','smulttne','smulttcs','smultths','smulttcc','smulttlo','smulttmi','smulttpl','smulttvs','smulttvc','smultthi','smulttls','smulttge','smulttlt','smulttgt','smulttle',
+ 'smulwbeq','smulwbne','smulwbcs','smulwbhs','smulwbcc','smulwblo','smulwbmi','smulwbpl','smulwbvs','smulwbvc','smulwbhi','smulwbls','smulwbge','smulwblt','smulwbgt','smulwble',
+ 'smulwteq','smulwtne','smulwtcs','smulwths','smulwtcc','smulwtlo','smulwtmi','smulwtpl','smulwtvs','smulwtvc','smulwthi','smulwtls','smulwtge','smulwtlt','smulwtgt','smulwtle',
+ 'smlalbbeq','smlalbbne','smlalbbcs','smlalbbhs','smlalbbcc','smlalbblo','smlalbbmi','smlalbbpl','smlalbbvs','smlalbbvc','smlalbbhi','smlalbbls','smlalbbge','smlalbblt','smlalbbgt','smlalbble',
+ 'smlalbteq','smlalbtne','smlalbtcs','smlalbths','smlalbtcc','smlalbtlo','smlalbtmi','smlalbtpl','smlalbtvs','smlalbtvc','smlalbthi','smlalbtls','smlalbtge','smlalbtlt','smlalbtgt','smlalbtle',
+ 'smlaltbeq','smlaltbne','smlaltbcs','smlaltbhs','smlaltbcc','smlaltblo','smlaltbmi','smlaltbpl','smlaltbvs','smlaltbvc','smlaltbhi','smlaltbls','smlaltbge','smlaltblt','smlaltbgt','smlaltble',
+ 'smlaltteq','smlalttne','smlalttcs','smlaltths','smlalttcc','smlalttlo','smlalttmi','smlalttpl','smlalttvs','smlalttvc','smlaltthi','smlalttls','smlalttge','smlalttlt','smlalttgt','smlalttle',
+ 'smlabbeq','smlabbne','smlabbcs','smlabbhs','smlabbcc','smlabblo','smlabbmi','smlabbpl','smlabbvs','smlabbvc','smlabbhi','smlabbls','smlabbge','smlabblt','smlabbgt','smlabble',
+ 'smlabteq','smlabtne','smlabtcs','smlabths','smlabtcc','smlabtlo','smlabtmi','smlabtpl','smlabtvs','smlabtvc','smlabthi','smlabtls','smlabtge','smlabtlt','smlabtgt','smlabtle',
+ 'smlatbeq','smlatbne','smlatbcs','smlatbhs','smlatbcc','smlatblo','smlatbmi','smlatbpl','smlatbvs','smlatbvc','smlatbhi','smlatbls','smlatbge','smlatblt','smlatbgt','smlatble',
+ 'smlatteq','smlattne','smlattcs','smlatths','smlattcc','smlattlo','smlattmi','smlattpl','smlattvs','smlattvc','smlatthi','smlattls','smlattge','smlattlt','smlattgt','smlattle',
+ 'smlawbeq','smlawbne','smlawbcs','smlawbhs','smlawbcc','smlawblo','smlawbmi','smlawbpl','smlawbvs','smlawbvc','smlawbhi','smlawbls','smlawbge','smlawblt','smlawbgt','smlawble',
+ 'smlawteq','smlawtne','smlawtcs','smlawths','smlawtcc','smlawtlo','smlawtmi','smlawtpl','smlawtvs','smlawtvc','smlawthi','smlawtls','smlawtge','smlawtlt','smlawtgt','smlawtle',
+ /* Data Processing: Conditional Bit Operations */
+ 'ubfxeq','ubfxne','ubfxcs','ubfxhs','ubfxcc','ubfxlo','ubfxmi','ubfxpl','ubfxvs','ubfxvc','ubfxhi','ubfxls','ubfxge','ubfxlt','ubfxgt','ubfxle',
+ 'sbfxeq','sbfxne','sbfxcs','sbfxhs','sbfxcc','sbfxlo','sbfxmi','sbfxpl','sbfxvs','sbfxvc','sbfxhi','sbfxls','sbfxge','sbfxlt','sbfxgt','sbfxle',
+ 'bfceq','bfcne','bfccs','bfchs','bfccc','bfclo','bfcmi','bfcpl','bfcvs','bfcvc','bfchi','bfcls','bfcge','bfclt','bfcgt','bfcle',
+ 'bfieq','bfine','bfics','bfihs','bficc','bfilo','bfimi','bfipl','bfivs','bfivc','bfihi','bfils','bfige','bfilt','bfigt','bfile',
+ 'clzeq','clzne','clzcs','clzhs','clzcc','clzlo','clzmi','clzpl','clzvs','clzvc','clzhi','clzls','clzge','clzlt','clzgt','clzle',
+ /* ARMv7-R: Conditional Divide */
+ 'sdiveq','sdivne','sdivcs','sdivhs','sdivcc','sdivlo','sdivmi','sdivpl','sdivvs','sdivvc','sdivhi','sdivls','sdivge','sdivlt','sdivgt','sdivle',
+ 'udiveq','udivne','udivcs','udivhs','udivcc','udivlo','udivmi','udivpl','udivvs','udivvc','udivhi','udivls','udivge','udivlt','udivgt','udivle'
+ ),
+ /* Unconditional Memory Access */
+ 3 => array(
+ /* Memory Access: Unconditional Memory Loads and Prefetches */
+ 'ldm.w','ldmal.w',
+ 'ldm','ldmal',
+ 'ldmda','ldmdaal',
+ 'ldmdb','ldmdbal',
+ 'ldmib','ldmibal',
+ 'ldmia','ldmiaal',
+ 'ldmea','ldmeaal',
+ 'ldmed','ldmedal',
+ 'ldmfa','ldmfaal',
+ 'ldmfd','ldmfdal',
+ 'ldrd','ldrdal',
+ 'ldr.w','ldral.w',
+ 'ldr','ldral',
+ 'ldrh.w','ldrhal.w',
+ 'ldrh','ldrhal',
+ 'ldrb.w','ldrbal.w',
+ 'ldrb','ldrbal',
+ 'ldrsh.w','ldrshal.w',
+ 'ldrsh','ldrshal',
+ 'ldrsb.w','ldrsbal.w',
+ 'ldrsb','ldrsbal',
+ 'ldrt','ldrtal',
+ 'ldrht','ldrhtal',
+ 'ldrbt','ldrbtal',
+ 'ldrsht','ldrshtal',
+ 'ldrsbt','ldrsbtal',
+ 'pop.w','popal.w',
+ 'pop','popal',
+ 'pld','pldal',
+ 'pldw','pldwal',
+ 'pli','plial',
+ /* Memory Access: Unconditional Memory Stores */
+ 'stm.w','stmal.w',
+ 'stm','stmal',
+ 'stmda','stmdaal',
+ 'stmdb','stmdbal',
+ 'stmib','stmibal',
+ 'stmia','stmiaal',
+ 'stmea','stmeaal',
+ 'stmed','stmedal',
+ 'stdfa','stdfaal',
+ 'stdfd','stdfdal',
+ 'strd','strdal',
+ 'str.w','stral.w',
+ 'str','stral',
+ 'strh.w','strhal.w',
+ 'strh','strhal',
+ 'strb.w','strbal.w',
+ 'strb','strbal',
+ 'strt','strtal',
+ 'strht','strhtal',
+ 'strbt','strbtal',
+ 'push.w','pushal.w',
+ 'push','pushal'
+ ),
+ /* Conditional Memory Access */
+ 4 => array(
+ /* Memory Access: Conditional Memory Loads and Prefetches */
+ 'ldmeq.w','ldmne.w','ldmcs.w','ldmhs.w','ldmcc.w','ldmlo.w','ldmmi.w','ldmpl.w','ldmvs.w','ldmvc.w','ldmhi.w','ldmls.w','ldmge.w','ldmlt.w','ldmgt.w','ldmle.w',
+ 'ldmeq','ldmne','ldmcs','ldmhs','ldmcc','ldmlo','ldmmi','ldmpl','ldmvs','ldmvc','ldmhi','ldmls','ldmge','ldmlt','ldmgt','ldmle',
+ 'ldmdaeq','ldmdane','ldmdacs','ldmdahs','ldmdacc','ldmdalo','ldmdami','ldmdapl','ldmdavs','ldmdavc','ldmdahi','ldmdals','ldmdage','ldmdalt','ldmdagt','ldmdale',
+ 'ldmdbeq','ldmdbne','ldmdbcs','ldmdbhs','ldmdbcc','ldmdblo','ldmdbmi','ldmdbpl','ldmdbvs','ldmdbvc','ldmdbhi','ldmdbls','ldmdbge','ldmdblt','ldmdbgt','ldmdble',
+ 'ldmibeq','ldmibne','ldmibcs','ldmibhs','ldmibcc','ldmiblo','ldmibmi','ldmibpl','ldmibvs','ldmibvc','ldmibhi','ldmibls','ldmibge','ldmiblt','ldmibgt','ldmible',
+ 'ldmiaeq','ldmiane','ldmiacs','ldmiahs','ldmiacc','ldmialo','ldmiami','ldmiapl','ldmiavs','ldmiavc','ldmiahi','ldmials','ldmiage','ldmialt','ldmiagt','ldmiale',
+ 'ldmeaeq','ldmeane','ldmeacs','ldmeahs','ldmeacc','ldmealo','ldmeami','ldmeapl','ldmeavs','ldmeavc','ldmeahi','ldmeals','ldmeage','ldmealt','ldmeagt','ldmeale',
+ 'ldmedeq','ldmedne','ldmedcs','ldmedhs','ldmedcc','ldmedlo','ldmedmi','ldmedpl','ldmedvs','ldmedvc','ldmedhi','ldmedls','ldmedge','ldmedlt','ldmedgt','ldmedle',
+ 'ldmfaeq','ldmfane','ldmfacs','ldmfahs','ldmfacc','ldmfalo','ldmfami','ldmfapl','ldmfavs','ldmfavc','ldmfahi','ldmfals','ldmfage','ldmfalt','ldmfagt','ldmfale',
+ 'ldmfdeq','ldmfdne','ldmfdcs','ldmfdhs','ldmfdcc','ldmfdlo','ldmfdmi','ldmfdpl','ldmfdvs','ldmfdvc','ldmfdhi','ldmfdls','ldmfdge','ldmfdlt','ldmfdgt','ldmfdle',
+ 'ldrdeq','ldrdne','ldrdcs','ldrdhs','ldrdcc','ldrdlo','ldrdmi','ldrdpl','ldrdvs','ldrdvc','ldrdhi','ldrdls','ldrdge','ldrdlt','ldrdgt','ldrdle',
+ 'ldreq.w','ldrne.w','ldrcs.w','ldrhs.w','ldrcc.w','ldrlo.w','ldrmi.w','ldrpl.w','ldrvs.w','ldrvc.w','ldrhi.w','ldrls.w','ldrge.w','ldrlt.w','ldrgt.w','ldrle.w',
+ 'ldreq','ldrne','ldrcs','ldrhs','ldrcc','ldrlo','ldrmi','ldrpl','ldrvs','ldrvc','ldrhi','ldrls','ldrge','ldrlt','ldrgt','ldrle',
+ 'ldrheq.w','ldrhne.w','ldrhcs.w','ldrhhs.w','ldrhcc.w','ldrhlo.w','ldrhmi.w','ldrhpl.w','ldrhvs.w','ldrhvc.w','ldrhhi.w','ldrhls.w','ldrhge.w','ldrhlt.w','ldrhgt.w','ldrhle.w',
+ 'ldrheq','ldrhne','ldrhcs','ldrhhs','ldrhcc','ldrhlo','ldrhmi','ldrhpl','ldrhvs','ldrhvc','ldrhhi','ldrhls','ldrhge','ldrhlt','ldrhgt','ldrhle',
+ 'ldrbeq.w','ldrbne.w','ldrbcs.w','ldrbhs.w','ldrbcc.w','ldrblo.w','ldrbmi.w','ldrbpl.w','ldrbvs.w','ldrbvc.w','ldrbhi.w','ldrbls.w','ldrbge.w','ldrblt.w','ldrbgt.w','ldrble.w',
+ 'ldrbeq','ldrbne','ldrbcs','ldrbhs','ldrbcc','ldrblo','ldrbmi','ldrbpl','ldrbvs','ldrbvc','ldrbhi','ldrbls','ldrbge','ldrblt','ldrbgt','ldrble',
+ 'ldrsheq.w','ldrshne.w','ldrshcs.w','ldrshhs.w','ldrshcc.w','ldrshlo.w','ldrshmi.w','ldrshpl.w','ldrshvs.w','ldrshvc.w','ldrshhi.w','ldrshls.w','ldrshge.w','ldrshlt.w','ldrshgt.w','ldrshle.w',
+ 'ldrsheq','ldrshne','ldrshcs','ldrshhs','ldrshcc','ldrshlo','ldrshmi','ldrshpl','ldrshvs','ldrshvc','ldrshhi','ldrshls','ldrshge','ldrshlt','ldrshgt','ldrshle',
+ 'ldrsbeq.w','ldrsbne.w','ldrsbcs.w','ldrsbhs.w','ldrsbcc.w','ldrsblo.w','ldrsbmi.w','ldrsbpl.w','ldrsbvs.w','ldrsbvc.w','ldrsbhi.w','ldrsbls.w','ldrsbge.w','ldrsblt.w','ldrsbgt.w','ldrsble.w',
+ 'ldrsbeq','ldrsbne','ldrsbcs','ldrsbhs','ldrsbcc','ldrsblo','ldrsbmi','ldrsbpl','ldrsbvs','ldrsbvc','ldrsbhi','ldrsbls','ldrsbge','ldrsblt','ldrsbgt','ldrsble',
+ 'ldrteq','ldrtne','ldrtcs','ldrths','ldrtcc','ldrtlo','ldrtmi','ldrtpl','ldrtvs','ldrtvc','ldrthi','ldrtls','ldrtge','ldrtlt','ldrtgt','ldrtle',
+ 'ldrhteq','ldrhtne','ldrhtcs','ldrhths','ldrhtcc','ldrhtlo','ldrhtmi','ldrhtpl','ldrhtvs','ldrhtvc','ldrhthi','ldrhtls','ldrhtge','ldrhtlt','ldrhtgt','ldrhtle',
+ 'ldrbteq','ldrbtne','ldrbtcs','ldrbths','ldrbtcc','ldrbtlo','ldrbtmi','ldrbtpl','ldrbtvs','ldrbtvc','ldrbthi','ldrbtls','ldrbtge','ldrbtlt','ldrbtgt','ldrbtle',
+ 'ldrshteq','ldrshtne','ldrshtcs','ldrshths','ldrshtcc','ldrshtlo','ldrshtmi','ldrshtpl','ldrshtvs','ldrshtvc','ldrshthi','ldrshtls','ldrshtge','ldrshtlt','ldrshtgt','ldrshtle',
+ 'ldrsbteq','ldrsbtne','ldrsbtcs','ldrsbths','ldrsbtcc','ldrsbtlo','ldrsbtmi','ldrsbtpl','ldrsbtvs','ldrsbtvc','ldrsbthi','ldrsbtls','ldrsbtge','ldrsbtlt','ldrsbtgt','ldrsbtle',
+ 'popeq.w','popne.w','popcs.w','pophs.w','popcc.w','poplo.w','popmi.w','poppl.w','popvs.w','popvc.w','pophi.w','popls.w','popge.w','poplt.w','popgt.w','pople.w',
+ 'popeq','popne','popcs','pophs','popcc','poplo','popmi','poppl','popvs','popvc','pophi','popls','popge','poplt','popgt','pople',
+ 'pldeq','pldne','pldcs','pldhs','pldcc','pldlo','pldmi','pldpl','pldvs','pldvc','pldhi','pldls','pldge','pldlt','pldgt','pldle',
+ 'pldweq','pldwne','pldwcs','pldwhs','pldwcc','pldwlo','pldwmi','pldwpl','pldwvs','pldwvc','pldwhi','pldwls','pldwge','pldwlt','pldwgt','pldwle',
+ 'plieq','pline','plics','plihs','plicc','plilo','plimi','plipl','plivs','plivc','plihi','plils','plige','plilt','pligt','plile',
+ /* Memory Access: Conditional Memory Stores */
+ 'stmeq.w','stmne.w','stmcs.w','stmhs.w','stmcc.w','stmlo.w','stmmi.w','stmpl.w','stmvs.w','stmvc.w','stmhi.w','stmls.w','stmge.w','stmlt.w','stmgt.w','stmle.w',
+ 'stmeq','stmne','stmcs','stmhs','stmcc','stmlo','stmmi','stmpl','stmvs','stmvc','stmhi','stmls','stmge','stmlt','stmgt','stmle',
+ 'stmdaeq','stmdane','stmdacs','stmdahs','stmdacc','stmdalo','stmdami','stmdapl','stmdavs','stmdavc','stmdahi','stmdals','stmdage','stmdalt','stmdagt','stmdale',
+ 'stmdbeq','stmdbne','stmdbcs','stmdbhs','stmdbcc','stmdblo','stmdbmi','stmdbpl','stmdbvs','stmdbvc','stmdbhi','stmdbls','stmdbge','stmdblt','stmdbgt','stmdble',
+ 'stmibeq','stmibne','stmibcs','stmibhs','stmibcc','stmiblo','stmibmi','stmibpl','stmibvs','stmibvc','stmibhi','stmibls','stmibge','stmiblt','stmibgt','stmible',
+ 'stmiaeq','stmiane','stmiacs','stmiahs','stmiacc','stmialo','stmiami','stmiapl','stmiavs','stmiavc','stmiahi','stmials','stmiage','stmialt','stmiagt','stmiale',
+ 'stmeaeq','stmeane','stmeacs','stmeahs','stmeacc','stmealo','stmeami','stmeapl','stmeavs','stmeavc','stmeahi','stmeals','stmeage','stmealt','stmeagt','stmeale',
+ 'stmedeq','stmedne','stmedcs','stmedhs','stmedcc','stmedlo','stmedmi','stmedpl','stmedvs','stmedvc','stmedhi','stmedls','stmedge','stmedlt','stmedgt','stmedle',
+ 'stdfaeq','stdfane','stdfacs','stdfahs','stdfacc','stdfalo','stdfami','stdfapl','stdfavs','stdfavc','stdfahi','stdfals','stdfage','stdfalt','stdfagt','stdfale',
+ 'stdfdeq','stdfdne','stdfdcs','stdfdhs','stdfdcc','stdfdlo','stdfdmi','stdfdpl','stdfdvs','stdfdvc','stdfdhi','stdfdls','stdfdge','stdfdlt','stdfdgt','stdfdle',
+ 'strdeq','strdne','strdcs','strdhs','strdcc','strdlo','strdmi','strdpl','strdvs','strdvc','strdhi','strdls','strdge','strdlt','strdgt','strdle',
+ 'streq.w','strne.w','strcs.w','strhs.w','strcc.w','strlo.w','strmi.w','strpl.w','strvs.w','strvc.w','strhi.w','strls.w','strge.w','strlt.w','strgt.w','strle.w',
+ 'streq','strne','strcs','strhs','strcc','strlo','strmi','strpl','strvs','strvc','strhi','strls','strge','strlt','strgt','strle',
+ 'strheq.w','strhne.w','strhcs.w','strhhs.w','strhcc.w','strhlo.w','strhmi.w','strhpl.w','strhvs.w','strhvc.w','strhhi.w','strhls.w','strhge.w','strhlt.w','strhgt.w','strhle.w',
+ 'strheq','strhne','strhcs','strhhs','strhcc','strhlo','strhmi','strhpl','strhvs','strhvc','strhhi','strhls','strhge','strhlt','strhgt','strhle',
+ 'strbeq.w','strbne.w','strbcs.w','strbhs.w','strbcc.w','strblo.w','strbmi.w','strbpl.w','strbvs.w','strbvc.w','strbhi.w','strbls.w','strbge.w','strblt.w','strbgt.w','strble.w',
+ 'strbeq','strbne','strbcs','strbhs','strbcc','strblo','strbmi','strbpl','strbvs','strbvc','strbhi','strbls','strbge','strblt','strbgt','strble',
+ 'strteq','strtne','strtcs','strths','strtcc','strtlo','strtmi','strtpl','strtvs','strtvc','strthi','strtls','strtge','strtlt','strtgt','strtle',
+ 'strhteq','strhtne','strhtcs','strhths','strhtcc','strhtlo','strhtmi','strhtpl','strhtvs','strhtvc','strhthi','strhtls','strhtge','strhtlt','strhtgt','strhtle',
+ 'strbteq','strbtne','strbtcs','strbths','strbtcc','strbtlo','strbtmi','strbtpl','strbtvs','strbtvc','strbthi','strbtls','strbtge','strbtlt','strbtgt','strbtle',
+ 'pusheq.w','pushne.w','pushcs.w','pushhs.w','pushcc.w','pushlo.w','pushmi.w','pushpl.w','pushvs.w','pushvc.w','pushhi.w','pushls.w','pushge.w','pushlt.w','pushgt.w','pushle.w',
+ 'pusheq','pushne','pushcs','pushhs','pushcc','pushlo','pushmi','pushpl','pushvs','pushvc','pushhi','pushls','pushge','pushlt','pushgt','pushle'
+ ),
+ /* Unconditional Flags-Affecting Instructions */
+ 5 => array(
+ /* Set Flags: Unconditional Addition and Subtraction */
+ 'adds.w','addsal.w',
+ 'adds','addsal',
+ 'subs.w','subsal.w',
+ 'subs','subsal',
+ 'rsbs.w','rsbsal.w',
+ 'rsbs','rsbsal',
+ 'negs.w','negsal.w',
+ 'negs','negsal',
+ 'adcs.w','adcsal.w',
+ 'adcs','adcsal',
+ 'sbcs.w','sbcsal.w',
+ 'sbcs','sbcsal',
+ 'rscs','rscsal',
+ 'cmp.w','cmpal.w',
+ 'cmp','cmpal',
+ 'cmn.w','cmnal.w',
+ 'cmn','cmnal',
+ /* Set Flags: Unconditional Logical */
+ 'ands.w','andsal.w',
+ 'ands','andsal',
+ 'bics.w','bicsal.w',
+ 'bics','bicsal',
+ 'orrs.w','orrsal.w',
+ 'orrs','orrsal',
+ 'orns.w','ornsal.w',
+ 'orns','ornsal',
+ 'eors.w','eorsal.w',
+ 'eors','eorsal',
+ 'mvns.w','mvnsal.w',
+ 'mvns','mvnsal',
+ 'movs.w','movsal.w',
+ 'movs','movsal',
+ 'teq','teqal',
+ 'tst.w','tstal.w',
+ 'tst','tstal',
+ 'mrs','mrsal',
+ 'msr','msral',
+ /* Set Flags: Unconditional Shifts and Rotates */
+ 'asrs.w','asrsal.w',
+ 'asrs','asrsal',
+ 'lsls.w','lslsal.w',
+ 'lsls','lslsal',
+ 'lsrs.w','lsrsal.w',
+ 'lsrs','lsrsal',
+ 'rors.w','rorsal.w',
+ 'rors','rorsal',
+ 'rrxs','rrxsal',
+ /* Set Flags: Unconditional Multiply and Multiply-Add */
+ 'mlas','mlasal',
+ 'smulls','smullsal',
+ 'umulls','umullsal',
+ 'smlals','smlalsal',
+ 'umlals','umlalsal'
+ ),
+ /* Conditional Flags-Affecting Instructions */
+ 6 => array(
+ /* Set Flags: Conditional Addition and Subtraction */
+ 'addseq.w','addsne.w','addscs.w','addshs.w','addscc.w','addslo.w','addsmi.w','addspl.w','addsvs.w','addsvc.w','addshi.w','addsls.w','addsge.w','addslt.w','addsgt.w','addsle.w',
+ 'addseq','addsne','addscs','addshs','addscc','addslo','addsmi','addspl','addsvs','addsvc','addshi','addsls','addsge','addslt','addsgt','addsle',
+ 'subseq.w','subsne.w','subscs.w','subshs.w','subscc.w','subslo.w','subsmi.w','subspl.w','subsvs.w','subsvc.w','subshi.w','subsls.w','subsge.w','subslt.w','subsgt.w','subsle.w',
+ 'subseq','subsne','subscs','subshs','subscc','subslo','subsmi','subspl','subsvs','subsvc','subshi','subsls','subsge','subslt','subsgt','subsle',
+ 'rsbseq.w','rsbsne.w','rsbscs.w','rsbshs.w','rsbscc.w','rsbslo.w','rsbsmi.w','rsbspl.w','rsbsvs.w','rsbsvc.w','rsbshi.w','rsbsls.w','rsbsge.w','rsbslt.w','rsbsgt.w','rsbsle.w',
+ 'rsbseq','rsbsne','rsbscs','rsbshs','rsbscc','rsbslo','rsbsmi','rsbspl','rsbsvs','rsbsvc','rsbshi','rsbsls','rsbsge','rsbslt','rsbsgt','rsbsle',
+ 'negseq.w','negsne.w','negscs.w','negshs.w','negscc.w','negslo.w','negsmi.w','negspl.w','negsvs.w','negsvc.w','negshi.w','negsls.w','negsge.w','negslt.w','negsgt.w','negsle.w',
+ 'negseq','negsne','negscs','negshs','negscc','negslo','negsmi','negspl','negsvs','negsvc','negshi','negsls','negsge','negslt','negsgt','negsle',
+ 'adcseq.w','adcsne.w','adcscs.w','adcshs.w','adcscc.w','adcslo.w','adcsmi.w','adcspl.w','adcsvs.w','adcsvc.w','adcshi.w','adcsls.w','adcsge.w','adcslt.w','adcsgt.w','adcsle.w',
+ 'adcseq','adcsne','adcscs','adcshs','adcscc','adcslo','adcsmi','adcspl','adcsvs','adcsvc','adcshi','adcsls','adcsge','adcslt','adcsgt','adcsle',
+ 'sbcseq.w','sbcsne.w','sbcscs.w','sbcshs.w','sbcscc.w','sbcslo.w','sbcsmi.w','sbcspl.w','sbcsvs.w','sbcsvc.w','sbcshi.w','sbcsls.w','sbcsge.w','sbcslt.w','sbcsgt.w','sbcsle.w',
+ 'sbcseq','sbcsne','sbcscs','sbcshs','sbcscc','sbcslo','sbcsmi','sbcspl','sbcsvs','sbcsvc','sbcshi','sbcsls','sbcsge','sbcslt','sbcsgt','sbcsle',
+ 'rscseq','rscsne','rscscs','rscshs','rscscc','rscslo','rscsmi','rscspl','rscsvs','rscsvc','rscshi','rscsls','rscsge','rscslt','rscsgt','rscsle',
+ 'cmpeq.w','cmpne.w','cmpcs.w','cmphs.w','cmpcc.w','cmplo.w','cmpmi.w','cmppl.w','cmpvs.w','cmpvc.w','cmphi.w','cmpls.w','cmpge.w','cmplt.w','cmpgt.w','cmple.w',
+ 'cmpeq','cmpne','cmpcs','cmphs','cmpcc','cmplo','cmpmi','cmppl','cmpvs','cmpvc','cmphi','cmpls','cmpge','cmplt','cmpgt','cmple',
+ 'cmneq.w','cmnne.w','cmncs.w','cmnhs.w','cmncc.w','cmnlo.w','cmnmi.w','cmnpl.w','cmnvs.w','cmnvc.w','cmnhi.w','cmnls.w','cmnge.w','cmnlt.w','cmngt.w','cmnle.w',
+ 'cmneq','cmnne','cmncs','cmnhs','cmncc','cmnlo','cmnmi','cmnpl','cmnvs','cmnvc','cmnhi','cmnls','cmnge','cmnlt','cmngt','cmnle',
+ /* Set Flags: Conditional Logical */
+ 'andseq.w','andsne.w','andscs.w','andshs.w','andscc.w','andslo.w','andsmi.w','andspl.w','andsvs.w','andsvc.w','andshi.w','andsls.w','andsge.w','andslt.w','andsgt.w','andsle.w',
+ 'andseq','andsne','andscs','andshs','andscc','andslo','andsmi','andspl','andsvs','andsvc','andshi','andsls','andsge','andslt','andsgt','andsle',
+ 'bicseq.w','bicsne.w','bicscs.w','bicshs.w','bicscc.w','bicslo.w','bicsmi.w','bicspl.w','bicsvs.w','bicsvc.w','bicshi.w','bicsls.w','bicsge.w','bicslt.w','bicsgt.w','bicsle.w',
+ 'bicseq','bicsne','bicscs','bicshs','bicscc','bicslo','bicsmi','bicspl','bicsvs','bicsvc','bicshi','bicsls','bicsge','bicslt','bicsgt','bicsle',
+ 'orrseq.w','orrsne.w','orrscs.w','orrshs.w','orrscc.w','orrslo.w','orrsmi.w','orrspl.w','orrsvs.w','orrsvc.w','orrshi.w','orrsls.w','orrsge.w','orrslt.w','orrsgt.w','orrsle.w',
+ 'orrseq','orrsne','orrscs','orrshs','orrscc','orrslo','orrsmi','orrspl','orrsvs','orrsvc','orrshi','orrsls','orrsge','orrslt','orrsgt','orrsle',
+ 'ornseq.w','ornsne.w','ornscs.w','ornshs.w','ornscc.w','ornslo.w','ornsmi.w','ornspl.w','ornsvs.w','ornsvc.w','ornshi.w','ornsls.w','ornsge.w','ornslt.w','ornsgt.w','ornsle.w',
+ 'ornseq','ornsne','ornscs','ornshs','ornscc','ornslo','ornsmi','ornspl','ornsvs','ornsvc','ornshi','ornsls','ornsge','ornslt','ornsgt','ornsle',
+ 'eorseq.w','eorsne.w','eorscs.w','eorshs.w','eorscc.w','eorslo.w','eorsmi.w','eorspl.w','eorsvs.w','eorsvc.w','eorshi.w','eorsls.w','eorsge.w','eorslt.w','eorsgt.w','eorsle.w',
+ 'eorseq','eorsne','eorscs','eorshs','eorscc','eorslo','eorsmi','eorspl','eorsvs','eorsvc','eorshi','eorsls','eorsge','eorslt','eorsgt','eorsle',
+ 'mvnseq.w','mvnsne.w','mvnscs.w','mvnshs.w','mvnscc.w','mvnslo.w','mvnsmi.w','mvnspl.w','mvnsvs.w','mvnsvc.w','mvnshi.w','mvnsls.w','mvnsge.w','mvnslt.w','mvnsgt.w','mvnsle.w',
+ 'mvnseq','mvnsne','mvnscs','mvnshs','mvnscc','mvnslo','mvnsmi','mvnspl','mvnsvs','mvnsvc','mvnshi','mvnsls','mvnsge','mvnslt','mvnsgt','mvnsle',
+ 'movseq.w','movsne.w','movscs.w','movshs.w','movscc.w','movslo.w','movsmi.w','movspl.w','movsvs.w','movsvc.w','movshi.w','movsls.w','movsge.w','movslt.w','movsgt.w','movsle.w',
+ 'movseq','movsne','movscs','movshs','movscc','movslo','movsmi','movspl','movsvs','movsvc','movshi','movsls','movsge','movslt','movsgt','movsle',
+ 'teqeq','teqne','teqcs','teqhs','teqcc','teqlo','teqmi','teqpl','teqvs','teqvc','teqhi','teqls','teqge','teqlt','teqgt','teqle',
+ 'tsteq.w','tstne.w','tstcs.w','tsths.w','tstcc.w','tstlo.w','tstmi.w','tstpl.w','tstvs.w','tstvc.w','tsthi.w','tstls.w','tstge.w','tstlt.w','tstgt.w','tstle.w',
+ 'tsteq','tstne','tstcs','tsths','tstcc','tstlo','tstmi','tstpl','tstvs','tstvc','tsthi','tstls','tstge','tstlt','tstgt','tstle',
+ 'mrseq','mrsne','mrscs','mrshs','mrscc','mrslo','mrsmi','mrspl','mrsvs','mrsvc','mrshi','mrsls','mrsge','mrslt','mrsgt','mrsle',
+ 'msreq','msrne','msrcs','msrhs','msrcc','msrlo','msrmi','msrpl','msrvs','msrvc','msrhi','msrls','msrge','msrlt','msrgt','msrle',
+ /* Set Flags: Conditional Shifts and Rotates */
+ 'asrseq.w','asrsne.w','asrscs.w','asrshs.w','asrscc.w','asrslo.w','asrsmi.w','asrspl.w','asrsvs.w','asrsvc.w','asrshi.w','asrsls.w','asrsge.w','asrslt.w','asrsgt.w','asrsle.w',
+ 'asrseq','asrsne','asrscs','asrshs','asrscc','asrslo','asrsmi','asrspl','asrsvs','asrsvc','asrshi','asrsls','asrsge','asrslt','asrsgt','asrsle',
+ 'lslseq.w','lslsne.w','lslscs.w','lslshs.w','lslscc.w','lslslo.w','lslsmi.w','lslspl.w','lslsvs.w','lslsvc.w','lslshi.w','lslsls.w','lslsge.w','lslslt.w','lslsgt.w','lslsle.w',
+ 'lslseq','lslsne','lslscs','lslshs','lslscc','lslslo','lslsmi','lslspl','lslsvs','lslsvc','lslshi','lslsls','lslsge','lslslt','lslsgt','lslsle',
+ 'lsrseq.w','lsrsne.w','lsrscs.w','lsrshs.w','lsrscc.w','lsrslo.w','lsrsmi.w','lsrspl.w','lsrsvs.w','lsrsvc.w','lsrshi.w','lsrsls.w','lsrsge.w','lsrslt.w','lsrsgt.w','lsrsle.w',
+ 'lsrseq','lsrsne','lsrscs','lsrshs','lsrscc','lsrslo','lsrsmi','lsrspl','lsrsvs','lsrsvc','lsrshi','lsrsls','lsrsge','lsrslt','lsrsgt','lsrsle',
+ 'rorseq.w','rorsne.w','rorscs.w','rorshs.w','rorscc.w','rorslo.w','rorsmi.w','rorspl.w','rorsvs.w','rorsvc.w','rorshi.w','rorsls.w','rorsge.w','rorslt.w','rorsgt.w','rorsle.w',
+ 'rorseq','rorsne','rorscs','rorshs','rorscc','rorslo','rorsmi','rorspl','rorsvs','rorsvc','rorshi','rorsls','rorsge','rorslt','rorsgt','rorsle',
+ 'rrxseq','rrxsne','rrxscs','rrxshs','rrxscc','rrxslo','rrxsmi','rrxspl','rrxsvs','rrxsvc','rrxshi','rrxsls','rrxsge','rrxslt','rrxsgt','rrxsle',
+ /* Set Flags: Conditional Multiply and Multiply-Add */
+ 'mlaseq','mlasne','mlascs','mlashs','mlascc','mlaslo','mlasmi','mlaspl','mlasvs','mlasvc','mlashi','mlasls','mlasge','mlaslt','mlasgt','mlasle',
+ 'smullseq','smullsne','smullscs','smullshs','smullscc','smullslo','smullsmi','smullspl','smullsvs','smullsvc','smullshi','smullsls','smullsge','smullslt','smullsgt','smullsle',
+ 'umullseq','umullsne','umullscs','umullshs','umullscc','umullslo','umullsmi','umullspl','umullsvs','umullsvc','umullshi','umullsls','umullsge','umullslt','umullsgt','umullsle',
+ 'smlalseq','smlalsne','smlalscs','smlalshs','smlalscc','smlalslo','smlalsmi','smlalspl','smlalsvs','smlalsvc','smlalshi','smlalsls','smlalsge','smlalslt','smlalsgt','smlalsle',
+ 'umlalseq','umlalsne','umlalscs','umlalshs','umlalscc','umlalslo','umlalsmi','umlalspl','umlalsvs','umlalsvc','umlalshi','umlalsls','umlalsge','umlalslt','umlalsgt','umlalsle'
+ ),
+ /* Unconditional Flow Control Instructions */
+ 7 => array(
+ /* Flow Control: Unconditional Branch and If-Then-Else */
+ 'b.w','bal.w',
+ 'b','bal',
+ 'bl','blal',
+ 'bx','bxal',
+ 'blx','blxal',
+ 'bxj','bxjal',
+ 'cbnz',
+ 'cbz',
+ 'tbb','tbbal',
+ 'tbh','tbhal',
+ 'it',
+ 'itt',
+ 'ite',
+ 'ittt',
+ 'itet',
+ 'itte',
+ 'itee',
+ 'itttt',
+ 'itett',
+ 'ittet',
+ 'iteet',
+ 'ittte',
+ 'itete',
+ 'ittee',
+ 'iteee'
+ ),
+ /* Conditional Flow Control Instructions */
+ 8 => array(
+ /* Flow Control: Conditional Branch and If-Then-Else */
+ 'beq.w','bne.w','bcs.w','bhs.w','bcc.w','blo.w','bmi.w','bpl.w','bvs.w','bvc.w','bhi.w','bls.w','bge.w','blt.w','bgt.w','ble.w',
+ 'beq','bne','bcs','bhs','bcc','blo','bmi','bpl','bvs','bvc','bhi','bls','bge','blt','bgt','ble',
+ 'bleq','blne','blcs','blhs','blcc','bllo','blmi','blpl','blvs','blvc','blhi','blls','blge','bllt','blgt','blle',
+ 'bxeq','bxne','bxcs','bxhs','bxcc','bxlo','bxmi','bxpl','bxvs','bxvc','bxhi','bxls','bxge','bxlt','bxgt','bxle',
+ 'blxeq','blxne','blxcs','blxhs','blxcc','blxlo','blxmi','blxpl','blxvs','blxvc','blxhi','blxls','blxge','blxlt','blxgt','blxle',
+ 'bxjeq','bxjne','bxjcs','bxjhs','bxjcc','bxjlo','bxjmi','bxjpl','bxjvs','bxjvc','bxjhi','bxjls','bxjge','bxjlt','bxjgt','bxjle',
+ 'tbbeq','tbbne','tbbcs','tbbhs','tbbcc','tbblo','tbbmi','tbbpl','tbbvs','tbbvc','tbbhi','tbbls','tbbge','tbblt','tbbgt','tbble',
+ 'tbheq','tbhne','tbhcs','tbhhs','tbhcc','tbhlo','tbhmi','tbhpl','tbhvs','tbhvc','tbhhi','tbhls','tbhge','tbhlt','tbhgt','tbhle'
+ ),
+ /* Unconditional Syncronization Instructions */
+ 9 => array(
+ /* Synchronization: Unconditional Loads, Stores and Barriers */
+ 'ldrexd','ldrexdal',
+ 'ldrex','ldrexal',
+ 'ldrexh','ldrexhal',
+ 'ldrexb','ldrexbal',
+ 'strexd','strexdal',
+ 'strex','strexal',
+ 'strexh','strexhal',
+ 'strexb','strexbal',
+ 'clrex','clrexal',
+ 'swp','swpal',
+ 'swpb','swpbal',
+ 'dbc','dbcal',
+ 'dsb','dsbal',
+ 'isb','isbal',
+ 'yield.w','yieldal.w',
+ 'yield','yieldal',
+ 'nop.w','nopal.w',
+ 'nop','nopal'
+ ),
+ /* Conditional Syncronization Instructions */
+ 10 => array(
+ /* Synchronization: Conditional Loads, Stores and Barriers */
+ 'ldrexdeq','ldrexdne','ldrexdcs','ldrexdhs','ldrexdcc','ldrexdlo','ldrexdmi','ldrexdpl','ldrexdvs','ldrexdvc','ldrexdhi','ldrexdls','ldrexdge','ldrexdlt','ldrexdgt','ldrexdle',
+ 'ldrexeq','ldrexne','ldrexcs','ldrexhs','ldrexcc','ldrexlo','ldrexmi','ldrexpl','ldrexvs','ldrexvc','ldrexhi','ldrexls','ldrexge','ldrexlt','ldrexgt','ldrexle',
+ 'ldrexheq','ldrexhne','ldrexhcs','ldrexhhs','ldrexhcc','ldrexhlo','ldrexhmi','ldrexhpl','ldrexhvs','ldrexhvc','ldrexhhi','ldrexhls','ldrexhge','ldrexhlt','ldrexhgt','ldrexhle',
+ 'ldrexbeq','ldrexbne','ldrexbcs','ldrexbhs','ldrexbcc','ldrexblo','ldrexbmi','ldrexbpl','ldrexbvs','ldrexbvc','ldrexbhi','ldrexbls','ldrexbge','ldrexblt','ldrexbgt','ldrexble',
+ 'strexdeq','strexdne','strexdcs','strexdhs','strexdcc','strexdlo','strexdmi','strexdpl','strexdvs','strexdvc','strexdhi','strexdls','strexdge','strexdlt','strexdgt','strexdle',
+ 'strexeq','strexne','strexcs','strexhs','strexcc','strexlo','strexmi','strexpl','strexvs','strexvc','strexhi','strexls','strexge','strexlt','strexgt','strexle',
+ 'strexheq','strexhne','strexhcs','strexhhs','strexhcc','strexhlo','strexhmi','strexhpl','strexhvs','strexhvc','strexhhi','strexhls','strexhge','strexhlt','strexhgt','strexhle',
+ 'strexbeq','strexbne','strexbcs','strexbhs','strexbcc','strexblo','strexbmi','strexbpl','strexbvs','strexbvc','strexbhi','strexbls','strexbge','strexblt','strexbgt','strexble',
+ 'clrexeq','clrexne','clrexcs','clrexhs','clrexcc','clrexlo','clrexmi','clrexpl','clrexvs','clrexvc','clrexhi','clrexls','clrexge','clrexlt','clrexgt','clrexle',
+ 'swpeq','swpne','swpcs','swphs','swpcc','swplo','swpmi','swppl','swpvs','swpvc','swphi','swpls','swpge','swplt','swpgt','swple',
+ 'swpbeq','swpbne','swpbcs','swpbhs','swpbcc','swpblo','swpbmi','swpbpl','swpbvs','swpbvc','swpbhi','swpbls','swpbge','swpblt','swpbgt','swpble',
+ 'dbceq','dbcne','dbccs','dbchs','dbccc','dbclo','dbcmi','dbcpl','dbcvs','dbcvc','dbchi','dbcls','dbcge','dbclt','dbcgt','dbcle',
+ 'dsbeq','dsbne','dsbcs','dsbhs','dsbcc','dsblo','dsbmi','dsbpl','dsbvs','dsbvc','dsbhi','dsbls','dsbge','dsblt','dsbgt','dsble',
+ 'isbeq','isbne','isbcs','isbhs','isbcc','isblo','isbmi','isbpl','isbvs','isbvc','isbhi','isbls','isbge','isblt','isbgt','isble',
+ 'yieldeq.w','yieldne.w','yieldcs.w','yieldhs.w','yieldcc.w','yieldlo.w','yieldmi.w','yieldpl.w','yieldvs.w','yieldvc.w','yieldhi.w','yieldls.w','yieldge.w','yieldlt.w','yieldgt.w','yieldle.w',
+ 'yieldeq','yieldne','yieldcs','yieldhs','yieldcc','yieldlo','yieldmi','yieldpl','yieldvs','yieldvc','yieldhi','yieldls','yieldge','yieldlt','yieldgt','yieldle',
+ 'nopeq.w','nopne.w','nopcs.w','nophs.w','nopcc.w','noplo.w','nopmi.w','noppl.w','nopvs.w','nopvc.w','nophi.w','nopls.w','nopge.w','noplt.w','nopgt.w','nople.w',
+ 'nopeq','nopne','nopcs','nophs','nopcc','noplo','nopmi','noppl','nopvs','nopvc','nophi','nopls','nopge','noplt','nopgt','nople'
+ ),
+ /* Unconditional ARMv6 SIMD */
+ 11 => array(
+ /* ARMv6 SIMD: Unconditional Addition, Subtraction & Saturation */
+ 'sadd16','sadd16al',
+ 'sadd8','sadd8al',
+ 'uadd16','uadd16al',
+ 'uadd8','uadd8al',
+ 'ssub16','ssub16al',
+ 'ssub8','ssub8al',
+ 'usub16','usub16al',
+ 'usub8','usub8al',
+ 'sasx','sasxal',
+ 'ssax','ssaxal',
+ 'uasx','uasxal',
+ 'usax','usaxal',
+ 'usad8','usad8al',
+ 'usada8','usada8al',
+ /* ARMv6 SIMD: Unconditional Halving Addition & Subtraction */
+ 'shadd16','shadd16al',
+ 'shadd8','shadd8al',
+ 'uhadd16','uhadd16al',
+ 'uhadd8','uhadd8al',
+ 'shsub16','shsub16al',
+ 'shsub8','shsub8al',
+ 'uhsub16','uhsub16al',
+ 'uhsub8','uhsub8al',
+ 'shasx','shasxal',
+ 'shsax','shsaxal',
+ 'uhasx','uhasxal',
+ 'uhsax','uhsaxal',
+ /* ARMv6 SIMD: Unconditional Saturating Operations */
+ 'qadd','qaddal',
+ 'qadd16','qadd16al',
+ 'qadd8','qadd8al',
+ 'uqadd16','uqadd16al',
+ 'uqadd8','uqadd8al',
+ 'qsub','qsubal',
+ 'qsub16','qsub16al',
+ 'qsub8','qsub8al',
+ 'uqsub16','uqsub16al',
+ 'uqsub8','uqsub8al',
+ 'qasx','qasxal',
+ 'qsax','qsaxal',
+ 'uqasx','uqasxal',
+ 'uqsax','uqsaxal',
+ 'qdadd','qdaddal',
+ 'qdsub','qdsubal',
+ 'ssat','ssatal',
+ 'ssat16','ssat16al',
+ 'usat','usatal',
+ 'usat16','usat16al',
+ /* ARMv6 SIMD: Unconditional Permutation and Combine Operations */
+ 'sxtah','sxtahal',
+ 'sxtab','sxtabal',
+ 'sxtab16','sxtab16al',
+ 'uxtah','uxtahal',
+ 'uxtab','uxtabal',
+ 'uxtab16','uxtab16al',
+ 'sxth.w','sxthal.w',
+ 'sxth','sxthal',
+ 'sxtb.w','sxtbal.w',
+ 'sxtb','sxtbal',
+ 'sxtb16','sxtb16al',
+ 'uxth.w','uxthal.w',
+ 'uxth','uxthal',
+ 'uxtb.w','uxtbal.w',
+ 'uxtb','uxtbal',
+ 'uxtb16','uxtb16al',
+ 'pkhbt','pkhbtal',
+ 'pkhtb','pkhtbal',
+ 'rbit','rbital',
+ 'rev.w','reval.w',
+ 'rev','reval',
+ 'rev16.w','rev16al.w',
+ 'rev16','rev16al',
+ 'revsh.w','revshal.w',
+ 'revsh','revshal',
+ 'sel','selal',
+ /* ARMv6 SIMD: Unconditional Multiply and Multiply-Add */
+ 'smlad','smladal',
+ 'smladx','smladxal',
+ 'smlsd','smlsdal',
+ 'smlsdx','smlsdxal',
+ 'smlald','smlaldal',
+ 'smlaldx','smlaldxal',
+ 'smlsld','smlsldal',
+ 'smlsldx','smlsldxal',
+ 'smmul','smmulal',
+ 'smmulr','smmulral',
+ 'smmla','smmlaal',
+ 'smmlar','smmlaral',
+ 'smmls','smmlsal',
+ 'smmlsr','smmlsral',
+ 'smuad','smuadal',
+ 'smuadx','smuadxal',
+ 'smusd','smusdal',
+ 'smusdx','smusdxal',
+ 'umaal','umaalal'
+ ),
+ /* Conditional ARMv6 SIMD */
+ 12 => array(
+ /* ARMv6 SIMD: Conditional Addition, Subtraction & Saturation */
+ 'sadd16eq','sadd16ne','sadd16cs','sadd16hs','sadd16cc','sadd16lo','sadd16mi','sadd16pl','sadd16vs','sadd16vc','sadd16hi','sadd16ls','sadd16ge','sadd16lt','sadd16gt','sadd16le',
+ 'sadd8eq','sadd8ne','sadd8cs','sadd8hs','sadd8cc','sadd8lo','sadd8mi','sadd8pl','sadd8vs','sadd8vc','sadd8hi','sadd8ls','sadd8ge','sadd8lt','sadd8gt','sadd8le',
+ 'uadd16eq','uadd16ne','uadd16cs','uadd16hs','uadd16cc','uadd16lo','uadd16mi','uadd16pl','uadd16vs','uadd16vc','uadd16hi','uadd16ls','uadd16ge','uadd16lt','uadd16gt','uadd16le',
+ 'uadd8eq','uadd8ne','uadd8cs','uadd8hs','uadd8cc','uadd8lo','uadd8mi','uadd8pl','uadd8vs','uadd8vc','uadd8hi','uadd8ls','uadd8ge','uadd8lt','uadd8gt','uadd8le',
+ 'ssub16eq','ssub16ne','ssub16cs','ssub16hs','ssub16cc','ssub16lo','ssub16mi','ssub16pl','ssub16vs','ssub16vc','ssub16hi','ssub16ls','ssub16ge','ssub16lt','ssub16gt','ssub16le',
+ 'ssub8eq','ssub8ne','ssub8cs','ssub8hs','ssub8cc','ssub8lo','ssub8mi','ssub8pl','ssub8vs','ssub8vc','ssub8hi','ssub8ls','ssub8ge','ssub8lt','ssub8gt','ssub8le',
+ 'usub16eq','usub16ne','usub16cs','usub16hs','usub16cc','usub16lo','usub16mi','usub16pl','usub16vs','usub16vc','usub16hi','usub16ls','usub16ge','usub16lt','usub16gt','usub16le',
+ 'usub8eq','usub8ne','usub8cs','usub8hs','usub8cc','usub8lo','usub8mi','usub8pl','usub8vs','usub8vc','usub8hi','usub8ls','usub8ge','usub8lt','usub8gt','usub8le',
+ 'sasxeq','sasxne','sasxcs','sasxhs','sasxcc','sasxlo','sasxmi','sasxpl','sasxvs','sasxvc','sasxhi','sasxls','sasxge','sasxlt','sasxgt','sasxle',
+ 'ssaxeq','ssaxne','ssaxcs','ssaxhs','ssaxcc','ssaxlo','ssaxmi','ssaxpl','ssaxvs','ssaxvc','ssaxhi','ssaxls','ssaxge','ssaxlt','ssaxgt','ssaxle',
+ 'uasxeq','uasxne','uasxcs','uasxhs','uasxcc','uasxlo','uasxmi','uasxpl','uasxvs','uasxvc','uasxhi','uasxls','uasxge','uasxlt','uasxgt','uasxle',
+ 'usaxeq','usaxne','usaxcs','usaxhs','usaxcc','usaxlo','usaxmi','usaxpl','usaxvs','usaxvc','usaxhi','usaxls','usaxge','usaxlt','usaxgt','usaxle',
+ 'usad8eq','usad8ne','usad8cs','usad8hs','usad8cc','usad8lo','usad8mi','usad8pl','usad8vs','usad8vc','usad8hi','usad8ls','usad8ge','usad8lt','usad8gt','usad8le',
+ 'usada8eq','usada8ne','usada8cs','usada8hs','usada8cc','usada8lo','usada8mi','usada8pl','usada8vs','usada8vc','usada8hi','usada8ls','usada8ge','usada8lt','usada8gt','usada8le',
+ /* ARMv6 SIMD: Conditional Halving Addition & Subtraction */
+ 'shadd16eq','shadd16ne','shadd16cs','shadd16hs','shadd16cc','shadd16lo','shadd16mi','shadd16pl','shadd16vs','shadd16vc','shadd16hi','shadd16ls','shadd16ge','shadd16lt','shadd16gt','shadd16le',
+ 'shadd8eq','shadd8ne','shadd8cs','shadd8hs','shadd8cc','shadd8lo','shadd8mi','shadd8pl','shadd8vs','shadd8vc','shadd8hi','shadd8ls','shadd8ge','shadd8lt','shadd8gt','shadd8le',
+ 'uhadd16eq','uhadd16ne','uhadd16cs','uhadd16hs','uhadd16cc','uhadd16lo','uhadd16mi','uhadd16pl','uhadd16vs','uhadd16vc','uhadd16hi','uhadd16ls','uhadd16ge','uhadd16lt','uhadd16gt','uhadd16le',
+ 'uhadd8eq','uhadd8ne','uhadd8cs','uhadd8hs','uhadd8cc','uhadd8lo','uhadd8mi','uhadd8pl','uhadd8vs','uhadd8vc','uhadd8hi','uhadd8ls','uhadd8ge','uhadd8lt','uhadd8gt','uhadd8le',
+ 'shsub16eq','shsub16ne','shsub16cs','shsub16hs','shsub16cc','shsub16lo','shsub16mi','shsub16pl','shsub16vs','shsub16vc','shsub16hi','shsub16ls','shsub16ge','shsub16lt','shsub16gt','shsub16le',
+ 'shsub8eq','shsub8ne','shsub8cs','shsub8hs','shsub8cc','shsub8lo','shsub8mi','shsub8pl','shsub8vs','shsub8vc','shsub8hi','shsub8ls','shsub8ge','shsub8lt','shsub8gt','shsub8le',
+ 'uhsub16eq','uhsub16ne','uhsub16cs','uhsub16hs','uhsub16cc','uhsub16lo','uhsub16mi','uhsub16pl','uhsub16vs','uhsub16vc','uhsub16hi','uhsub16ls','uhsub16ge','uhsub16lt','uhsub16gt','uhsub16le',
+ 'uhsub8eq','uhsub8ne','uhsub8cs','uhsub8hs','uhsub8cc','uhsub8lo','uhsub8mi','uhsub8pl','uhsub8vs','uhsub8vc','uhsub8hi','uhsub8ls','uhsub8ge','uhsub8lt','uhsub8gt','uhsub8le',
+ 'shasxeq','shasxne','shasxcs','shasxhs','shasxcc','shasxlo','shasxmi','shasxpl','shasxvs','shasxvc','shasxhi','shasxls','shasxge','shasxlt','shasxgt','shasxle',
+ 'shsaxeq','shsaxne','shsaxcs','shsaxhs','shsaxcc','shsaxlo','shsaxmi','shsaxpl','shsaxvs','shsaxvc','shsaxhi','shsaxls','shsaxge','shsaxlt','shsaxgt','shsaxle',
+ 'uhasxeq','uhasxne','uhasxcs','uhasxhs','uhasxcc','uhasxlo','uhasxmi','uhasxpl','uhasxvs','uhasxvc','uhasxhi','uhasxls','uhasxge','uhasxlt','uhasxgt','uhasxle',
+ 'uhsaxeq','uhsaxne','uhsaxcs','uhsaxhs','uhsaxcc','uhsaxlo','uhsaxmi','uhsaxpl','uhsaxvs','uhsaxvc','uhsaxhi','uhsaxls','uhsaxge','uhsaxlt','uhsaxgt','uhsaxle',
+ /* ARMv6 SIMD: Conditional Saturating Operations */
+ 'qaddeq','qaddne','qaddcs','qaddhs','qaddcc','qaddlo','qaddmi','qaddpl','qaddvs','qaddvc','qaddhi','qaddls','qaddge','qaddlt','qaddgt','qaddle',
+ 'qadd16eq','qadd16ne','qadd16cs','qadd16hs','qadd16cc','qadd16lo','qadd16mi','qadd16pl','qadd16vs','qadd16vc','qadd16hi','qadd16ls','qadd16ge','qadd16lt','qadd16gt','qadd16le',
+ 'qadd8eq','qadd8ne','qadd8cs','qadd8hs','qadd8cc','qadd8lo','qadd8mi','qadd8pl','qadd8vs','qadd8vc','qadd8hi','qadd8ls','qadd8ge','qadd8lt','qadd8gt','qadd8le',
+ 'uqadd16eq','uqadd16ne','uqadd16cs','uqadd16hs','uqadd16cc','uqadd16lo','uqadd16mi','uqadd16pl','uqadd16vs','uqadd16vc','uqadd16hi','uqadd16ls','uqadd16ge','uqadd16lt','uqadd16gt','uqadd16le',
+ 'uqadd8eq','uqadd8ne','uqadd8cs','uqadd8hs','uqadd8cc','uqadd8lo','uqadd8mi','uqadd8pl','uqadd8vs','uqadd8vc','uqadd8hi','uqadd8ls','uqadd8ge','uqadd8lt','uqadd8gt','uqadd8le',
+ 'qsubeq','qsubne','qsubcs','qsubhs','qsubcc','qsublo','qsubmi','qsubpl','qsubvs','qsubvc','qsubhi','qsubls','qsubge','qsublt','qsubgt','qsuble',
+ 'qsub16eq','qsub16ne','qsub16cs','qsub16hs','qsub16cc','qsub16lo','qsub16mi','qsub16pl','qsub16vs','qsub16vc','qsub16hi','qsub16ls','qsub16ge','qsub16lt','qsub16gt','qsub16le',
+ 'qsub8eq','qsub8ne','qsub8cs','qsub8hs','qsub8cc','qsub8lo','qsub8mi','qsub8pl','qsub8vs','qsub8vc','qsub8hi','qsub8ls','qsub8ge','qsub8lt','qsub8gt','qsub8le',
+ 'uqsub16eq','uqsub16ne','uqsub16cs','uqsub16hs','uqsub16cc','uqsub16lo','uqsub16mi','uqsub16pl','uqsub16vs','uqsub16vc','uqsub16hi','uqsub16ls','uqsub16ge','uqsub16lt','uqsub16gt','uqsub16le',
+ 'uqsub8eq','uqsub8ne','uqsub8cs','uqsub8hs','uqsub8cc','uqsub8lo','uqsub8mi','uqsub8pl','uqsub8vs','uqsub8vc','uqsub8hi','uqsub8ls','uqsub8ge','uqsub8lt','uqsub8gt','uqsub8le',
+ 'qasxeq','qasxne','qasxcs','qasxhs','qasxcc','qasxlo','qasxmi','qasxpl','qasxvs','qasxvc','qasxhi','qasxls','qasxge','qasxlt','qasxgt','qasxle',
+ 'qsaxeq','qsaxne','qsaxcs','qsaxhs','qsaxcc','qsaxlo','qsaxmi','qsaxpl','qsaxvs','qsaxvc','qsaxhi','qsaxls','qsaxge','qsaxlt','qsaxgt','qsaxle',
+ 'uqasxeq','uqasxne','uqasxcs','uqasxhs','uqasxcc','uqasxlo','uqasxmi','uqasxpl','uqasxvs','uqasxvc','uqasxhi','uqasxls','uqasxge','uqasxlt','uqasxgt','uqasxle',
+ 'uqsaxeq','uqsaxne','uqsaxcs','uqsaxhs','uqsaxcc','uqsaxlo','uqsaxmi','uqsaxpl','uqsaxvs','uqsaxvc','uqsaxhi','uqsaxls','uqsaxge','uqsaxlt','uqsaxgt','uqsaxle',
+ 'qdaddeq','qdaddne','qdaddcs','qdaddhs','qdaddcc','qdaddlo','qdaddmi','qdaddpl','qdaddvs','qdaddvc','qdaddhi','qdaddls','qdaddge','qdaddlt','qdaddgt','qdaddle',
+ 'qdsubeq','qdsubne','qdsubcs','qdsubhs','qdsubcc','qdsublo','qdsubmi','qdsubpl','qdsubvs','qdsubvc','qdsubhi','qdsubls','qdsubge','qdsublt','qdsubgt','qdsuble',
+ 'ssateq','ssatne','ssatcs','ssaths','ssatcc','ssatlo','ssatmi','ssatpl','ssatvs','ssatvc','ssathi','ssatls','ssatge','ssatlt','ssatgt','ssatle',
+ 'ssat16eq','ssat16ne','ssat16cs','ssat16hs','ssat16cc','ssat16lo','ssat16mi','ssat16pl','ssat16vs','ssat16vc','ssat16hi','ssat16ls','ssat16ge','ssat16lt','ssat16gt','ssat16le',
+ 'usateq','usatne','usatcs','usaths','usatcc','usatlo','usatmi','usatpl','usatvs','usatvc','usathi','usatls','usatge','usatlt','usatgt','usatle',
+ 'usat16eq','usat16ne','usat16cs','usat16hs','usat16cc','usat16lo','usat16mi','usat16pl','usat16vs','usat16vc','usat16hi','usat16ls','usat16ge','usat16lt','usat16gt','usat16le',
+ /* ARMv6 SIMD: Conditional Permutation and Combine Operations */
+ 'sxtaheq','sxtahne','sxtahcs','sxtahhs','sxtahcc','sxtahlo','sxtahmi','sxtahpl','sxtahvs','sxtahvc','sxtahhi','sxtahls','sxtahge','sxtahlt','sxtahgt','sxtahle',
+ 'sxtabeq','sxtabne','sxtabcs','sxtabhs','sxtabcc','sxtablo','sxtabmi','sxtabpl','sxtabvs','sxtabvc','sxtabhi','sxtabls','sxtabge','sxtablt','sxtabgt','sxtable',
+ 'sxtab16eq','sxtab16ne','sxtab16cs','sxtab16hs','sxtab16cc','sxtab16lo','sxtab16mi','sxtab16pl','sxtab16vs','sxtab16vc','sxtab16hi','sxtab16ls','sxtab16ge','sxtab16lt','sxtab16gt','sxtab16le',
+ 'uxtaheq','uxtahne','uxtahcs','uxtahhs','uxtahcc','uxtahlo','uxtahmi','uxtahpl','uxtahvs','uxtahvc','uxtahhi','uxtahls','uxtahge','uxtahlt','uxtahgt','uxtahle',
+ 'uxtabeq','uxtabne','uxtabcs','uxtabhs','uxtabcc','uxtablo','uxtabmi','uxtabpl','uxtabvs','uxtabvc','uxtabhi','uxtabls','uxtabge','uxtablt','uxtabgt','uxtable',
+ 'uxtab16eq','uxtab16ne','uxtab16cs','uxtab16hs','uxtab16cc','uxtab16lo','uxtab16mi','uxtab16pl','uxtab16vs','uxtab16vc','uxtab16hi','uxtab16ls','uxtab16ge','uxtab16lt','uxtab16gt','uxtab16le',
+ 'sxtheq.w','sxthne.w','sxthcs.w','sxthhs.w','sxthcc.w','sxthlo.w','sxthmi.w','sxthpl.w','sxthvs.w','sxthvc.w','sxthhi.w','sxthls.w','sxthge.w','sxthlt.w','sxthgt.w','sxthle.w',
+ 'sxtheq','sxthne','sxthcs','sxthhs','sxthcc','sxthlo','sxthmi','sxthpl','sxthvs','sxthvc','sxthhi','sxthls','sxthge','sxthlt','sxthgt','sxthle',
+ 'sxtbeq.w','sxtbne.w','sxtbcs.w','sxtbhs.w','sxtbcc.w','sxtblo.w','sxtbmi.w','sxtbpl.w','sxtbvs.w','sxtbvc.w','sxtbhi.w','sxtbls.w','sxtbge.w','sxtblt.w','sxtbgt.w','sxtble.w',
+ 'sxtbeq','sxtbne','sxtbcs','sxtbhs','sxtbcc','sxtblo','sxtbmi','sxtbpl','sxtbvs','sxtbvc','sxtbhi','sxtbls','sxtbge','sxtblt','sxtbgt','sxtble',
+ 'sxtb16eq','sxtb16ne','sxtb16cs','sxtb16hs','sxtb16cc','sxtb16lo','sxtb16mi','sxtb16pl','sxtb16vs','sxtb16vc','sxtb16hi','sxtb16ls','sxtb16ge','sxtb16lt','sxtb16gt','sxtb16le',
+ 'uxtheq.w','uxthne.w','uxthcs.w','uxthhs.w','uxthcc.w','uxthlo.w','uxthmi.w','uxthpl.w','uxthvs.w','uxthvc.w','uxthhi.w','uxthls.w','uxthge.w','uxthlt.w','uxthgt.w','uxthle.w',
+ 'uxtheq','uxthne','uxthcs','uxthhs','uxthcc','uxthlo','uxthmi','uxthpl','uxthvs','uxthvc','uxthhi','uxthls','uxthge','uxthlt','uxthgt','uxthle',
+ 'uxtbeq.w','uxtbne.w','uxtbcs.w','uxtbhs.w','uxtbcc.w','uxtblo.w','uxtbmi.w','uxtbpl.w','uxtbvs.w','uxtbvc.w','uxtbhi.w','uxtbls.w','uxtbge.w','uxtblt.w','uxtbgt.w','uxtble.w',
+ 'uxtbeq','uxtbne','uxtbcs','uxtbhs','uxtbcc','uxtblo','uxtbmi','uxtbpl','uxtbvs','uxtbvc','uxtbhi','uxtbls','uxtbge','uxtblt','uxtbgt','uxtble',
+ 'uxtb16eq','uxtb16ne','uxtb16cs','uxtb16hs','uxtb16cc','uxtb16lo','uxtb16mi','uxtb16pl','uxtb16vs','uxtb16vc','uxtb16hi','uxtb16ls','uxtb16ge','uxtb16lt','uxtb16gt','uxtb16le',
+ 'pkhbteq','pkhbtne','pkhbtcs','pkhbths','pkhbtcc','pkhbtlo','pkhbtmi','pkhbtpl','pkhbtvs','pkhbtvc','pkhbthi','pkhbtls','pkhbtge','pkhbtlt','pkhbtgt','pkhbtle',
+ 'pkhtbeq','pkhtbne','pkhtbcs','pkhtbhs','pkhtbcc','pkhtblo','pkhtbmi','pkhtbpl','pkhtbvs','pkhtbvc','pkhtbhi','pkhtbls','pkhtbge','pkhtblt','pkhtbgt','pkhtble',
+ 'rbiteq','rbitne','rbitcs','rbiths','rbitcc','rbitlo','rbitmi','rbitpl','rbitvs','rbitvc','rbithi','rbitls','rbitge','rbitlt','rbitgt','rbitle',
+ 'reveq.w','revne.w','revcs.w','revhs.w','revcc.w','revlo.w','revmi.w','revpl.w','revvs.w','revvc.w','revhi.w','revls.w','revge.w','revlt.w','revgt.w','revle.w',
+ 'reveq','revne','revcs','revhs','revcc','revlo','revmi','revpl','revvs','revvc','revhi','revls','revge','revlt','revgt','revle',
+ 'rev16eq.w','rev16ne.w','rev16cs.w','rev16hs.w','rev16cc.w','rev16lo.w','rev16mi.w','rev16pl.w','rev16vs.w','rev16vc.w','rev16hi.w','rev16ls.w','rev16ge.w','rev16lt.w','rev16gt.w','rev16le.w',
+ 'rev16eq','rev16ne','rev16cs','rev16hs','rev16cc','rev16lo','rev16mi','rev16pl','rev16vs','rev16vc','rev16hi','rev16ls','rev16ge','rev16lt','rev16gt','rev16le',
+ 'revsheq.w','revshne.w','revshcs.w','revshhs.w','revshcc.w','revshlo.w','revshmi.w','revshpl.w','revshvs.w','revshvc.w','revshhi.w','revshls.w','revshge.w','revshlt.w','revshgt.w','revshle.w',
+ 'revsheq','revshne','revshcs','revshhs','revshcc','revshlo','revshmi','revshpl','revshvs','revshvc','revshhi','revshls','revshge','revshlt','revshgt','revshle',
+ 'seleq','selne','selcs','selhs','selcc','sello','selmi','selpl','selvs','selvc','selhi','sells','selge','sellt','selgt','selle',
+ /* ARMv6 SIMD: Conditional Multiply and Multiply-Add */
+ 'smladeq','smladne','smladcs','smladhs','smladcc','smladlo','smladmi','smladpl','smladvs','smladvc','smladhi','smladls','smladge','smladlt','smladgt','smladle',
+ 'smladxeq','smladxne','smladxcs','smladxhs','smladxcc','smladxlo','smladxmi','smladxpl','smladxvs','smladxvc','smladxhi','smladxls','smladxge','smladxlt','smladxgt','smladxle',
+ 'smlsdeq','smlsdne','smlsdcs','smlsdhs','smlsdcc','smlsdlo','smlsdmi','smlsdpl','smlsdvs','smlsdvc','smlsdhi','smlsdls','smlsdge','smlsdlt','smlsdgt','smlsdle',
+ 'smlsdxeq','smlsdxne','smlsdxcs','smlsdxhs','smlsdxcc','smlsdxlo','smlsdxmi','smlsdxpl','smlsdxvs','smlsdxvc','smlsdxhi','smlsdxls','smlsdxge','smlsdxlt','smlsdxgt','smlsdxle',
+ 'smlaldeq','smlaldne','smlaldcs','smlaldhs','smlaldcc','smlaldlo','smlaldmi','smlaldpl','smlaldvs','smlaldvc','smlaldhi','smlaldls','smlaldge','smlaldlt','smlaldgt','smlaldle',
+ 'smlaldxeq','smlaldxne','smlaldxcs','smlaldxhs','smlaldxcc','smlaldxlo','smlaldxmi','smlaldxpl','smlaldxvs','smlaldxvc','smlaldxhi','smlaldxls','smlaldxge','smlaldxlt','smlaldxgt','smlaldxle',
+ 'smlsldeq','smlsldne','smlsldcs','smlsldhs','smlsldcc','smlsldlo','smlsldmi','smlsldpl','smlsldvs','smlsldvc','smlsldhi','smlsldls','smlsldge','smlsldlt','smlsldgt','smlsldle',
+ 'smlsldxeq','smlsldxne','smlsldxcs','smlsldxhs','smlsldxcc','smlsldxlo','smlsldxmi','smlsldxpl','smlsldxvs','smlsldxvc','smlsldxhi','smlsldxls','smlsldxge','smlsldxlt','smlsldxgt','smlsldxle',
+ 'smmuleq','smmulne','smmulcs','smmulhs','smmulcc','smmullo','smmulmi','smmulpl','smmulvs','smmulvc','smmulhi','smmulls','smmulge','smmullt','smmulgt','smmulle',
+ 'smmulreq','smmulrne','smmulrcs','smmulrhs','smmulrcc','smmulrlo','smmulrmi','smmulrpl','smmulrvs','smmulrvc','smmulrhi','smmulrls','smmulrge','smmulrlt','smmulrgt','smmulrle',
+ 'smmlaeq','smmlane','smmlacs','smmlahs','smmlacc','smmlalo','smmlami','smmlapl','smmlavs','smmlavc','smmlahi','smmlals','smmlage','smmlalt','smmlagt','smmlale',
+ 'smmlareq','smmlarne','smmlarcs','smmlarhs','smmlarcc','smmlarlo','smmlarmi','smmlarpl','smmlarvs','smmlarvc','smmlarhi','smmlarls','smmlarge','smmlarlt','smmlargt','smmlarle',
+ 'smmlseq','smmlsne','smmlscs','smmlshs','smmlscc','smmlslo','smmlsmi','smmlspl','smmlsvs','smmlsvc','smmlshi','smmlsls','smmlsge','smmlslt','smmlsgt','smmlsle',
+ 'smmlsreq','smmlsrne','smmlsrcs','smmlsrhs','smmlsrcc','smmlsrlo','smmlsrmi','smmlsrpl','smmlsrvs','smmlsrvc','smmlsrhi','smmlsrls','smmlsrge','smmlsrlt','smmlsrgt','smmlsrle',
+ 'smuadeq','smuadne','smuadcs','smuadhs','smuadcc','smuadlo','smuadmi','smuadpl','smuadvs','smuadvc','smuadhi','smuadls','smuadge','smuadlt','smuadgt','smuadle',
+ 'smuadxeq','smuadxne','smuadxcs','smuadxhs','smuadxcc','smuadxlo','smuadxmi','smuadxpl','smuadxvs','smuadxvc','smuadxhi','smuadxls','smuadxge','smuadxlt','smuadxgt','smuadxle',
+ 'smusdeq','smusdne','smusdcs','smusdhs','smusdcc','smusdlo','smusdmi','smusdpl','smusdvs','smusdvc','smusdhi','smusdls','smusdge','smusdlt','smusdgt','smusdle',
+ 'smusdxeq','smusdxne','smusdxcs','smusdxhs','smusdxcc','smusdxlo','smusdxmi','smusdxpl','smusdxvs','smusdxvc','smusdxhi','smusdxls','smusdxge','smusdxlt','smusdxgt','smusdxle',
+ 'umaaleq','umaalne','umaalcs','umaalhs','umaalcc','umaallo','umaalmi','umaalpl','umaalvs','umaalvc','umaalhi','umaalls','umaalge','umaallt','umaalgt','umaalle'
+ ),
+ /* Unconditional Coprocessor Instructions */
+ 13 => array(
+ /* Data Processing: Unconditional Coprocessor Instructions */
+ 'cdp','cdpal',
+ 'cdp2','cdp2al',
+ 'ldc','ldcal',
+ 'ldcl','ldclal',
+ 'ldc2','ldc2al',
+ 'ldc2l','ldc2lal',
+ 'stc','stcal',
+ 'stcl','stclal',
+ 'stc2','stc2al',
+ 'stc2l','stc2lal',
+ 'mcr','mcral',
+ 'mcr2','mcr2al',
+ 'mcrr','mcrral',
+ 'mcrr2','mcrr2al',
+ 'mrc','mrcal',
+ 'mrc2','mrc2al',
+ 'mrrc','mrrcal',
+ 'mrrc2','mrrc2al'
+ ),
+ /* Conditional Coprocessor Instructions */
+ 14 => array(
+ /* Data Processing: Conditional Coprocessor Instructions */
+ 'cdpeq','cdpne','cdpcs','cdphs','cdpcc','cdplo','cdpmi','cdppl','cdpvs','cdpvc','cdphi','cdpls','cdpge','cdplt','cdpgt','cdple',
+ 'cdp2eq','cdp2ne','cdp2cs','cdp2hs','cdp2cc','cdp2lo','cdp2mi','cdp2pl','cdp2vs','cdp2vc','cdp2hi','cdp2ls','cdp2ge','cdp2lt','cdp2gt','cdp2le',
+ 'ldceq','ldcne','ldccs','ldchs','ldccc','ldclo','ldcmi','ldcpl','ldcvs','ldcvc','ldchi','ldcls','ldcge','ldclt','ldcgt','ldcle',
+ 'ldcleq','ldclne','ldclcs','ldclhs','ldclcc','ldcllo','ldclmi','ldclpl','ldclvs','ldclvc','ldclhi','ldclls','ldclge','ldcllt','ldclgt','ldclle',
+ 'ldc2eq','ldc2ne','ldc2cs','ldc2hs','ldc2cc','ldc2lo','ldc2mi','ldc2pl','ldc2vs','ldc2vc','ldc2hi','ldc2ls','ldc2ge','ldc2lt','ldc2gt','ldc2le',
+ 'ldc2leq','ldc2lne','ldc2lcs','ldc2lhs','ldc2lcc','ldc2llo','ldc2lmi','ldc2lpl','ldc2lvs','ldc2lvc','ldc2lhi','ldc2lls','ldc2lge','ldc2llt','ldc2lgt','ldc2lle',
+ 'stceq','stcne','stccs','stchs','stccc','stclo','stcmi','stcpl','stcvs','stcvc','stchi','stcls','stcge','stclt','stcgt','stcle',
+ 'stcleq','stclne','stclcs','stclhs','stclcc','stcllo','stclmi','stclpl','stclvs','stclvc','stclhi','stclls','stclge','stcllt','stclgt','stclle',
+ 'stc2eq','stc2ne','stc2cs','stc2hs','stc2cc','stc2lo','stc2mi','stc2pl','stc2vs','stc2vc','stc2hi','stc2ls','stc2ge','stc2lt','stc2gt','stc2le',
+ 'stc2leq','stc2lne','stc2lcs','stc2lhs','stc2lcc','stc2llo','stc2lmi','stc2lpl','stc2lvs','stc2lvc','stc2lhi','stc2lls','stc2lge','stc2llt','stc2lgt','stc2lle',
+ 'mcreq','mcrne','mcrcs','mcrhs','mcrcc','mcrlo','mcrmi','mcrpl','mcrvs','mcrvc','mcrhi','mcrls','mcrge','mcrlt','mcrgt','mcrle',
+ 'mcr2eq','mcr2ne','mcr2cs','mcr2hs','mcr2cc','mcr2lo','mcr2mi','mcr2pl','mcr2vs','mcr2vc','mcr2hi','mcr2ls','mcr2ge','mcr2lt','mcr2gt','mcr2le',
+ 'mcrreq','mcrrne','mcrrcs','mcrrhs','mcrrcc','mcrrlo','mcrrmi','mcrrpl','mcrrvs','mcrrvc','mcrrhi','mcrrls','mcrrge','mcrrlt','mcrrgt','mcrrle',
+ 'mcrr2eq','mcrr2ne','mcrr2cs','mcrr2hs','mcrr2cc','mcrr2lo','mcrr2mi','mcrr2pl','mcrr2vs','mcrr2vc','mcrr2hi','mcrr2ls','mcrr2ge','mcrr2lt','mcrr2gt','mcrr2le',
+ 'mrceq','mrcne','mrccs','mrchs','mrccc','mrclo','mrcmi','mrcpl','mrcvs','mrcvc','mrchi','mrcls','mrcge','mrclt','mrcgt','mrcle',
+ 'mrc2eq','mrc2ne','mrc2cs','mrc2hs','mrc2cc','mrc2lo','mrc2mi','mrc2pl','mrc2vs','mrc2vc','mrc2hi','mrc2ls','mrc2ge','mrc2lt','mrc2gt','mrc2le',
+ 'mrrceq','mrrcne','mrrccs','mrrchs','mrrccc','mrrclo','mrrcmi','mrrcpl','mrrcvs','mrrcvc','mrrchi','mrrcls','mrrcge','mrrclt','mrrcgt','mrrcle',
+ 'mrrc2eq','mrrc2ne','mrrc2cs','mrrc2hs','mrrc2cc','mrrc2lo','mrrc2mi','mrrc2pl','mrrc2vs','mrrc2vc','mrrc2hi','mrrc2ls','mrrc2ge','mrrc2lt','mrrc2gt','mrrc2le'
+ ),
+ /* Unconditional System Instructions */
+ 15 => array(
+ /* System: Unconditional Debug and State-Change Instructions */
+ 'bkpt',
+ 'dbg','dbgal',
+ 'setend',
+ 'svc','svcal',
+ 'sev.w','seval.w',
+ 'sev','seval',
+ 'wfe.w','wfeal.w',
+ 'wfe','wfeal',
+ 'wfi.w','wfial.w',
+ 'wfi','wfial',
+ /* System: Unconditional ThumbEE Instructions */
+ 'enterx',
+ 'leavex',
+ 'chka.n','chkaal.n',
+ 'chka','chkaal',
+ 'hb.n','hbal.n',
+ 'hb','hbal',
+ 'hbl.n','hblal.n',
+ 'hbl','hblal',
+ 'hblp.n','hblpal.n',
+ 'hblp','hblpal',
+ 'hbp.n','hbpal.n',
+ 'hbp','hbpal',
+ /* System: Unconditional Privileged Instructions */
+ 'cpsie.n',
+ 'cpsie.w',
+ 'cpsie',
+ 'cpsid.n',
+ 'cpsid.w',
+ 'cpsid',
+ 'smc','smcal',
+ 'rfeda','rfedaal',
+ 'rfedb','rfedbal',
+ 'rfeia','rfeiaal',
+ 'rfeib','rfeibal',
+ 'srsda','srsdaal',
+ 'srsdb','srsdbal',
+ 'srsia','srsiaal',
+ 'srsib','srsibal'
+ ),
+ /* Conditional System Instructions */
+ 16 => array(
+ /* System: Conditional Debug and State-Change Instructions */
+ 'dbgeq','dbgne','dbgcs','dbghs','dbgcc','dbglo','dbgmi','dbgpl','dbgvs','dbgvc','dbghi','dbgls','dbgge','dbglt','dbggt','dbgle',
+ 'svceq','svcne','svccs','svchs','svccc','svclo','svcmi','svcpl','svcvs','svcvc','svchi','svcls','svcge','svclt','svcgt','svcle',
+ 'seveq.w','sevne.w','sevcs.w','sevhs.w','sevcc.w','sevlo.w','sevmi.w','sevpl.w','sevvs.w','sevvc.w','sevhi.w','sevls.w','sevge.w','sevlt.w','sevgt.w','sevle.w',
+ 'seveq','sevne','sevcs','sevhs','sevcc','sevlo','sevmi','sevpl','sevvs','sevvc','sevhi','sevls','sevge','sevlt','sevgt','sevle',
+ 'wfeeq.w','wfene.w','wfecs.w','wfehs.w','wfecc.w','wfelo.w','wfemi.w','wfepl.w','wfevs.w','wfevc.w','wfehi.w','wfels.w','wfege.w','wfelt.w','wfegt.w','wfele.w',
+ 'wfeeq','wfene','wfecs','wfehs','wfecc','wfelo','wfemi','wfepl','wfevs','wfevc','wfehi','wfels','wfege','wfelt','wfegt','wfele',
+ 'wfieq.w','wfine.w','wfics.w','wfihs.w','wficc.w','wfilo.w','wfimi.w','wfipl.w','wfivs.w','wfivc.w','wfihi.w','wfils.w','wfige.w','wfilt.w','wfigt.w','wfile.w',
+ 'wfieq','wfine','wfics','wfihs','wficc','wfilo','wfimi','wfipl','wfivs','wfivc','wfihi','wfils','wfige','wfilt','wfigt','wfile',
+ /* System: Conditional ThumbEE Instructions */
+ 'chkaeq.n','chkane.n','chkacs.n','chkahs.n','chkacc.n','chkalo.n','chkami.n','chkapl.n','chkavs.n','chkavc.n','chkahi.n','chkals.n','chkage.n','chkalt.n','chkagt.n','chkale.n',
+ 'chkaeq','chkane','chkacs','chkahs','chkacc','chkalo','chkami','chkapl','chkavs','chkavc','chkahi','chkals','chkage','chkalt','chkagt','chkale',
+ 'hbeq.n','hbne.n','hbcs.n','hbhs.n','hbcc.n','hblo.n','hbmi.n','hbpl.n','hbvs.n','hbvc.n','hbhi.n','hbls.n','hbge.n','hblt.n','hbgt.n','hble.n',
+ 'hbeq','hbne','hbcs','hbhs','hbcc','hblo','hbmi','hbpl','hbvs','hbvc','hbhi','hbls','hbge','hblt','hbgt','hble',
+ 'hbleq.n','hblne.n','hblcs.n','hblhs.n','hblcc.n','hbllo.n','hblmi.n','hblpl.n','hblvs.n','hblvc.n','hblhi.n','hblls.n','hblge.n','hbllt.n','hblgt.n','hblle.n',
+ 'hbleq','hblne','hblcs','hblhs','hblcc','hbllo','hblmi','hblpl','hblvs','hblvc','hblhi','hblls','hblge','hbllt','hblgt','hblle',
+ 'hblpeq.n','hblpne.n','hblpcs.n','hblphs.n','hblpcc.n','hblplo.n','hblpmi.n','hblppl.n','hblpvs.n','hblpvc.n','hblphi.n','hblpls.n','hblpge.n','hblplt.n','hblpgt.n','hblple.n',
+ 'hblpeq','hblpne','hblpcs','hblphs','hblpcc','hblplo','hblpmi','hblppl','hblpvs','hblpvc','hblphi','hblpls','hblpge','hblplt','hblpgt','hblple',
+ 'hbpeq.n','hbpne.n','hbpcs.n','hbphs.n','hbpcc.n','hbplo.n','hbpmi.n','hbppl.n','hbpvs.n','hbpvc.n','hbphi.n','hbpls.n','hbpge.n','hbplt.n','hbpgt.n','hbple.n',
+ 'hbpeq','hbpne','hbpcs','hbphs','hbpcc','hbplo','hbpmi','hbppl','hbpvs','hbpvc','hbphi','hbpls','hbpge','hbplt','hbpgt','hbple',
+ /* System: Conditional Privileged Instructions */
+ 'smceq','smcne','smccs','smchs','smccc','smclo','smcmi','smcpl','smcvs','smcvc','smchi','smcls','smcge','smclt','smcgt','smcle',
+ 'rfedaeq','rfedane','rfedacs','rfedahs','rfedacc','rfedalo','rfedami','rfedapl','rfedavs','rfedavc','rfedahi','rfedals','rfedage','rfedalt','rfedagt','rfedale',
+ 'rfedbeq','rfedbne','rfedbcs','rfedbhs','rfedbcc','rfedblo','rfedbmi','rfedbpl','rfedbvs','rfedbvc','rfedbhi','rfedbls','rfedbge','rfedblt','rfedbgt','rfedble',
+ 'rfeiaeq','rfeiane','rfeiacs','rfeiahs','rfeiacc','rfeialo','rfeiami','rfeiapl','rfeiavs','rfeiavc','rfeiahi','rfeials','rfeiage','rfeialt','rfeiagt','rfeiale',
+ 'rfeibeq','rfeibne','rfeibcs','rfeibhs','rfeibcc','rfeiblo','rfeibmi','rfeibpl','rfeibvs','rfeibvc','rfeibhi','rfeibls','rfeibge','rfeiblt','rfeibgt','rfeible',
+ 'srsdaeq','srsdane','srsdacs','srsdahs','srsdacc','srsdalo','srsdami','srsdapl','srsdavs','srsdavc','srsdahi','srsdals','srsdage','srsdalt','srsdagt','srsdale',
+ 'srsdbeq','srsdbne','srsdbcs','srsdbhs','srsdbcc','srsdblo','srsdbmi','srsdbpl','srsdbvs','srsdbvc','srsdbhi','srsdbls','srsdbge','srsdblt','srsdbgt','srsdble',
+ 'srsiaeq','srsiane','srsiacs','srsiahs','srsiacc','srsialo','srsiami','srsiapl','srsiavs','srsiavc','srsiahi','srsials','srsiage','srsialt','srsiagt','srsiale',
+ 'srsibeq','srsibne','srsibcs','srsibhs','srsibcc','srsiblo','srsibmi','srsibpl','srsibvs','srsibvc','srsibhi','srsibls','srsibge','srsiblt','srsibgt','srsible'
+ ),
+ /* Unconditional WMMX/WMMX2 instructions */
+ 17 => array(
+ /* Unconditional WMMX/WMMX2 SIMD Instructions */
+ 'tandcb','tandcbal',
+ 'tandch','tandchal',
+ 'tandcw','tandcwal',
+ 'tbcstb','tbcstbal',
+ 'tbcsth','tbcsthal',
+ 'tbcstw','tbcstwal',
+ 'textrcb','textrcbal',
+ 'textrch','textrchal',
+ 'textrcw','textrcwal',
+ 'textrmsb','textrmsbal',
+ 'textrmsh','textrmshal',
+ 'textrmsw','textrmswal',
+ 'textrmub','textrmubal',
+ 'textrmuh','textrmuhal',
+ 'textrmuw','textrmuwal',
+ 'tinsrb','tinsrbal',
+ 'tinsrh','tinsrhal',
+ 'tinsrw','tinsrwal',
+ 'tmcr','tmcral',
+ 'tmcrr','tmcrral',
+ 'tmia','tmiaal',
+ 'tmiaph','tmiaphal',
+ 'tmiabb','tmiabbal',
+ 'tmiabt','tmiabtal',
+ 'tmiatb','tmiatbal',
+ 'tmiatt','tmiattal',
+ 'tmovmskb','tmovmskbal',
+ 'tmovmskh','tmovmskhal',
+ 'tmovmskw','tmovmskwal',
+ 'tmrc','tmrcal',
+ 'tmrrc','tmrrcal',
+ 'torcb','torcbal',
+ 'torch','torchal',
+ 'torcw','torcwal',
+ 'torvscb','torvscbal',
+ 'torvsch','torvschal',
+ 'torvscw','torvscwal',
+ 'wabsb','wabsbal',
+ 'wabsh','wabshal',
+ 'wabsw','wabswal',
+ 'wabsdiffb','wabsdiffbal',
+ 'wabsdiffh','wabsdiffhal',
+ 'wabsdiffw','wabsdiffwal',
+ 'waccb','waccbal',
+ 'wacch','wacchal',
+ 'waccw','waccwal',
+ 'waddb','waddbal',
+ 'waddh','waddhal',
+ 'waddw','waddwal',
+ 'waddbc','waddbcal',
+ 'waddhc','waddhcal',
+ 'waddwc','waddwcal',
+ 'waddbss','waddbssal',
+ 'waddhss','waddhssal',
+ 'waddwss','waddwssal',
+ 'waddbus','waddbusal',
+ 'waddhus','waddhusal',
+ 'waddwus','waddwusal',
+ 'waddsubhx','waddsubhxal',
+ 'waligni','walignial',
+ 'walignr0','walignr0al',
+ 'walignr1','walignr1al',
+ 'walignr2','walignr2al',
+ 'walignr3','walignr3al',
+ 'wand','wandal',
+ 'wandn','wandnal',
+ 'wavg2b','wavg2bal',
+ 'wavg2h','wavg2hal',
+ 'wavg2br','wavg2bral',
+ 'wavg2hr','wavg2hral',
+ 'wavg4','wavg4al',
+ 'wavg4r','wavg4ral',
+ 'wcmpeqb','wcmpeqbal',
+ 'wcmpeqh','wcmpeqhal',
+ 'wcmpeqw','wcmpeqwal',
+ 'wcmpgtsb','wcmpgtsbal',
+ 'wcmpgtsh','wcmpgtshal',
+ 'wcmpgtsw','wcmpgtswal',
+ 'wcmpgtub','wcmpgtubal',
+ 'wcmpgtuh','wcmpgtuhal',
+ 'wcmpgtuw','wcmpgtuwal',
+ 'wldrb','wldrbal',
+ 'wldrh','wldrhal',
+ 'wldrw','wldrwal',
+ 'wldrd','wldrdal',
+ 'wmacs','wmacsal',
+ 'wmacu','wmacual',
+ 'wmacsz','wmacszal',
+ 'wmacuz','wmacuzal',
+ 'wmadds','wmaddsal',
+ 'wmaddu','wmaddual',
+ 'wmaddsx','wmaddsxal',
+ 'wmaddux','wmadduxal',
+ 'wmaddsn','wmaddsnal',
+ 'wmaddun','wmaddunal',
+ 'wmaxsb','wmaxsbal',
+ 'wmaxsh','wmaxshal',
+ 'wmaxsw','wmaxswal',
+ 'wmaxub','wmaxubal',
+ 'wmaxuh','wmaxuhal',
+ 'wmaxuw','wmaxuwal',
+ 'wmerge','wmergeal',
+ 'wmiabb','wmiabbal',
+ 'wmiabt','wmiabtal',
+ 'wmiatb','wmiatbal',
+ 'wmiatt','wmiattal',
+ 'wmiabbn','wmiabbnal',
+ 'wmiabtn','wmiabtnal',
+ 'wmiatbn','wmiatbnal',
+ 'wmiattn','wmiattnal',
+ 'wmiawbb','wmiawbbal',
+ 'wmiawbt','wmiawbtal',
+ 'wmiawtb','wmiawtbal',
+ 'wmiawtt','wmiawttal',
+ 'wmiawbbn','wmiawbbnal',
+ 'wmiawbtn','wmiawbtnal',
+ 'wmiawtbn','wmiawtbnal',
+ 'wmiawttn','wmiawttnal',
+ 'wminsb','wminsbal',
+ 'wminsh','wminshal',
+ 'wminsw','wminswal',
+ 'wminub','wminubal',
+ 'wminuh','wminuhal',
+ 'wminuw','wminuwal',
+ 'wmov','wmoval',
+ 'wmulsm','wmulsmal',
+ 'wmulsl','wmulslal',
+ 'wmulum','wmulumal',
+ 'wmulul','wmululal',
+ 'wmulsmr','wmulsmral',
+ 'wmulslr','wmulslral',
+ 'wmulumr','wmulumral',
+ 'wmululr','wmululral',
+ 'wmulwum','wmulwumal',
+ 'wmulwsm','wmulwsmal',
+ 'wmulwl','wmulwlal',
+ 'wmulwumr','wmulwumral',
+ 'wmulwsmr','wmulwsmral',
+ 'wor','woral',
+ 'wpackhss','wpackhssal',
+ 'wpackwss','wpackwssal',
+ 'wpackdss','wpackdssal',
+ 'wpackhus','wpackhusal',
+ 'wpackwus','wpackwusal',
+ 'wpackdus','wpackdusal',
+ 'wqmiabb','wqmiabbal',
+ 'wqmiabt','wqmiabtal',
+ 'wqmiatb','wqmiatbal',
+ 'wqmiatt','wqmiattal',
+ 'wqmiabbn','wqmiabbnal',
+ 'wqmiabtn','wqmiabtnal',
+ 'wqmiatbn','wqmiatbnal',
+ 'wqmiattn','wqmiattnal',
+ 'wqmulm','wqmulmal',
+ 'wqmulmr','wqmulmral',
+ 'wqmulwm','wqmulwmal',
+ 'wqmulwmr','wqmulwmral',
+ 'wrorh','wrorhal',
+ 'wrorw','wrorwal',
+ 'wrord','wrordal',
+ 'wrorhg','wrorhgal',
+ 'wrorwg','wrorwgal',
+ 'wrordg','wrordgal',
+ 'wsadb','wsadbal',
+ 'wsadh','wsadhal',
+ 'wsadbz','wsadbzal',
+ 'wsadhz','wsadhzal',
+ 'wshufh','wshufhal',
+ 'wsllh','wsllhal',
+ 'wsllw','wsllwal',
+ 'wslld','wslldal',
+ 'wsllhg','wsllhgal',
+ 'wsllwg','wsllwgal',
+ 'wslldg','wslldgal',
+ 'wsrah','wsrahal',
+ 'wsraw','wsrawal',
+ 'wsrad','wsradal',
+ 'wsrahg','wsrahgal',
+ 'wsrawg','wsrawgal',
+ 'wsradg','wsradgal',
+ 'wsrlh','wsrlhal',
+ 'wsrlw','wsrlwal',
+ 'wsrld','wsrldal',
+ 'wsrlhg','wsrlhgal',
+ 'wsrlwg','wsrlwgal',
+ 'wsrldg','wsrldgal',
+ 'wstrb','wstrbal',
+ 'wstrh','wstrhal',
+ 'wstrw','wstrwal',
+ 'wstrd','wstrdal',
+ 'wsubb','wsubbal',
+ 'wsubh','wsubhal',
+ 'wsubw','wsubwal',
+ 'wsubbss','wsubbssal',
+ 'wsubhss','wsubhssal',
+ 'wsubwss','wsubwssal',
+ 'wsubbus','wsubbusal',
+ 'wsubhus','wsubhusal',
+ 'wsubwus','wsubwusal',
+ 'wsubaddhx','wsubaddhxal',
+ 'wunpckehsb','wunpckehsbal',
+ 'wunpckehsh','wunpckehshal',
+ 'wunpckehsw','wunpckehswal',
+ 'wunpckehub','wunpckehubal',
+ 'wunpckehuh','wunpckehuhal',
+ 'wunpckehuw','wunpckehuwal',
+ 'wunpckihb','wunpckihbal',
+ 'wunpckihh','wunpckihhal',
+ 'wunpckihw','wunpckihwal',
+ 'wunpckelsb','wunpckelsbal',
+ 'wunpckelsh','wunpckelshal',
+ 'wunpckelsw','wunpckelswal',
+ 'wunpckelub','wunpckelubal',
+ 'wunpckeluh','wunpckeluhal',
+ 'wunpckeluw','wunpckeluwal',
+ 'wunpckilb','wunpckilbal',
+ 'wunpckilh','wunpckilhal',
+ 'wunpckilw','wunpckilwal',
+ 'wxor','wxoral',
+ 'wzero','wzeroal'
+ ),
+ /* Conditional WMMX/WMMX2 SIMD Instructions */
+ 18 => array(
+ /* Conditional WMMX/WMMX2 SIMD Instructions */
+ 'tandcbeq','tandcbne','tandcbcs','tandcbhs','tandcbcc','tandcblo','tandcbmi','tandcbpl','tandcbvs','tandcbvc','tandcbhi','tandcbls','tandcbge','tandcblt','tandcbgt','tandcble',
+ 'tandcheq','tandchne','tandchcs','tandchhs','tandchcc','tandchlo','tandchmi','tandchpl','tandchvs','tandchvc','tandchhi','tandchls','tandchge','tandchlt','tandchgt','tandchle',
+ 'tandcweq','tandcwne','tandcwcs','tandcwhs','tandcwcc','tandcwlo','tandcwmi','tandcwpl','tandcwvs','tandcwvc','tandcwhi','tandcwls','tandcwge','tandcwlt','tandcwgt','tandcwle',
+ 'tbcstbeq','tbcstbne','tbcstbcs','tbcstbhs','tbcstbcc','tbcstblo','tbcstbmi','tbcstbpl','tbcstbvs','tbcstbvc','tbcstbhi','tbcstbls','tbcstbge','tbcstblt','tbcstbgt','tbcstble',
+ 'tbcstheq','tbcsthne','tbcsthcs','tbcsthhs','tbcsthcc','tbcsthlo','tbcsthmi','tbcsthpl','tbcsthvs','tbcsthvc','tbcsthhi','tbcsthls','tbcsthge','tbcsthlt','tbcsthgt','tbcsthle',
+ 'tbcstweq','tbcstwne','tbcstwcs','tbcstwhs','tbcstwcc','tbcstwlo','tbcstwmi','tbcstwpl','tbcstwvs','tbcstwvc','tbcstwhi','tbcstwls','tbcstwge','tbcstwlt','tbcstwgt','tbcstwle',
+ 'textrcbeq','textrcbne','textrcbcs','textrcbhs','textrcbcc','textrcblo','textrcbmi','textrcbpl','textrcbvs','textrcbvc','textrcbhi','textrcbls','textrcbge','textrcblt','textrcbgt','textrcble',
+ 'textrcheq','textrchne','textrchcs','textrchhs','textrchcc','textrchlo','textrchmi','textrchpl','textrchvs','textrchvc','textrchhi','textrchls','textrchge','textrchlt','textrchgt','textrchle',
+ 'textrcweq','textrcwne','textrcwcs','textrcwhs','textrcwcc','textrcwlo','textrcwmi','textrcwpl','textrcwvs','textrcwvc','textrcwhi','textrcwls','textrcwge','textrcwlt','textrcwgt','textrcwle',
+ 'textrmsbeq','textrmsbne','textrmsbcs','textrmsbhs','textrmsbcc','textrmsblo','textrmsbmi','textrmsbpl','textrmsbvs','textrmsbvc','textrmsbhi','textrmsbls','textrmsbge','textrmsblt','textrmsbgt','textrmsble',
+ 'textrmsheq','textrmshne','textrmshcs','textrmshhs','textrmshcc','textrmshlo','textrmshmi','textrmshpl','textrmshvs','textrmshvc','textrmshhi','textrmshls','textrmshge','textrmshlt','textrmshgt','textrmshle',
+ 'textrmsweq','textrmswne','textrmswcs','textrmswhs','textrmswcc','textrmswlo','textrmswmi','textrmswpl','textrmswvs','textrmswvc','textrmswhi','textrmswls','textrmswge','textrmswlt','textrmswgt','textrmswle',
+ 'textrmubeq','textrmubne','textrmubcs','textrmubhs','textrmubcc','textrmublo','textrmubmi','textrmubpl','textrmubvs','textrmubvc','textrmubhi','textrmubls','textrmubge','textrmublt','textrmubgt','textrmuble',
+ 'textrmuheq','textrmuhne','textrmuhcs','textrmuhhs','textrmuhcc','textrmuhlo','textrmuhmi','textrmuhpl','textrmuhvs','textrmuhvc','textrmuhhi','textrmuhls','textrmuhge','textrmuhlt','textrmuhgt','textrmuhle',
+ 'textrmuweq','textrmuwne','textrmuwcs','textrmuwhs','textrmuwcc','textrmuwlo','textrmuwmi','textrmuwpl','textrmuwvs','textrmuwvc','textrmuwhi','textrmuwls','textrmuwge','textrmuwlt','textrmuwgt','textrmuwle',
+ 'tinsrbeq','tinsrbne','tinsrbcs','tinsrbhs','tinsrbcc','tinsrblo','tinsrbmi','tinsrbpl','tinsrbvs','tinsrbvc','tinsrbhi','tinsrbls','tinsrbge','tinsrblt','tinsrbgt','tinsrble',
+ 'tinsrheq','tinsrhne','tinsrhcs','tinsrhhs','tinsrhcc','tinsrhlo','tinsrhmi','tinsrhpl','tinsrhvs','tinsrhvc','tinsrhhi','tinsrhls','tinsrhge','tinsrhlt','tinsrhgt','tinsrhle',
+ 'tinsrweq','tinsrwne','tinsrwcs','tinsrwhs','tinsrwcc','tinsrwlo','tinsrwmi','tinsrwpl','tinsrwvs','tinsrwvc','tinsrwhi','tinsrwls','tinsrwge','tinsrwlt','tinsrwgt','tinsrwle',
+ 'tmcreq','tmcrne','tmcrcs','tmcrhs','tmcrcc','tmcrlo','tmcrmi','tmcrpl','tmcrvs','tmcrvc','tmcrhi','tmcrls','tmcrge','tmcrlt','tmcrgt','tmcrle',
+ 'tmcrreq','tmcrrne','tmcrrcs','tmcrrhs','tmcrrcc','tmcrrlo','tmcrrmi','tmcrrpl','tmcrrvs','tmcrrvc','tmcrrhi','tmcrrls','tmcrrge','tmcrrlt','tmcrrgt','tmcrrle',
+ 'tmiaeq','tmiane','tmiacs','tmiahs','tmiacc','tmialo','tmiami','tmiapl','tmiavs','tmiavc','tmiahi','tmials','tmiage','tmialt','tmiagt','tmiale',
+ 'tmiapheq','tmiaphne','tmiaphcs','tmiaphhs','tmiaphcc','tmiaphlo','tmiaphmi','tmiaphpl','tmiaphvs','tmiaphvc','tmiaphhi','tmiaphls','tmiaphge','tmiaphlt','tmiaphgt','tmiaphle',
+ 'tmiabbeq','tmiabbne','tmiabbcs','tmiabbhs','tmiabbcc','tmiabblo','tmiabbmi','tmiabbpl','tmiabbvs','tmiabbvc','tmiabbhi','tmiabbls','tmiabbge','tmiabblt','tmiabbgt','tmiabble',
+ 'tmiabteq','tmiabtne','tmiabtcs','tmiabths','tmiabtcc','tmiabtlo','tmiabtmi','tmiabtpl','tmiabtvs','tmiabtvc','tmiabthi','tmiabtls','tmiabtge','tmiabtlt','tmiabtgt','tmiabtle',
+ 'tmiatbeq','tmiatbne','tmiatbcs','tmiatbhs','tmiatbcc','tmiatblo','tmiatbmi','tmiatbpl','tmiatbvs','tmiatbvc','tmiatbhi','tmiatbls','tmiatbge','tmiatblt','tmiatbgt','tmiatble',
+ 'tmiatteq','tmiattne','tmiattcs','tmiatths','tmiattcc','tmiattlo','tmiattmi','tmiattpl','tmiattvs','tmiattvc','tmiatthi','tmiattls','tmiattge','tmiattlt','tmiattgt','tmiattle',
+ 'tmovmskbeq','tmovmskbne','tmovmskbcs','tmovmskbhs','tmovmskbcc','tmovmskblo','tmovmskbmi','tmovmskbpl','tmovmskbvs','tmovmskbvc','tmovmskbhi','tmovmskbls','tmovmskbge','tmovmskblt','tmovmskbgt','tmovmskble',
+ 'tmovmskheq','tmovmskhne','tmovmskhcs','tmovmskhhs','tmovmskhcc','tmovmskhlo','tmovmskhmi','tmovmskhpl','tmovmskhvs','tmovmskhvc','tmovmskhhi','tmovmskhls','tmovmskhge','tmovmskhlt','tmovmskhgt','tmovmskhle',
+ 'tmovmskweq','tmovmskwne','tmovmskwcs','tmovmskwhs','tmovmskwcc','tmovmskwlo','tmovmskwmi','tmovmskwpl','tmovmskwvs','tmovmskwvc','tmovmskwhi','tmovmskwls','tmovmskwge','tmovmskwlt','tmovmskwgt','tmovmskwle',
+ 'tmrceq','tmrcne','tmrccs','tmrchs','tmrccc','tmrclo','tmrcmi','tmrcpl','tmrcvs','tmrcvc','tmrchi','tmrcls','tmrcge','tmrclt','tmrcgt','tmrcle',
+ 'tmrrceq','tmrrcne','tmrrccs','tmrrchs','tmrrccc','tmrrclo','tmrrcmi','tmrrcpl','tmrrcvs','tmrrcvc','tmrrchi','tmrrcls','tmrrcge','tmrrclt','tmrrcgt','tmrrcle',
+ 'torcbeq','torcbne','torcbcs','torcbhs','torcbcc','torcblo','torcbmi','torcbpl','torcbvs','torcbvc','torcbhi','torcbls','torcbge','torcblt','torcbgt','torcble',
+ 'torcheq','torchne','torchcs','torchhs','torchcc','torchlo','torchmi','torchpl','torchvs','torchvc','torchhi','torchls','torchge','torchlt','torchgt','torchle',
+ 'torcweq','torcwne','torcwcs','torcwhs','torcwcc','torcwlo','torcwmi','torcwpl','torcwvs','torcwvc','torcwhi','torcwls','torcwge','torcwlt','torcwgt','torcwle',
+ 'torvscbeq','torvscbne','torvscbcs','torvscbhs','torvscbcc','torvscblo','torvscbmi','torvscbpl','torvscbvs','torvscbvc','torvscbhi','torvscbls','torvscbge','torvscblt','torvscbgt','torvscble',
+ 'torvscheq','torvschne','torvschcs','torvschhs','torvschcc','torvschlo','torvschmi','torvschpl','torvschvs','torvschvc','torvschhi','torvschls','torvschge','torvschlt','torvschgt','torvschle',
+ 'torvscweq','torvscwne','torvscwcs','torvscwhs','torvscwcc','torvscwlo','torvscwmi','torvscwpl','torvscwvs','torvscwvc','torvscwhi','torvscwls','torvscwge','torvscwlt','torvscwgt','torvscwle',
+ 'wabsbeq','wabsbne','wabsbcs','wabsbhs','wabsbcc','wabsblo','wabsbmi','wabsbpl','wabsbvs','wabsbvc','wabsbhi','wabsbls','wabsbge','wabsblt','wabsbgt','wabsble',
+ 'wabsheq','wabshne','wabshcs','wabshhs','wabshcc','wabshlo','wabshmi','wabshpl','wabshvs','wabshvc','wabshhi','wabshls','wabshge','wabshlt','wabshgt','wabshle',
+ 'wabsweq','wabswne','wabswcs','wabswhs','wabswcc','wabswlo','wabswmi','wabswpl','wabswvs','wabswvc','wabswhi','wabswls','wabswge','wabswlt','wabswgt','wabswle',
+ 'wabsdiffbeq','wabsdiffbne','wabsdiffbcs','wabsdiffbhs','wabsdiffbcc','wabsdiffblo','wabsdiffbmi','wabsdiffbpl','wabsdiffbvs','wabsdiffbvc','wabsdiffbhi','wabsdiffbls','wabsdiffbge','wabsdiffblt','wabsdiffbgt','wabsdiffble',
+ 'wabsdiffheq','wabsdiffhne','wabsdiffhcs','wabsdiffhhs','wabsdiffhcc','wabsdiffhlo','wabsdiffhmi','wabsdiffhpl','wabsdiffhvs','wabsdiffhvc','wabsdiffhhi','wabsdiffhls','wabsdiffhge','wabsdiffhlt','wabsdiffhgt','wabsdiffhle',
+ 'wabsdiffweq','wabsdiffwne','wabsdiffwcs','wabsdiffwhs','wabsdiffwcc','wabsdiffwlo','wabsdiffwmi','wabsdiffwpl','wabsdiffwvs','wabsdiffwvc','wabsdiffwhi','wabsdiffwls','wabsdiffwge','wabsdiffwlt','wabsdiffwgt','wabsdiffwle',
+ 'waccbeq','waccbne','waccbcs','waccbhs','waccbcc','waccblo','waccbmi','waccbpl','waccbvs','waccbvc','waccbhi','waccbls','waccbge','waccblt','waccbgt','waccble',
+ 'waccheq','wacchne','wacchcs','wacchhs','wacchcc','wacchlo','wacchmi','wacchpl','wacchvs','wacchvc','wacchhi','wacchls','wacchge','wacchlt','wacchgt','wacchle',
+ 'waccweq','waccwne','waccwcs','waccwhs','waccwcc','waccwlo','waccwmi','waccwpl','waccwvs','waccwvc','waccwhi','waccwls','waccwge','waccwlt','waccwgt','waccwle',
+ 'waddbeq','waddbne','waddbcs','waddbhs','waddbcc','waddblo','waddbmi','waddbpl','waddbvs','waddbvc','waddbhi','waddbls','waddbge','waddblt','waddbgt','waddble',
+ 'waddheq','waddhne','waddhcs','waddhhs','waddhcc','waddhlo','waddhmi','waddhpl','waddhvs','waddhvc','waddhhi','waddhls','waddhge','waddhlt','waddhgt','waddhle',
+ 'waddweq','waddwne','waddwcs','waddwhs','waddwcc','waddwlo','waddwmi','waddwpl','waddwvs','waddwvc','waddwhi','waddwls','waddwge','waddwlt','waddwgt','waddwle',
+ 'waddbceq','waddbcne','waddbccs','waddbchs','waddbccc','waddbclo','waddbcmi','waddbcpl','waddbcvs','waddbcvc','waddbchi','waddbcls','waddbcge','waddbclt','waddbcgt','waddbcle',
+ 'waddhceq','waddhcne','waddhccs','waddhchs','waddhccc','waddhclo','waddhcmi','waddhcpl','waddhcvs','waddhcvc','waddhchi','waddhcls','waddhcge','waddhclt','waddhcgt','waddhcle',
+ 'waddwceq','waddwcne','waddwccs','waddwchs','waddwccc','waddwclo','waddwcmi','waddwcpl','waddwcvs','waddwcvc','waddwchi','waddwcls','waddwcge','waddwclt','waddwcgt','waddwcle',
+ 'waddbsseq','waddbssne','waddbsscs','waddbsshs','waddbsscc','waddbsslo','waddbssmi','waddbsspl','waddbssvs','waddbssvc','waddbsshi','waddbssls','waddbssge','waddbsslt','waddbssgt','waddbssle',
+ 'waddhsseq','waddhssne','waddhsscs','waddhsshs','waddhsscc','waddhsslo','waddhssmi','waddhsspl','waddhssvs','waddhssvc','waddhsshi','waddhssls','waddhssge','waddhsslt','waddhssgt','waddhssle',
+ 'waddwsseq','waddwssne','waddwsscs','waddwsshs','waddwsscc','waddwsslo','waddwssmi','waddwsspl','waddwssvs','waddwssvc','waddwsshi','waddwssls','waddwssge','waddwsslt','waddwssgt','waddwssle',
+ 'waddbuseq','waddbusne','waddbuscs','waddbushs','waddbuscc','waddbuslo','waddbusmi','waddbuspl','waddbusvs','waddbusvc','waddbushi','waddbusls','waddbusge','waddbuslt','waddbusgt','waddbusle',
+ 'waddhuseq','waddhusne','waddhuscs','waddhushs','waddhuscc','waddhuslo','waddhusmi','waddhuspl','waddhusvs','waddhusvc','waddhushi','waddhusls','waddhusge','waddhuslt','waddhusgt','waddhusle',
+ 'waddwuseq','waddwusne','waddwuscs','waddwushs','waddwuscc','waddwuslo','waddwusmi','waddwuspl','waddwusvs','waddwusvc','waddwushi','waddwusls','waddwusge','waddwuslt','waddwusgt','waddwusle',
+ 'waddsubhxeq','waddsubhxne','waddsubhxcs','waddsubhxhs','waddsubhxcc','waddsubhxlo','waddsubhxmi','waddsubhxpl','waddsubhxvs','waddsubhxvc','waddsubhxhi','waddsubhxls','waddsubhxge','waddsubhxlt','waddsubhxgt','waddsubhxle',
+ 'walignieq','walignine','walignics','walignihs','walignicc','walignilo','walignimi','walignipl','walignivs','walignivc','walignihi','walignils','walignige','walignilt','walignigt','walignile',
+ 'walignr0eq','walignr0ne','walignr0cs','walignr0hs','walignr0cc','walignr0lo','walignr0mi','walignr0pl','walignr0vs','walignr0vc','walignr0hi','walignr0ls','walignr0ge','walignr0lt','walignr0gt','walignr0le',
+ 'walignr1eq','walignr1ne','walignr1cs','walignr1hs','walignr1cc','walignr1lo','walignr1mi','walignr1pl','walignr1vs','walignr1vc','walignr1hi','walignr1ls','walignr1ge','walignr1lt','walignr1gt','walignr1le',
+ 'walignr2eq','walignr2ne','walignr2cs','walignr2hs','walignr2cc','walignr2lo','walignr2mi','walignr2pl','walignr2vs','walignr2vc','walignr2hi','walignr2ls','walignr2ge','walignr2lt','walignr2gt','walignr2le',
+ 'walignr3eq','walignr3ne','walignr3cs','walignr3hs','walignr3cc','walignr3lo','walignr3mi','walignr3pl','walignr3vs','walignr3vc','walignr3hi','walignr3ls','walignr3ge','walignr3lt','walignr3gt','walignr3le',
+ 'wandeq','wandne','wandcs','wandhs','wandcc','wandlo','wandmi','wandpl','wandvs','wandvc','wandhi','wandls','wandge','wandlt','wandgt','wandle',
+ 'wandneq','wandnne','wandncs','wandnhs','wandncc','wandnlo','wandnmi','wandnpl','wandnvs','wandnvc','wandnhi','wandnls','wandnge','wandnlt','wandngt','wandnle',
+ 'wavg2beq','wavg2bne','wavg2bcs','wavg2bhs','wavg2bcc','wavg2blo','wavg2bmi','wavg2bpl','wavg2bvs','wavg2bvc','wavg2bhi','wavg2bls','wavg2bge','wavg2blt','wavg2bgt','wavg2ble',
+ 'wavg2heq','wavg2hne','wavg2hcs','wavg2hhs','wavg2hcc','wavg2hlo','wavg2hmi','wavg2hpl','wavg2hvs','wavg2hvc','wavg2hhi','wavg2hls','wavg2hge','wavg2hlt','wavg2hgt','wavg2hle',
+ 'wavg2breq','wavg2brne','wavg2brcs','wavg2brhs','wavg2brcc','wavg2brlo','wavg2brmi','wavg2brpl','wavg2brvs','wavg2brvc','wavg2brhi','wavg2brls','wavg2brge','wavg2brlt','wavg2brgt','wavg2brle',
+ 'wavg2hreq','wavg2hrne','wavg2hrcs','wavg2hrhs','wavg2hrcc','wavg2hrlo','wavg2hrmi','wavg2hrpl','wavg2hrvs','wavg2hrvc','wavg2hrhi','wavg2hrls','wavg2hrge','wavg2hrlt','wavg2hrgt','wavg2hrle',
+ 'wavg4eq','wavg4ne','wavg4cs','wavg4hs','wavg4cc','wavg4lo','wavg4mi','wavg4pl','wavg4vs','wavg4vc','wavg4hi','wavg4ls','wavg4ge','wavg4lt','wavg4gt','wavg4le',
+ 'wavg4req','wavg4rne','wavg4rcs','wavg4rhs','wavg4rcc','wavg4rlo','wavg4rmi','wavg4rpl','wavg4rvs','wavg4rvc','wavg4rhi','wavg4rls','wavg4rge','wavg4rlt','wavg4rgt','wavg4rle',
+ 'wcmpeqbeq','wcmpeqbne','wcmpeqbcs','wcmpeqbhs','wcmpeqbcc','wcmpeqblo','wcmpeqbmi','wcmpeqbpl','wcmpeqbvs','wcmpeqbvc','wcmpeqbhi','wcmpeqbls','wcmpeqbge','wcmpeqblt','wcmpeqbgt','wcmpeqble',
+ 'wcmpeqheq','wcmpeqhne','wcmpeqhcs','wcmpeqhhs','wcmpeqhcc','wcmpeqhlo','wcmpeqhmi','wcmpeqhpl','wcmpeqhvs','wcmpeqhvc','wcmpeqhhi','wcmpeqhls','wcmpeqhge','wcmpeqhlt','wcmpeqhgt','wcmpeqhle',
+ 'wcmpeqweq','wcmpeqwne','wcmpeqwcs','wcmpeqwhs','wcmpeqwcc','wcmpeqwlo','wcmpeqwmi','wcmpeqwpl','wcmpeqwvs','wcmpeqwvc','wcmpeqwhi','wcmpeqwls','wcmpeqwge','wcmpeqwlt','wcmpeqwgt','wcmpeqwle',
+ 'wcmpgtsbeq','wcmpgtsbne','wcmpgtsbcs','wcmpgtsbhs','wcmpgtsbcc','wcmpgtsblo','wcmpgtsbmi','wcmpgtsbpl','wcmpgtsbvs','wcmpgtsbvc','wcmpgtsbhi','wcmpgtsbls','wcmpgtsbge','wcmpgtsblt','wcmpgtsbgt','wcmpgtsble',
+ 'wcmpgtsheq','wcmpgtshne','wcmpgtshcs','wcmpgtshhs','wcmpgtshcc','wcmpgtshlo','wcmpgtshmi','wcmpgtshpl','wcmpgtshvs','wcmpgtshvc','wcmpgtshhi','wcmpgtshls','wcmpgtshge','wcmpgtshlt','wcmpgtshgt','wcmpgtshle',
+ 'wcmpgtsweq','wcmpgtswne','wcmpgtswcs','wcmpgtswhs','wcmpgtswcc','wcmpgtswlo','wcmpgtswmi','wcmpgtswpl','wcmpgtswvs','wcmpgtswvc','wcmpgtswhi','wcmpgtswls','wcmpgtswge','wcmpgtswlt','wcmpgtswgt','wcmpgtswle',
+ 'wcmpgtubeq','wcmpgtubne','wcmpgtubcs','wcmpgtubhs','wcmpgtubcc','wcmpgtublo','wcmpgtubmi','wcmpgtubpl','wcmpgtubvs','wcmpgtubvc','wcmpgtubhi','wcmpgtubls','wcmpgtubge','wcmpgtublt','wcmpgtubgt','wcmpgtuble',
+ 'wcmpgtuheq','wcmpgtuhne','wcmpgtuhcs','wcmpgtuhhs','wcmpgtuhcc','wcmpgtuhlo','wcmpgtuhmi','wcmpgtuhpl','wcmpgtuhvs','wcmpgtuhvc','wcmpgtuhhi','wcmpgtuhls','wcmpgtuhge','wcmpgtuhlt','wcmpgtuhgt','wcmpgtuhle',
+ 'wcmpgtuweq','wcmpgtuwne','wcmpgtuwcs','wcmpgtuwhs','wcmpgtuwcc','wcmpgtuwlo','wcmpgtuwmi','wcmpgtuwpl','wcmpgtuwvs','wcmpgtuwvc','wcmpgtuwhi','wcmpgtuwls','wcmpgtuwge','wcmpgtuwlt','wcmpgtuwgt','wcmpgtuwle',
+ 'wldrbeq','wldrbne','wldrbcs','wldrbhs','wldrbcc','wldrblo','wldrbmi','wldrbpl','wldrbvs','wldrbvc','wldrbhi','wldrbls','wldrbge','wldrblt','wldrbgt','wldrble',
+ 'wldrheq','wldrhne','wldrhcs','wldrhhs','wldrhcc','wldrhlo','wldrhmi','wldrhpl','wldrhvs','wldrhvc','wldrhhi','wldrhls','wldrhge','wldrhlt','wldrhgt','wldrhle',
+ 'wldrweq','wldrwne','wldrwcs','wldrwhs','wldrwcc','wldrwlo','wldrwmi','wldrwpl','wldrwvs','wldrwvc','wldrwhi','wldrwls','wldrwge','wldrwlt','wldrwgt','wldrwle',
+ 'wldrdeq','wldrdne','wldrdcs','wldrdhs','wldrdcc','wldrdlo','wldrdmi','wldrdpl','wldrdvs','wldrdvc','wldrdhi','wldrdls','wldrdge','wldrdlt','wldrdgt','wldrdle',
+ 'wmacseq','wmacsne','wmacscs','wmacshs','wmacscc','wmacslo','wmacsmi','wmacspl','wmacsvs','wmacsvc','wmacshi','wmacsls','wmacsge','wmacslt','wmacsgt','wmacsle',
+ 'wmacueq','wmacune','wmacucs','wmacuhs','wmacucc','wmaculo','wmacumi','wmacupl','wmacuvs','wmacuvc','wmacuhi','wmaculs','wmacuge','wmacult','wmacugt','wmacule',
+ 'wmacszeq','wmacszne','wmacszcs','wmacszhs','wmacszcc','wmacszlo','wmacszmi','wmacszpl','wmacszvs','wmacszvc','wmacszhi','wmacszls','wmacszge','wmacszlt','wmacszgt','wmacszle',
+ 'wmacuzeq','wmacuzne','wmacuzcs','wmacuzhs','wmacuzcc','wmacuzlo','wmacuzmi','wmacuzpl','wmacuzvs','wmacuzvc','wmacuzhi','wmacuzls','wmacuzge','wmacuzlt','wmacuzgt','wmacuzle',
+ 'wmaddseq','wmaddsne','wmaddscs','wmaddshs','wmaddscc','wmaddslo','wmaddsmi','wmaddspl','wmaddsvs','wmaddsvc','wmaddshi','wmaddsls','wmaddsge','wmaddslt','wmaddsgt','wmaddsle',
+ 'wmaddueq','wmaddune','wmadducs','wmadduhs','wmadducc','wmaddulo','wmaddumi','wmaddupl','wmadduvs','wmadduvc','wmadduhi','wmadduls','wmadduge','wmaddult','wmaddugt','wmaddule',
+ 'wmaddsxeq','wmaddsxne','wmaddsxcs','wmaddsxhs','wmaddsxcc','wmaddsxlo','wmaddsxmi','wmaddsxpl','wmaddsxvs','wmaddsxvc','wmaddsxhi','wmaddsxls','wmaddsxge','wmaddsxlt','wmaddsxgt','wmaddsxle',
+ 'wmadduxeq','wmadduxne','wmadduxcs','wmadduxhs','wmadduxcc','wmadduxlo','wmadduxmi','wmadduxpl','wmadduxvs','wmadduxvc','wmadduxhi','wmadduxls','wmadduxge','wmadduxlt','wmadduxgt','wmadduxle',
+ 'wmaddsneq','wmaddsnne','wmaddsncs','wmaddsnhs','wmaddsncc','wmaddsnlo','wmaddsnmi','wmaddsnpl','wmaddsnvs','wmaddsnvc','wmaddsnhi','wmaddsnls','wmaddsnge','wmaddsnlt','wmaddsngt','wmaddsnle',
+ 'wmadduneq','wmaddunne','wmadduncs','wmaddunhs','wmadduncc','wmaddunlo','wmaddunmi','wmaddunpl','wmaddunvs','wmaddunvc','wmaddunhi','wmaddunls','wmaddunge','wmaddunlt','wmaddungt','wmaddunle',
+ 'wmaxsbeq','wmaxsbne','wmaxsbcs','wmaxsbhs','wmaxsbcc','wmaxsblo','wmaxsbmi','wmaxsbpl','wmaxsbvs','wmaxsbvc','wmaxsbhi','wmaxsbls','wmaxsbge','wmaxsblt','wmaxsbgt','wmaxsble',
+ 'wmaxsheq','wmaxshne','wmaxshcs','wmaxshhs','wmaxshcc','wmaxshlo','wmaxshmi','wmaxshpl','wmaxshvs','wmaxshvc','wmaxshhi','wmaxshls','wmaxshge','wmaxshlt','wmaxshgt','wmaxshle',
+ 'wmaxsweq','wmaxswne','wmaxswcs','wmaxswhs','wmaxswcc','wmaxswlo','wmaxswmi','wmaxswpl','wmaxswvs','wmaxswvc','wmaxswhi','wmaxswls','wmaxswge','wmaxswlt','wmaxswgt','wmaxswle',
+ 'wmaxubeq','wmaxubne','wmaxubcs','wmaxubhs','wmaxubcc','wmaxublo','wmaxubmi','wmaxubpl','wmaxubvs','wmaxubvc','wmaxubhi','wmaxubls','wmaxubge','wmaxublt','wmaxubgt','wmaxuble',
+ 'wmaxuheq','wmaxuhne','wmaxuhcs','wmaxuhhs','wmaxuhcc','wmaxuhlo','wmaxuhmi','wmaxuhpl','wmaxuhvs','wmaxuhvc','wmaxuhhi','wmaxuhls','wmaxuhge','wmaxuhlt','wmaxuhgt','wmaxuhle',
+ 'wmaxuweq','wmaxuwne','wmaxuwcs','wmaxuwhs','wmaxuwcc','wmaxuwlo','wmaxuwmi','wmaxuwpl','wmaxuwvs','wmaxuwvc','wmaxuwhi','wmaxuwls','wmaxuwge','wmaxuwlt','wmaxuwgt','wmaxuwle',
+ 'wmergeeq','wmergene','wmergecs','wmergehs','wmergecc','wmergelo','wmergemi','wmergepl','wmergevs','wmergevc','wmergehi','wmergels','wmergege','wmergelt','wmergegt','wmergele',
+ 'wmiabbeq','wmiabbne','wmiabbcs','wmiabbhs','wmiabbcc','wmiabblo','wmiabbmi','wmiabbpl','wmiabbvs','wmiabbvc','wmiabbhi','wmiabbls','wmiabbge','wmiabblt','wmiabbgt','wmiabble',
+ 'wmiabteq','wmiabtne','wmiabtcs','wmiabths','wmiabtcc','wmiabtlo','wmiabtmi','wmiabtpl','wmiabtvs','wmiabtvc','wmiabthi','wmiabtls','wmiabtge','wmiabtlt','wmiabtgt','wmiabtle',
+ 'wmiatbeq','wmiatbne','wmiatbcs','wmiatbhs','wmiatbcc','wmiatblo','wmiatbmi','wmiatbpl','wmiatbvs','wmiatbvc','wmiatbhi','wmiatbls','wmiatbge','wmiatblt','wmiatbgt','wmiatble',
+ 'wmiatteq','wmiattne','wmiattcs','wmiatths','wmiattcc','wmiattlo','wmiattmi','wmiattpl','wmiattvs','wmiattvc','wmiatthi','wmiattls','wmiattge','wmiattlt','wmiattgt','wmiattle',
+ 'wmiabbneq','wmiabbnne','wmiabbncs','wmiabbnhs','wmiabbncc','wmiabbnlo','wmiabbnmi','wmiabbnpl','wmiabbnvs','wmiabbnvc','wmiabbnhi','wmiabbnls','wmiabbnge','wmiabbnlt','wmiabbngt','wmiabbnle',
+ 'wmiabtneq','wmiabtnne','wmiabtncs','wmiabtnhs','wmiabtncc','wmiabtnlo','wmiabtnmi','wmiabtnpl','wmiabtnvs','wmiabtnvc','wmiabtnhi','wmiabtnls','wmiabtnge','wmiabtnlt','wmiabtngt','wmiabtnle',
+ 'wmiatbneq','wmiatbnne','wmiatbncs','wmiatbnhs','wmiatbncc','wmiatbnlo','wmiatbnmi','wmiatbnpl','wmiatbnvs','wmiatbnvc','wmiatbnhi','wmiatbnls','wmiatbnge','wmiatbnlt','wmiatbngt','wmiatbnle',
+ 'wmiattneq','wmiattnne','wmiattncs','wmiattnhs','wmiattncc','wmiattnlo','wmiattnmi','wmiattnpl','wmiattnvs','wmiattnvc','wmiattnhi','wmiattnls','wmiattnge','wmiattnlt','wmiattngt','wmiattnle',
+ 'wmiawbbeq','wmiawbbne','wmiawbbcs','wmiawbbhs','wmiawbbcc','wmiawbblo','wmiawbbmi','wmiawbbpl','wmiawbbvs','wmiawbbvc','wmiawbbhi','wmiawbbls','wmiawbbge','wmiawbblt','wmiawbbgt','wmiawbble',
+ 'wmiawbteq','wmiawbtne','wmiawbtcs','wmiawbths','wmiawbtcc','wmiawbtlo','wmiawbtmi','wmiawbtpl','wmiawbtvs','wmiawbtvc','wmiawbthi','wmiawbtls','wmiawbtge','wmiawbtlt','wmiawbtgt','wmiawbtle',
+ 'wmiawtbeq','wmiawtbne','wmiawtbcs','wmiawtbhs','wmiawtbcc','wmiawtblo','wmiawtbmi','wmiawtbpl','wmiawtbvs','wmiawtbvc','wmiawtbhi','wmiawtbls','wmiawtbge','wmiawtblt','wmiawtbgt','wmiawtble',
+ 'wmiawtteq','wmiawttne','wmiawttcs','wmiawtths','wmiawttcc','wmiawttlo','wmiawttmi','wmiawttpl','wmiawttvs','wmiawttvc','wmiawtthi','wmiawttls','wmiawttge','wmiawttlt','wmiawttgt','wmiawttle',
+ 'wmiawbbneq','wmiawbbnne','wmiawbbncs','wmiawbbnhs','wmiawbbncc','wmiawbbnlo','wmiawbbnmi','wmiawbbnpl','wmiawbbnvs','wmiawbbnvc','wmiawbbnhi','wmiawbbnls','wmiawbbnge','wmiawbbnlt','wmiawbbngt','wmiawbbnle',
+ 'wmiawbtneq','wmiawbtnne','wmiawbtncs','wmiawbtnhs','wmiawbtncc','wmiawbtnlo','wmiawbtnmi','wmiawbtnpl','wmiawbtnvs','wmiawbtnvc','wmiawbtnhi','wmiawbtnls','wmiawbtnge','wmiawbtnlt','wmiawbtngt','wmiawbtnle',
+ 'wmiawtbneq','wmiawtbnne','wmiawtbncs','wmiawtbnhs','wmiawtbncc','wmiawtbnlo','wmiawtbnmi','wmiawtbnpl','wmiawtbnvs','wmiawtbnvc','wmiawtbnhi','wmiawtbnls','wmiawtbnge','wmiawtbnlt','wmiawtbngt','wmiawtbnle',
+ 'wmiawttneq','wmiawttnne','wmiawttncs','wmiawttnhs','wmiawttncc','wmiawttnlo','wmiawttnmi','wmiawttnpl','wmiawttnvs','wmiawttnvc','wmiawttnhi','wmiawttnls','wmiawttnge','wmiawttnlt','wmiawttngt','wmiawttnle',
+ 'wminsbeq','wminsbne','wminsbcs','wminsbhs','wminsbcc','wminsblo','wminsbmi','wminsbpl','wminsbvs','wminsbvc','wminsbhi','wminsbls','wminsbge','wminsblt','wminsbgt','wminsble',
+ 'wminsheq','wminshne','wminshcs','wminshhs','wminshcc','wminshlo','wminshmi','wminshpl','wminshvs','wminshvc','wminshhi','wminshls','wminshge','wminshlt','wminshgt','wminshle',
+ 'wminsweq','wminswne','wminswcs','wminswhs','wminswcc','wminswlo','wminswmi','wminswpl','wminswvs','wminswvc','wminswhi','wminswls','wminswge','wminswlt','wminswgt','wminswle',
+ 'wminubeq','wminubne','wminubcs','wminubhs','wminubcc','wminublo','wminubmi','wminubpl','wminubvs','wminubvc','wminubhi','wminubls','wminubge','wminublt','wminubgt','wminuble',
+ 'wminuheq','wminuhne','wminuhcs','wminuhhs','wminuhcc','wminuhlo','wminuhmi','wminuhpl','wminuhvs','wminuhvc','wminuhhi','wminuhls','wminuhge','wminuhlt','wminuhgt','wminuhle',
+ 'wminuweq','wminuwne','wminuwcs','wminuwhs','wminuwcc','wminuwlo','wminuwmi','wminuwpl','wminuwvs','wminuwvc','wminuwhi','wminuwls','wminuwge','wminuwlt','wminuwgt','wminuwle',
+ 'wmoveq','wmovne','wmovcs','wmovhs','wmovcc','wmovlo','wmovmi','wmovpl','wmovvs','wmovvc','wmovhi','wmovls','wmovge','wmovlt','wmovgt','wmovle',
+ 'wmulsmeq','wmulsmne','wmulsmcs','wmulsmhs','wmulsmcc','wmulsmlo','wmulsmmi','wmulsmpl','wmulsmvs','wmulsmvc','wmulsmhi','wmulsmls','wmulsmge','wmulsmlt','wmulsmgt','wmulsmle',
+ 'wmulsleq','wmulslne','wmulslcs','wmulslhs','wmulslcc','wmulsllo','wmulslmi','wmulslpl','wmulslvs','wmulslvc','wmulslhi','wmulslls','wmulslge','wmulsllt','wmulslgt','wmulslle',
+ 'wmulumeq','wmulumne','wmulumcs','wmulumhs','wmulumcc','wmulumlo','wmulummi','wmulumpl','wmulumvs','wmulumvc','wmulumhi','wmulumls','wmulumge','wmulumlt','wmulumgt','wmulumle',
+ 'wmululeq','wmululne','wmululcs','wmululhs','wmululcc','wmulullo','wmululmi','wmululpl','wmululvs','wmululvc','wmululhi','wmululls','wmululge','wmulullt','wmululgt','wmululle',
+ 'wmulsmreq','wmulsmrne','wmulsmrcs','wmulsmrhs','wmulsmrcc','wmulsmrlo','wmulsmrmi','wmulsmrpl','wmulsmrvs','wmulsmrvc','wmulsmrhi','wmulsmrls','wmulsmrge','wmulsmrlt','wmulsmrgt','wmulsmrle',
+ 'wmulslreq','wmulslrne','wmulslrcs','wmulslrhs','wmulslrcc','wmulslrlo','wmulslrmi','wmulslrpl','wmulslrvs','wmulslrvc','wmulslrhi','wmulslrls','wmulslrge','wmulslrlt','wmulslrgt','wmulslrle',
+ 'wmulumreq','wmulumrne','wmulumrcs','wmulumrhs','wmulumrcc','wmulumrlo','wmulumrmi','wmulumrpl','wmulumrvs','wmulumrvc','wmulumrhi','wmulumrls','wmulumrge','wmulumrlt','wmulumrgt','wmulumrle',
+ 'wmululreq','wmululrne','wmululrcs','wmululrhs','wmululrcc','wmululrlo','wmululrmi','wmululrpl','wmululrvs','wmululrvc','wmululrhi','wmululrls','wmululrge','wmululrlt','wmululrgt','wmululrle',
+ 'wmulwumeq','wmulwumne','wmulwumcs','wmulwumhs','wmulwumcc','wmulwumlo','wmulwummi','wmulwumpl','wmulwumvs','wmulwumvc','wmulwumhi','wmulwumls','wmulwumge','wmulwumlt','wmulwumgt','wmulwumle',
+ 'wmulwsmeq','wmulwsmne','wmulwsmcs','wmulwsmhs','wmulwsmcc','wmulwsmlo','wmulwsmmi','wmulwsmpl','wmulwsmvs','wmulwsmvc','wmulwsmhi','wmulwsmls','wmulwsmge','wmulwsmlt','wmulwsmgt','wmulwsmle',
+ 'wmulwleq','wmulwlne','wmulwlcs','wmulwlhs','wmulwlcc','wmulwllo','wmulwlmi','wmulwlpl','wmulwlvs','wmulwlvc','wmulwlhi','wmulwlls','wmulwlge','wmulwllt','wmulwlgt','wmulwlle',
+ 'wmulwumreq','wmulwumrne','wmulwumrcs','wmulwumrhs','wmulwumrcc','wmulwumrlo','wmulwumrmi','wmulwumrpl','wmulwumrvs','wmulwumrvc','wmulwumrhi','wmulwumrls','wmulwumrge','wmulwumrlt','wmulwumrgt','wmulwumrle',
+ 'wmulwsmreq','wmulwsmrne','wmulwsmrcs','wmulwsmrhs','wmulwsmrcc','wmulwsmrlo','wmulwsmrmi','wmulwsmrpl','wmulwsmrvs','wmulwsmrvc','wmulwsmrhi','wmulwsmrls','wmulwsmrge','wmulwsmrlt','wmulwsmrgt','wmulwsmrle',
+ 'woreq','worne','worcs','worhs','worcc','worlo','wormi','worpl','worvs','worvc','worhi','worls','worge','worlt','worgt','worle',
+ 'wpackhsseq','wpackhssne','wpackhsscs','wpackhsshs','wpackhsscc','wpackhsslo','wpackhssmi','wpackhsspl','wpackhssvs','wpackhssvc','wpackhsshi','wpackhssls','wpackhssge','wpackhsslt','wpackhssgt','wpackhssle',
+ 'wpackwsseq','wpackwssne','wpackwsscs','wpackwsshs','wpackwsscc','wpackwsslo','wpackwssmi','wpackwsspl','wpackwssvs','wpackwssvc','wpackwsshi','wpackwssls','wpackwssge','wpackwsslt','wpackwssgt','wpackwssle',
+ 'wpackdsseq','wpackdssne','wpackdsscs','wpackdsshs','wpackdsscc','wpackdsslo','wpackdssmi','wpackdsspl','wpackdssvs','wpackdssvc','wpackdsshi','wpackdssls','wpackdssge','wpackdsslt','wpackdssgt','wpackdssle',
+ 'wpackhuseq','wpackhusne','wpackhuscs','wpackhushs','wpackhuscc','wpackhuslo','wpackhusmi','wpackhuspl','wpackhusvs','wpackhusvc','wpackhushi','wpackhusls','wpackhusge','wpackhuslt','wpackhusgt','wpackhusle',
+ 'wpackwuseq','wpackwusne','wpackwuscs','wpackwushs','wpackwuscc','wpackwuslo','wpackwusmi','wpackwuspl','wpackwusvs','wpackwusvc','wpackwushi','wpackwusls','wpackwusge','wpackwuslt','wpackwusgt','wpackwusle',
+ 'wpackduseq','wpackdusne','wpackduscs','wpackdushs','wpackduscc','wpackduslo','wpackdusmi','wpackduspl','wpackdusvs','wpackdusvc','wpackdushi','wpackdusls','wpackdusge','wpackduslt','wpackdusgt','wpackdusle',
+ 'wqmiabbeq','wqmiabbne','wqmiabbcs','wqmiabbhs','wqmiabbcc','wqmiabblo','wqmiabbmi','wqmiabbpl','wqmiabbvs','wqmiabbvc','wqmiabbhi','wqmiabbls','wqmiabbge','wqmiabblt','wqmiabbgt','wqmiabble',
+ 'wqmiabteq','wqmiabtne','wqmiabtcs','wqmiabths','wqmiabtcc','wqmiabtlo','wqmiabtmi','wqmiabtpl','wqmiabtvs','wqmiabtvc','wqmiabthi','wqmiabtls','wqmiabtge','wqmiabtlt','wqmiabtgt','wqmiabtle',
+ 'wqmiatbeq','wqmiatbne','wqmiatbcs','wqmiatbhs','wqmiatbcc','wqmiatblo','wqmiatbmi','wqmiatbpl','wqmiatbvs','wqmiatbvc','wqmiatbhi','wqmiatbls','wqmiatbge','wqmiatblt','wqmiatbgt','wqmiatble',
+ 'wqmiatteq','wqmiattne','wqmiattcs','wqmiatths','wqmiattcc','wqmiattlo','wqmiattmi','wqmiattpl','wqmiattvs','wqmiattvc','wqmiatthi','wqmiattls','wqmiattge','wqmiattlt','wqmiattgt','wqmiattle',
+ 'wqmiabbneq','wqmiabbnne','wqmiabbncs','wqmiabbnhs','wqmiabbncc','wqmiabbnlo','wqmiabbnmi','wqmiabbnpl','wqmiabbnvs','wqmiabbnvc','wqmiabbnhi','wqmiabbnls','wqmiabbnge','wqmiabbnlt','wqmiabbngt','wqmiabbnle',
+ 'wqmiabtneq','wqmiabtnne','wqmiabtncs','wqmiabtnhs','wqmiabtncc','wqmiabtnlo','wqmiabtnmi','wqmiabtnpl','wqmiabtnvs','wqmiabtnvc','wqmiabtnhi','wqmiabtnls','wqmiabtnge','wqmiabtnlt','wqmiabtngt','wqmiabtnle',
+ 'wqmiatbneq','wqmiatbnne','wqmiatbncs','wqmiatbnhs','wqmiatbncc','wqmiatbnlo','wqmiatbnmi','wqmiatbnpl','wqmiatbnvs','wqmiatbnvc','wqmiatbnhi','wqmiatbnls','wqmiatbnge','wqmiatbnlt','wqmiatbngt','wqmiatbnle',
+ 'wqmiattneq','wqmiattnne','wqmiattncs','wqmiattnhs','wqmiattncc','wqmiattnlo','wqmiattnmi','wqmiattnpl','wqmiattnvs','wqmiattnvc','wqmiattnhi','wqmiattnls','wqmiattnge','wqmiattnlt','wqmiattngt','wqmiattnle',
+ 'wqmulmeq','wqmulmne','wqmulmcs','wqmulmhs','wqmulmcc','wqmulmlo','wqmulmmi','wqmulmpl','wqmulmvs','wqmulmvc','wqmulmhi','wqmulmls','wqmulmge','wqmulmlt','wqmulmgt','wqmulmle',
+ 'wqmulmreq','wqmulmrne','wqmulmrcs','wqmulmrhs','wqmulmrcc','wqmulmrlo','wqmulmrmi','wqmulmrpl','wqmulmrvs','wqmulmrvc','wqmulmrhi','wqmulmrls','wqmulmrge','wqmulmrlt','wqmulmrgt','wqmulmrle',
+ 'wqmulwmeq','wqmulwmne','wqmulwmcs','wqmulwmhs','wqmulwmcc','wqmulwmlo','wqmulwmmi','wqmulwmpl','wqmulwmvs','wqmulwmvc','wqmulwmhi','wqmulwmls','wqmulwmge','wqmulwmlt','wqmulwmgt','wqmulwmle',
+ 'wqmulwmreq','wqmulwmrne','wqmulwmrcs','wqmulwmrhs','wqmulwmrcc','wqmulwmrlo','wqmulwmrmi','wqmulwmrpl','wqmulwmrvs','wqmulwmrvc','wqmulwmrhi','wqmulwmrls','wqmulwmrge','wqmulwmrlt','wqmulwmrgt','wqmulwmrle',
+ 'wrorheq','wrorhne','wrorhcs','wrorhhs','wrorhcc','wrorhlo','wrorhmi','wrorhpl','wrorhvs','wrorhvc','wrorhhi','wrorhls','wrorhge','wrorhlt','wrorhgt','wrorhle',
+ 'wrorweq','wrorwne','wrorwcs','wrorwhs','wrorwcc','wrorwlo','wrorwmi','wrorwpl','wrorwvs','wrorwvc','wrorwhi','wrorwls','wrorwge','wrorwlt','wrorwgt','wrorwle',
+ 'wrordeq','wrordne','wrordcs','wrordhs','wrordcc','wrordlo','wrordmi','wrordpl','wrordvs','wrordvc','wrordhi','wrordls','wrordge','wrordlt','wrordgt','wrordle',
+ 'wrorhgeq','wrorhgne','wrorhgcs','wrorhghs','wrorhgcc','wrorhglo','wrorhgmi','wrorhgpl','wrorhgvs','wrorhgvc','wrorhghi','wrorhgls','wrorhgge','wrorhglt','wrorhggt','wrorhgle',
+ 'wrorwgeq','wrorwgne','wrorwgcs','wrorwghs','wrorwgcc','wrorwglo','wrorwgmi','wrorwgpl','wrorwgvs','wrorwgvc','wrorwghi','wrorwgls','wrorwgge','wrorwglt','wrorwggt','wrorwgle',
+ 'wrordgeq','wrordgne','wrordgcs','wrordghs','wrordgcc','wrordglo','wrordgmi','wrordgpl','wrordgvs','wrordgvc','wrordghi','wrordgls','wrordgge','wrordglt','wrordggt','wrordgle',
+ 'wsadbeq','wsadbne','wsadbcs','wsadbhs','wsadbcc','wsadblo','wsadbmi','wsadbpl','wsadbvs','wsadbvc','wsadbhi','wsadbls','wsadbge','wsadblt','wsadbgt','wsadble',
+ 'wsadheq','wsadhne','wsadhcs','wsadhhs','wsadhcc','wsadhlo','wsadhmi','wsadhpl','wsadhvs','wsadhvc','wsadhhi','wsadhls','wsadhge','wsadhlt','wsadhgt','wsadhle',
+ 'wsadbzeq','wsadbzne','wsadbzcs','wsadbzhs','wsadbzcc','wsadbzlo','wsadbzmi','wsadbzpl','wsadbzvs','wsadbzvc','wsadbzhi','wsadbzls','wsadbzge','wsadbzlt','wsadbzgt','wsadbzle',
+ 'wsadhzeq','wsadhzne','wsadhzcs','wsadhzhs','wsadhzcc','wsadhzlo','wsadhzmi','wsadhzpl','wsadhzvs','wsadhzvc','wsadhzhi','wsadhzls','wsadhzge','wsadhzlt','wsadhzgt','wsadhzle',
+ 'wshufheq','wshufhne','wshufhcs','wshufhhs','wshufhcc','wshufhlo','wshufhmi','wshufhpl','wshufhvs','wshufhvc','wshufhhi','wshufhls','wshufhge','wshufhlt','wshufhgt','wshufhle',
+ 'wsllheq','wsllhne','wsllhcs','wsllhhs','wsllhcc','wsllhlo','wsllhmi','wsllhpl','wsllhvs','wsllhvc','wsllhhi','wsllhls','wsllhge','wsllhlt','wsllhgt','wsllhle',
+ 'wsllweq','wsllwne','wsllwcs','wsllwhs','wsllwcc','wsllwlo','wsllwmi','wsllwpl','wsllwvs','wsllwvc','wsllwhi','wsllwls','wsllwge','wsllwlt','wsllwgt','wsllwle',
+ 'wslldeq','wslldne','wslldcs','wslldhs','wslldcc','wslldlo','wslldmi','wslldpl','wslldvs','wslldvc','wslldhi','wslldls','wslldge','wslldlt','wslldgt','wslldle',
+ 'wsllhgeq','wsllhgne','wsllhgcs','wsllhghs','wsllhgcc','wsllhglo','wsllhgmi','wsllhgpl','wsllhgvs','wsllhgvc','wsllhghi','wsllhgls','wsllhgge','wsllhglt','wsllhggt','wsllhgle',
+ 'wsllwgeq','wsllwgne','wsllwgcs','wsllwghs','wsllwgcc','wsllwglo','wsllwgmi','wsllwgpl','wsllwgvs','wsllwgvc','wsllwghi','wsllwgls','wsllwgge','wsllwglt','wsllwggt','wsllwgle',
+ 'wslldgeq','wslldgne','wslldgcs','wslldghs','wslldgcc','wslldglo','wslldgmi','wslldgpl','wslldgvs','wslldgvc','wslldghi','wslldgls','wslldgge','wslldglt','wslldggt','wslldgle',
+ 'wsraheq','wsrahne','wsrahcs','wsrahhs','wsrahcc','wsrahlo','wsrahmi','wsrahpl','wsrahvs','wsrahvc','wsrahhi','wsrahls','wsrahge','wsrahlt','wsrahgt','wsrahle',
+ 'wsraweq','wsrawne','wsrawcs','wsrawhs','wsrawcc','wsrawlo','wsrawmi','wsrawpl','wsrawvs','wsrawvc','wsrawhi','wsrawls','wsrawge','wsrawlt','wsrawgt','wsrawle',
+ 'wsradeq','wsradne','wsradcs','wsradhs','wsradcc','wsradlo','wsradmi','wsradpl','wsradvs','wsradvc','wsradhi','wsradls','wsradge','wsradlt','wsradgt','wsradle',
+ 'wsrahgeq','wsrahgne','wsrahgcs','wsrahghs','wsrahgcc','wsrahglo','wsrahgmi','wsrahgpl','wsrahgvs','wsrahgvc','wsrahghi','wsrahgls','wsrahgge','wsrahglt','wsrahggt','wsrahgle',
+ 'wsrawgeq','wsrawgne','wsrawgcs','wsrawghs','wsrawgcc','wsrawglo','wsrawgmi','wsrawgpl','wsrawgvs','wsrawgvc','wsrawghi','wsrawgls','wsrawgge','wsrawglt','wsrawggt','wsrawgle',
+ 'wsradgeq','wsradgne','wsradgcs','wsradghs','wsradgcc','wsradglo','wsradgmi','wsradgpl','wsradgvs','wsradgvc','wsradghi','wsradgls','wsradgge','wsradglt','wsradggt','wsradgle',
+ 'wsrlheq','wsrlhne','wsrlhcs','wsrlhhs','wsrlhcc','wsrlhlo','wsrlhmi','wsrlhpl','wsrlhvs','wsrlhvc','wsrlhhi','wsrlhls','wsrlhge','wsrlhlt','wsrlhgt','wsrlhle',
+ 'wsrlweq','wsrlwne','wsrlwcs','wsrlwhs','wsrlwcc','wsrlwlo','wsrlwmi','wsrlwpl','wsrlwvs','wsrlwvc','wsrlwhi','wsrlwls','wsrlwge','wsrlwlt','wsrlwgt','wsrlwle',
+ 'wsrldeq','wsrldne','wsrldcs','wsrldhs','wsrldcc','wsrldlo','wsrldmi','wsrldpl','wsrldvs','wsrldvc','wsrldhi','wsrldls','wsrldge','wsrldlt','wsrldgt','wsrldle',
+ 'wsrlhgeq','wsrlhgne','wsrlhgcs','wsrlhghs','wsrlhgcc','wsrlhglo','wsrlhgmi','wsrlhgpl','wsrlhgvs','wsrlhgvc','wsrlhghi','wsrlhgls','wsrlhgge','wsrlhglt','wsrlhggt','wsrlhgle',
+ 'wsrlwgeq','wsrlwgne','wsrlwgcs','wsrlwghs','wsrlwgcc','wsrlwglo','wsrlwgmi','wsrlwgpl','wsrlwgvs','wsrlwgvc','wsrlwghi','wsrlwgls','wsrlwgge','wsrlwglt','wsrlwggt','wsrlwgle',
+ 'wsrldgeq','wsrldgne','wsrldgcs','wsrldghs','wsrldgcc','wsrldglo','wsrldgmi','wsrldgpl','wsrldgvs','wsrldgvc','wsrldghi','wsrldgls','wsrldgge','wsrldglt','wsrldggt','wsrldgle',
+ 'wstrbeq','wstrbne','wstrbcs','wstrbhs','wstrbcc','wstrblo','wstrbmi','wstrbpl','wstrbvs','wstrbvc','wstrbhi','wstrbls','wstrbge','wstrblt','wstrbgt','wstrble',
+ 'wstrheq','wstrhne','wstrhcs','wstrhhs','wstrhcc','wstrhlo','wstrhmi','wstrhpl','wstrhvs','wstrhvc','wstrhhi','wstrhls','wstrhge','wstrhlt','wstrhgt','wstrhle',
+ 'wstrweq','wstrwne','wstrwcs','wstrwhs','wstrwcc','wstrwlo','wstrwmi','wstrwpl','wstrwvs','wstrwvc','wstrwhi','wstrwls','wstrwge','wstrwlt','wstrwgt','wstrwle',
+ 'wstrdeq','wstrdne','wstrdcs','wstrdhs','wstrdcc','wstrdlo','wstrdmi','wstrdpl','wstrdvs','wstrdvc','wstrdhi','wstrdls','wstrdge','wstrdlt','wstrdgt','wstrdle',
+ 'wsubbeq','wsubbne','wsubbcs','wsubbhs','wsubbcc','wsubblo','wsubbmi','wsubbpl','wsubbvs','wsubbvc','wsubbhi','wsubbls','wsubbge','wsubblt','wsubbgt','wsubble',
+ 'wsubheq','wsubhne','wsubhcs','wsubhhs','wsubhcc','wsubhlo','wsubhmi','wsubhpl','wsubhvs','wsubhvc','wsubhhi','wsubhls','wsubhge','wsubhlt','wsubhgt','wsubhle',
+ 'wsubweq','wsubwne','wsubwcs','wsubwhs','wsubwcc','wsubwlo','wsubwmi','wsubwpl','wsubwvs','wsubwvc','wsubwhi','wsubwls','wsubwge','wsubwlt','wsubwgt','wsubwle',
+ 'wsubbsseq','wsubbssne','wsubbsscs','wsubbsshs','wsubbsscc','wsubbsslo','wsubbssmi','wsubbsspl','wsubbssvs','wsubbssvc','wsubbsshi','wsubbssls','wsubbssge','wsubbsslt','wsubbssgt','wsubbssle',
+ 'wsubhsseq','wsubhssne','wsubhsscs','wsubhsshs','wsubhsscc','wsubhsslo','wsubhssmi','wsubhsspl','wsubhssvs','wsubhssvc','wsubhsshi','wsubhssls','wsubhssge','wsubhsslt','wsubhssgt','wsubhssle',
+ 'wsubwsseq','wsubwssne','wsubwsscs','wsubwsshs','wsubwsscc','wsubwsslo','wsubwssmi','wsubwsspl','wsubwssvs','wsubwssvc','wsubwsshi','wsubwssls','wsubwssge','wsubwsslt','wsubwssgt','wsubwssle',
+ 'wsubbuseq','wsubbusne','wsubbuscs','wsubbushs','wsubbuscc','wsubbuslo','wsubbusmi','wsubbuspl','wsubbusvs','wsubbusvc','wsubbushi','wsubbusls','wsubbusge','wsubbuslt','wsubbusgt','wsubbusle',
+ 'wsubhuseq','wsubhusne','wsubhuscs','wsubhushs','wsubhuscc','wsubhuslo','wsubhusmi','wsubhuspl','wsubhusvs','wsubhusvc','wsubhushi','wsubhusls','wsubhusge','wsubhuslt','wsubhusgt','wsubhusle',
+ 'wsubwuseq','wsubwusne','wsubwuscs','wsubwushs','wsubwuscc','wsubwuslo','wsubwusmi','wsubwuspl','wsubwusvs','wsubwusvc','wsubwushi','wsubwusls','wsubwusge','wsubwuslt','wsubwusgt','wsubwusle',
+ 'wsubaddhxeq','wsubaddhxne','wsubaddhxcs','wsubaddhxhs','wsubaddhxcc','wsubaddhxlo','wsubaddhxmi','wsubaddhxpl','wsubaddhxvs','wsubaddhxvc','wsubaddhxhi','wsubaddhxls','wsubaddhxge','wsubaddhxlt','wsubaddhxgt','wsubaddhxle',
+ 'wunpckehsbeq','wunpckehsbne','wunpckehsbcs','wunpckehsbhs','wunpckehsbcc','wunpckehsblo','wunpckehsbmi','wunpckehsbpl','wunpckehsbvs','wunpckehsbvc','wunpckehsbhi','wunpckehsbls','wunpckehsbge','wunpckehsblt','wunpckehsbgt','wunpckehsble',
+ 'wunpckehsheq','wunpckehshne','wunpckehshcs','wunpckehshhs','wunpckehshcc','wunpckehshlo','wunpckehshmi','wunpckehshpl','wunpckehshvs','wunpckehshvc','wunpckehshhi','wunpckehshls','wunpckehshge','wunpckehshlt','wunpckehshgt','wunpckehshle',
+ 'wunpckehsweq','wunpckehswne','wunpckehswcs','wunpckehswhs','wunpckehswcc','wunpckehswlo','wunpckehswmi','wunpckehswpl','wunpckehswvs','wunpckehswvc','wunpckehswhi','wunpckehswls','wunpckehswge','wunpckehswlt','wunpckehswgt','wunpckehswle',
+ 'wunpckehubeq','wunpckehubne','wunpckehubcs','wunpckehubhs','wunpckehubcc','wunpckehublo','wunpckehubmi','wunpckehubpl','wunpckehubvs','wunpckehubvc','wunpckehubhi','wunpckehubls','wunpckehubge','wunpckehublt','wunpckehubgt','wunpckehuble',
+ 'wunpckehuheq','wunpckehuhne','wunpckehuhcs','wunpckehuhhs','wunpckehuhcc','wunpckehuhlo','wunpckehuhmi','wunpckehuhpl','wunpckehuhvs','wunpckehuhvc','wunpckehuhhi','wunpckehuhls','wunpckehuhge','wunpckehuhlt','wunpckehuhgt','wunpckehuhle',
+ 'wunpckehuweq','wunpckehuwne','wunpckehuwcs','wunpckehuwhs','wunpckehuwcc','wunpckehuwlo','wunpckehuwmi','wunpckehuwpl','wunpckehuwvs','wunpckehuwvc','wunpckehuwhi','wunpckehuwls','wunpckehuwge','wunpckehuwlt','wunpckehuwgt','wunpckehuwle',
+ 'wunpckihbeq','wunpckihbne','wunpckihbcs','wunpckihbhs','wunpckihbcc','wunpckihblo','wunpckihbmi','wunpckihbpl','wunpckihbvs','wunpckihbvc','wunpckihbhi','wunpckihbls','wunpckihbge','wunpckihblt','wunpckihbgt','wunpckihble',
+ 'wunpckihheq','wunpckihhne','wunpckihhcs','wunpckihhhs','wunpckihhcc','wunpckihhlo','wunpckihhmi','wunpckihhpl','wunpckihhvs','wunpckihhvc','wunpckihhhi','wunpckihhls','wunpckihhge','wunpckihhlt','wunpckihhgt','wunpckihhle',
+ 'wunpckihweq','wunpckihwne','wunpckihwcs','wunpckihwhs','wunpckihwcc','wunpckihwlo','wunpckihwmi','wunpckihwpl','wunpckihwvs','wunpckihwvc','wunpckihwhi','wunpckihwls','wunpckihwge','wunpckihwlt','wunpckihwgt','wunpckihwle',
+ 'wunpckelsbeq','wunpckelsbne','wunpckelsbcs','wunpckelsbhs','wunpckelsbcc','wunpckelsblo','wunpckelsbmi','wunpckelsbpl','wunpckelsbvs','wunpckelsbvc','wunpckelsbhi','wunpckelsbls','wunpckelsbge','wunpckelsblt','wunpckelsbgt','wunpckelsble',
+ 'wunpckelsheq','wunpckelshne','wunpckelshcs','wunpckelshhs','wunpckelshcc','wunpckelshlo','wunpckelshmi','wunpckelshpl','wunpckelshvs','wunpckelshvc','wunpckelshhi','wunpckelshls','wunpckelshge','wunpckelshlt','wunpckelshgt','wunpckelshle',
+ 'wunpckelsweq','wunpckelswne','wunpckelswcs','wunpckelswhs','wunpckelswcc','wunpckelswlo','wunpckelswmi','wunpckelswpl','wunpckelswvs','wunpckelswvc','wunpckelswhi','wunpckelswls','wunpckelswge','wunpckelswlt','wunpckelswgt','wunpckelswle',
+ 'wunpckelubeq','wunpckelubne','wunpckelubcs','wunpckelubhs','wunpckelubcc','wunpckelublo','wunpckelubmi','wunpckelubpl','wunpckelubvs','wunpckelubvc','wunpckelubhi','wunpckelubls','wunpckelubge','wunpckelublt','wunpckelubgt','wunpckeluble',
+ 'wunpckeluheq','wunpckeluhne','wunpckeluhcs','wunpckeluhhs','wunpckeluhcc','wunpckeluhlo','wunpckeluhmi','wunpckeluhpl','wunpckeluhvs','wunpckeluhvc','wunpckeluhhi','wunpckeluhls','wunpckeluhge','wunpckeluhlt','wunpckeluhgt','wunpckeluhle',
+ 'wunpckeluweq','wunpckeluwne','wunpckeluwcs','wunpckeluwhs','wunpckeluwcc','wunpckeluwlo','wunpckeluwmi','wunpckeluwpl','wunpckeluwvs','wunpckeluwvc','wunpckeluwhi','wunpckeluwls','wunpckeluwge','wunpckeluwlt','wunpckeluwgt','wunpckeluwle',
+ 'wunpckilbeq','wunpckilbne','wunpckilbcs','wunpckilbhs','wunpckilbcc','wunpckilblo','wunpckilbmi','wunpckilbpl','wunpckilbvs','wunpckilbvc','wunpckilbhi','wunpckilbls','wunpckilbge','wunpckilblt','wunpckilbgt','wunpckilble',
+ 'wunpckilheq','wunpckilhne','wunpckilhcs','wunpckilhhs','wunpckilhcc','wunpckilhlo','wunpckilhmi','wunpckilhpl','wunpckilhvs','wunpckilhvc','wunpckilhhi','wunpckilhls','wunpckilhge','wunpckilhlt','wunpckilhgt','wunpckilhle',
+ 'wunpckilweq','wunpckilwne','wunpckilwcs','wunpckilwhs','wunpckilwcc','wunpckilwlo','wunpckilwmi','wunpckilwpl','wunpckilwvs','wunpckilwvc','wunpckilwhi','wunpckilwls','wunpckilwge','wunpckilwlt','wunpckilwgt','wunpckilwle',
+ 'wxoreq','wxorne','wxorcs','wxorhs','wxorcc','wxorlo','wxormi','wxorpl','wxorvs','wxorvc','wxorhi','wxorls','wxorge','wxorlt','wxorgt','wxorle',
+ 'wzeroeq','wzerone','wzerocs','wzerohs','wzerocc','wzerolo','wzeromi','wzeropl','wzerovs','wzerovc','wzerohi','wzerols','wzeroge','wzerolt','wzerogt','wzerole'
+ ),
+ /* Unconditional VFPv3 & NEON SIMD Memory Access Instructions */
+ 19 => array(
+ /* Unconditional VFPv3 & NEON SIMD Memory Access: Loads */
+ 'vld.8','vldal.8',
+ 'vld.16','vldal.16',
+ 'vld.32','vldal.32',
+ 'vld.64','vldal.64',
+
+ 'vld1.8','vld1al.8',
+ 'vld1.16','vld1al.16',
+ 'vld1.32','vld1al.32',
+
+ 'vld2.8','vld2al.8',
+ 'vld2.16','vld2al.16',
+ 'vld2.32','vld2al.32',
+
+ 'vld3.8','vld3al.8',
+ 'vld3.16','vld3al.16',
+ 'vld3.32','vld3al.32',
+
+ 'vld4.8','vld4al.8',
+ 'vld4.16','vld4al.16',
+ 'vld4.32','vld4al.32',
+
+ 'vldm','vldmal',
+ 'vldm.32','vldmal.32',
+ 'vldm.64','vldmal.64',
+
+ 'vldmia','vldmiaal',
+ 'vldmia.32','vldmiaal.32',
+ 'vldmia.64','vldmiaal.64',
+
+ 'vldmdb','vldmdbal',
+ 'vldmdb.32','vldmdbal.32',
+ 'vldmdb.64','vldmdbal.64',
+
+ 'vldr','vldral',
+ 'vldr.32','vldral.32',
+ 'vldr.64','vldral.64',
+
+ 'vpop','vpopal',
+ 'vpop.32','vpopal.32',
+ 'vpop.64','vpopal.64',
+
+ /* Unconditional VFPv3 & NEON SIMD Memory Access: Stores */
+ 'vst1.8','vst1al.8',
+ 'vst1.16','vst1al.16',
+ 'vst1.32','vst1al.32',
+ 'vst1.64','vst1al.64',
+
+ 'vst2.8','vst2al.8',
+ 'vst2.16','vst2al.16',
+ 'vst2.32','vst2al.32',
+
+ 'vst3.8','vst3al.8',
+ 'vst3.16','vst3al.16',
+ 'vst3.32','vst3al.32',
+
+ 'vst4.8','vst4al.8',
+ 'vst4.16','vst4al.16',
+ 'vst4.32','vst4al.32',
+
+ 'vstm','vstmal',
+ 'vstm.32','vstmal.32',
+ 'vstm.64','vstmal.64',
+
+ 'vstmia','vstmiaal',
+ 'vstmia.32','vstmiaal.32',
+ 'vstmia.64','vstmiaal.64',
+
+ 'vstmdb','vstmdbal',
+ 'vstmdb.32','vstmdbal.32',
+ 'vstmdb.64','vstmdbal.64',
+
+ 'vstr','vstral',
+ 'vstr.32','vstral.32',
+ 'vstr.64','vstral.64',
+
+ 'vpush','vpushal',
+ 'vpush.32','vpushal.32',
+ 'vpush.64','vpushal.64'
+ ),
+ /* Unconditional NEON SIMD Logical Instructions */
+ 20 => array(
+ 'vand','vandal',
+ 'vand.i8','vandal.i8',
+ 'vand.i16','vandal.i16',
+ 'vand.i32','vandal.i32',
+ 'vand.i64','vandal.i64',
+ 'vand.s8','vandal.s8',
+ 'vand.s16','vandal.s16',
+ 'vand.s32','vandal.s32',
+ 'vand.s64','vandal.s64',
+ 'vand.u8','vandal.u8',
+ 'vand.u16','vandal.u16',
+ 'vand.u32','vandal.u32',
+ 'vand.u64','vandal.u64',
+ 'vand.f32','vandal.f32',
+ 'vand.f64','vandal.f64',
+
+ 'vbic','vbical',
+ 'vbic.i8','vbical.i8',
+ 'vbic.i16','vbical.i16',
+ 'vbic.i32','vbical.i32',
+ 'vbic.i64','vbical.i64',
+ 'vbic.s8','vbical.s8',
+ 'vbic.s16','vbical.s16',
+ 'vbic.s32','vbical.s32',
+ 'vbic.s64','vbical.s64',
+ 'vbic.u8','vbical.u8',
+ 'vbic.u16','vbical.u16',
+ 'vbic.u32','vbical.u32',
+ 'vbic.u64','vbical.u64',
+ 'vbic.f32','vbical.f32',
+ 'vbic.f64','vbical.f64',
+
+ 'vbif','vbifal',
+ 'vbif.i8','vbifal.i8',
+ 'vbif.i16','vbifal.i16',
+ 'vbif.i32','vbifal.i32',
+ 'vbif.i64','vbifal.i64',
+ 'vbif.s8','vbifal.s8',
+ 'vbif.s16','vbifal.s16',
+ 'vbif.s32','vbifal.s32',
+ 'vbif.s64','vbifal.s64',
+ 'vbif.u8','vbifal.u8',
+ 'vbif.u16','vbifal.u16',
+ 'vbif.u32','vbifal.u32',
+ 'vbif.u64','vbifal.u64',
+ 'vbif.f32','vbifal.f32',
+ 'vbif.f64','vbifal.f64',
+
+ 'vbit','vbital',
+ 'vbit.i8','vbital.i8',
+ 'vbit.i16','vbital.i16',
+ 'vbit.i32','vbital.i32',
+ 'vbit.i64','vbital.i64',
+ 'vbit.s8','vbital.s8',
+ 'vbit.s16','vbital.s16',
+ 'vbit.s32','vbital.s32',
+ 'vbit.s64','vbital.s64',
+ 'vbit.u8','vbital.u8',
+ 'vbit.u16','vbital.u16',
+ 'vbit.u32','vbital.u32',
+ 'vbit.u64','vbital.u64',
+ 'vbit.f32','vbital.f32',
+ 'vbit.f64','vbital.f64',
+
+ 'vbsl','vbslal',
+ 'vbsl.i8','vbslal.i8',
+ 'vbsl.i16','vbslal.i16',
+ 'vbsl.i32','vbslal.i32',
+ 'vbsl.i64','vbslal.i64',
+ 'vbsl.s8','vbslal.s8',
+ 'vbsl.s16','vbslal.s16',
+ 'vbsl.s32','vbslal.s32',
+ 'vbsl.s64','vbslal.s64',
+ 'vbsl.u8','vbslal.u8',
+ 'vbsl.u16','vbslal.u16',
+ 'vbsl.u32','vbslal.u32',
+ 'vbsl.u64','vbslal.u64',
+ 'vbsl.f32','vbslal.f32',
+ 'vbsl.f64','vbslal.f64',
+
+ 'veor','veoral',
+ 'veor.i8','veoral.i8',
+ 'veor.i16','veoral.i16',
+ 'veor.i32','veoral.i32',
+ 'veor.i64','veoral.i64',
+ 'veor.s8','veoral.s8',
+ 'veor.s16','veoral.s16',
+ 'veor.s32','veoral.s32',
+ 'veor.s64','veoral.s64',
+ 'veor.u8','veoral.u8',
+ 'veor.u16','veoral.u16',
+ 'veor.u32','veoral.u32',
+ 'veor.u64','veoral.u64',
+ 'veor.f32','veoral.f32',
+ 'veor.f64','veoral.f64',
+
+ 'vmov','vmoval',
+ 'vmov.8','vmoval.8',
+ 'vmov.16','vmoval.16',
+ 'vmov.32','vmoval.32',
+ 'vmov.i8','vmoval.i8',
+ 'vmov.i16','vmoval.i16',
+ 'vmov.i32','vmoval.i32',
+ 'vmov.i64','vmoval.i64',
+ 'vmov.f32','vmoval.f32',
+ 'vmov.f64','vmoval.f64',
+
+ 'vmvn','vmvnal',
+ 'vmvn.s8','vmvnal.s8',
+ 'vmvn.s16','vmvnal.s16',
+ 'vmvn.s32','vmvnal.s32',
+ 'vmvn.s64','vmvnal.s64',
+ 'vmvn.u8','vmvnal.u8',
+ 'vmvn.u16','vmvnal.u16',
+ 'vmvn.u32','vmvnal.u32',
+ 'vmvn.u64','vmvnal.u64',
+ 'vmvn.i8','vmvnal.i8',
+ 'vmvn.i16','vmvnal.i16',
+ 'vmvn.i32','vmvnal.i32',
+ 'vmvn.i64','vmvnal.i64',
+ 'vmvn.f32','vmvnal.f32',
+ 'vmvn.f64','vmvnal.f64',
+
+ 'vorn','vornal',
+ 'vorn.s8','vornal.s8',
+ 'vorn.s16','vornal.s16',
+ 'vorn.s32','vornal.s32',
+ 'vorn.s64','vornal.s64',
+ 'vorn.u8','vornal.u8',
+ 'vorn.u16','vornal.u16',
+ 'vorn.u32','vornal.u32',
+ 'vorn.u64','vornal.u64',
+ 'vorn.i8','vornal.i8',
+ 'vorn.i16','vornal.i16',
+ 'vorn.i32','vornal.i32',
+ 'vorn.i64','vornal.i64',
+ 'vorn.f32','vornal.f32',
+ 'vorn.f64','vornal.f64',
+
+ 'vorr','vorral',
+ 'vorr.s8','vorral.s8',
+ 'vorr.s16','vorral.s16',
+ 'vorr.s32','vorral.s32',
+ 'vorr.s64','vorral.s64',
+ 'vorr.u8','vorral.u8',
+ 'vorr.u16','vorral.u16',
+ 'vorr.u32','vorral.u32',
+ 'vorr.u64','vorral.u64',
+ 'vorr.i8','vorral.i8',
+ 'vorr.i16','vorral.i16',
+ 'vorr.i32','vorral.i32',
+ 'vorr.i64','vorral.i64',
+ 'vorr.f32','vorral.f32',
+ 'vorr.f64','vorral.f64',
+
+ 'vswp','vswpal',
+ 'vswp.s8','vswpal.s8',
+ 'vswp.s16','vswpal.s16',
+ 'vswp.s32','vswpal.s32',
+ 'vswp.s64','vswpal.s64',
+ 'vswp.u8','vswpal.u8',
+ 'vswp.u16','vswpal.u16',
+ 'vswp.u32','vswpal.u32',
+ 'vswp.u64','vswpal.u64',
+ 'vswp.i8','vswpal.i8',
+ 'vswp.i16','vswpal.i16',
+ 'vswp.i32','vswpal.i32',
+ 'vswp.i64','vswpal.i64',
+ 'vswp.f32','vswpal.f32',
+ 'vswp.f64','vswpal.f64'
+ ),
+ /* Unconditional NEON SIMD ARM Registers Interop Instructions */
+ 21 => array(
+ 'vmrs','vmrsal',
+ 'vmsr','vmsral'
+ ),
+ /* Unconditional NEON SIMD Bit/Byte-Level Instructions */
+ 22 => array(
+ 'vcnt.8','vcntal.8',
+ 'vdup.8','vdupal.8',
+
+ 'vdup.16','vdupal.16',
+ 'vdup.32','vdupal.32',
+
+ 'vext.8','vextal.8',
+ 'vext.16','vextal.16',
+
+ 'vext.32','vextal.32',
+ 'vext.64','vextal.64',
+
+ 'vrev16.8','vrev16al.8',
+ 'vrev32.8','vrev32al.8',
+ 'vrev32.16','vrev32al.16',
+ 'vrev64.8','vrev64al.8',
+ 'vrev64.16','vrev64al.16',
+ 'vrev64.32','vrev64al.32',
+
+ 'vsli.8','vslial.8',
+ 'vsli.16','vslial.16',
+ 'vsli.32','vslial.32',
+ 'vsli.64','vslial.64',
+
+ 'vsri.8','vsrial.8',
+ 'vsri.16','vsrial.16',
+ 'vsri.32','vsrial.32',
+ 'vsri.64','vsrial.64',
+
+ 'vtbl.8','vtblal.8',
+
+ 'vtbx','vtbxal',
+
+ 'vtrn.8','vtrnal.8',
+ 'vtrn.16','vtrnal.16',
+ 'vtrn.32','vtrnal.32',
+
+ 'vtst.8','vtstal.8',
+ 'vtst.16','vtstal.16',
+ 'vtst.32','vtstal.32',
+
+ 'vuzp.8','vuzpal.8',
+ 'vuzp.16','vuzpal.16',
+ 'vuzp.32','vuzpal.32',
+
+ 'vzip.8','vzipal.8',
+ 'vzip.16','vzipal.16',
+ 'vzip.32','vzipal.32',
+
+ 'vmull.p8','vmullal.p8'
+ ),
+ /* Unconditional NEON SIMD Universal Integer Instructions */
+ 23 => array(
+ 'vadd.i8','vaddal.i8',
+ 'vadd.i16','vaddal.i16',
+ 'vadd.i32','vaddal.i32',
+ 'vadd.i64','vaddal.i64',
+
+ 'vsub.i8','vsubal.i8',
+ 'vsub.i16','vsubal.i16',
+ 'vsub.i32','vsubal.i32',
+ 'vsub.i64','vsubal.i64',
+
+ 'vaddhn.i16','vaddhnal.i16',
+ 'vaddhn.i32','vaddhnal.i32',
+ 'vaddhn.i64','vaddhnal.i64',
+
+ 'vsubhn.i16','vsubhnal.i16',
+ 'vsubhn.i32','vsubhnal.i32',
+ 'vsubhn.i64','vsubhnal.i64',
+
+ 'vraddhn.i16','vraddhnal.i16',
+ 'vraddhn.i32','vraddhnal.i32',
+ 'vraddhn.i64','vraddhnal.i64',
+
+ 'vrsubhn.i16','vrsubhnal.i16',
+ 'vrsubhn.i32','vrsubhnal.i32',
+ 'vrsubhn.i64','vrsubhnal.i64',
+
+ 'vpadd.i8','vpaddal.i8',
+ 'vpadd.i16','vpaddal.i16',
+ 'vpadd.i32','vpaddal.i32',
+
+ 'vceq.i8','vceqal.i8',
+ 'vceq.i16','vceqal.i16',
+ 'vceq.i32','vceqal.i32',
+
+ 'vclz.i8','vclzal.i8',
+ 'vclz.i16','vclzal.i16',
+ 'vclz.i32','vclzal.i32',
+
+ 'vmovn.i16','vmovnal.i16',
+ 'vmovn.i32','vmovnal.i32',
+ 'vmovn.i64','vmovnal.i64',
+
+ 'vmla.s8','vmlaal.s8',
+ 'vmla.s16','vmlaal.s16',
+ 'vmla.s32','vmlaal.s32',
+ 'vmla.u8','vmlaal.u8',
+ 'vmla.u16','vmlaal.u16',
+ 'vmla.u32','vmlaal.u32',
+ 'vmla.i8','vmlaal.i8',
+ 'vmla.i16','vmlaal.i16',
+ 'vmla.i32','vmlaal.i32',
+
+ 'vmls.s8','vmlsal.s8',
+ 'vmls.s16','vmlsal.s16',
+ 'vmls.s32','vmlsal.s32',
+ 'vmls.u8','vmlsal.u8',
+ 'vmls.u16','vmlsal.u16',
+ 'vmls.u32','vmlsal.u32',
+ 'vmls.i8','vmlsal.i8',
+ 'vmls.i16','vmlsal.i16',
+ 'vmls.i32','vmlsal.i32',
+
+ 'vmul.s8','vmulal.s8',
+ 'vmul.s16','vmulal.s16',
+ 'vmul.s32','vmulal.s32',
+ 'vmul.u8','vmulal.u8',
+ 'vmul.u16','vmulal.u16',
+ 'vmul.u32','vmulal.u32',
+ 'vmul.i8','vmulal.i8',
+ 'vmul.i16','vmulal.i16',
+ 'vmul.i32','vmulal.i32',
+ 'vmul.p8','vmulal.p8',
+
+ 'vrshrn.i16','vrshrnal.i16',
+ 'vrshrn.i32','vrshrnal.i32',
+ 'vrshrn.i64','vrshrnal.i64',
+
+ 'vshrn.i16','vshrnal.i16',
+ 'vshrn.i32','vshrnal.i32',
+ 'vshrn.i64','vshrnal.i64',
+
+ 'vshl.i8','vshlal.i8',
+ 'vshl.i16','vshlal.i16',
+ 'vshl.i32','vshlal.i32',
+ 'vshl.i64','vshlal.i64',
+
+ 'vshll.i8','vshllal.i8',
+ 'vshll.i16','vshllal.i16',
+ 'vshll.i32','vshllal.i32'
+ ),
+ /* Unconditional NEON SIMD Signed Integer Instructions */
+ 24 => array(
+ 'vaba.s8','vabaal.s8',
+ 'vaba.s16','vabaal.s16',
+ 'vaba.s32','vabaal.s32',
+
+ 'vabal.s8','vabalal.s8',
+ 'vabal.s16','vabalal.s16',
+ 'vabal.s32','vabalal.s32',
+
+ 'vabd.s8','vabdal.s8',
+ 'vabd.s16','vabdal.s16',
+ 'vabd.s32','vabdal.s32',
+
+ 'vabs.s8','vabsal.s8',
+ 'vabs.s16','vabsal.s16',
+ 'vabs.s32','vabsal.s32',
+
+ 'vaddl.s8','vaddlal.s8',
+ 'vaddl.s16','vaddlal.s16',
+ 'vaddl.s32','vaddlal.s32',
+
+ 'vcge.s8','vcgeal.s8',
+ 'vcge.s16','vcgeal.s16',
+ 'vcge.s32','vcgeal.s32',
+
+ 'vcle.s8','vcleal.s8',
+ 'vcle.s16','vcleal.s16',
+ 'vcle.s32','vcleal.s32',
+
+ 'vcgt.s8','vcgtal.s8',
+ 'vcgt.s16','vcgtal.s16',
+ 'vcgt.s32','vcgtal.s32',
+
+ 'vclt.s8','vcltal.s8',
+ 'vclt.s16','vcltal.s16',
+ 'vclt.s32','vcltal.s32',
+
+ 'vcls.s8','vclsal.s8',
+ 'vcls.s16','vclsal.s16',
+ 'vcls.s32','vclsal.s32',
+
+ 'vaddw.s8','vaddwal.s8',
+ 'vaddw.s16','vaddwal.s16',
+ 'vaddw.s32','vaddwal.s32',
+
+ 'vhadd.s8','vhaddal.s8',
+ 'vhadd.s16','vhaddal.s16',
+ 'vhadd.s32','vhaddal.s32',
+
+ 'vhsub.s8','vhsubal.s8',
+ 'vhsub.s16','vhsubal.s16',
+ 'vhsub.s32','vhsubal.s32',
+
+ 'vmax.s8','vmaxal.s8',
+ 'vmax.s16','vmaxal.s16',
+ 'vmax.s32','vmaxal.s32',
+
+ 'vmin.s8','vminal.s8',
+ 'vmin.s16','vminal.s16',
+ 'vmin.s32','vminal.s32',
+
+ 'vmlal.s8','vmlalal.s8',
+ 'vmlal.s16','vmlalal.s16',
+ 'vmlal.s32','vmlalal.s32',
+
+ 'vmlsl.s8','vmlslal.s8',
+ 'vmlsl.s16','vmlslal.s16',
+ 'vmlsl.s32','vmlslal.s32',
+
+ 'vneg.s8','vnegal.s8',
+ 'vneg.s16','vnegal.s16',
+ 'vneg.s32','vnegal.s32',
+
+ 'vpadal.s8','vpadalal.s8',
+ 'vpadal.s16','vpadalal.s16',
+ 'vpadal.s32','vpadalal.s32',
+
+ 'vmovl.s8','vmovlal.s8',
+ 'vmovl.s16','vmovlal.s16',
+ 'vmovl.s32','vmovlal.s32',
+
+ 'vmull.s8','vmullal.s8',
+ 'vmull.s16','vmullal.s16',
+ 'vmull.s32','vmullal.s32',
+
+ 'vpaddl.s8','vpaddlal.s8',
+ 'vpaddl.s16','vpaddlal.s16',
+ 'vpaddl.s32','vpaddlal.s32',
+
+ 'vpmax.s8','vpmaxal.s8',
+ 'vpmax.s16','vpmaxal.s16',
+ 'vpmax.s32','vpmaxal.s32',
+
+ 'vpmin.s8','vpminal.s8',
+ 'vpmin.s16','vpminal.s16',
+ 'vpmin.s32','vpminal.s32',
+
+ 'vqabs.s8','vqabsal.s8',
+ 'vqabs.s16','vqabsal.s16',
+ 'vqabs.s32','vqabsal.s32',
+
+ 'vqadd.s8','vqaddal.s8',
+ 'vqadd.s16','vqaddal.s16',
+ 'vqadd.s32','vqaddal.s32',
+ 'vqadd.s64','vqaddal.s64',
+
+ 'vqdmlal.s16','vqdmlalal.s16',
+ 'vqdmlal.s32','vqdmlalal.s32',
+
+ 'vqdmlsl.s16','vqdmlslal.s16',
+ 'vqdmlsl.s32','vqdmlslal.s32',
+
+ 'vqdmulh.s16','vqdmulhal.s16',
+ 'vqdmulh.s32','vqdmulhal.s32',
+
+ 'vqdmull.s16','vqdmullal.s16',
+ 'vqdmull.s32','vqdmullal.s32',
+
+ 'vqmovn.s16','vqmovnal.s16',
+ 'vqmovn.s32','vqmovnal.s32',
+ 'vqmovn.s64','vqmovnal.s64',
+
+ 'vqmovun.s16','vqmovunal.s16',
+ 'vqmovun.s32','vqmovunal.s32',
+ 'vqmovun.s64','vqmovunal.s64',
+
+ 'vqneg.s8','vqnegal.s8',
+ 'vqneg.s16','vqnegal.s16',
+ 'vqneg.s32','vqnegal.s32',
+
+ 'vqrdmulh.s16','vqrdmulhal.s16',
+ 'vqrdmulh.s32','vqrdmulhal.s32',
+
+ 'vqrshl.s8','vqrshlal.s8',
+ 'vqrshl.s16','vqrshlal.s16',
+ 'vqrshl.s32','vqrshlal.s32',
+ 'vqrshl.s64','vqrshlal.s64',
+
+ 'vqrshrn.s16','vqrshrnal.s16',
+ 'vqrshrn.s32','vqrshrnal.s32',
+ 'vqrshrn.s64','vqrshrnal.s64',
+
+ 'vqrshrun.s16','vqrshrunal.s16',
+ 'vqrshrun.s32','vqrshrunal.s32',
+ 'vqrshrun.s64','vqrshrunal.s64',
+
+ 'vqshl.s8','vqshlal.s8',
+ 'vqshl.s16','vqshlal.s16',
+ 'vqshl.s32','vqshlal.s32',
+ 'vqshl.s64','vqshlal.s64',
+
+ 'vqshlu.s8','vqshlual.s8',
+ 'vqshlu.s16','vqshlual.s16',
+ 'vqshlu.s32','vqshlual.s32',
+ 'vqshlu.s64','vqshlual.s64',
+
+ 'vqshrn.s16','vqshrnal.s16',
+ 'vqshrn.s32','vqshrnal.s32',
+ 'vqshrn.s64','vqshrnal.s64',
+
+ 'vqshrun.s16','vqshrunal.s16',
+ 'vqshrun.s32','vqshrunal.s32',
+ 'vqshrun.s64','vqshrunal.s64',
+
+ 'vqsub.s8','vqsubal.s8',
+ 'vqsub.s16','vqsubal.s16',
+ 'vqsub.s32','vqsubal.s32',
+ 'vqsub.s64','vqsubal.s64',
+
+ 'vrhadd.s8','vrhaddal.s8',
+ 'vrhadd.s16','vrhaddal.s16',
+ 'vrhadd.s32','vrhaddal.s32',
+
+ 'vrshl.s8','vrshlal.s8',
+ 'vrshl.s16','vrshlal.s16',
+ 'vrshl.s32','vrshlal.s32',
+ 'vrshl.s64','vrshlal.s64',
+
+ 'vrshr.s8','vrshral.s8',
+ 'vrshr.s16','vrshral.s16',
+ 'vrshr.s32','vrshral.s32',
+ 'vrshr.s64','vrshral.s64',
+
+ 'vrsra.s8','vrsraal.s8',
+ 'vrsra.s16','vrsraal.s16',
+ 'vrsra.s32','vrsraal.s32',
+ 'vrsra.s64','vrsraal.s64',
+
+ 'vshl.s8','vshlal.s8',
+ 'vshl.s16','vshlal.s16',
+ 'vshl.s32','vshlal.s32',
+ 'vshl.s64','vshlal.s64',
+
+ 'vshll.s8','vshllal.s8',
+ 'vshll.s16','vshllal.s16',
+ 'vshll.s32','vshllal.s32',
+
+ 'vshr.s8','vshral.s8',
+ 'vshr.s16','vshral.s16',
+ 'vshr.s32','vshral.s32',
+ 'vshr.s64','vshral.s64',
+
+ 'vsra.s8','vsraal.s8',
+ 'vsra.s16','vsraal.s16',
+ 'vsra.s32','vsraal.s32',
+ 'vsra.s64','vsraal.s64',
+
+ 'vsubl.s8','vsublal.s8',
+ 'vsubl.s16','vsublal.s16',
+ 'vsubl.s32','vsublal.s32',
+
+ 'vsubh.s8','vsubhal.s8',
+ 'vsubh.s16','vsubhal.s16',
+ 'vsubh.s32','vsubhal.s32'
+ ),
+ /* Unconditional NEON SIMD Unsigned Integer Instructions */
+ 25 => array(
+ 'vaba.u8','vabaal.u8',
+ 'vaba.u16','vabaal.u16',
+ 'vaba.u32','vabaal.u32',
+
+ 'vabal.u8','vabalal.u8',
+ 'vabal.u16','vabalal.u16',
+ 'vabal.u32','vabalal.u32',
+
+ 'vabd.u8','vabdal.u8',
+ 'vabd.u16','vabdal.u16',
+ 'vabd.u32','vabdal.u32',
+
+ 'vaddl.u8','vaddlal.u8',
+ 'vaddl.u16','vaddlal.u16',
+ 'vaddl.u32','vaddlal.u32',
+
+ 'vsubl.u8','vsublal.u8',
+ 'vsubl.u16','vsublal.u16',
+ 'vsubl.u32','vsublal.u32',
+
+ 'vaddw.u8','vaddwal.u8',
+ 'vaddw.u16','vaddwal.u16',
+ 'vaddw.u32','vaddwal.u32',
+
+ 'vsubh.u8','vsubhal.u8',
+ 'vsubh.u16','vsubhal.u16',
+ 'vsubh.u32','vsubhal.u32',
+
+ 'vhadd.u8','vhaddal.u8',
+ 'vhadd.u16','vhaddal.u16',
+ 'vhadd.u32','vhaddal.u32',
+
+ 'vhsub.u8','vhsubal.u8',
+ 'vhsub.u16','vhsubal.u16',
+ 'vhsub.u32','vhsubal.u32',
+
+ 'vpadal.u8','vpadalal.u8',
+ 'vpadal.u16','vpadalal.u16',
+ 'vpadal.u32','vpadalal.u32',
+
+ 'vpaddl.u8','vpaddlal.u8',
+ 'vpaddl.u16','vpaddlal.u16',
+ 'vpaddl.u32','vpaddlal.u32',
+
+ 'vcge.u8','vcgeal.u8',
+ 'vcge.u16','vcgeal.u16',
+ 'vcge.u32','vcgeal.u32',
+
+ 'vcle.u8','vcleal.u8',
+ 'vcle.u16','vcleal.u16',
+ 'vcle.u32','vcleal.u32',
+
+ 'vcgt.u8','vcgtal.u8',
+ 'vcgt.u16','vcgtal.u16',
+ 'vcgt.u32','vcgtal.u32',
+
+ 'vclt.u8','vcltal.u8',
+ 'vclt.u16','vcltal.u16',
+ 'vclt.u32','vcltal.u32',
+
+ 'vmax.u8','vmaxal.u8',
+ 'vmax.u16','vmaxal.u16',
+ 'vmax.u32','vmaxal.u32',
+
+ 'vmin.u8','vminal.u8',
+ 'vmin.u16','vminal.u16',
+ 'vmin.u32','vminal.u32',
+
+ 'vmlal.u8','vmlalal.u8',
+ 'vmlal.u16','vmlalal.u16',
+ 'vmlal.u32','vmlalal.u32',
+
+ 'vmlsl.u8','vmlslal.u8',
+ 'vmlsl.u16','vmlslal.u16',
+ 'vmlsl.u32','vmlslal.u32',
+
+ 'vmull.u8','vmullal.u8',
+ 'vmull.u16','vmullal.u16',
+ 'vmull.u32','vmullal.u32',
+
+ 'vmovl.u8','vmovlal.u8',
+ 'vmovl.u16','vmovlal.u16',
+ 'vmovl.u32','vmovlal.u32',
+
+ 'vshl.u8','vshlal.u8',
+ 'vshl.u16','vshlal.u16',
+ 'vshl.u32','vshlal.u32',
+ 'vshl.u64','vshlal.u64',
+
+ 'vshll.u8','vshllal.u8',
+ 'vshll.u16','vshllal.u16',
+ 'vshll.u32','vshllal.u32',
+
+ 'vshr.u8','vshral.u8',
+ 'vshr.u16','vshral.u16',
+ 'vshr.u32','vshral.u32',
+ 'vshr.u64','vshral.u64',
+
+ 'vsra.u8','vsraal.u8',
+ 'vsra.u16','vsraal.u16',
+ 'vsra.u32','vsraal.u32',
+ 'vsra.u64','vsraal.u64',
+
+ 'vpmax.u8','vpmaxal.u8',
+ 'vpmax.u16','vpmaxal.u16',
+ 'vpmax.u32','vpmaxal.u32',
+
+ 'vpmin.u8','vpminal.u8',
+ 'vpmin.u16','vpminal.u16',
+ 'vpmin.u32','vpminal.u32',
+
+ 'vqadd.u8','vqaddal.u8',
+ 'vqadd.u16','vqaddal.u16',
+ 'vqadd.u32','vqaddal.u32',
+ 'vqadd.u64','vqaddal.u64',
+
+ 'vqsub.u8','vqsubal.u8',
+ 'vqsub.u16','vqsubal.u16',
+ 'vqsub.u32','vqsubal.u32',
+ 'vqsub.u64','vqsubal.u64',
+
+ 'vqmovn.u16','vqmovnal.u16',
+ 'vqmovn.u32','vqmovnal.u32',
+ 'vqmovn.u64','vqmovnal.u64',
+
+ 'vqshl.u8','vqshlal.u8',
+ 'vqshl.u16','vqshlal.u16',
+ 'vqshl.u32','vqshlal.u32',
+ 'vqshl.u64','vqshlal.u64',
+
+ 'vqshrn.u16','vqshrnal.u16',
+ 'vqshrn.u32','vqshrnal.u32',
+ 'vqshrn.u64','vqshrnal.u64',
+
+ 'vqrshl.u8','vqrshlal.u8',
+ 'vqrshl.u16','vqrshlal.u16',
+ 'vqrshl.u32','vqrshlal.u32',
+ 'vqrshl.u64','vqrshlal.u64',
+
+ 'vqrshrn.u16','vqrshrnal.u16',
+ 'vqrshrn.u32','vqrshrnal.u32',
+ 'vqrshrn.u64','vqrshrnal.u64',
+
+ 'vrhadd.u8','vrhaddal.u8',
+ 'vrhadd.u16','vrhaddal.u16',
+ 'vrhadd.u32','vrhaddal.u32',
+
+ 'vrshl.u8','vrshlal.u8',
+ 'vrshl.u16','vrshlal.u16',
+ 'vrshl.u32','vrshlal.u32',
+ 'vrshl.u64','vrshlal.u64',
+
+ 'vrshr.u8','vrshral.u8',
+ 'vrshr.u16','vrshral.u16',
+ 'vrshr.u32','vrshral.u32',
+ 'vrshr.u64','vrshral.u64',
+
+ 'vrsra.u8','vrsraal.u8',
+ 'vrsra.u16','vrsraal.u16',
+ 'vrsra.u32','vrsraal.u32',
+ 'vrsra.u64','vrsraal.u64'
+ ),
+ /* Unconditional VFPv3 & NEON SIMD Floating-Point Instructions */
+ 26 => array(
+ 'vabd.f32','vabdal.f32',
+
+ 'vabs.f32','vabsal.f32',
+ 'vabs.f64','vabsal.f64',
+
+ 'vacge.f32','vacgeal.f32',
+ 'vacgt.f32','vacgtal.f32',
+ 'vacle.f32','vacleal.f32',
+ 'vaclt.f32','vacltal.f32',
+
+ 'vadd.f32','vaddal.f32',
+ 'vadd.f64','vaddal.f64',
+
+ 'vceq.f32','vceqal.f32',
+ 'vcge.f32','vcgeal.f32',
+ 'vcle.f32','vcleal.f32',
+ 'vcgt.f32','vcgtal.f32',
+ 'vclt.f32','vcltal.f32',
+
+ 'vcmp.f32','vcmpal.f32',
+ 'vcmp.f64','vcmpal.f64',
+
+ 'vcmpe.f32','vcmpeal.f32',
+ 'vcmpe.f64','vcmpeal.f64',
+
+ 'vcvt.s16.f32','vcvtal.s16.f32',
+ 'vcvt.s16.f64','vcvtal.s16.f64',
+ 'vcvt.s32.f32','vcvtal.s32.f32',
+ 'vcvt.s32.f64','vcvtal.s32.f64',
+ 'vcvt.u16.f32','vcvtal.u16.f32',
+ 'vcvt.u16.f64','vcvtal.u16.f64',
+ 'vcvt.u32.f32','vcvtal.u32.f32',
+ 'vcvt.u32.f64','vcvtal.u32.f64',
+ 'vcvt.f16.f32','vcvtal.f16.f32',
+ 'vcvt.f32.s32','vcvtal.f32.s32',
+ 'vcvt.f32.u32','vcvtal.f32.u32',
+ 'vcvt.f32.f16','vcvtal.f32.f16',
+ 'vcvt.f32.f64','vcvtal.f32.f64',
+ 'vcvt.f64.s32','vcvtal.f64.s32',
+ 'vcvt.f64.u32','vcvtal.f64.u32',
+ 'vcvt.f64.f32','vcvtal.f64.f32',
+
+ 'vcvtr.s32.f32','vcvtral.s32.f32',
+ 'vcvtr.s32.f64','vcvtral.s32.f64',
+ 'vcvtr.u32.f32','vcvtral.u32.f32',
+ 'vcvtr.u32.f64','vcvtral.u32.f64',
+
+ 'vcvtb.f16.f32','vcvtbal.f16.f32',
+ 'vcvtb.f32.f16','vcvtbal.f32.f16',
+
+ 'vcvtt.f16.f32','vcvttal.f16.f32',
+ 'vcvtt.f32.f16','vcvttal.f32.f16',
+
+ 'vdiv.f32','vdival.f32',
+ 'vdiv.f64','vdival.f64',
+
+ 'vmax.f32','vmaxal.f32',
+ 'vmin.f32','vminal.f32',
+
+ 'vmla.f32','vmlaal.f32',
+ 'vmla.f64','vmlaal.f64',
+
+ 'vmls.f32','vmlsal.f32',
+ 'vmls.f64','vmlsal.f64',
+
+ 'vmul.f32','vmulal.f32',
+ 'vmul.f64','vmulal.f64',
+
+ 'vneg.f32','vnegal.f32',
+ 'vneg.f64','vnegal.f64',
+
+ 'vnmla.f32','vnmlaal.f32',
+ 'vnmla.f64','vnmlaal.f64',
+
+ 'vnmls.f32','vnmlsal.f32',
+ 'vnmls.f64','vnmlsal.f64',
+
+ 'vnmul.f64','vnmulal.f64',
+ 'vnmul.f32','vnmulal.f32',
+
+ 'vpadd.f32','vpaddal.f32',
+
+ 'vpmax.f32','vpmaxal.f32',
+ 'vpmin.f32','vpminal.f32',
+
+ 'vrecpe.u32','vrecpeal.u32',
+ 'vrecpe.f32','vrecpeal.f32',
+ 'vrecps.f32','vrecpsal.f32',
+
+ 'vrsqrte.u32','vrsqrteal.u32',
+ 'vrsqrte.f32','vrsqrteal.f32',
+ 'vrsqrts.f32','vrsqrtsal.f32',
+
+ 'vsqrt.f32','vsqrtal.f32',
+ 'vsqrt.f64','vsqrtal.f64',
+
+ 'vsub.f32','vsubal.f32',
+ 'vsub.f64','vsubal.f64'
+ ),
+ /* Conditional VFPv3 & NEON SIMD Memory Access Instructions */
+ 27 => array(
+ /* Conditional VFPv3 & NEON SIMD Memory Access: Loads */
+ 'vldeq.8','vldne.8','vldcs.8','vldhs.8','vldcc.8','vldlo.8','vldmi.8','vldpl.8','vldvs.8','vldvc.8','vldhi.8','vldls.8','vldge.8','vldlt.8','vldgt.8','vldle.8',
+ 'vldeq.16','vldne.16','vldcs.16','vldhs.16','vldcc.16','vldlo.16','vldmi.16','vldpl.16','vldvs.16','vldvc.16','vldhi.16','vldls.16','vldge.16','vldlt.16','vldgt.16','vldle.16',
+ 'vldeq.32','vldne.32','vldcs.32','vldhs.32','vldcc.32','vldlo.32','vldmi.32','vldpl.32','vldvs.32','vldvc.32','vldhi.32','vldls.32','vldge.32','vldlt.32','vldgt.32','vldle.32',
+ 'vldeq.64','vldne.64','vldcs.64','vldhs.64','vldcc.64','vldlo.64','vldmi.64','vldpl.64','vldvs.64','vldvc.64','vldhi.64','vldls.64','vldge.64','vldlt.64','vldgt.64','vldle.64',
+
+ 'vld1eq.8','vld1ne.8','vld1cs.8','vld1hs.8','vld1cc.8','vld1lo.8','vld1mi.8','vld1pl.8','vld1vs.8','vld1vc.8','vld1hi.8','vld1ls.8','vld1ge.8','vld1lt.8','vld1gt.8','vld1le.8',
+ 'vld1eq.16','vld1ne.16','vld1cs.16','vld1hs.16','vld1cc.16','vld1lo.16','vld1mi.16','vld1pl.16','vld1vs.16','vld1vc.16','vld1hi.16','vld1ls.16','vld1ge.16','vld1lt.16','vld1gt.16','vld1le.16',
+ 'vld1eq.32','vld1ne.32','vld1cs.32','vld1hs.32','vld1cc.32','vld1lo.32','vld1mi.32','vld1pl.32','vld1vs.32','vld1vc.32','vld1hi.32','vld1ls.32','vld1ge.32','vld1lt.32','vld1gt.32','vld1le.32',
+
+ 'vld2eq.8','vld2ne.8','vld2cs.8','vld2hs.8','vld2cc.8','vld2lo.8','vld2mi.8','vld2pl.8','vld2vs.8','vld2vc.8','vld2hi.8','vld2ls.8','vld2ge.8','vld2lt.8','vld2gt.8','vld2le.8',
+ 'vld2eq.16','vld2ne.16','vld2cs.16','vld2hs.16','vld2cc.16','vld2lo.16','vld2mi.16','vld2pl.16','vld2vs.16','vld2vc.16','vld2hi.16','vld2ls.16','vld2ge.16','vld2lt.16','vld2gt.16','vld2le.16',
+ 'vld2eq.32','vld2ne.32','vld2cs.32','vld2hs.32','vld2cc.32','vld2lo.32','vld2mi.32','vld2pl.32','vld2vs.32','vld2vc.32','vld2hi.32','vld2ls.32','vld2ge.32','vld2lt.32','vld2gt.32','vld2le.32',
+
+ 'vld3eq.8','vld3ne.8','vld3cs.8','vld3hs.8','vld3cc.8','vld3lo.8','vld3mi.8','vld3pl.8','vld3vs.8','vld3vc.8','vld3hi.8','vld3ls.8','vld3ge.8','vld3lt.8','vld3gt.8','vld3le.8',
+ 'vld3eq.16','vld3ne.16','vld3cs.16','vld3hs.16','vld3cc.16','vld3lo.16','vld3mi.16','vld3pl.16','vld3vs.16','vld3vc.16','vld3hi.16','vld3ls.16','vld3ge.16','vld3lt.16','vld3gt.16','vld3le.16',
+ 'vld3eq.32','vld3ne.32','vld3cs.32','vld3hs.32','vld3cc.32','vld3lo.32','vld3mi.32','vld3pl.32','vld3vs.32','vld3vc.32','vld3hi.32','vld3ls.32','vld3ge.32','vld3lt.32','vld3gt.32','vld3le.32',
+
+ 'vld4eq.8','vld4ne.8','vld4cs.8','vld4hs.8','vld4cc.8','vld4lo.8','vld4mi.8','vld4pl.8','vld4vs.8','vld4vc.8','vld4hi.8','vld4ls.8','vld4ge.8','vld4lt.8','vld4gt.8','vld4le.8',
+ 'vld4eq.16','vld4ne.16','vld4cs.16','vld4hs.16','vld4cc.16','vld4lo.16','vld4mi.16','vld4pl.16','vld4vs.16','vld4vc.16','vld4hi.16','vld4ls.16','vld4ge.16','vld4lt.16','vld4gt.16','vld4le.16',
+ 'vld4eq.32','vld4ne.32','vld4cs.32','vld4hs.32','vld4cc.32','vld4lo.32','vld4mi.32','vld4pl.32','vld4vs.32','vld4vc.32','vld4hi.32','vld4ls.32','vld4ge.32','vld4lt.32','vld4gt.32','vld4le.32',
+
+ 'vldmeq','vldmne','vldmcs','vldmhs','vldmcc','vldmlo','vldmmi','vldmpl','vldmvs','vldmvc','vldmhi','vldmls','vldmge','vldmlt','vldmgt','vldmle',
+ 'vldmeq.32','vldmne.32','vldmcs.32','vldmhs.32','vldmcc.32','vldmlo.32','vldmmi.32','vldmpl.32','vldmvs.32','vldmvc.32','vldmhi.32','vldmls.32','vldmge.32','vldmlt.32','vldmgt.32','vldmle.32',
+ 'vldmeq.64','vldmne.64','vldmcs.64','vldmhs.64','vldmcc.64','vldmlo.64','vldmmi.64','vldmpl.64','vldmvs.64','vldmvc.64','vldmhi.64','vldmls.64','vldmge.64','vldmlt.64','vldmgt.64','vldmle.64',
+
+ 'vldmiaeq','vldmiane','vldmiacs','vldmiahs','vldmiacc','vldmialo','vldmiami','vldmiapl','vldmiavs','vldmiavc','vldmiahi','vldmials','vldmiage','vldmialt','vldmiagt','vldmiale',
+ 'vldmiaeq.32','vldmiane.32','vldmiacs.32','vldmiahs.32','vldmiacc.32','vldmialo.32','vldmiami.32','vldmiapl.32','vldmiavs.32','vldmiavc.32','vldmiahi.32','vldmials.32','vldmiage.32','vldmialt.32','vldmiagt.32','vldmiale.32',
+ 'vldmiaeq.64','vldmiane.64','vldmiacs.64','vldmiahs.64','vldmiacc.64','vldmialo.64','vldmiami.64','vldmiapl.64','vldmiavs.64','vldmiavc.64','vldmiahi.64','vldmials.64','vldmiage.64','vldmialt.64','vldmiagt.64','vldmiale.64',
+
+ 'vldmdbeq','vldmdbne','vldmdbcs','vldmdbhs','vldmdbcc','vldmdblo','vldmdbmi','vldmdbpl','vldmdbvs','vldmdbvc','vldmdbhi','vldmdbls','vldmdbge','vldmdblt','vldmdbgt','vldmdble',
+ 'vldmdbeq.32','vldmdbne.32','vldmdbcs.32','vldmdbhs.32','vldmdbcc.32','vldmdblo.32','vldmdbmi.32','vldmdbpl.32','vldmdbvs.32','vldmdbvc.32','vldmdbhi.32','vldmdbls.32','vldmdbge.32','vldmdblt.32','vldmdbgt.32','vldmdble.32',
+ 'vldmdbeq.64','vldmdbne.64','vldmdbcs.64','vldmdbhs.64','vldmdbcc.64','vldmdblo.64','vldmdbmi.64','vldmdbpl.64','vldmdbvs.64','vldmdbvc.64','vldmdbhi.64','vldmdbls.64','vldmdbge.64','vldmdblt.64','vldmdbgt.64','vldmdble.64',
+
+ 'vldreq','vldrne','vldrcs','vldrhs','vldrcc','vldrlo','vldrmi','vldrpl','vldrvs','vldrvc','vldrhi','vldrls','vldrge','vldrlt','vldrgt','vldrle',
+ 'vldreq.32','vldrne.32','vldrcs.32','vldrhs.32','vldrcc.32','vldrlo.32','vldrmi.32','vldrpl.32','vldrvs.32','vldrvc.32','vldrhi.32','vldrls.32','vldrge.32','vldrlt.32','vldrgt.32','vldrle.32',
+ 'vldreq.64','vldrne.64','vldrcs.64','vldrhs.64','vldrcc.64','vldrlo.64','vldrmi.64','vldrpl.64','vldrvs.64','vldrvc.64','vldrhi.64','vldrls.64','vldrge.64','vldrlt.64','vldrgt.64','vldrle.64',
+
+ 'vpopeq','vpopne','vpopcs','vpophs','vpopcc','vpoplo','vpopmi','vpoppl','vpopvs','vpopvc','vpophi','vpopls','vpopge','vpoplt','vpopgt','vpople',
+ 'vpopeq.32','vpopne.32','vpopcs.32','vpophs.32','vpopcc.32','vpoplo.32','vpopmi.32','vpoppl.32','vpopvs.32','vpopvc.32','vpophi.32','vpopls.32','vpopge.32','vpoplt.32','vpopgt.32','vpople.32',
+ 'vpopeq.64','vpopne.64','vpopcs.64','vpophs.64','vpopcc.64','vpoplo.64','vpopmi.64','vpoppl.64','vpopvs.64','vpopvc.64','vpophi.64','vpopls.64','vpopge.64','vpoplt.64','vpopgt.64','vpople.64',
+
+ /* Conditional VFPv3 & NEON SIMD Memory Access: Stores */
+ 'vst1eq.8','vst1ne.8','vst1cs.8','vst1hs.8','vst1cc.8','vst1lo.8','vst1mi.8','vst1pl.8','vst1vs.8','vst1vc.8','vst1hi.8','vst1ls.8','vst1ge.8','vst1lt.8','vst1gt.8','vst1le.8',
+ 'vst1eq.16','vst1ne.16','vst1cs.16','vst1hs.16','vst1cc.16','vst1lo.16','vst1mi.16','vst1pl.16','vst1vs.16','vst1vc.16','vst1hi.16','vst1ls.16','vst1ge.16','vst1lt.16','vst1gt.16','vst1le.16',
+ 'vst1eq.32','vst1ne.32','vst1cs.32','vst1hs.32','vst1cc.32','vst1lo.32','vst1mi.32','vst1pl.32','vst1vs.32','vst1vc.32','vst1hi.32','vst1ls.32','vst1ge.32','vst1lt.32','vst1gt.32','vst1le.32',
+ 'vst1eq.64','vst1ne.64','vst1cs.64','vst1hs.64','vst1cc.64','vst1lo.64','vst1mi.64','vst1pl.64','vst1vs.64','vst1vc.64','vst1hi.64','vst1ls.64','vst1ge.64','vst1lt.64','vst1gt.64','vst1le.64',
+
+ 'vst2eq.8','vst2ne.8','vst2cs.8','vst2hs.8','vst2cc.8','vst2lo.8','vst2mi.8','vst2pl.8','vst2vs.8','vst2vc.8','vst2hi.8','vst2ls.8','vst2ge.8','vst2lt.8','vst2gt.8','vst2le.8',
+ 'vst2eq.16','vst2ne.16','vst2cs.16','vst2hs.16','vst2cc.16','vst2lo.16','vst2mi.16','vst2pl.16','vst2vs.16','vst2vc.16','vst2hi.16','vst2ls.16','vst2ge.16','vst2lt.16','vst2gt.16','vst2le.16',
+ 'vst2eq.32','vst2ne.32','vst2cs.32','vst2hs.32','vst2cc.32','vst2lo.32','vst2mi.32','vst2pl.32','vst2vs.32','vst2vc.32','vst2hi.32','vst2ls.32','vst2ge.32','vst2lt.32','vst2gt.32','vst2le.32',
+
+ 'vst3eq.8','vst3ne.8','vst3cs.8','vst3hs.8','vst3cc.8','vst3lo.8','vst3mi.8','vst3pl.8','vst3vs.8','vst3vc.8','vst3hi.8','vst3ls.8','vst3ge.8','vst3lt.8','vst3gt.8','vst3le.8',
+ 'vst3eq.16','vst3ne.16','vst3cs.16','vst3hs.16','vst3cc.16','vst3lo.16','vst3mi.16','vst3pl.16','vst3vs.16','vst3vc.16','vst3hi.16','vst3ls.16','vst3ge.16','vst3lt.16','vst3gt.16','vst3le.16',
+ 'vst3eq.32','vst3ne.32','vst3cs.32','vst3hs.32','vst3cc.32','vst3lo.32','vst3mi.32','vst3pl.32','vst3vs.32','vst3vc.32','vst3hi.32','vst3ls.32','vst3ge.32','vst3lt.32','vst3gt.32','vst3le.32',
+
+ 'vst4eq.8','vst4ne.8','vst4cs.8','vst4hs.8','vst4cc.8','vst4lo.8','vst4mi.8','vst4pl.8','vst4vs.8','vst4vc.8','vst4hi.8','vst4ls.8','vst4ge.8','vst4lt.8','vst4gt.8','vst4le.8',
+ 'vst4eq.16','vst4ne.16','vst4cs.16','vst4hs.16','vst4cc.16','vst4lo.16','vst4mi.16','vst4pl.16','vst4vs.16','vst4vc.16','vst4hi.16','vst4ls.16','vst4ge.16','vst4lt.16','vst4gt.16','vst4le.16',
+ 'vst4eq.32','vst4ne.32','vst4cs.32','vst4hs.32','vst4cc.32','vst4lo.32','vst4mi.32','vst4pl.32','vst4vs.32','vst4vc.32','vst4hi.32','vst4ls.32','vst4ge.32','vst4lt.32','vst4gt.32','vst4le.32',
+
+ 'vstmeq','vstmne','vstmcs','vstmhs','vstmcc','vstmlo','vstmmi','vstmpl','vstmvs','vstmvc','vstmhi','vstmls','vstmge','vstmlt','vstmgt','vstmle',
+ 'vstmeq.32','vstmne.32','vstmcs.32','vstmhs.32','vstmcc.32','vstmlo.32','vstmmi.32','vstmpl.32','vstmvs.32','vstmvc.32','vstmhi.32','vstmls.32','vstmge.32','vstmlt.32','vstmgt.32','vstmle.32',
+ 'vstmeq.64','vstmne.64','vstmcs.64','vstmhs.64','vstmcc.64','vstmlo.64','vstmmi.64','vstmpl.64','vstmvs.64','vstmvc.64','vstmhi.64','vstmls.64','vstmge.64','vstmlt.64','vstmgt.64','vstmle.64',
+
+ 'vstmiaeq','vstmiane','vstmiacs','vstmiahs','vstmiacc','vstmialo','vstmiami','vstmiapl','vstmiavs','vstmiavc','vstmiahi','vstmials','vstmiage','vstmialt','vstmiagt','vstmiale',
+ 'vstmiaeq.32','vstmiane.32','vstmiacs.32','vstmiahs.32','vstmiacc.32','vstmialo.32','vstmiami.32','vstmiapl.32','vstmiavs.32','vstmiavc.32','vstmiahi.32','vstmials.32','vstmiage.32','vstmialt.32','vstmiagt.32','vstmiale.32',
+ 'vstmiaeq.64','vstmiane.64','vstmiacs.64','vstmiahs.64','vstmiacc.64','vstmialo.64','vstmiami.64','vstmiapl.64','vstmiavs.64','vstmiavc.64','vstmiahi.64','vstmials.64','vstmiage.64','vstmialt.64','vstmiagt.64','vstmiale.64',
+
+ 'vstmdbeq','vstmdbne','vstmdbcs','vstmdbhs','vstmdbcc','vstmdblo','vstmdbmi','vstmdbpl','vstmdbvs','vstmdbvc','vstmdbhi','vstmdbls','vstmdbge','vstmdblt','vstmdbgt','vstmdble',
+ 'vstmdbeq.32','vstmdbne.32','vstmdbcs.32','vstmdbhs.32','vstmdbcc.32','vstmdblo.32','vstmdbmi.32','vstmdbpl.32','vstmdbvs.32','vstmdbvc.32','vstmdbhi.32','vstmdbls.32','vstmdbge.32','vstmdblt.32','vstmdbgt.32','vstmdble.32',
+ 'vstmdbeq.64','vstmdbne.64','vstmdbcs.64','vstmdbhs.64','vstmdbcc.64','vstmdblo.64','vstmdbmi.64','vstmdbpl.64','vstmdbvs.64','vstmdbvc.64','vstmdbhi.64','vstmdbls.64','vstmdbge.64','vstmdblt.64','vstmdbgt.64','vstmdble.64',
+
+ 'vstreq','vstrne','vstrcs','vstrhs','vstrcc','vstrlo','vstrmi','vstrpl','vstrvs','vstrvc','vstrhi','vstrls','vstrge','vstrlt','vstrgt','vstrle',
+ 'vstreq.32','vstrne.32','vstrcs.32','vstrhs.32','vstrcc.32','vstrlo.32','vstrmi.32','vstrpl.32','vstrvs.32','vstrvc.32','vstrhi.32','vstrls.32','vstrge.32','vstrlt.32','vstrgt.32','vstrle.32',
+ 'vstreq.64','vstrne.64','vstrcs.64','vstrhs.64','vstrcc.64','vstrlo.64','vstrmi.64','vstrpl.64','vstrvs.64','vstrvc.64','vstrhi.64','vstrls.64','vstrge.64','vstrlt.64','vstrgt.64','vstrle.64',
+
+ 'vpusheq','vpushne','vpushcs','vpushhs','vpushcc','vpushlo','vpushmi','vpushpl','vpushvs','vpushvc','vpushhi','vpushls','vpushge','vpushlt','vpushgt','vpushle',
+ 'vpusheq.32','vpushne.32','vpushcs.32','vpushhs.32','vpushcc.32','vpushlo.32','vpushmi.32','vpushpl.32','vpushvs.32','vpushvc.32','vpushhi.32','vpushls.32','vpushge.32','vpushlt.32','vpushgt.32','vpushle.32',
+ 'vpusheq.64','vpushne.64','vpushcs.64','vpushhs.64','vpushcc.64','vpushlo.64','vpushmi.64','vpushpl.64','vpushvs.64','vpushvc.64','vpushhi.64','vpushls.64','vpushge.64','vpushlt.64','vpushgt.64','vpushle.64'
+ ),
+ /* Conditional NEON SIMD Logical Instructions */
+ 28 => array(
+ 'vandeq','vandne','vandcs','vandhs','vandcc','vandlo','vandmi','vandpl','vandvs','vandvc','vandhi','vandls','vandge','vandlt','vandgt','vandle',
+ 'vandeq.i8','vandne.i8','vandcs.i8','vandhs.i8','vandcc.i8','vandlo.i8','vandmi.i8','vandpl.i8','vandvs.i8','vandvc.i8','vandhi.i8','vandls.i8','vandge.i8','vandlt.i8','vandgt.i8','vandle.i8',
+ 'vandeq.i16','vandne.i16','vandcs.i16','vandhs.i16','vandcc.i16','vandlo.i16','vandmi.i16','vandpl.i16','vandvs.i16','vandvc.i16','vandhi.i16','vandls.i16','vandge.i16','vandlt.i16','vandgt.i16','vandle.i16',
+ 'vandeq.i32','vandne.i32','vandcs.i32','vandhs.i32','vandcc.i32','vandlo.i32','vandmi.i32','vandpl.i32','vandvs.i32','vandvc.i32','vandhi.i32','vandls.i32','vandge.i32','vandlt.i32','vandgt.i32','vandle.i32',
+ 'vandeq.i64','vandne.i64','vandcs.i64','vandhs.i64','vandcc.i64','vandlo.i64','vandmi.i64','vandpl.i64','vandvs.i64','vandvc.i64','vandhi.i64','vandls.i64','vandge.i64','vandlt.i64','vandgt.i64','vandle.i64',
+ 'vandeq.s8','vandne.s8','vandcs.s8','vandhs.s8','vandcc.s8','vandlo.s8','vandmi.s8','vandpl.s8','vandvs.s8','vandvc.s8','vandhi.s8','vandls.s8','vandge.s8','vandlt.s8','vandgt.s8','vandle.s8',
+ 'vandeq.s16','vandne.s16','vandcs.s16','vandhs.s16','vandcc.s16','vandlo.s16','vandmi.s16','vandpl.s16','vandvs.s16','vandvc.s16','vandhi.s16','vandls.s16','vandge.s16','vandlt.s16','vandgt.s16','vandle.s16',
+ 'vandeq.s32','vandne.s32','vandcs.s32','vandhs.s32','vandcc.s32','vandlo.s32','vandmi.s32','vandpl.s32','vandvs.s32','vandvc.s32','vandhi.s32','vandls.s32','vandge.s32','vandlt.s32','vandgt.s32','vandle.s32',
+ 'vandeq.s64','vandne.s64','vandcs.s64','vandhs.s64','vandcc.s64','vandlo.s64','vandmi.s64','vandpl.s64','vandvs.s64','vandvc.s64','vandhi.s64','vandls.s64','vandge.s64','vandlt.s64','vandgt.s64','vandle.s64',
+ 'vandeq.u8','vandne.u8','vandcs.u8','vandhs.u8','vandcc.u8','vandlo.u8','vandmi.u8','vandpl.u8','vandvs.u8','vandvc.u8','vandhi.u8','vandls.u8','vandge.u8','vandlt.u8','vandgt.u8','vandle.u8',
+ 'vandeq.u16','vandne.u16','vandcs.u16','vandhs.u16','vandcc.u16','vandlo.u16','vandmi.u16','vandpl.u16','vandvs.u16','vandvc.u16','vandhi.u16','vandls.u16','vandge.u16','vandlt.u16','vandgt.u16','vandle.u16',
+ 'vandeq.u32','vandne.u32','vandcs.u32','vandhs.u32','vandcc.u32','vandlo.u32','vandmi.u32','vandpl.u32','vandvs.u32','vandvc.u32','vandhi.u32','vandls.u32','vandge.u32','vandlt.u32','vandgt.u32','vandle.u32',
+ 'vandeq.u64','vandne.u64','vandcs.u64','vandhs.u64','vandcc.u64','vandlo.u64','vandmi.u64','vandpl.u64','vandvs.u64','vandvc.u64','vandhi.u64','vandls.u64','vandge.u64','vandlt.u64','vandgt.u64','vandle.u64',
+ 'vandeq.f32','vandne.f32','vandcs.f32','vandhs.f32','vandcc.f32','vandlo.f32','vandmi.f32','vandpl.f32','vandvs.f32','vandvc.f32','vandhi.f32','vandls.f32','vandge.f32','vandlt.f32','vandgt.f32','vandle.f32',
+ 'vandeq.f64','vandne.f64','vandcs.f64','vandhs.f64','vandcc.f64','vandlo.f64','vandmi.f64','vandpl.f64','vandvs.f64','vandvc.f64','vandhi.f64','vandls.f64','vandge.f64','vandlt.f64','vandgt.f64','vandle.f64',
+
+ 'vbiceq','vbicne','vbiccs','vbichs','vbiccc','vbiclo','vbicmi','vbicpl','vbicvs','vbicvc','vbichi','vbicls','vbicge','vbiclt','vbicgt','vbicle',
+ 'vbiceq.i8','vbicne.i8','vbiccs.i8','vbichs.i8','vbiccc.i8','vbiclo.i8','vbicmi.i8','vbicpl.i8','vbicvs.i8','vbicvc.i8','vbichi.i8','vbicls.i8','vbicge.i8','vbiclt.i8','vbicgt.i8','vbicle.i8',
+ 'vbiceq.i16','vbicne.i16','vbiccs.i16','vbichs.i16','vbiccc.i16','vbiclo.i16','vbicmi.i16','vbicpl.i16','vbicvs.i16','vbicvc.i16','vbichi.i16','vbicls.i16','vbicge.i16','vbiclt.i16','vbicgt.i16','vbicle.i16',
+ 'vbiceq.i32','vbicne.i32','vbiccs.i32','vbichs.i32','vbiccc.i32','vbiclo.i32','vbicmi.i32','vbicpl.i32','vbicvs.i32','vbicvc.i32','vbichi.i32','vbicls.i32','vbicge.i32','vbiclt.i32','vbicgt.i32','vbicle.i32',
+ 'vbiceq.i64','vbicne.i64','vbiccs.i64','vbichs.i64','vbiccc.i64','vbiclo.i64','vbicmi.i64','vbicpl.i64','vbicvs.i64','vbicvc.i64','vbichi.i64','vbicls.i64','vbicge.i64','vbiclt.i64','vbicgt.i64','vbicle.i64',
+ 'vbiceq.s8','vbicne.s8','vbiccs.s8','vbichs.s8','vbiccc.s8','vbiclo.s8','vbicmi.s8','vbicpl.s8','vbicvs.s8','vbicvc.s8','vbichi.s8','vbicls.s8','vbicge.s8','vbiclt.s8','vbicgt.s8','vbicle.s8',
+ 'vbiceq.s16','vbicne.s16','vbiccs.s16','vbichs.s16','vbiccc.s16','vbiclo.s16','vbicmi.s16','vbicpl.s16','vbicvs.s16','vbicvc.s16','vbichi.s16','vbicls.s16','vbicge.s16','vbiclt.s16','vbicgt.s16','vbicle.s16',
+ 'vbiceq.s32','vbicne.s32','vbiccs.s32','vbichs.s32','vbiccc.s32','vbiclo.s32','vbicmi.s32','vbicpl.s32','vbicvs.s32','vbicvc.s32','vbichi.s32','vbicls.s32','vbicge.s32','vbiclt.s32','vbicgt.s32','vbicle.s32',
+ 'vbiceq.s64','vbicne.s64','vbiccs.s64','vbichs.s64','vbiccc.s64','vbiclo.s64','vbicmi.s64','vbicpl.s64','vbicvs.s64','vbicvc.s64','vbichi.s64','vbicls.s64','vbicge.s64','vbiclt.s64','vbicgt.s64','vbicle.s64',
+ 'vbiceq.u8','vbicne.u8','vbiccs.u8','vbichs.u8','vbiccc.u8','vbiclo.u8','vbicmi.u8','vbicpl.u8','vbicvs.u8','vbicvc.u8','vbichi.u8','vbicls.u8','vbicge.u8','vbiclt.u8','vbicgt.u8','vbicle.u8',
+ 'vbiceq.u16','vbicne.u16','vbiccs.u16','vbichs.u16','vbiccc.u16','vbiclo.u16','vbicmi.u16','vbicpl.u16','vbicvs.u16','vbicvc.u16','vbichi.u16','vbicls.u16','vbicge.u16','vbiclt.u16','vbicgt.u16','vbicle.u16',
+ 'vbiceq.u32','vbicne.u32','vbiccs.u32','vbichs.u32','vbiccc.u32','vbiclo.u32','vbicmi.u32','vbicpl.u32','vbicvs.u32','vbicvc.u32','vbichi.u32','vbicls.u32','vbicge.u32','vbiclt.u32','vbicgt.u32','vbicle.u32',
+ 'vbiceq.u64','vbicne.u64','vbiccs.u64','vbichs.u64','vbiccc.u64','vbiclo.u64','vbicmi.u64','vbicpl.u64','vbicvs.u64','vbicvc.u64','vbichi.u64','vbicls.u64','vbicge.u64','vbiclt.u64','vbicgt.u64','vbicle.u64',
+ 'vbiceq.f32','vbicne.f32','vbiccs.f32','vbichs.f32','vbiccc.f32','vbiclo.f32','vbicmi.f32','vbicpl.f32','vbicvs.f32','vbicvc.f32','vbichi.f32','vbicls.f32','vbicge.f32','vbiclt.f32','vbicgt.f32','vbicle.f32',
+ 'vbiceq.f64','vbicne.f64','vbiccs.f64','vbichs.f64','vbiccc.f64','vbiclo.f64','vbicmi.f64','vbicpl.f64','vbicvs.f64','vbicvc.f64','vbichi.f64','vbicls.f64','vbicge.f64','vbiclt.f64','vbicgt.f64','vbicle.f64',
+
+ 'vbifeq','vbifne','vbifcs','vbifhs','vbifcc','vbiflo','vbifmi','vbifpl','vbifvs','vbifvc','vbifhi','vbifls','vbifge','vbiflt','vbifgt','vbifle',
+ 'vbifeq.i8','vbifne.i8','vbifcs.i8','vbifhs.i8','vbifcc.i8','vbiflo.i8','vbifmi.i8','vbifpl.i8','vbifvs.i8','vbifvc.i8','vbifhi.i8','vbifls.i8','vbifge.i8','vbiflt.i8','vbifgt.i8','vbifle.i8',
+ 'vbifeq.i16','vbifne.i16','vbifcs.i16','vbifhs.i16','vbifcc.i16','vbiflo.i16','vbifmi.i16','vbifpl.i16','vbifvs.i16','vbifvc.i16','vbifhi.i16','vbifls.i16','vbifge.i16','vbiflt.i16','vbifgt.i16','vbifle.i16',
+ 'vbifeq.i32','vbifne.i32','vbifcs.i32','vbifhs.i32','vbifcc.i32','vbiflo.i32','vbifmi.i32','vbifpl.i32','vbifvs.i32','vbifvc.i32','vbifhi.i32','vbifls.i32','vbifge.i32','vbiflt.i32','vbifgt.i32','vbifle.i32',
+ 'vbifeq.i64','vbifne.i64','vbifcs.i64','vbifhs.i64','vbifcc.i64','vbiflo.i64','vbifmi.i64','vbifpl.i64','vbifvs.i64','vbifvc.i64','vbifhi.i64','vbifls.i64','vbifge.i64','vbiflt.i64','vbifgt.i64','vbifle.i64',
+ 'vbifeq.s8','vbifne.s8','vbifcs.s8','vbifhs.s8','vbifcc.s8','vbiflo.s8','vbifmi.s8','vbifpl.s8','vbifvs.s8','vbifvc.s8','vbifhi.s8','vbifls.s8','vbifge.s8','vbiflt.s8','vbifgt.s8','vbifle.s8',
+ 'vbifeq.s16','vbifne.s16','vbifcs.s16','vbifhs.s16','vbifcc.s16','vbiflo.s16','vbifmi.s16','vbifpl.s16','vbifvs.s16','vbifvc.s16','vbifhi.s16','vbifls.s16','vbifge.s16','vbiflt.s16','vbifgt.s16','vbifle.s16',
+ 'vbifeq.s32','vbifne.s32','vbifcs.s32','vbifhs.s32','vbifcc.s32','vbiflo.s32','vbifmi.s32','vbifpl.s32','vbifvs.s32','vbifvc.s32','vbifhi.s32','vbifls.s32','vbifge.s32','vbiflt.s32','vbifgt.s32','vbifle.s32',
+ 'vbifeq.s64','vbifne.s64','vbifcs.s64','vbifhs.s64','vbifcc.s64','vbiflo.s64','vbifmi.s64','vbifpl.s64','vbifvs.s64','vbifvc.s64','vbifhi.s64','vbifls.s64','vbifge.s64','vbiflt.s64','vbifgt.s64','vbifle.s64',
+ 'vbifeq.u8','vbifne.u8','vbifcs.u8','vbifhs.u8','vbifcc.u8','vbiflo.u8','vbifmi.u8','vbifpl.u8','vbifvs.u8','vbifvc.u8','vbifhi.u8','vbifls.u8','vbifge.u8','vbiflt.u8','vbifgt.u8','vbifle.u8',
+ 'vbifeq.u16','vbifne.u16','vbifcs.u16','vbifhs.u16','vbifcc.u16','vbiflo.u16','vbifmi.u16','vbifpl.u16','vbifvs.u16','vbifvc.u16','vbifhi.u16','vbifls.u16','vbifge.u16','vbiflt.u16','vbifgt.u16','vbifle.u16',
+ 'vbifeq.u32','vbifne.u32','vbifcs.u32','vbifhs.u32','vbifcc.u32','vbiflo.u32','vbifmi.u32','vbifpl.u32','vbifvs.u32','vbifvc.u32','vbifhi.u32','vbifls.u32','vbifge.u32','vbiflt.u32','vbifgt.u32','vbifle.u32',
+ 'vbifeq.u64','vbifne.u64','vbifcs.u64','vbifhs.u64','vbifcc.u64','vbiflo.u64','vbifmi.u64','vbifpl.u64','vbifvs.u64','vbifvc.u64','vbifhi.u64','vbifls.u64','vbifge.u64','vbiflt.u64','vbifgt.u64','vbifle.u64',
+ 'vbifeq.f32','vbifne.f32','vbifcs.f32','vbifhs.f32','vbifcc.f32','vbiflo.f32','vbifmi.f32','vbifpl.f32','vbifvs.f32','vbifvc.f32','vbifhi.f32','vbifls.f32','vbifge.f32','vbiflt.f32','vbifgt.f32','vbifle.f32',
+ 'vbifeq.f64','vbifne.f64','vbifcs.f64','vbifhs.f64','vbifcc.f64','vbiflo.f64','vbifmi.f64','vbifpl.f64','vbifvs.f64','vbifvc.f64','vbifhi.f64','vbifls.f64','vbifge.f64','vbiflt.f64','vbifgt.f64','vbifle.f64',
+
+ 'vbiteq','vbitne','vbitcs','vbiths','vbitcc','vbitlo','vbitmi','vbitpl','vbitvs','vbitvc','vbithi','vbitls','vbitge','vbitlt','vbitgt','vbitle',
+ 'vbiteq.i8','vbitne.i8','vbitcs.i8','vbiths.i8','vbitcc.i8','vbitlo.i8','vbitmi.i8','vbitpl.i8','vbitvs.i8','vbitvc.i8','vbithi.i8','vbitls.i8','vbitge.i8','vbitlt.i8','vbitgt.i8','vbitle.i8',
+ 'vbiteq.i16','vbitne.i16','vbitcs.i16','vbiths.i16','vbitcc.i16','vbitlo.i16','vbitmi.i16','vbitpl.i16','vbitvs.i16','vbitvc.i16','vbithi.i16','vbitls.i16','vbitge.i16','vbitlt.i16','vbitgt.i16','vbitle.i16',
+ 'vbiteq.i32','vbitne.i32','vbitcs.i32','vbiths.i32','vbitcc.i32','vbitlo.i32','vbitmi.i32','vbitpl.i32','vbitvs.i32','vbitvc.i32','vbithi.i32','vbitls.i32','vbitge.i32','vbitlt.i32','vbitgt.i32','vbitle.i32',
+ 'vbiteq.i64','vbitne.i64','vbitcs.i64','vbiths.i64','vbitcc.i64','vbitlo.i64','vbitmi.i64','vbitpl.i64','vbitvs.i64','vbitvc.i64','vbithi.i64','vbitls.i64','vbitge.i64','vbitlt.i64','vbitgt.i64','vbitle.i64',
+ 'vbiteq.s8','vbitne.s8','vbitcs.s8','vbiths.s8','vbitcc.s8','vbitlo.s8','vbitmi.s8','vbitpl.s8','vbitvs.s8','vbitvc.s8','vbithi.s8','vbitls.s8','vbitge.s8','vbitlt.s8','vbitgt.s8','vbitle.s8',
+ 'vbiteq.s16','vbitne.s16','vbitcs.s16','vbiths.s16','vbitcc.s16','vbitlo.s16','vbitmi.s16','vbitpl.s16','vbitvs.s16','vbitvc.s16','vbithi.s16','vbitls.s16','vbitge.s16','vbitlt.s16','vbitgt.s16','vbitle.s16',
+ 'vbiteq.s32','vbitne.s32','vbitcs.s32','vbiths.s32','vbitcc.s32','vbitlo.s32','vbitmi.s32','vbitpl.s32','vbitvs.s32','vbitvc.s32','vbithi.s32','vbitls.s32','vbitge.s32','vbitlt.s32','vbitgt.s32','vbitle.s32',
+ 'vbiteq.s64','vbitne.s64','vbitcs.s64','vbiths.s64','vbitcc.s64','vbitlo.s64','vbitmi.s64','vbitpl.s64','vbitvs.s64','vbitvc.s64','vbithi.s64','vbitls.s64','vbitge.s64','vbitlt.s64','vbitgt.s64','vbitle.s64',
+ 'vbiteq.u8','vbitne.u8','vbitcs.u8','vbiths.u8','vbitcc.u8','vbitlo.u8','vbitmi.u8','vbitpl.u8','vbitvs.u8','vbitvc.u8','vbithi.u8','vbitls.u8','vbitge.u8','vbitlt.u8','vbitgt.u8','vbitle.u8',
+ 'vbiteq.u16','vbitne.u16','vbitcs.u16','vbiths.u16','vbitcc.u16','vbitlo.u16','vbitmi.u16','vbitpl.u16','vbitvs.u16','vbitvc.u16','vbithi.u16','vbitls.u16','vbitge.u16','vbitlt.u16','vbitgt.u16','vbitle.u16',
+ 'vbiteq.u32','vbitne.u32','vbitcs.u32','vbiths.u32','vbitcc.u32','vbitlo.u32','vbitmi.u32','vbitpl.u32','vbitvs.u32','vbitvc.u32','vbithi.u32','vbitls.u32','vbitge.u32','vbitlt.u32','vbitgt.u32','vbitle.u32',
+ 'vbiteq.u64','vbitne.u64','vbitcs.u64','vbiths.u64','vbitcc.u64','vbitlo.u64','vbitmi.u64','vbitpl.u64','vbitvs.u64','vbitvc.u64','vbithi.u64','vbitls.u64','vbitge.u64','vbitlt.u64','vbitgt.u64','vbitle.u64',
+ 'vbiteq.f32','vbitne.f32','vbitcs.f32','vbiths.f32','vbitcc.f32','vbitlo.f32','vbitmi.f32','vbitpl.f32','vbitvs.f32','vbitvc.f32','vbithi.f32','vbitls.f32','vbitge.f32','vbitlt.f32','vbitgt.f32','vbitle.f32',
+ 'vbiteq.f64','vbitne.f64','vbitcs.f64','vbiths.f64','vbitcc.f64','vbitlo.f64','vbitmi.f64','vbitpl.f64','vbitvs.f64','vbitvc.f64','vbithi.f64','vbitls.f64','vbitge.f64','vbitlt.f64','vbitgt.f64','vbitle.f64',
+
+ 'vbsleq','vbslne','vbslcs','vbslhs','vbslcc','vbsllo','vbslmi','vbslpl','vbslvs','vbslvc','vbslhi','vbslls','vbslge','vbsllt','vbslgt','vbslle',
+ 'vbsleq.i8','vbslne.i8','vbslcs.i8','vbslhs.i8','vbslcc.i8','vbsllo.i8','vbslmi.i8','vbslpl.i8','vbslvs.i8','vbslvc.i8','vbslhi.i8','vbslls.i8','vbslge.i8','vbsllt.i8','vbslgt.i8','vbslle.i8',
+ 'vbsleq.i16','vbslne.i16','vbslcs.i16','vbslhs.i16','vbslcc.i16','vbsllo.i16','vbslmi.i16','vbslpl.i16','vbslvs.i16','vbslvc.i16','vbslhi.i16','vbslls.i16','vbslge.i16','vbsllt.i16','vbslgt.i16','vbslle.i16',
+ 'vbsleq.i32','vbslne.i32','vbslcs.i32','vbslhs.i32','vbslcc.i32','vbsllo.i32','vbslmi.i32','vbslpl.i32','vbslvs.i32','vbslvc.i32','vbslhi.i32','vbslls.i32','vbslge.i32','vbsllt.i32','vbslgt.i32','vbslle.i32',
+ 'vbsleq.i64','vbslne.i64','vbslcs.i64','vbslhs.i64','vbslcc.i64','vbsllo.i64','vbslmi.i64','vbslpl.i64','vbslvs.i64','vbslvc.i64','vbslhi.i64','vbslls.i64','vbslge.i64','vbsllt.i64','vbslgt.i64','vbslle.i64',
+ 'vbsleq.s8','vbslne.s8','vbslcs.s8','vbslhs.s8','vbslcc.s8','vbsllo.s8','vbslmi.s8','vbslpl.s8','vbslvs.s8','vbslvc.s8','vbslhi.s8','vbslls.s8','vbslge.s8','vbsllt.s8','vbslgt.s8','vbslle.s8',
+ 'vbsleq.s16','vbslne.s16','vbslcs.s16','vbslhs.s16','vbslcc.s16','vbsllo.s16','vbslmi.s16','vbslpl.s16','vbslvs.s16','vbslvc.s16','vbslhi.s16','vbslls.s16','vbslge.s16','vbsllt.s16','vbslgt.s16','vbslle.s16',
+ 'vbsleq.s32','vbslne.s32','vbslcs.s32','vbslhs.s32','vbslcc.s32','vbsllo.s32','vbslmi.s32','vbslpl.s32','vbslvs.s32','vbslvc.s32','vbslhi.s32','vbslls.s32','vbslge.s32','vbsllt.s32','vbslgt.s32','vbslle.s32',
+ 'vbsleq.s64','vbslne.s64','vbslcs.s64','vbslhs.s64','vbslcc.s64','vbsllo.s64','vbslmi.s64','vbslpl.s64','vbslvs.s64','vbslvc.s64','vbslhi.s64','vbslls.s64','vbslge.s64','vbsllt.s64','vbslgt.s64','vbslle.s64',
+ 'vbsleq.u8','vbslne.u8','vbslcs.u8','vbslhs.u8','vbslcc.u8','vbsllo.u8','vbslmi.u8','vbslpl.u8','vbslvs.u8','vbslvc.u8','vbslhi.u8','vbslls.u8','vbslge.u8','vbsllt.u8','vbslgt.u8','vbslle.u8',
+ 'vbsleq.u16','vbslne.u16','vbslcs.u16','vbslhs.u16','vbslcc.u16','vbsllo.u16','vbslmi.u16','vbslpl.u16','vbslvs.u16','vbslvc.u16','vbslhi.u16','vbslls.u16','vbslge.u16','vbsllt.u16','vbslgt.u16','vbslle.u16',
+ 'vbsleq.u32','vbslne.u32','vbslcs.u32','vbslhs.u32','vbslcc.u32','vbsllo.u32','vbslmi.u32','vbslpl.u32','vbslvs.u32','vbslvc.u32','vbslhi.u32','vbslls.u32','vbslge.u32','vbsllt.u32','vbslgt.u32','vbslle.u32',
+ 'vbsleq.u64','vbslne.u64','vbslcs.u64','vbslhs.u64','vbslcc.u64','vbsllo.u64','vbslmi.u64','vbslpl.u64','vbslvs.u64','vbslvc.u64','vbslhi.u64','vbslls.u64','vbslge.u64','vbsllt.u64','vbslgt.u64','vbslle.u64',
+ 'vbsleq.f32','vbslne.f32','vbslcs.f32','vbslhs.f32','vbslcc.f32','vbsllo.f32','vbslmi.f32','vbslpl.f32','vbslvs.f32','vbslvc.f32','vbslhi.f32','vbslls.f32','vbslge.f32','vbsllt.f32','vbslgt.f32','vbslle.f32',
+ 'vbsleq.f64','vbslne.f64','vbslcs.f64','vbslhs.f64','vbslcc.f64','vbsllo.f64','vbslmi.f64','vbslpl.f64','vbslvs.f64','vbslvc.f64','vbslhi.f64','vbslls.f64','vbslge.f64','vbsllt.f64','vbslgt.f64','vbslle.f64',
+
+ 'veoreq','veorne','veorcs','veorhs','veorcc','veorlo','veormi','veorpl','veorvs','veorvc','veorhi','veorls','veorge','veorlt','veorgt','veorle',
+ 'veoreq.i8','veorne.i8','veorcs.i8','veorhs.i8','veorcc.i8','veorlo.i8','veormi.i8','veorpl.i8','veorvs.i8','veorvc.i8','veorhi.i8','veorls.i8','veorge.i8','veorlt.i8','veorgt.i8','veorle.i8',
+ 'veoreq.i16','veorne.i16','veorcs.i16','veorhs.i16','veorcc.i16','veorlo.i16','veormi.i16','veorpl.i16','veorvs.i16','veorvc.i16','veorhi.i16','veorls.i16','veorge.i16','veorlt.i16','veorgt.i16','veorle.i16',
+ 'veoreq.i32','veorne.i32','veorcs.i32','veorhs.i32','veorcc.i32','veorlo.i32','veormi.i32','veorpl.i32','veorvs.i32','veorvc.i32','veorhi.i32','veorls.i32','veorge.i32','veorlt.i32','veorgt.i32','veorle.i32',
+ 'veoreq.i64','veorne.i64','veorcs.i64','veorhs.i64','veorcc.i64','veorlo.i64','veormi.i64','veorpl.i64','veorvs.i64','veorvc.i64','veorhi.i64','veorls.i64','veorge.i64','veorlt.i64','veorgt.i64','veorle.i64',
+ 'veoreq.s8','veorne.s8','veorcs.s8','veorhs.s8','veorcc.s8','veorlo.s8','veormi.s8','veorpl.s8','veorvs.s8','veorvc.s8','veorhi.s8','veorls.s8','veorge.s8','veorlt.s8','veorgt.s8','veorle.s8',
+ 'veoreq.s16','veorne.s16','veorcs.s16','veorhs.s16','veorcc.s16','veorlo.s16','veormi.s16','veorpl.s16','veorvs.s16','veorvc.s16','veorhi.s16','veorls.s16','veorge.s16','veorlt.s16','veorgt.s16','veorle.s16',
+ 'veoreq.s32','veorne.s32','veorcs.s32','veorhs.s32','veorcc.s32','veorlo.s32','veormi.s32','veorpl.s32','veorvs.s32','veorvc.s32','veorhi.s32','veorls.s32','veorge.s32','veorlt.s32','veorgt.s32','veorle.s32',
+ 'veoreq.s64','veorne.s64','veorcs.s64','veorhs.s64','veorcc.s64','veorlo.s64','veormi.s64','veorpl.s64','veorvs.s64','veorvc.s64','veorhi.s64','veorls.s64','veorge.s64','veorlt.s64','veorgt.s64','veorle.s64',
+ 'veoreq.u8','veorne.u8','veorcs.u8','veorhs.u8','veorcc.u8','veorlo.u8','veormi.u8','veorpl.u8','veorvs.u8','veorvc.u8','veorhi.u8','veorls.u8','veorge.u8','veorlt.u8','veorgt.u8','veorle.u8',
+ 'veoreq.u16','veorne.u16','veorcs.u16','veorhs.u16','veorcc.u16','veorlo.u16','veormi.u16','veorpl.u16','veorvs.u16','veorvc.u16','veorhi.u16','veorls.u16','veorge.u16','veorlt.u16','veorgt.u16','veorle.u16',
+ 'veoreq.u32','veorne.u32','veorcs.u32','veorhs.u32','veorcc.u32','veorlo.u32','veormi.u32','veorpl.u32','veorvs.u32','veorvc.u32','veorhi.u32','veorls.u32','veorge.u32','veorlt.u32','veorgt.u32','veorle.u32',
+ 'veoreq.u64','veorne.u64','veorcs.u64','veorhs.u64','veorcc.u64','veorlo.u64','veormi.u64','veorpl.u64','veorvs.u64','veorvc.u64','veorhi.u64','veorls.u64','veorge.u64','veorlt.u64','veorgt.u64','veorle.u64',
+ 'veoreq.f32','veorne.f32','veorcs.f32','veorhs.f32','veorcc.f32','veorlo.f32','veormi.f32','veorpl.f32','veorvs.f32','veorvc.f32','veorhi.f32','veorls.f32','veorge.f32','veorlt.f32','veorgt.f32','veorle.f32',
+ 'veoreq.f64','veorne.f64','veorcs.f64','veorhs.f64','veorcc.f64','veorlo.f64','veormi.f64','veorpl.f64','veorvs.f64','veorvc.f64','veorhi.f64','veorls.f64','veorge.f64','veorlt.f64','veorgt.f64','veorle.f64',
+
+ 'vmoveq','vmovne','vmovcs','vmovhs','vmovcc','vmovlo','vmovmi','vmovpl','vmovvs','vmovvc','vmovhi','vmovls','vmovge','vmovlt','vmovgt','vmovle',
+ 'vmoveq.8','vmovne.8','vmovcs.8','vmovhs.8','vmovcc.8','vmovlo.8','vmovmi.8','vmovpl.8','vmovvs.8','vmovvc.8','vmovhi.8','vmovls.8','vmovge.8','vmovlt.8','vmovgt.8','vmovle.8',
+ 'vmoveq.16','vmovne.16','vmovcs.16','vmovhs.16','vmovcc.16','vmovlo.16','vmovmi.16','vmovpl.16','vmovvs.16','vmovvc.16','vmovhi.16','vmovls.16','vmovge.16','vmovlt.16','vmovgt.16','vmovle.16',
+ 'vmoveq.32','vmovne.32','vmovcs.32','vmovhs.32','vmovcc.32','vmovlo.32','vmovmi.32','vmovpl.32','vmovvs.32','vmovvc.32','vmovhi.32','vmovls.32','vmovge.32','vmovlt.32','vmovgt.32','vmovle.32',
+ 'vmoveq.i8','vmovne.i8','vmovcs.i8','vmovhs.i8','vmovcc.i8','vmovlo.i8','vmovmi.i8','vmovpl.i8','vmovvs.i8','vmovvc.i8','vmovhi.i8','vmovls.i8','vmovge.i8','vmovlt.i8','vmovgt.i8','vmovle.i8',
+ 'vmoveq.i16','vmovne.i16','vmovcs.i16','vmovhs.i16','vmovcc.i16','vmovlo.i16','vmovmi.i16','vmovpl.i16','vmovvs.i16','vmovvc.i16','vmovhi.i16','vmovls.i16','vmovge.i16','vmovlt.i16','vmovgt.i16','vmovle.i16',
+ 'vmoveq.i32','vmovne.i32','vmovcs.i32','vmovhs.i32','vmovcc.i32','vmovlo.i32','vmovmi.i32','vmovpl.i32','vmovvs.i32','vmovvc.i32','vmovhi.i32','vmovls.i32','vmovge.i32','vmovlt.i32','vmovgt.i32','vmovle.i32',
+ 'vmoveq.i64','vmovne.i64','vmovcs.i64','vmovhs.i64','vmovcc.i64','vmovlo.i64','vmovmi.i64','vmovpl.i64','vmovvs.i64','vmovvc.i64','vmovhi.i64','vmovls.i64','vmovge.i64','vmovlt.i64','vmovgt.i64','vmovle.i64',
+ 'vmoveq.f32','vmovne.f32','vmovcs.f32','vmovhs.f32','vmovcc.f32','vmovlo.f32','vmovmi.f32','vmovpl.f32','vmovvs.f32','vmovvc.f32','vmovhi.f32','vmovls.f32','vmovge.f32','vmovlt.f32','vmovgt.f32','vmovle.f32',
+ 'vmoveq.f64','vmovne.f64','vmovcs.f64','vmovhs.f64','vmovcc.f64','vmovlo.f64','vmovmi.f64','vmovpl.f64','vmovvs.f64','vmovvc.f64','vmovhi.f64','vmovls.f64','vmovge.f64','vmovlt.f64','vmovgt.f64','vmovle.f64',
+
+ 'vmvneq','vmvnne','vmvncs','vmvnhs','vmvncc','vmvnlo','vmvnmi','vmvnpl','vmvnvs','vmvnvc','vmvnhi','vmvnls','vmvnge','vmvnlt','vmvngt','vmvnle',
+ 'vmvneq.s8','vmvnne.s8','vmvncs.s8','vmvnhs.s8','vmvncc.s8','vmvnlo.s8','vmvnmi.s8','vmvnpl.s8','vmvnvs.s8','vmvnvc.s8','vmvnhi.s8','vmvnls.s8','vmvnge.s8','vmvnlt.s8','vmvngt.s8','vmvnle.s8',
+ 'vmvneq.s16','vmvnne.s16','vmvncs.s16','vmvnhs.s16','vmvncc.s16','vmvnlo.s16','vmvnmi.s16','vmvnpl.s16','vmvnvs.s16','vmvnvc.s16','vmvnhi.s16','vmvnls.s16','vmvnge.s16','vmvnlt.s16','vmvngt.s16','vmvnle.s16',
+ 'vmvneq.s32','vmvnne.s32','vmvncs.s32','vmvnhs.s32','vmvncc.s32','vmvnlo.s32','vmvnmi.s32','vmvnpl.s32','vmvnvs.s32','vmvnvc.s32','vmvnhi.s32','vmvnls.s32','vmvnge.s32','vmvnlt.s32','vmvngt.s32','vmvnle.s32',
+ 'vmvneq.s64','vmvnne.s64','vmvncs.s64','vmvnhs.s64','vmvncc.s64','vmvnlo.s64','vmvnmi.s64','vmvnpl.s64','vmvnvs.s64','vmvnvc.s64','vmvnhi.s64','vmvnls.s64','vmvnge.s64','vmvnlt.s64','vmvngt.s64','vmvnle.s64',
+ 'vmvneq.u8','vmvnne.u8','vmvncs.u8','vmvnhs.u8','vmvncc.u8','vmvnlo.u8','vmvnmi.u8','vmvnpl.u8','vmvnvs.u8','vmvnvc.u8','vmvnhi.u8','vmvnls.u8','vmvnge.u8','vmvnlt.u8','vmvngt.u8','vmvnle.u8',
+ 'vmvneq.u16','vmvnne.u16','vmvncs.u16','vmvnhs.u16','vmvncc.u16','vmvnlo.u16','vmvnmi.u16','vmvnpl.u16','vmvnvs.u16','vmvnvc.u16','vmvnhi.u16','vmvnls.u16','vmvnge.u16','vmvnlt.u16','vmvngt.u16','vmvnle.u16',
+ 'vmvneq.u32','vmvnne.u32','vmvncs.u32','vmvnhs.u32','vmvncc.u32','vmvnlo.u32','vmvnmi.u32','vmvnpl.u32','vmvnvs.u32','vmvnvc.u32','vmvnhi.u32','vmvnls.u32','vmvnge.u32','vmvnlt.u32','vmvngt.u32','vmvnle.u32',
+ 'vmvneq.u64','vmvnne.u64','vmvncs.u64','vmvnhs.u64','vmvncc.u64','vmvnlo.u64','vmvnmi.u64','vmvnpl.u64','vmvnvs.u64','vmvnvc.u64','vmvnhi.u64','vmvnls.u64','vmvnge.u64','vmvnlt.u64','vmvngt.u64','vmvnle.u64',
+ 'vmvneq.i8','vmvnne.i8','vmvncs.i8','vmvnhs.i8','vmvncc.i8','vmvnlo.i8','vmvnmi.i8','vmvnpl.i8','vmvnvs.i8','vmvnvc.i8','vmvnhi.i8','vmvnls.i8','vmvnge.i8','vmvnlt.i8','vmvngt.i8','vmvnle.i8',
+ 'vmvneq.i16','vmvnne.i16','vmvncs.i16','vmvnhs.i16','vmvncc.i16','vmvnlo.i16','vmvnmi.i16','vmvnpl.i16','vmvnvs.i16','vmvnvc.i16','vmvnhi.i16','vmvnls.i16','vmvnge.i16','vmvnlt.i16','vmvngt.i16','vmvnle.i16',
+ 'vmvneq.i32','vmvnne.i32','vmvncs.i32','vmvnhs.i32','vmvncc.i32','vmvnlo.i32','vmvnmi.i32','vmvnpl.i32','vmvnvs.i32','vmvnvc.i32','vmvnhi.i32','vmvnls.i32','vmvnge.i32','vmvnlt.i32','vmvngt.i32','vmvnle.i32',
+ 'vmvneq.i64','vmvnne.i64','vmvncs.i64','vmvnhs.i64','vmvncc.i64','vmvnlo.i64','vmvnmi.i64','vmvnpl.i64','vmvnvs.i64','vmvnvc.i64','vmvnhi.i64','vmvnls.i64','vmvnge.i64','vmvnlt.i64','vmvngt.i64','vmvnle.i64',
+ 'vmvneq.f32','vmvnne.f32','vmvncs.f32','vmvnhs.f32','vmvncc.f32','vmvnlo.f32','vmvnmi.f32','vmvnpl.f32','vmvnvs.f32','vmvnvc.f32','vmvnhi.f32','vmvnls.f32','vmvnge.f32','vmvnlt.f32','vmvngt.f32','vmvnle.f32',
+ 'vmvneq.f64','vmvnne.f64','vmvncs.f64','vmvnhs.f64','vmvncc.f64','vmvnlo.f64','vmvnmi.f64','vmvnpl.f64','vmvnvs.f64','vmvnvc.f64','vmvnhi.f64','vmvnls.f64','vmvnge.f64','vmvnlt.f64','vmvngt.f64','vmvnle.f64',
+
+ 'vorneq','vornne','vorncs','vornhs','vorncc','vornlo','vornmi','vornpl','vornvs','vornvc','vornhi','vornls','vornge','vornlt','vorngt','vornle',
+ 'vorneq.s8','vornne.s8','vorncs.s8','vornhs.s8','vorncc.s8','vornlo.s8','vornmi.s8','vornpl.s8','vornvs.s8','vornvc.s8','vornhi.s8','vornls.s8','vornge.s8','vornlt.s8','vorngt.s8','vornle.s8',
+ 'vorneq.s16','vornne.s16','vorncs.s16','vornhs.s16','vorncc.s16','vornlo.s16','vornmi.s16','vornpl.s16','vornvs.s16','vornvc.s16','vornhi.s16','vornls.s16','vornge.s16','vornlt.s16','vorngt.s16','vornle.s16',
+ 'vorneq.s32','vornne.s32','vorncs.s32','vornhs.s32','vorncc.s32','vornlo.s32','vornmi.s32','vornpl.s32','vornvs.s32','vornvc.s32','vornhi.s32','vornls.s32','vornge.s32','vornlt.s32','vorngt.s32','vornle.s32',
+ 'vorneq.s64','vornne.s64','vorncs.s64','vornhs.s64','vorncc.s64','vornlo.s64','vornmi.s64','vornpl.s64','vornvs.s64','vornvc.s64','vornhi.s64','vornls.s64','vornge.s64','vornlt.s64','vorngt.s64','vornle.s64',
+ 'vorneq.u8','vornne.u8','vorncs.u8','vornhs.u8','vorncc.u8','vornlo.u8','vornmi.u8','vornpl.u8','vornvs.u8','vornvc.u8','vornhi.u8','vornls.u8','vornge.u8','vornlt.u8','vorngt.u8','vornle.u8',
+ 'vorneq.u16','vornne.u16','vorncs.u16','vornhs.u16','vorncc.u16','vornlo.u16','vornmi.u16','vornpl.u16','vornvs.u16','vornvc.u16','vornhi.u16','vornls.u16','vornge.u16','vornlt.u16','vorngt.u16','vornle.u16',
+ 'vorneq.u32','vornne.u32','vorncs.u32','vornhs.u32','vorncc.u32','vornlo.u32','vornmi.u32','vornpl.u32','vornvs.u32','vornvc.u32','vornhi.u32','vornls.u32','vornge.u32','vornlt.u32','vorngt.u32','vornle.u32',
+ 'vorneq.u64','vornne.u64','vorncs.u64','vornhs.u64','vorncc.u64','vornlo.u64','vornmi.u64','vornpl.u64','vornvs.u64','vornvc.u64','vornhi.u64','vornls.u64','vornge.u64','vornlt.u64','vorngt.u64','vornle.u64',
+ 'vorneq.i8','vornne.i8','vorncs.i8','vornhs.i8','vorncc.i8','vornlo.i8','vornmi.i8','vornpl.i8','vornvs.i8','vornvc.i8','vornhi.i8','vornls.i8','vornge.i8','vornlt.i8','vorngt.i8','vornle.i8',
+ 'vorneq.i16','vornne.i16','vorncs.i16','vornhs.i16','vorncc.i16','vornlo.i16','vornmi.i16','vornpl.i16','vornvs.i16','vornvc.i16','vornhi.i16','vornls.i16','vornge.i16','vornlt.i16','vorngt.i16','vornle.i16',
+ 'vorneq.i32','vornne.i32','vorncs.i32','vornhs.i32','vorncc.i32','vornlo.i32','vornmi.i32','vornpl.i32','vornvs.i32','vornvc.i32','vornhi.i32','vornls.i32','vornge.i32','vornlt.i32','vorngt.i32','vornle.i32',
+ 'vorneq.i64','vornne.i64','vorncs.i64','vornhs.i64','vorncc.i64','vornlo.i64','vornmi.i64','vornpl.i64','vornvs.i64','vornvc.i64','vornhi.i64','vornls.i64','vornge.i64','vornlt.i64','vorngt.i64','vornle.i64',
+ 'vorneq.f32','vornne.f32','vorncs.f32','vornhs.f32','vorncc.f32','vornlo.f32','vornmi.f32','vornpl.f32','vornvs.f32','vornvc.f32','vornhi.f32','vornls.f32','vornge.f32','vornlt.f32','vorngt.f32','vornle.f32',
+ 'vorneq.f64','vornne.f64','vorncs.f64','vornhs.f64','vorncc.f64','vornlo.f64','vornmi.f64','vornpl.f64','vornvs.f64','vornvc.f64','vornhi.f64','vornls.f64','vornge.f64','vornlt.f64','vorngt.f64','vornle.f64',
+
+ 'vorreq','vorrne','vorrcs','vorrhs','vorrcc','vorrlo','vorrmi','vorrpl','vorrvs','vorrvc','vorrhi','vorrls','vorrge','vorrlt','vorrgt','vorrle',
+ 'vorreq.s8','vorrne.s8','vorrcs.s8','vorrhs.s8','vorrcc.s8','vorrlo.s8','vorrmi.s8','vorrpl.s8','vorrvs.s8','vorrvc.s8','vorrhi.s8','vorrls.s8','vorrge.s8','vorrlt.s8','vorrgt.s8','vorrle.s8',
+ 'vorreq.s16','vorrne.s16','vorrcs.s16','vorrhs.s16','vorrcc.s16','vorrlo.s16','vorrmi.s16','vorrpl.s16','vorrvs.s16','vorrvc.s16','vorrhi.s16','vorrls.s16','vorrge.s16','vorrlt.s16','vorrgt.s16','vorrle.s16',
+ 'vorreq.s32','vorrne.s32','vorrcs.s32','vorrhs.s32','vorrcc.s32','vorrlo.s32','vorrmi.s32','vorrpl.s32','vorrvs.s32','vorrvc.s32','vorrhi.s32','vorrls.s32','vorrge.s32','vorrlt.s32','vorrgt.s32','vorrle.s32',
+ 'vorreq.s64','vorrne.s64','vorrcs.s64','vorrhs.s64','vorrcc.s64','vorrlo.s64','vorrmi.s64','vorrpl.s64','vorrvs.s64','vorrvc.s64','vorrhi.s64','vorrls.s64','vorrge.s64','vorrlt.s64','vorrgt.s64','vorrle.s64',
+ 'vorreq.u8','vorrne.u8','vorrcs.u8','vorrhs.u8','vorrcc.u8','vorrlo.u8','vorrmi.u8','vorrpl.u8','vorrvs.u8','vorrvc.u8','vorrhi.u8','vorrls.u8','vorrge.u8','vorrlt.u8','vorrgt.u8','vorrle.u8',
+ 'vorreq.u16','vorrne.u16','vorrcs.u16','vorrhs.u16','vorrcc.u16','vorrlo.u16','vorrmi.u16','vorrpl.u16','vorrvs.u16','vorrvc.u16','vorrhi.u16','vorrls.u16','vorrge.u16','vorrlt.u16','vorrgt.u16','vorrle.u16',
+ 'vorreq.u32','vorrne.u32','vorrcs.u32','vorrhs.u32','vorrcc.u32','vorrlo.u32','vorrmi.u32','vorrpl.u32','vorrvs.u32','vorrvc.u32','vorrhi.u32','vorrls.u32','vorrge.u32','vorrlt.u32','vorrgt.u32','vorrle.u32',
+ 'vorreq.u64','vorrne.u64','vorrcs.u64','vorrhs.u64','vorrcc.u64','vorrlo.u64','vorrmi.u64','vorrpl.u64','vorrvs.u64','vorrvc.u64','vorrhi.u64','vorrls.u64','vorrge.u64','vorrlt.u64','vorrgt.u64','vorrle.u64',
+ 'vorreq.i8','vorrne.i8','vorrcs.i8','vorrhs.i8','vorrcc.i8','vorrlo.i8','vorrmi.i8','vorrpl.i8','vorrvs.i8','vorrvc.i8','vorrhi.i8','vorrls.i8','vorrge.i8','vorrlt.i8','vorrgt.i8','vorrle.i8',
+ 'vorreq.i16','vorrne.i16','vorrcs.i16','vorrhs.i16','vorrcc.i16','vorrlo.i16','vorrmi.i16','vorrpl.i16','vorrvs.i16','vorrvc.i16','vorrhi.i16','vorrls.i16','vorrge.i16','vorrlt.i16','vorrgt.i16','vorrle.i16',
+ 'vorreq.i32','vorrne.i32','vorrcs.i32','vorrhs.i32','vorrcc.i32','vorrlo.i32','vorrmi.i32','vorrpl.i32','vorrvs.i32','vorrvc.i32','vorrhi.i32','vorrls.i32','vorrge.i32','vorrlt.i32','vorrgt.i32','vorrle.i32',
+ 'vorreq.i64','vorrne.i64','vorrcs.i64','vorrhs.i64','vorrcc.i64','vorrlo.i64','vorrmi.i64','vorrpl.i64','vorrvs.i64','vorrvc.i64','vorrhi.i64','vorrls.i64','vorrge.i64','vorrlt.i64','vorrgt.i64','vorrle.i64',
+ 'vorreq.f32','vorrne.f32','vorrcs.f32','vorrhs.f32','vorrcc.f32','vorrlo.f32','vorrmi.f32','vorrpl.f32','vorrvs.f32','vorrvc.f32','vorrhi.f32','vorrls.f32','vorrge.f32','vorrlt.f32','vorrgt.f32','vorrle.f32',
+ 'vorreq.f64','vorrne.f64','vorrcs.f64','vorrhs.f64','vorrcc.f64','vorrlo.f64','vorrmi.f64','vorrpl.f64','vorrvs.f64','vorrvc.f64','vorrhi.f64','vorrls.f64','vorrge.f64','vorrlt.f64','vorrgt.f64','vorrle.f64',
+
+ 'vswpeq','vswpne','vswpcs','vswphs','vswpcc','vswplo','vswpmi','vswppl','vswpvs','vswpvc','vswphi','vswpls','vswpge','vswplt','vswpgt','vswple',
+ 'vswpeq.s8','vswpne.s8','vswpcs.s8','vswphs.s8','vswpcc.s8','vswplo.s8','vswpmi.s8','vswppl.s8','vswpvs.s8','vswpvc.s8','vswphi.s8','vswpls.s8','vswpge.s8','vswplt.s8','vswpgt.s8','vswple.s8',
+ 'vswpeq.s16','vswpne.s16','vswpcs.s16','vswphs.s16','vswpcc.s16','vswplo.s16','vswpmi.s16','vswppl.s16','vswpvs.s16','vswpvc.s16','vswphi.s16','vswpls.s16','vswpge.s16','vswplt.s16','vswpgt.s16','vswple.s16',
+ 'vswpeq.s32','vswpne.s32','vswpcs.s32','vswphs.s32','vswpcc.s32','vswplo.s32','vswpmi.s32','vswppl.s32','vswpvs.s32','vswpvc.s32','vswphi.s32','vswpls.s32','vswpge.s32','vswplt.s32','vswpgt.s32','vswple.s32',
+ 'vswpeq.s64','vswpne.s64','vswpcs.s64','vswphs.s64','vswpcc.s64','vswplo.s64','vswpmi.s64','vswppl.s64','vswpvs.s64','vswpvc.s64','vswphi.s64','vswpls.s64','vswpge.s64','vswplt.s64','vswpgt.s64','vswple.s64',
+ 'vswpeq.u8','vswpne.u8','vswpcs.u8','vswphs.u8','vswpcc.u8','vswplo.u8','vswpmi.u8','vswppl.u8','vswpvs.u8','vswpvc.u8','vswphi.u8','vswpls.u8','vswpge.u8','vswplt.u8','vswpgt.u8','vswple.u8',
+ 'vswpeq.u16','vswpne.u16','vswpcs.u16','vswphs.u16','vswpcc.u16','vswplo.u16','vswpmi.u16','vswppl.u16','vswpvs.u16','vswpvc.u16','vswphi.u16','vswpls.u16','vswpge.u16','vswplt.u16','vswpgt.u16','vswple.u16',
+ 'vswpeq.u32','vswpne.u32','vswpcs.u32','vswphs.u32','vswpcc.u32','vswplo.u32','vswpmi.u32','vswppl.u32','vswpvs.u32','vswpvc.u32','vswphi.u32','vswpls.u32','vswpge.u32','vswplt.u32','vswpgt.u32','vswple.u32',
+ 'vswpeq.u64','vswpne.u64','vswpcs.u64','vswphs.u64','vswpcc.u64','vswplo.u64','vswpmi.u64','vswppl.u64','vswpvs.u64','vswpvc.u64','vswphi.u64','vswpls.u64','vswpge.u64','vswplt.u64','vswpgt.u64','vswple.u64',
+ 'vswpeq.i8','vswpne.i8','vswpcs.i8','vswphs.i8','vswpcc.i8','vswplo.i8','vswpmi.i8','vswppl.i8','vswpvs.i8','vswpvc.i8','vswphi.i8','vswpls.i8','vswpge.i8','vswplt.i8','vswpgt.i8','vswple.i8',
+ 'vswpeq.i16','vswpne.i16','vswpcs.i16','vswphs.i16','vswpcc.i16','vswplo.i16','vswpmi.i16','vswppl.i16','vswpvs.i16','vswpvc.i16','vswphi.i16','vswpls.i16','vswpge.i16','vswplt.i16','vswpgt.i16','vswple.i16',
+ 'vswpeq.i32','vswpne.i32','vswpcs.i32','vswphs.i32','vswpcc.i32','vswplo.i32','vswpmi.i32','vswppl.i32','vswpvs.i32','vswpvc.i32','vswphi.i32','vswpls.i32','vswpge.i32','vswplt.i32','vswpgt.i32','vswple.i32',
+ 'vswpeq.i64','vswpne.i64','vswpcs.i64','vswphs.i64','vswpcc.i64','vswplo.i64','vswpmi.i64','vswppl.i64','vswpvs.i64','vswpvc.i64','vswphi.i64','vswpls.i64','vswpge.i64','vswplt.i64','vswpgt.i64','vswple.i64',
+ 'vswpeq.f32','vswpne.f32','vswpcs.f32','vswphs.f32','vswpcc.f32','vswplo.f32','vswpmi.f32','vswppl.f32','vswpvs.f32','vswpvc.f32','vswphi.f32','vswpls.f32','vswpge.f32','vswplt.f32','vswpgt.f32','vswple.f32',
+ 'vswpeq.f64','vswpne.f64','vswpcs.f64','vswphs.f64','vswpcc.f64','vswplo.f64','vswpmi.f64','vswppl.f64','vswpvs.f64','vswpvc.f64','vswphi.f64','vswpls.f64','vswpge.f64','vswplt.f64','vswpgt.f64','vswple.f64'
+ ),
+ /* Conditional NEON SIMD ARM Registers Interop Instructions */
+ 29 => array(
+ 'vmrseq','vmrsne','vmrscs','vmrshs','vmrscc','vmrslo','vmrsmi','vmrspl','vmrsvs','vmrsvc','vmrshi','vmrsls','vmrsge','vmrslt','vmrsgt','vmrsle',
+ 'vmsreq','vmsrne','vmsrcs','vmsrhs','vmsrcc','vmsrlo','vmsrmi','vmsrpl','vmsrvs','vmsrvc','vmsrhi','vmsrls','vmsrge','vmsrlt','vmsrgt','vmsrle'
+ ),
+ /* Conditional NEON SIMD Bit/Byte-Level Instructions */
+ 30 => array(
+ 'vcnteq.8','vcntne.8','vcntcs.8','vcnths.8','vcntcc.8','vcntlo.8','vcntmi.8','vcntpl.8','vcntvs.8','vcntvc.8','vcnthi.8','vcntls.8','vcntge.8','vcntlt.8','vcntgt.8','vcntle.8',
+ 'vdupeq.8','vdupne.8','vdupcs.8','vduphs.8','vdupcc.8','vduplo.8','vdupmi.8','vduppl.8','vdupvs.8','vdupvc.8','vduphi.8','vdupls.8','vdupge.8','vduplt.8','vdupgt.8','vduple.8',
+
+ 'vdupeq.16','vdupne.16','vdupcs.16','vduphs.16','vdupcc.16','vduplo.16','vdupmi.16','vduppl.16','vdupvs.16','vdupvc.16','vduphi.16','vdupls.16','vdupge.16','vduplt.16','vdupgt.16','vduple.16',
+ 'vdupeq.32','vdupne.32','vdupcs.32','vduphs.32','vdupcc.32','vduplo.32','vdupmi.32','vduppl.32','vdupvs.32','vdupvc.32','vduphi.32','vdupls.32','vdupge.32','vduplt.32','vdupgt.32','vduple.32',
+
+ 'vexteq.8','vextne.8','vextcs.8','vexths.8','vextcc.8','vextlo.8','vextmi.8','vextpl.8','vextvs.8','vextvc.8','vexthi.8','vextls.8','vextge.8','vextlt.8','vextgt.8','vextle.8',
+ 'vexteq.16','vextne.16','vextcs.16','vexths.16','vextcc.16','vextlo.16','vextmi.16','vextpl.16','vextvs.16','vextvc.16','vexthi.16','vextls.16','vextge.16','vextlt.16','vextgt.16','vextle.16',
+
+ 'vexteq.32','vextne.32','vextcs.32','vexths.32','vextcc.32','vextlo.32','vextmi.32','vextpl.32','vextvs.32','vextvc.32','vexthi.32','vextls.32','vextge.32','vextlt.32','vextgt.32','vextle.32',
+ 'vexteq.64','vextne.64','vextcs.64','vexths.64','vextcc.64','vextlo.64','vextmi.64','vextpl.64','vextvs.64','vextvc.64','vexthi.64','vextls.64','vextge.64','vextlt.64','vextgt.64','vextle.64',
+
+ 'vrev16eq.8','vrev16ne.8','vrev16cs.8','vrev16hs.8','vrev16cc.8','vrev16lo.8','vrev16mi.8','vrev16pl.8','vrev16vs.8','vrev16vc.8','vrev16hi.8','vrev16ls.8','vrev16ge.8','vrev16lt.8','vrev16gt.8','vrev16le.8',
+ 'vrev32eq.8','vrev32ne.8','vrev32cs.8','vrev32hs.8','vrev32cc.8','vrev32lo.8','vrev32mi.8','vrev32pl.8','vrev32vs.8','vrev32vc.8','vrev32hi.8','vrev32ls.8','vrev32ge.8','vrev32lt.8','vrev32gt.8','vrev32le.8',
+ 'vrev32eq.16','vrev32ne.16','vrev32cs.16','vrev32hs.16','vrev32cc.16','vrev32lo.16','vrev32mi.16','vrev32pl.16','vrev32vs.16','vrev32vc.16','vrev32hi.16','vrev32ls.16','vrev32ge.16','vrev32lt.16','vrev32gt.16','vrev32le.16',
+ 'vrev64eq.8','vrev64ne.8','vrev64cs.8','vrev64hs.8','vrev64cc.8','vrev64lo.8','vrev64mi.8','vrev64pl.8','vrev64vs.8','vrev64vc.8','vrev64hi.8','vrev64ls.8','vrev64ge.8','vrev64lt.8','vrev64gt.8','vrev64le.8',
+ 'vrev64eq.16','vrev64ne.16','vrev64cs.16','vrev64hs.16','vrev64cc.16','vrev64lo.16','vrev64mi.16','vrev64pl.16','vrev64vs.16','vrev64vc.16','vrev64hi.16','vrev64ls.16','vrev64ge.16','vrev64lt.16','vrev64gt.16','vrev64le.16',
+ 'vrev64eq.32','vrev64ne.32','vrev64cs.32','vrev64hs.32','vrev64cc.32','vrev64lo.32','vrev64mi.32','vrev64pl.32','vrev64vs.32','vrev64vc.32','vrev64hi.32','vrev64ls.32','vrev64ge.32','vrev64lt.32','vrev64gt.32','vrev64le.32',
+
+ 'vslieq.8','vsline.8','vslics.8','vslihs.8','vslicc.8','vslilo.8','vslimi.8','vslipl.8','vslivs.8','vslivc.8','vslihi.8','vslils.8','vslige.8','vslilt.8','vsligt.8','vslile.8',
+ 'vslieq.16','vsline.16','vslics.16','vslihs.16','vslicc.16','vslilo.16','vslimi.16','vslipl.16','vslivs.16','vslivc.16','vslihi.16','vslils.16','vslige.16','vslilt.16','vsligt.16','vslile.16',
+ 'vslieq.32','vsline.32','vslics.32','vslihs.32','vslicc.32','vslilo.32','vslimi.32','vslipl.32','vslivs.32','vslivc.32','vslihi.32','vslils.32','vslige.32','vslilt.32','vsligt.32','vslile.32',
+ 'vslieq.64','vsline.64','vslics.64','vslihs.64','vslicc.64','vslilo.64','vslimi.64','vslipl.64','vslivs.64','vslivc.64','vslihi.64','vslils.64','vslige.64','vslilt.64','vsligt.64','vslile.64',
+
+ 'vsrieq.8','vsrine.8','vsrics.8','vsrihs.8','vsricc.8','vsrilo.8','vsrimi.8','vsripl.8','vsrivs.8','vsrivc.8','vsrihi.8','vsrils.8','vsrige.8','vsrilt.8','vsrigt.8','vsrile.8',
+ 'vsrieq.16','vsrine.16','vsrics.16','vsrihs.16','vsricc.16','vsrilo.16','vsrimi.16','vsripl.16','vsrivs.16','vsrivc.16','vsrihi.16','vsrils.16','vsrige.16','vsrilt.16','vsrigt.16','vsrile.16',
+ 'vsrieq.32','vsrine.32','vsrics.32','vsrihs.32','vsricc.32','vsrilo.32','vsrimi.32','vsripl.32','vsrivs.32','vsrivc.32','vsrihi.32','vsrils.32','vsrige.32','vsrilt.32','vsrigt.32','vsrile.32',
+ 'vsrieq.64','vsrine.64','vsrics.64','vsrihs.64','vsricc.64','vsrilo.64','vsrimi.64','vsripl.64','vsrivs.64','vsrivc.64','vsrihi.64','vsrils.64','vsrige.64','vsrilt.64','vsrigt.64','vsrile.64',
+
+ 'vtbleq.8','vtblne.8','vtblcs.8','vtblhs.8','vtblcc.8','vtbllo.8','vtblmi.8','vtblpl.8','vtblvs.8','vtblvc.8','vtblhi.8','vtblls.8','vtblge.8','vtbllt.8','vtblgt.8','vtblle.8',
+
+ 'vtbxeq','vtbxne','vtbxcs','vtbxhs','vtbxcc','vtbxlo','vtbxmi','vtbxpl','vtbxvs','vtbxvc','vtbxhi','vtbxls','vtbxge','vtbxlt','vtbxgt','vtbxle',
+
+ 'vtrneq.8','vtrnne.8','vtrncs.8','vtrnhs.8','vtrncc.8','vtrnlo.8','vtrnmi.8','vtrnpl.8','vtrnvs.8','vtrnvc.8','vtrnhi.8','vtrnls.8','vtrnge.8','vtrnlt.8','vtrngt.8','vtrnle.8',
+ 'vtrneq.16','vtrnne.16','vtrncs.16','vtrnhs.16','vtrncc.16','vtrnlo.16','vtrnmi.16','vtrnpl.16','vtrnvs.16','vtrnvc.16','vtrnhi.16','vtrnls.16','vtrnge.16','vtrnlt.16','vtrngt.16','vtrnle.16',
+ 'vtrneq.32','vtrnne.32','vtrncs.32','vtrnhs.32','vtrncc.32','vtrnlo.32','vtrnmi.32','vtrnpl.32','vtrnvs.32','vtrnvc.32','vtrnhi.32','vtrnls.32','vtrnge.32','vtrnlt.32','vtrngt.32','vtrnle.32',
+
+ 'vtsteq.8','vtstne.8','vtstcs.8','vtsths.8','vtstcc.8','vtstlo.8','vtstmi.8','vtstpl.8','vtstvs.8','vtstvc.8','vtsthi.8','vtstls.8','vtstge.8','vtstlt.8','vtstgt.8','vtstle.8',
+ 'vtsteq.16','vtstne.16','vtstcs.16','vtsths.16','vtstcc.16','vtstlo.16','vtstmi.16','vtstpl.16','vtstvs.16','vtstvc.16','vtsthi.16','vtstls.16','vtstge.16','vtstlt.16','vtstgt.16','vtstle.16',
+ 'vtsteq.32','vtstne.32','vtstcs.32','vtsths.32','vtstcc.32','vtstlo.32','vtstmi.32','vtstpl.32','vtstvs.32','vtstvc.32','vtsthi.32','vtstls.32','vtstge.32','vtstlt.32','vtstgt.32','vtstle.32',
+
+ 'vuzpeq.8','vuzpne.8','vuzpcs.8','vuzphs.8','vuzpcc.8','vuzplo.8','vuzpmi.8','vuzppl.8','vuzpvs.8','vuzpvc.8','vuzphi.8','vuzpls.8','vuzpge.8','vuzplt.8','vuzpgt.8','vuzple.8',
+ 'vuzpeq.16','vuzpne.16','vuzpcs.16','vuzphs.16','vuzpcc.16','vuzplo.16','vuzpmi.16','vuzppl.16','vuzpvs.16','vuzpvc.16','vuzphi.16','vuzpls.16','vuzpge.16','vuzplt.16','vuzpgt.16','vuzple.16',
+ 'vuzpeq.32','vuzpne.32','vuzpcs.32','vuzphs.32','vuzpcc.32','vuzplo.32','vuzpmi.32','vuzppl.32','vuzpvs.32','vuzpvc.32','vuzphi.32','vuzpls.32','vuzpge.32','vuzplt.32','vuzpgt.32','vuzple.32',
+
+ 'vzipeq.8','vzipne.8','vzipcs.8','vziphs.8','vzipcc.8','vziplo.8','vzipmi.8','vzippl.8','vzipvs.8','vzipvc.8','vziphi.8','vzipls.8','vzipge.8','vziplt.8','vzipgt.8','vziple.8',
+ 'vzipeq.16','vzipne.16','vzipcs.16','vziphs.16','vzipcc.16','vziplo.16','vzipmi.16','vzippl.16','vzipvs.16','vzipvc.16','vziphi.16','vzipls.16','vzipge.16','vziplt.16','vzipgt.16','vziple.16',
+ 'vzipeq.32','vzipne.32','vzipcs.32','vziphs.32','vzipcc.32','vziplo.32','vzipmi.32','vzippl.32','vzipvs.32','vzipvc.32','vziphi.32','vzipls.32','vzipge.32','vziplt.32','vzipgt.32','vziple.32',
+
+ 'vmulleq.p8','vmullne.p8','vmullcs.p8','vmullhs.p8','vmullcc.p8','vmulllo.p8','vmullmi.p8','vmullpl.p8','vmullvs.p8','vmullvc.p8','vmullhi.p8','vmullls.p8','vmullge.p8','vmulllt.p8','vmullgt.p8','vmullle.p8'
+ ),
+ /* Conditional NEON SIMD Universal Integer Instructions */
+ 31 => array(
+ 'vaddeq.i8','vaddne.i8','vaddcs.i8','vaddhs.i8','vaddcc.i8','vaddlo.i8','vaddmi.i8','vaddpl.i8','vaddvs.i8','vaddvc.i8','vaddhi.i8','vaddls.i8','vaddge.i8','vaddlt.i8','vaddgt.i8','vaddle.i8',
+ 'vaddeq.i16','vaddne.i16','vaddcs.i16','vaddhs.i16','vaddcc.i16','vaddlo.i16','vaddmi.i16','vaddpl.i16','vaddvs.i16','vaddvc.i16','vaddhi.i16','vaddls.i16','vaddge.i16','vaddlt.i16','vaddgt.i16','vaddle.i16',
+ 'vaddeq.i32','vaddne.i32','vaddcs.i32','vaddhs.i32','vaddcc.i32','vaddlo.i32','vaddmi.i32','vaddpl.i32','vaddvs.i32','vaddvc.i32','vaddhi.i32','vaddls.i32','vaddge.i32','vaddlt.i32','vaddgt.i32','vaddle.i32',
+ 'vaddeq.i64','vaddne.i64','vaddcs.i64','vaddhs.i64','vaddcc.i64','vaddlo.i64','vaddmi.i64','vaddpl.i64','vaddvs.i64','vaddvc.i64','vaddhi.i64','vaddls.i64','vaddge.i64','vaddlt.i64','vaddgt.i64','vaddle.i64',
+
+ 'vsubeq.i8','vsubne.i8','vsubcs.i8','vsubhs.i8','vsubcc.i8','vsublo.i8','vsubmi.i8','vsubpl.i8','vsubvs.i8','vsubvc.i8','vsubhi.i8','vsubls.i8','vsubge.i8','vsublt.i8','vsubgt.i8','vsuble.i8',
+ 'vsubeq.i16','vsubne.i16','vsubcs.i16','vsubhs.i16','vsubcc.i16','vsublo.i16','vsubmi.i16','vsubpl.i16','vsubvs.i16','vsubvc.i16','vsubhi.i16','vsubls.i16','vsubge.i16','vsublt.i16','vsubgt.i16','vsuble.i16',
+ 'vsubeq.i32','vsubne.i32','vsubcs.i32','vsubhs.i32','vsubcc.i32','vsublo.i32','vsubmi.i32','vsubpl.i32','vsubvs.i32','vsubvc.i32','vsubhi.i32','vsubls.i32','vsubge.i32','vsublt.i32','vsubgt.i32','vsuble.i32',
+ 'vsubeq.i64','vsubne.i64','vsubcs.i64','vsubhs.i64','vsubcc.i64','vsublo.i64','vsubmi.i64','vsubpl.i64','vsubvs.i64','vsubvc.i64','vsubhi.i64','vsubls.i64','vsubge.i64','vsublt.i64','vsubgt.i64','vsuble.i64',
+
+ 'vaddhneq.i16','vaddhnne.i16','vaddhncs.i16','vaddhnhs.i16','vaddhncc.i16','vaddhnlo.i16','vaddhnmi.i16','vaddhnpl.i16','vaddhnvs.i16','vaddhnvc.i16','vaddhnhi.i16','vaddhnls.i16','vaddhnge.i16','vaddhnlt.i16','vaddhngt.i16','vaddhnle.i16',
+ 'vaddhneq.i32','vaddhnne.i32','vaddhncs.i32','vaddhnhs.i32','vaddhncc.i32','vaddhnlo.i32','vaddhnmi.i32','vaddhnpl.i32','vaddhnvs.i32','vaddhnvc.i32','vaddhnhi.i32','vaddhnls.i32','vaddhnge.i32','vaddhnlt.i32','vaddhngt.i32','vaddhnle.i32',
+ 'vaddhneq.i64','vaddhnne.i64','vaddhncs.i64','vaddhnhs.i64','vaddhncc.i64','vaddhnlo.i64','vaddhnmi.i64','vaddhnpl.i64','vaddhnvs.i64','vaddhnvc.i64','vaddhnhi.i64','vaddhnls.i64','vaddhnge.i64','vaddhnlt.i64','vaddhngt.i64','vaddhnle.i64',
+
+ 'vsubhneq.i16','vsubhnne.i16','vsubhncs.i16','vsubhnhs.i16','vsubhncc.i16','vsubhnlo.i16','vsubhnmi.i16','vsubhnpl.i16','vsubhnvs.i16','vsubhnvc.i16','vsubhnhi.i16','vsubhnls.i16','vsubhnge.i16','vsubhnlt.i16','vsubhngt.i16','vsubhnle.i16',
+ 'vsubhneq.i32','vsubhnne.i32','vsubhncs.i32','vsubhnhs.i32','vsubhncc.i32','vsubhnlo.i32','vsubhnmi.i32','vsubhnpl.i32','vsubhnvs.i32','vsubhnvc.i32','vsubhnhi.i32','vsubhnls.i32','vsubhnge.i32','vsubhnlt.i32','vsubhngt.i32','vsubhnle.i32',
+ 'vsubhneq.i64','vsubhnne.i64','vsubhncs.i64','vsubhnhs.i64','vsubhncc.i64','vsubhnlo.i64','vsubhnmi.i64','vsubhnpl.i64','vsubhnvs.i64','vsubhnvc.i64','vsubhnhi.i64','vsubhnls.i64','vsubhnge.i64','vsubhnlt.i64','vsubhngt.i64','vsubhnle.i64',
+
+ 'vraddhneq.i16','vraddhnne.i16','vraddhncs.i16','vraddhnhs.i16','vraddhncc.i16','vraddhnlo.i16','vraddhnmi.i16','vraddhnpl.i16','vraddhnvs.i16','vraddhnvc.i16','vraddhnhi.i16','vraddhnls.i16','vraddhnge.i16','vraddhnlt.i16','vraddhngt.i16','vraddhnle.i16',
+ 'vraddhneq.i32','vraddhnne.i32','vraddhncs.i32','vraddhnhs.i32','vraddhncc.i32','vraddhnlo.i32','vraddhnmi.i32','vraddhnpl.i32','vraddhnvs.i32','vraddhnvc.i32','vraddhnhi.i32','vraddhnls.i32','vraddhnge.i32','vraddhnlt.i32','vraddhngt.i32','vraddhnle.i32',
+ 'vraddhneq.i64','vraddhnne.i64','vraddhncs.i64','vraddhnhs.i64','vraddhncc.i64','vraddhnlo.i64','vraddhnmi.i64','vraddhnpl.i64','vraddhnvs.i64','vraddhnvc.i64','vraddhnhi.i64','vraddhnls.i64','vraddhnge.i64','vraddhnlt.i64','vraddhngt.i64','vraddhnle.i64',
+
+ 'vrsubhneq.i16','vrsubhnne.i16','vrsubhncs.i16','vrsubhnhs.i16','vrsubhncc.i16','vrsubhnlo.i16','vrsubhnmi.i16','vrsubhnpl.i16','vrsubhnvs.i16','vrsubhnvc.i16','vrsubhnhi.i16','vrsubhnls.i16','vrsubhnge.i16','vrsubhnlt.i16','vrsubhngt.i16','vrsubhnle.i16',
+ 'vrsubhneq.i32','vrsubhnne.i32','vrsubhncs.i32','vrsubhnhs.i32','vrsubhncc.i32','vrsubhnlo.i32','vrsubhnmi.i32','vrsubhnpl.i32','vrsubhnvs.i32','vrsubhnvc.i32','vrsubhnhi.i32','vrsubhnls.i32','vrsubhnge.i32','vrsubhnlt.i32','vrsubhngt.i32','vrsubhnle.i32',
+ 'vrsubhneq.i64','vrsubhnne.i64','vrsubhncs.i64','vrsubhnhs.i64','vrsubhncc.i64','vrsubhnlo.i64','vrsubhnmi.i64','vrsubhnpl.i64','vrsubhnvs.i64','vrsubhnvc.i64','vrsubhnhi.i64','vrsubhnls.i64','vrsubhnge.i64','vrsubhnlt.i64','vrsubhngt.i64','vrsubhnle.i64',
+
+ 'vpaddeq.i8','vpaddne.i8','vpaddcs.i8','vpaddhs.i8','vpaddcc.i8','vpaddlo.i8','vpaddmi.i8','vpaddpl.i8','vpaddvs.i8','vpaddvc.i8','vpaddhi.i8','vpaddls.i8','vpaddge.i8','vpaddlt.i8','vpaddgt.i8','vpaddle.i8',
+ 'vpaddeq.i16','vpaddne.i16','vpaddcs.i16','vpaddhs.i16','vpaddcc.i16','vpaddlo.i16','vpaddmi.i16','vpaddpl.i16','vpaddvs.i16','vpaddvc.i16','vpaddhi.i16','vpaddls.i16','vpaddge.i16','vpaddlt.i16','vpaddgt.i16','vpaddle.i16',
+ 'vpaddeq.i32','vpaddne.i32','vpaddcs.i32','vpaddhs.i32','vpaddcc.i32','vpaddlo.i32','vpaddmi.i32','vpaddpl.i32','vpaddvs.i32','vpaddvc.i32','vpaddhi.i32','vpaddls.i32','vpaddge.i32','vpaddlt.i32','vpaddgt.i32','vpaddle.i32',
+
+ 'vceqeq.i8','vceqne.i8','vceqcs.i8','vceqhs.i8','vceqcc.i8','vceqlo.i8','vceqmi.i8','vceqpl.i8','vceqvs.i8','vceqvc.i8','vceqhi.i8','vceqls.i8','vceqge.i8','vceqlt.i8','vceqgt.i8','vceqle.i8',
+ 'vceqeq.i16','vceqne.i16','vceqcs.i16','vceqhs.i16','vceqcc.i16','vceqlo.i16','vceqmi.i16','vceqpl.i16','vceqvs.i16','vceqvc.i16','vceqhi.i16','vceqls.i16','vceqge.i16','vceqlt.i16','vceqgt.i16','vceqle.i16',
+ 'vceqeq.i32','vceqne.i32','vceqcs.i32','vceqhs.i32','vceqcc.i32','vceqlo.i32','vceqmi.i32','vceqpl.i32','vceqvs.i32','vceqvc.i32','vceqhi.i32','vceqls.i32','vceqge.i32','vceqlt.i32','vceqgt.i32','vceqle.i32',
+
+ 'vclzeq.i8','vclzne.i8','vclzcs.i8','vclzhs.i8','vclzcc.i8','vclzlo.i8','vclzmi.i8','vclzpl.i8','vclzvs.i8','vclzvc.i8','vclzhi.i8','vclzls.i8','vclzge.i8','vclzlt.i8','vclzgt.i8','vclzle.i8',
+ 'vclzeq.i16','vclzne.i16','vclzcs.i16','vclzhs.i16','vclzcc.i16','vclzlo.i16','vclzmi.i16','vclzpl.i16','vclzvs.i16','vclzvc.i16','vclzhi.i16','vclzls.i16','vclzge.i16','vclzlt.i16','vclzgt.i16','vclzle.i16',
+ 'vclzeq.i32','vclzne.i32','vclzcs.i32','vclzhs.i32','vclzcc.i32','vclzlo.i32','vclzmi.i32','vclzpl.i32','vclzvs.i32','vclzvc.i32','vclzhi.i32','vclzls.i32','vclzge.i32','vclzlt.i32','vclzgt.i32','vclzle.i32',
+
+ 'vmovneq.i16','vmovnne.i16','vmovncs.i16','vmovnhs.i16','vmovncc.i16','vmovnlo.i16','vmovnmi.i16','vmovnpl.i16','vmovnvs.i16','vmovnvc.i16','vmovnhi.i16','vmovnls.i16','vmovnge.i16','vmovnlt.i16','vmovngt.i16','vmovnle.i16',
+ 'vmovneq.i32','vmovnne.i32','vmovncs.i32','vmovnhs.i32','vmovncc.i32','vmovnlo.i32','vmovnmi.i32','vmovnpl.i32','vmovnvs.i32','vmovnvc.i32','vmovnhi.i32','vmovnls.i32','vmovnge.i32','vmovnlt.i32','vmovngt.i32','vmovnle.i32',
+ 'vmovneq.i64','vmovnne.i64','vmovncs.i64','vmovnhs.i64','vmovncc.i64','vmovnlo.i64','vmovnmi.i64','vmovnpl.i64','vmovnvs.i64','vmovnvc.i64','vmovnhi.i64','vmovnls.i64','vmovnge.i64','vmovnlt.i64','vmovngt.i64','vmovnle.i64',
+
+ 'vmlaeq.s8','vmlane.s8','vmlacs.s8','vmlahs.s8','vmlacc.s8','vmlalo.s8','vmlami.s8','vmlapl.s8','vmlavs.s8','vmlavc.s8','vmlahi.s8','vmlals.s8','vmlage.s8','vmlalt.s8','vmlagt.s8','vmlale.s8',
+ 'vmlaeq.s16','vmlane.s16','vmlacs.s16','vmlahs.s16','vmlacc.s16','vmlalo.s16','vmlami.s16','vmlapl.s16','vmlavs.s16','vmlavc.s16','vmlahi.s16','vmlals.s16','vmlage.s16','vmlalt.s16','vmlagt.s16','vmlale.s16',
+ 'vmlaeq.s32','vmlane.s32','vmlacs.s32','vmlahs.s32','vmlacc.s32','vmlalo.s32','vmlami.s32','vmlapl.s32','vmlavs.s32','vmlavc.s32','vmlahi.s32','vmlals.s32','vmlage.s32','vmlalt.s32','vmlagt.s32','vmlale.s32',
+ 'vmlaeq.u8','vmlane.u8','vmlacs.u8','vmlahs.u8','vmlacc.u8','vmlalo.u8','vmlami.u8','vmlapl.u8','vmlavs.u8','vmlavc.u8','vmlahi.u8','vmlals.u8','vmlage.u8','vmlalt.u8','vmlagt.u8','vmlale.u8',
+ 'vmlaeq.u16','vmlane.u16','vmlacs.u16','vmlahs.u16','vmlacc.u16','vmlalo.u16','vmlami.u16','vmlapl.u16','vmlavs.u16','vmlavc.u16','vmlahi.u16','vmlals.u16','vmlage.u16','vmlalt.u16','vmlagt.u16','vmlale.u16',
+ 'vmlaeq.u32','vmlane.u32','vmlacs.u32','vmlahs.u32','vmlacc.u32','vmlalo.u32','vmlami.u32','vmlapl.u32','vmlavs.u32','vmlavc.u32','vmlahi.u32','vmlals.u32','vmlage.u32','vmlalt.u32','vmlagt.u32','vmlale.u32',
+ 'vmlaeq.i8','vmlane.i8','vmlacs.i8','vmlahs.i8','vmlacc.i8','vmlalo.i8','vmlami.i8','vmlapl.i8','vmlavs.i8','vmlavc.i8','vmlahi.i8','vmlals.i8','vmlage.i8','vmlalt.i8','vmlagt.i8','vmlale.i8',
+ 'vmlaeq.i16','vmlane.i16','vmlacs.i16','vmlahs.i16','vmlacc.i16','vmlalo.i16','vmlami.i16','vmlapl.i16','vmlavs.i16','vmlavc.i16','vmlahi.i16','vmlals.i16','vmlage.i16','vmlalt.i16','vmlagt.i16','vmlale.i16',
+ 'vmlaeq.i32','vmlane.i32','vmlacs.i32','vmlahs.i32','vmlacc.i32','vmlalo.i32','vmlami.i32','vmlapl.i32','vmlavs.i32','vmlavc.i32','vmlahi.i32','vmlals.i32','vmlage.i32','vmlalt.i32','vmlagt.i32','vmlale.i32',
+
+ 'vmlseq.s8','vmlsne.s8','vmlscs.s8','vmlshs.s8','vmlscc.s8','vmlslo.s8','vmlsmi.s8','vmlspl.s8','vmlsvs.s8','vmlsvc.s8','vmlshi.s8','vmlsls.s8','vmlsge.s8','vmlslt.s8','vmlsgt.s8','vmlsle.s8',
+ 'vmlseq.s16','vmlsne.s16','vmlscs.s16','vmlshs.s16','vmlscc.s16','vmlslo.s16','vmlsmi.s16','vmlspl.s16','vmlsvs.s16','vmlsvc.s16','vmlshi.s16','vmlsls.s16','vmlsge.s16','vmlslt.s16','vmlsgt.s16','vmlsle.s16',
+ 'vmlseq.s32','vmlsne.s32','vmlscs.s32','vmlshs.s32','vmlscc.s32','vmlslo.s32','vmlsmi.s32','vmlspl.s32','vmlsvs.s32','vmlsvc.s32','vmlshi.s32','vmlsls.s32','vmlsge.s32','vmlslt.s32','vmlsgt.s32','vmlsle.s32',
+ 'vmlseq.u8','vmlsne.u8','vmlscs.u8','vmlshs.u8','vmlscc.u8','vmlslo.u8','vmlsmi.u8','vmlspl.u8','vmlsvs.u8','vmlsvc.u8','vmlshi.u8','vmlsls.u8','vmlsge.u8','vmlslt.u8','vmlsgt.u8','vmlsle.u8',
+ 'vmlseq.u16','vmlsne.u16','vmlscs.u16','vmlshs.u16','vmlscc.u16','vmlslo.u16','vmlsmi.u16','vmlspl.u16','vmlsvs.u16','vmlsvc.u16','vmlshi.u16','vmlsls.u16','vmlsge.u16','vmlslt.u16','vmlsgt.u16','vmlsle.u16',
+ 'vmlseq.u32','vmlsne.u32','vmlscs.u32','vmlshs.u32','vmlscc.u32','vmlslo.u32','vmlsmi.u32','vmlspl.u32','vmlsvs.u32','vmlsvc.u32','vmlshi.u32','vmlsls.u32','vmlsge.u32','vmlslt.u32','vmlsgt.u32','vmlsle.u32',
+ 'vmlseq.i8','vmlsne.i8','vmlscs.i8','vmlshs.i8','vmlscc.i8','vmlslo.i8','vmlsmi.i8','vmlspl.i8','vmlsvs.i8','vmlsvc.i8','vmlshi.i8','vmlsls.i8','vmlsge.i8','vmlslt.i8','vmlsgt.i8','vmlsle.i8',
+ 'vmlseq.i16','vmlsne.i16','vmlscs.i16','vmlshs.i16','vmlscc.i16','vmlslo.i16','vmlsmi.i16','vmlspl.i16','vmlsvs.i16','vmlsvc.i16','vmlshi.i16','vmlsls.i16','vmlsge.i16','vmlslt.i16','vmlsgt.i16','vmlsle.i16',
+ 'vmlseq.i32','vmlsne.i32','vmlscs.i32','vmlshs.i32','vmlscc.i32','vmlslo.i32','vmlsmi.i32','vmlspl.i32','vmlsvs.i32','vmlsvc.i32','vmlshi.i32','vmlsls.i32','vmlsge.i32','vmlslt.i32','vmlsgt.i32','vmlsle.i32',
+
+ 'vmuleq.s8','vmulne.s8','vmulcs.s8','vmulhs.s8','vmulcc.s8','vmullo.s8','vmulmi.s8','vmulpl.s8','vmulvs.s8','vmulvc.s8','vmulhi.s8','vmulls.s8','vmulge.s8','vmullt.s8','vmulgt.s8','vmulle.s8',
+ 'vmuleq.s16','vmulne.s16','vmulcs.s16','vmulhs.s16','vmulcc.s16','vmullo.s16','vmulmi.s16','vmulpl.s16','vmulvs.s16','vmulvc.s16','vmulhi.s16','vmulls.s16','vmulge.s16','vmullt.s16','vmulgt.s16','vmulle.s16',
+ 'vmuleq.s32','vmulne.s32','vmulcs.s32','vmulhs.s32','vmulcc.s32','vmullo.s32','vmulmi.s32','vmulpl.s32','vmulvs.s32','vmulvc.s32','vmulhi.s32','vmulls.s32','vmulge.s32','vmullt.s32','vmulgt.s32','vmulle.s32',
+ 'vmuleq.u8','vmulne.u8','vmulcs.u8','vmulhs.u8','vmulcc.u8','vmullo.u8','vmulmi.u8','vmulpl.u8','vmulvs.u8','vmulvc.u8','vmulhi.u8','vmulls.u8','vmulge.u8','vmullt.u8','vmulgt.u8','vmulle.u8',
+ 'vmuleq.u16','vmulne.u16','vmulcs.u16','vmulhs.u16','vmulcc.u16','vmullo.u16','vmulmi.u16','vmulpl.u16','vmulvs.u16','vmulvc.u16','vmulhi.u16','vmulls.u16','vmulge.u16','vmullt.u16','vmulgt.u16','vmulle.u16',
+ 'vmuleq.u32','vmulne.u32','vmulcs.u32','vmulhs.u32','vmulcc.u32','vmullo.u32','vmulmi.u32','vmulpl.u32','vmulvs.u32','vmulvc.u32','vmulhi.u32','vmulls.u32','vmulge.u32','vmullt.u32','vmulgt.u32','vmulle.u32',
+ 'vmuleq.i8','vmulne.i8','vmulcs.i8','vmulhs.i8','vmulcc.i8','vmullo.i8','vmulmi.i8','vmulpl.i8','vmulvs.i8','vmulvc.i8','vmulhi.i8','vmulls.i8','vmulge.i8','vmullt.i8','vmulgt.i8','vmulle.i8',
+ 'vmuleq.i16','vmulne.i16','vmulcs.i16','vmulhs.i16','vmulcc.i16','vmullo.i16','vmulmi.i16','vmulpl.i16','vmulvs.i16','vmulvc.i16','vmulhi.i16','vmulls.i16','vmulge.i16','vmullt.i16','vmulgt.i16','vmulle.i16',
+ 'vmuleq.i32','vmulne.i32','vmulcs.i32','vmulhs.i32','vmulcc.i32','vmullo.i32','vmulmi.i32','vmulpl.i32','vmulvs.i32','vmulvc.i32','vmulhi.i32','vmulls.i32','vmulge.i32','vmullt.i32','vmulgt.i32','vmulle.i32',
+ 'vmuleq.p8','vmulne.p8','vmulcs.p8','vmulhs.p8','vmulcc.p8','vmullo.p8','vmulmi.p8','vmulpl.p8','vmulvs.p8','vmulvc.p8','vmulhi.p8','vmulls.p8','vmulge.p8','vmullt.p8','vmulgt.p8','vmulle.p8',
+
+ 'vrshrneq.i16','vrshrnne.i16','vrshrncs.i16','vrshrnhs.i16','vrshrncc.i16','vrshrnlo.i16','vrshrnmi.i16','vrshrnpl.i16','vrshrnvs.i16','vrshrnvc.i16','vrshrnhi.i16','vrshrnls.i16','vrshrnge.i16','vrshrnlt.i16','vrshrngt.i16','vrshrnle.i16',
+ 'vrshrneq.i32','vrshrnne.i32','vrshrncs.i32','vrshrnhs.i32','vrshrncc.i32','vrshrnlo.i32','vrshrnmi.i32','vrshrnpl.i32','vrshrnvs.i32','vrshrnvc.i32','vrshrnhi.i32','vrshrnls.i32','vrshrnge.i32','vrshrnlt.i32','vrshrngt.i32','vrshrnle.i32',
+ 'vrshrneq.i64','vrshrnne.i64','vrshrncs.i64','vrshrnhs.i64','vrshrncc.i64','vrshrnlo.i64','vrshrnmi.i64','vrshrnpl.i64','vrshrnvs.i64','vrshrnvc.i64','vrshrnhi.i64','vrshrnls.i64','vrshrnge.i64','vrshrnlt.i64','vrshrngt.i64','vrshrnle.i64',
+
+ 'vshrneq.i16','vshrnne.i16','vshrncs.i16','vshrnhs.i16','vshrncc.i16','vshrnlo.i16','vshrnmi.i16','vshrnpl.i16','vshrnvs.i16','vshrnvc.i16','vshrnhi.i16','vshrnls.i16','vshrnge.i16','vshrnlt.i16','vshrngt.i16','vshrnle.i16',
+ 'vshrneq.i32','vshrnne.i32','vshrncs.i32','vshrnhs.i32','vshrncc.i32','vshrnlo.i32','vshrnmi.i32','vshrnpl.i32','vshrnvs.i32','vshrnvc.i32','vshrnhi.i32','vshrnls.i32','vshrnge.i32','vshrnlt.i32','vshrngt.i32','vshrnle.i32',
+ 'vshrneq.i64','vshrnne.i64','vshrncs.i64','vshrnhs.i64','vshrncc.i64','vshrnlo.i64','vshrnmi.i64','vshrnpl.i64','vshrnvs.i64','vshrnvc.i64','vshrnhi.i64','vshrnls.i64','vshrnge.i64','vshrnlt.i64','vshrngt.i64','vshrnle.i64',
+
+ 'vshleq.i8','vshlne.i8','vshlcs.i8','vshlhs.i8','vshlcc.i8','vshllo.i8','vshlmi.i8','vshlpl.i8','vshlvs.i8','vshlvc.i8','vshlhi.i8','vshlls.i8','vshlge.i8','vshllt.i8','vshlgt.i8','vshlle.i8',
+ 'vshleq.i16','vshlne.i16','vshlcs.i16','vshlhs.i16','vshlcc.i16','vshllo.i16','vshlmi.i16','vshlpl.i16','vshlvs.i16','vshlvc.i16','vshlhi.i16','vshlls.i16','vshlge.i16','vshllt.i16','vshlgt.i16','vshlle.i16',
+ 'vshleq.i32','vshlne.i32','vshlcs.i32','vshlhs.i32','vshlcc.i32','vshllo.i32','vshlmi.i32','vshlpl.i32','vshlvs.i32','vshlvc.i32','vshlhi.i32','vshlls.i32','vshlge.i32','vshllt.i32','vshlgt.i32','vshlle.i32',
+ 'vshleq.i64','vshlne.i64','vshlcs.i64','vshlhs.i64','vshlcc.i64','vshllo.i64','vshlmi.i64','vshlpl.i64','vshlvs.i64','vshlvc.i64','vshlhi.i64','vshlls.i64','vshlge.i64','vshllt.i64','vshlgt.i64','vshlle.i64',
+
+ 'vshlleq.i8','vshllne.i8','vshllcs.i8','vshllhs.i8','vshllcc.i8','vshlllo.i8','vshllmi.i8','vshllpl.i8','vshllvs.i8','vshllvc.i8','vshllhi.i8','vshllls.i8','vshllge.i8','vshlllt.i8','vshllgt.i8','vshllle.i8',
+ 'vshlleq.i16','vshllne.i16','vshllcs.i16','vshllhs.i16','vshllcc.i16','vshlllo.i16','vshllmi.i16','vshllpl.i16','vshllvs.i16','vshllvc.i16','vshllhi.i16','vshllls.i16','vshllge.i16','vshlllt.i16','vshllgt.i16','vshllle.i16',
+ 'vshlleq.i32','vshllne.i32','vshllcs.i32','vshllhs.i32','vshllcc.i32','vshlllo.i32','vshllmi.i32','vshllpl.i32','vshllvs.i32','vshllvc.i32','vshllhi.i32','vshllls.i32','vshllge.i32','vshlllt.i32','vshllgt.i32','vshllle.i32'
+ ),
+ /* Conditional NEON SIMD Signed Integer Instructions */
+ 32 => array(
+ 'vabaeq.s8','vabane.s8','vabacs.s8','vabahs.s8','vabacc.s8','vabalo.s8','vabami.s8','vabapl.s8','vabavs.s8','vabavc.s8','vabahi.s8','vabals.s8','vabage.s8','vabalt.s8','vabagt.s8','vabale.s8',
+ 'vabaeq.s16','vabane.s16','vabacs.s16','vabahs.s16','vabacc.s16','vabalo.s16','vabami.s16','vabapl.s16','vabavs.s16','vabavc.s16','vabahi.s16','vabals.s16','vabage.s16','vabalt.s16','vabagt.s16','vabale.s16',
+ 'vabaeq.s32','vabane.s32','vabacs.s32','vabahs.s32','vabacc.s32','vabalo.s32','vabami.s32','vabapl.s32','vabavs.s32','vabavc.s32','vabahi.s32','vabals.s32','vabage.s32','vabalt.s32','vabagt.s32','vabale.s32',
+
+ 'vabaleq.s8','vabalne.s8','vabalcs.s8','vabalhs.s8','vabalcc.s8','vaballo.s8','vabalmi.s8','vabalpl.s8','vabalvs.s8','vabalvc.s8','vabalhi.s8','vaballs.s8','vabalge.s8','vaballt.s8','vabalgt.s8','vaballe.s8',
+ 'vabaleq.s16','vabalne.s16','vabalcs.s16','vabalhs.s16','vabalcc.s16','vaballo.s16','vabalmi.s16','vabalpl.s16','vabalvs.s16','vabalvc.s16','vabalhi.s16','vaballs.s16','vabalge.s16','vaballt.s16','vabalgt.s16','vaballe.s16',
+ 'vabaleq.s32','vabalne.s32','vabalcs.s32','vabalhs.s32','vabalcc.s32','vaballo.s32','vabalmi.s32','vabalpl.s32','vabalvs.s32','vabalvc.s32','vabalhi.s32','vaballs.s32','vabalge.s32','vaballt.s32','vabalgt.s32','vaballe.s32',
+
+ 'vabdeq.s8','vabdne.s8','vabdcs.s8','vabdhs.s8','vabdcc.s8','vabdlo.s8','vabdmi.s8','vabdpl.s8','vabdvs.s8','vabdvc.s8','vabdhi.s8','vabdls.s8','vabdge.s8','vabdlt.s8','vabdgt.s8','vabdle.s8',
+ 'vabdeq.s16','vabdne.s16','vabdcs.s16','vabdhs.s16','vabdcc.s16','vabdlo.s16','vabdmi.s16','vabdpl.s16','vabdvs.s16','vabdvc.s16','vabdhi.s16','vabdls.s16','vabdge.s16','vabdlt.s16','vabdgt.s16','vabdle.s16',
+ 'vabdeq.s32','vabdne.s32','vabdcs.s32','vabdhs.s32','vabdcc.s32','vabdlo.s32','vabdmi.s32','vabdpl.s32','vabdvs.s32','vabdvc.s32','vabdhi.s32','vabdls.s32','vabdge.s32','vabdlt.s32','vabdgt.s32','vabdle.s32',
+
+ 'vabseq.s8','vabsne.s8','vabscs.s8','vabshs.s8','vabscc.s8','vabslo.s8','vabsmi.s8','vabspl.s8','vabsvs.s8','vabsvc.s8','vabshi.s8','vabsls.s8','vabsge.s8','vabslt.s8','vabsgt.s8','vabsle.s8',
+ 'vabseq.s16','vabsne.s16','vabscs.s16','vabshs.s16','vabscc.s16','vabslo.s16','vabsmi.s16','vabspl.s16','vabsvs.s16','vabsvc.s16','vabshi.s16','vabsls.s16','vabsge.s16','vabslt.s16','vabsgt.s16','vabsle.s16',
+ 'vabseq.s32','vabsne.s32','vabscs.s32','vabshs.s32','vabscc.s32','vabslo.s32','vabsmi.s32','vabspl.s32','vabsvs.s32','vabsvc.s32','vabshi.s32','vabsls.s32','vabsge.s32','vabslt.s32','vabsgt.s32','vabsle.s32',
+
+ 'vaddleq.s8','vaddlne.s8','vaddlcs.s8','vaddlhs.s8','vaddlcc.s8','vaddllo.s8','vaddlmi.s8','vaddlpl.s8','vaddlvs.s8','vaddlvc.s8','vaddlhi.s8','vaddlls.s8','vaddlge.s8','vaddllt.s8','vaddlgt.s8','vaddlle.s8',
+ 'vaddleq.s16','vaddlne.s16','vaddlcs.s16','vaddlhs.s16','vaddlcc.s16','vaddllo.s16','vaddlmi.s16','vaddlpl.s16','vaddlvs.s16','vaddlvc.s16','vaddlhi.s16','vaddlls.s16','vaddlge.s16','vaddllt.s16','vaddlgt.s16','vaddlle.s16',
+ 'vaddleq.s32','vaddlne.s32','vaddlcs.s32','vaddlhs.s32','vaddlcc.s32','vaddllo.s32','vaddlmi.s32','vaddlpl.s32','vaddlvs.s32','vaddlvc.s32','vaddlhi.s32','vaddlls.s32','vaddlge.s32','vaddllt.s32','vaddlgt.s32','vaddlle.s32',
+
+ 'vcgeeq.s8','vcgene.s8','vcgecs.s8','vcgehs.s8','vcgecc.s8','vcgelo.s8','vcgemi.s8','vcgepl.s8','vcgevs.s8','vcgevc.s8','vcgehi.s8','vcgels.s8','vcgege.s8','vcgelt.s8','vcgegt.s8','vcgele.s8',
+ 'vcgeeq.s16','vcgene.s16','vcgecs.s16','vcgehs.s16','vcgecc.s16','vcgelo.s16','vcgemi.s16','vcgepl.s16','vcgevs.s16','vcgevc.s16','vcgehi.s16','vcgels.s16','vcgege.s16','vcgelt.s16','vcgegt.s16','vcgele.s16',
+ 'vcgeeq.s32','vcgene.s32','vcgecs.s32','vcgehs.s32','vcgecc.s32','vcgelo.s32','vcgemi.s32','vcgepl.s32','vcgevs.s32','vcgevc.s32','vcgehi.s32','vcgels.s32','vcgege.s32','vcgelt.s32','vcgegt.s32','vcgele.s32',
+
+ 'vcleeq.s8','vclene.s8','vclecs.s8','vclehs.s8','vclecc.s8','vclelo.s8','vclemi.s8','vclepl.s8','vclevs.s8','vclevc.s8','vclehi.s8','vclels.s8','vclege.s8','vclelt.s8','vclegt.s8','vclele.s8',
+ 'vcleeq.s16','vclene.s16','vclecs.s16','vclehs.s16','vclecc.s16','vclelo.s16','vclemi.s16','vclepl.s16','vclevs.s16','vclevc.s16','vclehi.s16','vclels.s16','vclege.s16','vclelt.s16','vclegt.s16','vclele.s16',
+ 'vcleeq.s32','vclene.s32','vclecs.s32','vclehs.s32','vclecc.s32','vclelo.s32','vclemi.s32','vclepl.s32','vclevs.s32','vclevc.s32','vclehi.s32','vclels.s32','vclege.s32','vclelt.s32','vclegt.s32','vclele.s32',
+
+ 'vcgteq.s8','vcgtne.s8','vcgtcs.s8','vcgths.s8','vcgtcc.s8','vcgtlo.s8','vcgtmi.s8','vcgtpl.s8','vcgtvs.s8','vcgtvc.s8','vcgthi.s8','vcgtls.s8','vcgtge.s8','vcgtlt.s8','vcgtgt.s8','vcgtle.s8',
+ 'vcgteq.s16','vcgtne.s16','vcgtcs.s16','vcgths.s16','vcgtcc.s16','vcgtlo.s16','vcgtmi.s16','vcgtpl.s16','vcgtvs.s16','vcgtvc.s16','vcgthi.s16','vcgtls.s16','vcgtge.s16','vcgtlt.s16','vcgtgt.s16','vcgtle.s16',
+ 'vcgteq.s32','vcgtne.s32','vcgtcs.s32','vcgths.s32','vcgtcc.s32','vcgtlo.s32','vcgtmi.s32','vcgtpl.s32','vcgtvs.s32','vcgtvc.s32','vcgthi.s32','vcgtls.s32','vcgtge.s32','vcgtlt.s32','vcgtgt.s32','vcgtle.s32',
+
+ 'vclteq.s8','vcltne.s8','vcltcs.s8','vclths.s8','vcltcc.s8','vcltlo.s8','vcltmi.s8','vcltpl.s8','vcltvs.s8','vcltvc.s8','vclthi.s8','vcltls.s8','vcltge.s8','vcltlt.s8','vcltgt.s8','vcltle.s8',
+ 'vclteq.s16','vcltne.s16','vcltcs.s16','vclths.s16','vcltcc.s16','vcltlo.s16','vcltmi.s16','vcltpl.s16','vcltvs.s16','vcltvc.s16','vclthi.s16','vcltls.s16','vcltge.s16','vcltlt.s16','vcltgt.s16','vcltle.s16',
+ 'vclteq.s32','vcltne.s32','vcltcs.s32','vclths.s32','vcltcc.s32','vcltlo.s32','vcltmi.s32','vcltpl.s32','vcltvs.s32','vcltvc.s32','vclthi.s32','vcltls.s32','vcltge.s32','vcltlt.s32','vcltgt.s32','vcltle.s32',
+
+ 'vclseq.s8','vclsne.s8','vclscs.s8','vclshs.s8','vclscc.s8','vclslo.s8','vclsmi.s8','vclspl.s8','vclsvs.s8','vclsvc.s8','vclshi.s8','vclsls.s8','vclsge.s8','vclslt.s8','vclsgt.s8','vclsle.s8',
+ 'vclseq.s16','vclsne.s16','vclscs.s16','vclshs.s16','vclscc.s16','vclslo.s16','vclsmi.s16','vclspl.s16','vclsvs.s16','vclsvc.s16','vclshi.s16','vclsls.s16','vclsge.s16','vclslt.s16','vclsgt.s16','vclsle.s16',
+ 'vclseq.s32','vclsne.s32','vclscs.s32','vclshs.s32','vclscc.s32','vclslo.s32','vclsmi.s32','vclspl.s32','vclsvs.s32','vclsvc.s32','vclshi.s32','vclsls.s32','vclsge.s32','vclslt.s32','vclsgt.s32','vclsle.s32',
+
+ 'vaddweq.s8','vaddwne.s8','vaddwcs.s8','vaddwhs.s8','vaddwcc.s8','vaddwlo.s8','vaddwmi.s8','vaddwpl.s8','vaddwvs.s8','vaddwvc.s8','vaddwhi.s8','vaddwls.s8','vaddwge.s8','vaddwlt.s8','vaddwgt.s8','vaddwle.s8',
+ 'vaddweq.s16','vaddwne.s16','vaddwcs.s16','vaddwhs.s16','vaddwcc.s16','vaddwlo.s16','vaddwmi.s16','vaddwpl.s16','vaddwvs.s16','vaddwvc.s16','vaddwhi.s16','vaddwls.s16','vaddwge.s16','vaddwlt.s16','vaddwgt.s16','vaddwle.s16',
+ 'vaddweq.s32','vaddwne.s32','vaddwcs.s32','vaddwhs.s32','vaddwcc.s32','vaddwlo.s32','vaddwmi.s32','vaddwpl.s32','vaddwvs.s32','vaddwvc.s32','vaddwhi.s32','vaddwls.s32','vaddwge.s32','vaddwlt.s32','vaddwgt.s32','vaddwle.s32',
+
+ 'vhaddeq.s8','vhaddne.s8','vhaddcs.s8','vhaddhs.s8','vhaddcc.s8','vhaddlo.s8','vhaddmi.s8','vhaddpl.s8','vhaddvs.s8','vhaddvc.s8','vhaddhi.s8','vhaddls.s8','vhaddge.s8','vhaddlt.s8','vhaddgt.s8','vhaddle.s8',
+ 'vhaddeq.s16','vhaddne.s16','vhaddcs.s16','vhaddhs.s16','vhaddcc.s16','vhaddlo.s16','vhaddmi.s16','vhaddpl.s16','vhaddvs.s16','vhaddvc.s16','vhaddhi.s16','vhaddls.s16','vhaddge.s16','vhaddlt.s16','vhaddgt.s16','vhaddle.s16',
+ 'vhaddeq.s32','vhaddne.s32','vhaddcs.s32','vhaddhs.s32','vhaddcc.s32','vhaddlo.s32','vhaddmi.s32','vhaddpl.s32','vhaddvs.s32','vhaddvc.s32','vhaddhi.s32','vhaddls.s32','vhaddge.s32','vhaddlt.s32','vhaddgt.s32','vhaddle.s32',
+
+ 'vhsubeq.s8','vhsubne.s8','vhsubcs.s8','vhsubhs.s8','vhsubcc.s8','vhsublo.s8','vhsubmi.s8','vhsubpl.s8','vhsubvs.s8','vhsubvc.s8','vhsubhi.s8','vhsubls.s8','vhsubge.s8','vhsublt.s8','vhsubgt.s8','vhsuble.s8',
+ 'vhsubeq.s16','vhsubne.s16','vhsubcs.s16','vhsubhs.s16','vhsubcc.s16','vhsublo.s16','vhsubmi.s16','vhsubpl.s16','vhsubvs.s16','vhsubvc.s16','vhsubhi.s16','vhsubls.s16','vhsubge.s16','vhsublt.s16','vhsubgt.s16','vhsuble.s16',
+ 'vhsubeq.s32','vhsubne.s32','vhsubcs.s32','vhsubhs.s32','vhsubcc.s32','vhsublo.s32','vhsubmi.s32','vhsubpl.s32','vhsubvs.s32','vhsubvc.s32','vhsubhi.s32','vhsubls.s32','vhsubge.s32','vhsublt.s32','vhsubgt.s32','vhsuble.s32',
+
+ 'vmaxeq.s8','vmaxne.s8','vmaxcs.s8','vmaxhs.s8','vmaxcc.s8','vmaxlo.s8','vmaxmi.s8','vmaxpl.s8','vmaxvs.s8','vmaxvc.s8','vmaxhi.s8','vmaxls.s8','vmaxge.s8','vmaxlt.s8','vmaxgt.s8','vmaxle.s8',
+ 'vmaxeq.s16','vmaxne.s16','vmaxcs.s16','vmaxhs.s16','vmaxcc.s16','vmaxlo.s16','vmaxmi.s16','vmaxpl.s16','vmaxvs.s16','vmaxvc.s16','vmaxhi.s16','vmaxls.s16','vmaxge.s16','vmaxlt.s16','vmaxgt.s16','vmaxle.s16',
+ 'vmaxeq.s32','vmaxne.s32','vmaxcs.s32','vmaxhs.s32','vmaxcc.s32','vmaxlo.s32','vmaxmi.s32','vmaxpl.s32','vmaxvs.s32','vmaxvc.s32','vmaxhi.s32','vmaxls.s32','vmaxge.s32','vmaxlt.s32','vmaxgt.s32','vmaxle.s32',
+
+ 'vmineq.s8','vminne.s8','vmincs.s8','vminhs.s8','vmincc.s8','vminlo.s8','vminmi.s8','vminpl.s8','vminvs.s8','vminvc.s8','vminhi.s8','vminls.s8','vminge.s8','vminlt.s8','vmingt.s8','vminle.s8',
+ 'vmineq.s16','vminne.s16','vmincs.s16','vminhs.s16','vmincc.s16','vminlo.s16','vminmi.s16','vminpl.s16','vminvs.s16','vminvc.s16','vminhi.s16','vminls.s16','vminge.s16','vminlt.s16','vmingt.s16','vminle.s16',
+ 'vmineq.s32','vminne.s32','vmincs.s32','vminhs.s32','vmincc.s32','vminlo.s32','vminmi.s32','vminpl.s32','vminvs.s32','vminvc.s32','vminhi.s32','vminls.s32','vminge.s32','vminlt.s32','vmingt.s32','vminle.s32',
+
+ 'vmlaleq.s8','vmlalne.s8','vmlalcs.s8','vmlalhs.s8','vmlalcc.s8','vmlallo.s8','vmlalmi.s8','vmlalpl.s8','vmlalvs.s8','vmlalvc.s8','vmlalhi.s8','vmlalls.s8','vmlalge.s8','vmlallt.s8','vmlalgt.s8','vmlalle.s8',
+ 'vmlaleq.s16','vmlalne.s16','vmlalcs.s16','vmlalhs.s16','vmlalcc.s16','vmlallo.s16','vmlalmi.s16','vmlalpl.s16','vmlalvs.s16','vmlalvc.s16','vmlalhi.s16','vmlalls.s16','vmlalge.s16','vmlallt.s16','vmlalgt.s16','vmlalle.s16',
+ 'vmlaleq.s32','vmlalne.s32','vmlalcs.s32','vmlalhs.s32','vmlalcc.s32','vmlallo.s32','vmlalmi.s32','vmlalpl.s32','vmlalvs.s32','vmlalvc.s32','vmlalhi.s32','vmlalls.s32','vmlalge.s32','vmlallt.s32','vmlalgt.s32','vmlalle.s32',
+
+ 'vmlsleq.s8','vmlslne.s8','vmlslcs.s8','vmlslhs.s8','vmlslcc.s8','vmlsllo.s8','vmlslmi.s8','vmlslpl.s8','vmlslvs.s8','vmlslvc.s8','vmlslhi.s8','vmlslls.s8','vmlslge.s8','vmlsllt.s8','vmlslgt.s8','vmlslle.s8',
+ 'vmlsleq.s16','vmlslne.s16','vmlslcs.s16','vmlslhs.s16','vmlslcc.s16','vmlsllo.s16','vmlslmi.s16','vmlslpl.s16','vmlslvs.s16','vmlslvc.s16','vmlslhi.s16','vmlslls.s16','vmlslge.s16','vmlsllt.s16','vmlslgt.s16','vmlslle.s16',
+ 'vmlsleq.s32','vmlslne.s32','vmlslcs.s32','vmlslhs.s32','vmlslcc.s32','vmlsllo.s32','vmlslmi.s32','vmlslpl.s32','vmlslvs.s32','vmlslvc.s32','vmlslhi.s32','vmlslls.s32','vmlslge.s32','vmlsllt.s32','vmlslgt.s32','vmlslle.s32',
+
+ 'vnegeq.s8','vnegne.s8','vnegcs.s8','vneghs.s8','vnegcc.s8','vneglo.s8','vnegmi.s8','vnegpl.s8','vnegvs.s8','vnegvc.s8','vneghi.s8','vnegls.s8','vnegge.s8','vneglt.s8','vneggt.s8','vnegle.s8',
+ 'vnegeq.s16','vnegne.s16','vnegcs.s16','vneghs.s16','vnegcc.s16','vneglo.s16','vnegmi.s16','vnegpl.s16','vnegvs.s16','vnegvc.s16','vneghi.s16','vnegls.s16','vnegge.s16','vneglt.s16','vneggt.s16','vnegle.s16',
+ 'vnegeq.s32','vnegne.s32','vnegcs.s32','vneghs.s32','vnegcc.s32','vneglo.s32','vnegmi.s32','vnegpl.s32','vnegvs.s32','vnegvc.s32','vneghi.s32','vnegls.s32','vnegge.s32','vneglt.s32','vneggt.s32','vnegle.s32',
+
+ 'vpadaleq.s8','vpadalne.s8','vpadalcs.s8','vpadalhs.s8','vpadalcc.s8','vpadallo.s8','vpadalmi.s8','vpadalpl.s8','vpadalvs.s8','vpadalvc.s8','vpadalhi.s8','vpadalls.s8','vpadalge.s8','vpadallt.s8','vpadalgt.s8','vpadalle.s8',
+ 'vpadaleq.s16','vpadalne.s16','vpadalcs.s16','vpadalhs.s16','vpadalcc.s16','vpadallo.s16','vpadalmi.s16','vpadalpl.s16','vpadalvs.s16','vpadalvc.s16','vpadalhi.s16','vpadalls.s16','vpadalge.s16','vpadallt.s16','vpadalgt.s16','vpadalle.s16',
+ 'vpadaleq.s32','vpadalne.s32','vpadalcs.s32','vpadalhs.s32','vpadalcc.s32','vpadallo.s32','vpadalmi.s32','vpadalpl.s32','vpadalvs.s32','vpadalvc.s32','vpadalhi.s32','vpadalls.s32','vpadalge.s32','vpadallt.s32','vpadalgt.s32','vpadalle.s32',
+
+ 'vmovleq.s8','vmovlne.s8','vmovlcs.s8','vmovlhs.s8','vmovlcc.s8','vmovllo.s8','vmovlmi.s8','vmovlpl.s8','vmovlvs.s8','vmovlvc.s8','vmovlhi.s8','vmovlls.s8','vmovlge.s8','vmovllt.s8','vmovlgt.s8','vmovlle.s8',
+ 'vmovleq.s16','vmovlne.s16','vmovlcs.s16','vmovlhs.s16','vmovlcc.s16','vmovllo.s16','vmovlmi.s16','vmovlpl.s16','vmovlvs.s16','vmovlvc.s16','vmovlhi.s16','vmovlls.s16','vmovlge.s16','vmovllt.s16','vmovlgt.s16','vmovlle.s16',
+ 'vmovleq.s32','vmovlne.s32','vmovlcs.s32','vmovlhs.s32','vmovlcc.s32','vmovllo.s32','vmovlmi.s32','vmovlpl.s32','vmovlvs.s32','vmovlvc.s32','vmovlhi.s32','vmovlls.s32','vmovlge.s32','vmovllt.s32','vmovlgt.s32','vmovlle.s32',
+
+ 'vmulleq.s8','vmullne.s8','vmullcs.s8','vmullhs.s8','vmullcc.s8','vmulllo.s8','vmullmi.s8','vmullpl.s8','vmullvs.s8','vmullvc.s8','vmullhi.s8','vmullls.s8','vmullge.s8','vmulllt.s8','vmullgt.s8','vmullle.s8',
+ 'vmulleq.s16','vmullne.s16','vmullcs.s16','vmullhs.s16','vmullcc.s16','vmulllo.s16','vmullmi.s16','vmullpl.s16','vmullvs.s16','vmullvc.s16','vmullhi.s16','vmullls.s16','vmullge.s16','vmulllt.s16','vmullgt.s16','vmullle.s16',
+ 'vmulleq.s32','vmullne.s32','vmullcs.s32','vmullhs.s32','vmullcc.s32','vmulllo.s32','vmullmi.s32','vmullpl.s32','vmullvs.s32','vmullvc.s32','vmullhi.s32','vmullls.s32','vmullge.s32','vmulllt.s32','vmullgt.s32','vmullle.s32',
+
+ 'vpaddleq.s8','vpaddlne.s8','vpaddlcs.s8','vpaddlhs.s8','vpaddlcc.s8','vpaddllo.s8','vpaddlmi.s8','vpaddlpl.s8','vpaddlvs.s8','vpaddlvc.s8','vpaddlhi.s8','vpaddlls.s8','vpaddlge.s8','vpaddllt.s8','vpaddlgt.s8','vpaddlle.s8',
+ 'vpaddleq.s16','vpaddlne.s16','vpaddlcs.s16','vpaddlhs.s16','vpaddlcc.s16','vpaddllo.s16','vpaddlmi.s16','vpaddlpl.s16','vpaddlvs.s16','vpaddlvc.s16','vpaddlhi.s16','vpaddlls.s16','vpaddlge.s16','vpaddllt.s16','vpaddlgt.s16','vpaddlle.s16',
+ 'vpaddleq.s32','vpaddlne.s32','vpaddlcs.s32','vpaddlhs.s32','vpaddlcc.s32','vpaddllo.s32','vpaddlmi.s32','vpaddlpl.s32','vpaddlvs.s32','vpaddlvc.s32','vpaddlhi.s32','vpaddlls.s32','vpaddlge.s32','vpaddllt.s32','vpaddlgt.s32','vpaddlle.s32',
+
+ 'vpmaxeq.s8','vpmaxne.s8','vpmaxcs.s8','vpmaxhs.s8','vpmaxcc.s8','vpmaxlo.s8','vpmaxmi.s8','vpmaxpl.s8','vpmaxvs.s8','vpmaxvc.s8','vpmaxhi.s8','vpmaxls.s8','vpmaxge.s8','vpmaxlt.s8','vpmaxgt.s8','vpmaxle.s8',
+ 'vpmaxeq.s16','vpmaxne.s16','vpmaxcs.s16','vpmaxhs.s16','vpmaxcc.s16','vpmaxlo.s16','vpmaxmi.s16','vpmaxpl.s16','vpmaxvs.s16','vpmaxvc.s16','vpmaxhi.s16','vpmaxls.s16','vpmaxge.s16','vpmaxlt.s16','vpmaxgt.s16','vpmaxle.s16',
+ 'vpmaxeq.s32','vpmaxne.s32','vpmaxcs.s32','vpmaxhs.s32','vpmaxcc.s32','vpmaxlo.s32','vpmaxmi.s32','vpmaxpl.s32','vpmaxvs.s32','vpmaxvc.s32','vpmaxhi.s32','vpmaxls.s32','vpmaxge.s32','vpmaxlt.s32','vpmaxgt.s32','vpmaxle.s32',
+
+ 'vpmineq.s8','vpminne.s8','vpmincs.s8','vpminhs.s8','vpmincc.s8','vpminlo.s8','vpminmi.s8','vpminpl.s8','vpminvs.s8','vpminvc.s8','vpminhi.s8','vpminls.s8','vpminge.s8','vpminlt.s8','vpmingt.s8','vpminle.s8',
+ 'vpmineq.s16','vpminne.s16','vpmincs.s16','vpminhs.s16','vpmincc.s16','vpminlo.s16','vpminmi.s16','vpminpl.s16','vpminvs.s16','vpminvc.s16','vpminhi.s16','vpminls.s16','vpminge.s16','vpminlt.s16','vpmingt.s16','vpminle.s16',
+ 'vpmineq.s32','vpminne.s32','vpmincs.s32','vpminhs.s32','vpmincc.s32','vpminlo.s32','vpminmi.s32','vpminpl.s32','vpminvs.s32','vpminvc.s32','vpminhi.s32','vpminls.s32','vpminge.s32','vpminlt.s32','vpmingt.s32','vpminle.s32',
+
+ 'vqabseq.s8','vqabsne.s8','vqabscs.s8','vqabshs.s8','vqabscc.s8','vqabslo.s8','vqabsmi.s8','vqabspl.s8','vqabsvs.s8','vqabsvc.s8','vqabshi.s8','vqabsls.s8','vqabsge.s8','vqabslt.s8','vqabsgt.s8','vqabsle.s8',
+ 'vqabseq.s16','vqabsne.s16','vqabscs.s16','vqabshs.s16','vqabscc.s16','vqabslo.s16','vqabsmi.s16','vqabspl.s16','vqabsvs.s16','vqabsvc.s16','vqabshi.s16','vqabsls.s16','vqabsge.s16','vqabslt.s16','vqabsgt.s16','vqabsle.s16',
+ 'vqabseq.s32','vqabsne.s32','vqabscs.s32','vqabshs.s32','vqabscc.s32','vqabslo.s32','vqabsmi.s32','vqabspl.s32','vqabsvs.s32','vqabsvc.s32','vqabshi.s32','vqabsls.s32','vqabsge.s32','vqabslt.s32','vqabsgt.s32','vqabsle.s32',
+
+ 'vqaddeq.s8','vqaddne.s8','vqaddcs.s8','vqaddhs.s8','vqaddcc.s8','vqaddlo.s8','vqaddmi.s8','vqaddpl.s8','vqaddvs.s8','vqaddvc.s8','vqaddhi.s8','vqaddls.s8','vqaddge.s8','vqaddlt.s8','vqaddgt.s8','vqaddle.s8',
+ 'vqaddeq.s16','vqaddne.s16','vqaddcs.s16','vqaddhs.s16','vqaddcc.s16','vqaddlo.s16','vqaddmi.s16','vqaddpl.s16','vqaddvs.s16','vqaddvc.s16','vqaddhi.s16','vqaddls.s16','vqaddge.s16','vqaddlt.s16','vqaddgt.s16','vqaddle.s16',
+ 'vqaddeq.s32','vqaddne.s32','vqaddcs.s32','vqaddhs.s32','vqaddcc.s32','vqaddlo.s32','vqaddmi.s32','vqaddpl.s32','vqaddvs.s32','vqaddvc.s32','vqaddhi.s32','vqaddls.s32','vqaddge.s32','vqaddlt.s32','vqaddgt.s32','vqaddle.s32',
+ 'vqaddeq.s64','vqaddne.s64','vqaddcs.s64','vqaddhs.s64','vqaddcc.s64','vqaddlo.s64','vqaddmi.s64','vqaddpl.s64','vqaddvs.s64','vqaddvc.s64','vqaddhi.s64','vqaddls.s64','vqaddge.s64','vqaddlt.s64','vqaddgt.s64','vqaddle.s64',
+
+ 'vqdmlaleq.s16','vqdmlalne.s16','vqdmlalcs.s16','vqdmlalhs.s16','vqdmlalcc.s16','vqdmlallo.s16','vqdmlalmi.s16','vqdmlalpl.s16','vqdmlalvs.s16','vqdmlalvc.s16','vqdmlalhi.s16','vqdmlalls.s16','vqdmlalge.s16','vqdmlallt.s16','vqdmlalgt.s16','vqdmlalle.s16',
+ 'vqdmlaleq.s32','vqdmlalne.s32','vqdmlalcs.s32','vqdmlalhs.s32','vqdmlalcc.s32','vqdmlallo.s32','vqdmlalmi.s32','vqdmlalpl.s32','vqdmlalvs.s32','vqdmlalvc.s32','vqdmlalhi.s32','vqdmlalls.s32','vqdmlalge.s32','vqdmlallt.s32','vqdmlalgt.s32','vqdmlalle.s32',
+
+ 'vqdmlsleq.s16','vqdmlslne.s16','vqdmlslcs.s16','vqdmlslhs.s16','vqdmlslcc.s16','vqdmlsllo.s16','vqdmlslmi.s16','vqdmlslpl.s16','vqdmlslvs.s16','vqdmlslvc.s16','vqdmlslhi.s16','vqdmlslls.s16','vqdmlslge.s16','vqdmlsllt.s16','vqdmlslgt.s16','vqdmlslle.s16',
+ 'vqdmlsleq.s32','vqdmlslne.s32','vqdmlslcs.s32','vqdmlslhs.s32','vqdmlslcc.s32','vqdmlsllo.s32','vqdmlslmi.s32','vqdmlslpl.s32','vqdmlslvs.s32','vqdmlslvc.s32','vqdmlslhi.s32','vqdmlslls.s32','vqdmlslge.s32','vqdmlsllt.s32','vqdmlslgt.s32','vqdmlslle.s32',
+
+ 'vqdmulheq.s16','vqdmulhne.s16','vqdmulhcs.s16','vqdmulhhs.s16','vqdmulhcc.s16','vqdmulhlo.s16','vqdmulhmi.s16','vqdmulhpl.s16','vqdmulhvs.s16','vqdmulhvc.s16','vqdmulhhi.s16','vqdmulhls.s16','vqdmulhge.s16','vqdmulhlt.s16','vqdmulhgt.s16','vqdmulhle.s16',
+ 'vqdmulheq.s32','vqdmulhne.s32','vqdmulhcs.s32','vqdmulhhs.s32','vqdmulhcc.s32','vqdmulhlo.s32','vqdmulhmi.s32','vqdmulhpl.s32','vqdmulhvs.s32','vqdmulhvc.s32','vqdmulhhi.s32','vqdmulhls.s32','vqdmulhge.s32','vqdmulhlt.s32','vqdmulhgt.s32','vqdmulhle.s32',
+
+ 'vqdmulleq.s16','vqdmullne.s16','vqdmullcs.s16','vqdmullhs.s16','vqdmullcc.s16','vqdmulllo.s16','vqdmullmi.s16','vqdmullpl.s16','vqdmullvs.s16','vqdmullvc.s16','vqdmullhi.s16','vqdmullls.s16','vqdmullge.s16','vqdmulllt.s16','vqdmullgt.s16','vqdmullle.s16',
+ 'vqdmulleq.s32','vqdmullne.s32','vqdmullcs.s32','vqdmullhs.s32','vqdmullcc.s32','vqdmulllo.s32','vqdmullmi.s32','vqdmullpl.s32','vqdmullvs.s32','vqdmullvc.s32','vqdmullhi.s32','vqdmullls.s32','vqdmullge.s32','vqdmulllt.s32','vqdmullgt.s32','vqdmullle.s32',
+
+ 'vqmovneq.s16','vqmovnne.s16','vqmovncs.s16','vqmovnhs.s16','vqmovncc.s16','vqmovnlo.s16','vqmovnmi.s16','vqmovnpl.s16','vqmovnvs.s16','vqmovnvc.s16','vqmovnhi.s16','vqmovnls.s16','vqmovnge.s16','vqmovnlt.s16','vqmovngt.s16','vqmovnle.s16',
+ 'vqmovneq.s32','vqmovnne.s32','vqmovncs.s32','vqmovnhs.s32','vqmovncc.s32','vqmovnlo.s32','vqmovnmi.s32','vqmovnpl.s32','vqmovnvs.s32','vqmovnvc.s32','vqmovnhi.s32','vqmovnls.s32','vqmovnge.s32','vqmovnlt.s32','vqmovngt.s32','vqmovnle.s32',
+ 'vqmovneq.s64','vqmovnne.s64','vqmovncs.s64','vqmovnhs.s64','vqmovncc.s64','vqmovnlo.s64','vqmovnmi.s64','vqmovnpl.s64','vqmovnvs.s64','vqmovnvc.s64','vqmovnhi.s64','vqmovnls.s64','vqmovnge.s64','vqmovnlt.s64','vqmovngt.s64','vqmovnle.s64',
+
+ 'vqmovuneq.s16','vqmovunne.s16','vqmovuncs.s16','vqmovunhs.s16','vqmovuncc.s16','vqmovunlo.s16','vqmovunmi.s16','vqmovunpl.s16','vqmovunvs.s16','vqmovunvc.s16','vqmovunhi.s16','vqmovunls.s16','vqmovunge.s16','vqmovunlt.s16','vqmovungt.s16','vqmovunle.s16',
+ 'vqmovuneq.s32','vqmovunne.s32','vqmovuncs.s32','vqmovunhs.s32','vqmovuncc.s32','vqmovunlo.s32','vqmovunmi.s32','vqmovunpl.s32','vqmovunvs.s32','vqmovunvc.s32','vqmovunhi.s32','vqmovunls.s32','vqmovunge.s32','vqmovunlt.s32','vqmovungt.s32','vqmovunle.s32',
+ 'vqmovuneq.s64','vqmovunne.s64','vqmovuncs.s64','vqmovunhs.s64','vqmovuncc.s64','vqmovunlo.s64','vqmovunmi.s64','vqmovunpl.s64','vqmovunvs.s64','vqmovunvc.s64','vqmovunhi.s64','vqmovunls.s64','vqmovunge.s64','vqmovunlt.s64','vqmovungt.s64','vqmovunle.s64',
+
+ 'vqnegeq.s8','vqnegne.s8','vqnegcs.s8','vqneghs.s8','vqnegcc.s8','vqneglo.s8','vqnegmi.s8','vqnegpl.s8','vqnegvs.s8','vqnegvc.s8','vqneghi.s8','vqnegls.s8','vqnegge.s8','vqneglt.s8','vqneggt.s8','vqnegle.s8',
+ 'vqnegeq.s16','vqnegne.s16','vqnegcs.s16','vqneghs.s16','vqnegcc.s16','vqneglo.s16','vqnegmi.s16','vqnegpl.s16','vqnegvs.s16','vqnegvc.s16','vqneghi.s16','vqnegls.s16','vqnegge.s16','vqneglt.s16','vqneggt.s16','vqnegle.s16',
+ 'vqnegeq.s32','vqnegne.s32','vqnegcs.s32','vqneghs.s32','vqnegcc.s32','vqneglo.s32','vqnegmi.s32','vqnegpl.s32','vqnegvs.s32','vqnegvc.s32','vqneghi.s32','vqnegls.s32','vqnegge.s32','vqneglt.s32','vqneggt.s32','vqnegle.s32',
+
+ 'vqrdmulheq.s16','vqrdmulhne.s16','vqrdmulhcs.s16','vqrdmulhhs.s16','vqrdmulhcc.s16','vqrdmulhlo.s16','vqrdmulhmi.s16','vqrdmulhpl.s16','vqrdmulhvs.s16','vqrdmulhvc.s16','vqrdmulhhi.s16','vqrdmulhls.s16','vqrdmulhge.s16','vqrdmulhlt.s16','vqrdmulhgt.s16','vqrdmulhle.s16',
+ 'vqrdmulheq.s32','vqrdmulhne.s32','vqrdmulhcs.s32','vqrdmulhhs.s32','vqrdmulhcc.s32','vqrdmulhlo.s32','vqrdmulhmi.s32','vqrdmulhpl.s32','vqrdmulhvs.s32','vqrdmulhvc.s32','vqrdmulhhi.s32','vqrdmulhls.s32','vqrdmulhge.s32','vqrdmulhlt.s32','vqrdmulhgt.s32','vqrdmulhle.s32',
+
+ 'vqrshleq.s8','vqrshlne.s8','vqrshlcs.s8','vqrshlhs.s8','vqrshlcc.s8','vqrshllo.s8','vqrshlmi.s8','vqrshlpl.s8','vqrshlvs.s8','vqrshlvc.s8','vqrshlhi.s8','vqrshlls.s8','vqrshlge.s8','vqrshllt.s8','vqrshlgt.s8','vqrshlle.s8',
+ 'vqrshleq.s16','vqrshlne.s16','vqrshlcs.s16','vqrshlhs.s16','vqrshlcc.s16','vqrshllo.s16','vqrshlmi.s16','vqrshlpl.s16','vqrshlvs.s16','vqrshlvc.s16','vqrshlhi.s16','vqrshlls.s16','vqrshlge.s16','vqrshllt.s16','vqrshlgt.s16','vqrshlle.s16',
+ 'vqrshleq.s32','vqrshlne.s32','vqrshlcs.s32','vqrshlhs.s32','vqrshlcc.s32','vqrshllo.s32','vqrshlmi.s32','vqrshlpl.s32','vqrshlvs.s32','vqrshlvc.s32','vqrshlhi.s32','vqrshlls.s32','vqrshlge.s32','vqrshllt.s32','vqrshlgt.s32','vqrshlle.s32',
+ 'vqrshleq.s64','vqrshlne.s64','vqrshlcs.s64','vqrshlhs.s64','vqrshlcc.s64','vqrshllo.s64','vqrshlmi.s64','vqrshlpl.s64','vqrshlvs.s64','vqrshlvc.s64','vqrshlhi.s64','vqrshlls.s64','vqrshlge.s64','vqrshllt.s64','vqrshlgt.s64','vqrshlle.s64',
+
+ 'vqrshrneq.s16','vqrshrnne.s16','vqrshrncs.s16','vqrshrnhs.s16','vqrshrncc.s16','vqrshrnlo.s16','vqrshrnmi.s16','vqrshrnpl.s16','vqrshrnvs.s16','vqrshrnvc.s16','vqrshrnhi.s16','vqrshrnls.s16','vqrshrnge.s16','vqrshrnlt.s16','vqrshrngt.s16','vqrshrnle.s16',
+ 'vqrshrneq.s32','vqrshrnne.s32','vqrshrncs.s32','vqrshrnhs.s32','vqrshrncc.s32','vqrshrnlo.s32','vqrshrnmi.s32','vqrshrnpl.s32','vqrshrnvs.s32','vqrshrnvc.s32','vqrshrnhi.s32','vqrshrnls.s32','vqrshrnge.s32','vqrshrnlt.s32','vqrshrngt.s32','vqrshrnle.s32',
+ 'vqrshrneq.s64','vqrshrnne.s64','vqrshrncs.s64','vqrshrnhs.s64','vqrshrncc.s64','vqrshrnlo.s64','vqrshrnmi.s64','vqrshrnpl.s64','vqrshrnvs.s64','vqrshrnvc.s64','vqrshrnhi.s64','vqrshrnls.s64','vqrshrnge.s64','vqrshrnlt.s64','vqrshrngt.s64','vqrshrnle.s64',
+
+ 'vqrshruneq.s16','vqrshrunne.s16','vqrshruncs.s16','vqrshrunhs.s16','vqrshruncc.s16','vqrshrunlo.s16','vqrshrunmi.s16','vqrshrunpl.s16','vqrshrunvs.s16','vqrshrunvc.s16','vqrshrunhi.s16','vqrshrunls.s16','vqrshrunge.s16','vqrshrunlt.s16','vqrshrungt.s16','vqrshrunle.s16',
+ 'vqrshruneq.s32','vqrshrunne.s32','vqrshruncs.s32','vqrshrunhs.s32','vqrshruncc.s32','vqrshrunlo.s32','vqrshrunmi.s32','vqrshrunpl.s32','vqrshrunvs.s32','vqrshrunvc.s32','vqrshrunhi.s32','vqrshrunls.s32','vqrshrunge.s32','vqrshrunlt.s32','vqrshrungt.s32','vqrshrunle.s32',
+ 'vqrshruneq.s64','vqrshrunne.s64','vqrshruncs.s64','vqrshrunhs.s64','vqrshruncc.s64','vqrshrunlo.s64','vqrshrunmi.s64','vqrshrunpl.s64','vqrshrunvs.s64','vqrshrunvc.s64','vqrshrunhi.s64','vqrshrunls.s64','vqrshrunge.s64','vqrshrunlt.s64','vqrshrungt.s64','vqrshrunle.s64',
+
+ 'vqshleq.s8','vqshlne.s8','vqshlcs.s8','vqshlhs.s8','vqshlcc.s8','vqshllo.s8','vqshlmi.s8','vqshlpl.s8','vqshlvs.s8','vqshlvc.s8','vqshlhi.s8','vqshlls.s8','vqshlge.s8','vqshllt.s8','vqshlgt.s8','vqshlle.s8',
+ 'vqshleq.s16','vqshlne.s16','vqshlcs.s16','vqshlhs.s16','vqshlcc.s16','vqshllo.s16','vqshlmi.s16','vqshlpl.s16','vqshlvs.s16','vqshlvc.s16','vqshlhi.s16','vqshlls.s16','vqshlge.s16','vqshllt.s16','vqshlgt.s16','vqshlle.s16',
+ 'vqshleq.s32','vqshlne.s32','vqshlcs.s32','vqshlhs.s32','vqshlcc.s32','vqshllo.s32','vqshlmi.s32','vqshlpl.s32','vqshlvs.s32','vqshlvc.s32','vqshlhi.s32','vqshlls.s32','vqshlge.s32','vqshllt.s32','vqshlgt.s32','vqshlle.s32',
+ 'vqshleq.s64','vqshlne.s64','vqshlcs.s64','vqshlhs.s64','vqshlcc.s64','vqshllo.s64','vqshlmi.s64','vqshlpl.s64','vqshlvs.s64','vqshlvc.s64','vqshlhi.s64','vqshlls.s64','vqshlge.s64','vqshllt.s64','vqshlgt.s64','vqshlle.s64',
+
+ 'vqshlueq.s8','vqshlune.s8','vqshlucs.s8','vqshluhs.s8','vqshlucc.s8','vqshlulo.s8','vqshlumi.s8','vqshlupl.s8','vqshluvs.s8','vqshluvc.s8','vqshluhi.s8','vqshluls.s8','vqshluge.s8','vqshlult.s8','vqshlugt.s8','vqshlule.s8',
+ 'vqshlueq.s16','vqshlune.s16','vqshlucs.s16','vqshluhs.s16','vqshlucc.s16','vqshlulo.s16','vqshlumi.s16','vqshlupl.s16','vqshluvs.s16','vqshluvc.s16','vqshluhi.s16','vqshluls.s16','vqshluge.s16','vqshlult.s16','vqshlugt.s16','vqshlule.s16',
+ 'vqshlueq.s32','vqshlune.s32','vqshlucs.s32','vqshluhs.s32','vqshlucc.s32','vqshlulo.s32','vqshlumi.s32','vqshlupl.s32','vqshluvs.s32','vqshluvc.s32','vqshluhi.s32','vqshluls.s32','vqshluge.s32','vqshlult.s32','vqshlugt.s32','vqshlule.s32',
+ 'vqshlueq.s64','vqshlune.s64','vqshlucs.s64','vqshluhs.s64','vqshlucc.s64','vqshlulo.s64','vqshlumi.s64','vqshlupl.s64','vqshluvs.s64','vqshluvc.s64','vqshluhi.s64','vqshluls.s64','vqshluge.s64','vqshlult.s64','vqshlugt.s64','vqshlule.s64',
+
+ 'vqshrneq.s16','vqshrnne.s16','vqshrncs.s16','vqshrnhs.s16','vqshrncc.s16','vqshrnlo.s16','vqshrnmi.s16','vqshrnpl.s16','vqshrnvs.s16','vqshrnvc.s16','vqshrnhi.s16','vqshrnls.s16','vqshrnge.s16','vqshrnlt.s16','vqshrngt.s16','vqshrnle.s16',
+ 'vqshrneq.s32','vqshrnne.s32','vqshrncs.s32','vqshrnhs.s32','vqshrncc.s32','vqshrnlo.s32','vqshrnmi.s32','vqshrnpl.s32','vqshrnvs.s32','vqshrnvc.s32','vqshrnhi.s32','vqshrnls.s32','vqshrnge.s32','vqshrnlt.s32','vqshrngt.s32','vqshrnle.s32',
+ 'vqshrneq.s64','vqshrnne.s64','vqshrncs.s64','vqshrnhs.s64','vqshrncc.s64','vqshrnlo.s64','vqshrnmi.s64','vqshrnpl.s64','vqshrnvs.s64','vqshrnvc.s64','vqshrnhi.s64','vqshrnls.s64','vqshrnge.s64','vqshrnlt.s64','vqshrngt.s64','vqshrnle.s64',
+
+ 'vqshruneq.s16','vqshrunne.s16','vqshruncs.s16','vqshrunhs.s16','vqshruncc.s16','vqshrunlo.s16','vqshrunmi.s16','vqshrunpl.s16','vqshrunvs.s16','vqshrunvc.s16','vqshrunhi.s16','vqshrunls.s16','vqshrunge.s16','vqshrunlt.s16','vqshrungt.s16','vqshrunle.s16',
+ 'vqshruneq.s32','vqshrunne.s32','vqshruncs.s32','vqshrunhs.s32','vqshruncc.s32','vqshrunlo.s32','vqshrunmi.s32','vqshrunpl.s32','vqshrunvs.s32','vqshrunvc.s32','vqshrunhi.s32','vqshrunls.s32','vqshrunge.s32','vqshrunlt.s32','vqshrungt.s32','vqshrunle.s32',
+ 'vqshruneq.s64','vqshrunne.s64','vqshruncs.s64','vqshrunhs.s64','vqshruncc.s64','vqshrunlo.s64','vqshrunmi.s64','vqshrunpl.s64','vqshrunvs.s64','vqshrunvc.s64','vqshrunhi.s64','vqshrunls.s64','vqshrunge.s64','vqshrunlt.s64','vqshrungt.s64','vqshrunle.s64',
+
+ 'vqsubeq.s8','vqsubne.s8','vqsubcs.s8','vqsubhs.s8','vqsubcc.s8','vqsublo.s8','vqsubmi.s8','vqsubpl.s8','vqsubvs.s8','vqsubvc.s8','vqsubhi.s8','vqsubls.s8','vqsubge.s8','vqsublt.s8','vqsubgt.s8','vqsuble.s8',
+ 'vqsubeq.s16','vqsubne.s16','vqsubcs.s16','vqsubhs.s16','vqsubcc.s16','vqsublo.s16','vqsubmi.s16','vqsubpl.s16','vqsubvs.s16','vqsubvc.s16','vqsubhi.s16','vqsubls.s16','vqsubge.s16','vqsublt.s16','vqsubgt.s16','vqsuble.s16',
+ 'vqsubeq.s32','vqsubne.s32','vqsubcs.s32','vqsubhs.s32','vqsubcc.s32','vqsublo.s32','vqsubmi.s32','vqsubpl.s32','vqsubvs.s32','vqsubvc.s32','vqsubhi.s32','vqsubls.s32','vqsubge.s32','vqsublt.s32','vqsubgt.s32','vqsuble.s32',
+ 'vqsubeq.s64','vqsubne.s64','vqsubcs.s64','vqsubhs.s64','vqsubcc.s64','vqsublo.s64','vqsubmi.s64','vqsubpl.s64','vqsubvs.s64','vqsubvc.s64','vqsubhi.s64','vqsubls.s64','vqsubge.s64','vqsublt.s64','vqsubgt.s64','vqsuble.s64',
+
+ 'vrhaddeq.s8','vrhaddne.s8','vrhaddcs.s8','vrhaddhs.s8','vrhaddcc.s8','vrhaddlo.s8','vrhaddmi.s8','vrhaddpl.s8','vrhaddvs.s8','vrhaddvc.s8','vrhaddhi.s8','vrhaddls.s8','vrhaddge.s8','vrhaddlt.s8','vrhaddgt.s8','vrhaddle.s8',
+ 'vrhaddeq.s16','vrhaddne.s16','vrhaddcs.s16','vrhaddhs.s16','vrhaddcc.s16','vrhaddlo.s16','vrhaddmi.s16','vrhaddpl.s16','vrhaddvs.s16','vrhaddvc.s16','vrhaddhi.s16','vrhaddls.s16','vrhaddge.s16','vrhaddlt.s16','vrhaddgt.s16','vrhaddle.s16',
+ 'vrhaddeq.s32','vrhaddne.s32','vrhaddcs.s32','vrhaddhs.s32','vrhaddcc.s32','vrhaddlo.s32','vrhaddmi.s32','vrhaddpl.s32','vrhaddvs.s32','vrhaddvc.s32','vrhaddhi.s32','vrhaddls.s32','vrhaddge.s32','vrhaddlt.s32','vrhaddgt.s32','vrhaddle.s32',
+
+ 'vrshleq.s8','vrshlne.s8','vrshlcs.s8','vrshlhs.s8','vrshlcc.s8','vrshllo.s8','vrshlmi.s8','vrshlpl.s8','vrshlvs.s8','vrshlvc.s8','vrshlhi.s8','vrshlls.s8','vrshlge.s8','vrshllt.s8','vrshlgt.s8','vrshlle.s8',
+ 'vrshleq.s16','vrshlne.s16','vrshlcs.s16','vrshlhs.s16','vrshlcc.s16','vrshllo.s16','vrshlmi.s16','vrshlpl.s16','vrshlvs.s16','vrshlvc.s16','vrshlhi.s16','vrshlls.s16','vrshlge.s16','vrshllt.s16','vrshlgt.s16','vrshlle.s16',
+ 'vrshleq.s32','vrshlne.s32','vrshlcs.s32','vrshlhs.s32','vrshlcc.s32','vrshllo.s32','vrshlmi.s32','vrshlpl.s32','vrshlvs.s32','vrshlvc.s32','vrshlhi.s32','vrshlls.s32','vrshlge.s32','vrshllt.s32','vrshlgt.s32','vrshlle.s32',
+ 'vrshleq.s64','vrshlne.s64','vrshlcs.s64','vrshlhs.s64','vrshlcc.s64','vrshllo.s64','vrshlmi.s64','vrshlpl.s64','vrshlvs.s64','vrshlvc.s64','vrshlhi.s64','vrshlls.s64','vrshlge.s64','vrshllt.s64','vrshlgt.s64','vrshlle.s64',
+
+ 'vrshreq.s8','vrshrne.s8','vrshrcs.s8','vrshrhs.s8','vrshrcc.s8','vrshrlo.s8','vrshrmi.s8','vrshrpl.s8','vrshrvs.s8','vrshrvc.s8','vrshrhi.s8','vrshrls.s8','vrshrge.s8','vrshrlt.s8','vrshrgt.s8','vrshrle.s8',
+ 'vrshreq.s16','vrshrne.s16','vrshrcs.s16','vrshrhs.s16','vrshrcc.s16','vrshrlo.s16','vrshrmi.s16','vrshrpl.s16','vrshrvs.s16','vrshrvc.s16','vrshrhi.s16','vrshrls.s16','vrshrge.s16','vrshrlt.s16','vrshrgt.s16','vrshrle.s16',
+ 'vrshreq.s32','vrshrne.s32','vrshrcs.s32','vrshrhs.s32','vrshrcc.s32','vrshrlo.s32','vrshrmi.s32','vrshrpl.s32','vrshrvs.s32','vrshrvc.s32','vrshrhi.s32','vrshrls.s32','vrshrge.s32','vrshrlt.s32','vrshrgt.s32','vrshrle.s32',
+ 'vrshreq.s64','vrshrne.s64','vrshrcs.s64','vrshrhs.s64','vrshrcc.s64','vrshrlo.s64','vrshrmi.s64','vrshrpl.s64','vrshrvs.s64','vrshrvc.s64','vrshrhi.s64','vrshrls.s64','vrshrge.s64','vrshrlt.s64','vrshrgt.s64','vrshrle.s64',
+
+ 'vrsraeq.s8','vrsrane.s8','vrsracs.s8','vrsrahs.s8','vrsracc.s8','vrsralo.s8','vrsrami.s8','vrsrapl.s8','vrsravs.s8','vrsravc.s8','vrsrahi.s8','vrsrals.s8','vrsrage.s8','vrsralt.s8','vrsragt.s8','vrsrale.s8',
+ 'vrsraeq.s16','vrsrane.s16','vrsracs.s16','vrsrahs.s16','vrsracc.s16','vrsralo.s16','vrsrami.s16','vrsrapl.s16','vrsravs.s16','vrsravc.s16','vrsrahi.s16','vrsrals.s16','vrsrage.s16','vrsralt.s16','vrsragt.s16','vrsrale.s16',
+ 'vrsraeq.s32','vrsrane.s32','vrsracs.s32','vrsrahs.s32','vrsracc.s32','vrsralo.s32','vrsrami.s32','vrsrapl.s32','vrsravs.s32','vrsravc.s32','vrsrahi.s32','vrsrals.s32','vrsrage.s32','vrsralt.s32','vrsragt.s32','vrsrale.s32',
+ 'vrsraeq.s64','vrsrane.s64','vrsracs.s64','vrsrahs.s64','vrsracc.s64','vrsralo.s64','vrsrami.s64','vrsrapl.s64','vrsravs.s64','vrsravc.s64','vrsrahi.s64','vrsrals.s64','vrsrage.s64','vrsralt.s64','vrsragt.s64','vrsrale.s64',
+
+ 'vshleq.s8','vshlne.s8','vshlcs.s8','vshlhs.s8','vshlcc.s8','vshllo.s8','vshlmi.s8','vshlpl.s8','vshlvs.s8','vshlvc.s8','vshlhi.s8','vshlls.s8','vshlge.s8','vshllt.s8','vshlgt.s8','vshlle.s8',
+ 'vshleq.s16','vshlne.s16','vshlcs.s16','vshlhs.s16','vshlcc.s16','vshllo.s16','vshlmi.s16','vshlpl.s16','vshlvs.s16','vshlvc.s16','vshlhi.s16','vshlls.s16','vshlge.s16','vshllt.s16','vshlgt.s16','vshlle.s16',
+ 'vshleq.s32','vshlne.s32','vshlcs.s32','vshlhs.s32','vshlcc.s32','vshllo.s32','vshlmi.s32','vshlpl.s32','vshlvs.s32','vshlvc.s32','vshlhi.s32','vshlls.s32','vshlge.s32','vshllt.s32','vshlgt.s32','vshlle.s32',
+ 'vshleq.s64','vshlne.s64','vshlcs.s64','vshlhs.s64','vshlcc.s64','vshllo.s64','vshlmi.s64','vshlpl.s64','vshlvs.s64','vshlvc.s64','vshlhi.s64','vshlls.s64','vshlge.s64','vshllt.s64','vshlgt.s64','vshlle.s64',
+
+ 'vshlleq.s8','vshllne.s8','vshllcs.s8','vshllhs.s8','vshllcc.s8','vshlllo.s8','vshllmi.s8','vshllpl.s8','vshllvs.s8','vshllvc.s8','vshllhi.s8','vshllls.s8','vshllge.s8','vshlllt.s8','vshllgt.s8','vshllle.s8',
+ 'vshlleq.s16','vshllne.s16','vshllcs.s16','vshllhs.s16','vshllcc.s16','vshlllo.s16','vshllmi.s16','vshllpl.s16','vshllvs.s16','vshllvc.s16','vshllhi.s16','vshllls.s16','vshllge.s16','vshlllt.s16','vshllgt.s16','vshllle.s16',
+ 'vshlleq.s32','vshllne.s32','vshllcs.s32','vshllhs.s32','vshllcc.s32','vshlllo.s32','vshllmi.s32','vshllpl.s32','vshllvs.s32','vshllvc.s32','vshllhi.s32','vshllls.s32','vshllge.s32','vshlllt.s32','vshllgt.s32','vshllle.s32',
+
+ 'vshreq.s8','vshrne.s8','vshrcs.s8','vshrhs.s8','vshrcc.s8','vshrlo.s8','vshrmi.s8','vshrpl.s8','vshrvs.s8','vshrvc.s8','vshrhi.s8','vshrls.s8','vshrge.s8','vshrlt.s8','vshrgt.s8','vshrle.s8',
+ 'vshreq.s16','vshrne.s16','vshrcs.s16','vshrhs.s16','vshrcc.s16','vshrlo.s16','vshrmi.s16','vshrpl.s16','vshrvs.s16','vshrvc.s16','vshrhi.s16','vshrls.s16','vshrge.s16','vshrlt.s16','vshrgt.s16','vshrle.s16',
+ 'vshreq.s32','vshrne.s32','vshrcs.s32','vshrhs.s32','vshrcc.s32','vshrlo.s32','vshrmi.s32','vshrpl.s32','vshrvs.s32','vshrvc.s32','vshrhi.s32','vshrls.s32','vshrge.s32','vshrlt.s32','vshrgt.s32','vshrle.s32',
+ 'vshreq.s64','vshrne.s64','vshrcs.s64','vshrhs.s64','vshrcc.s64','vshrlo.s64','vshrmi.s64','vshrpl.s64','vshrvs.s64','vshrvc.s64','vshrhi.s64','vshrls.s64','vshrge.s64','vshrlt.s64','vshrgt.s64','vshrle.s64',
+
+ 'vsraeq.s8','vsrane.s8','vsracs.s8','vsrahs.s8','vsracc.s8','vsralo.s8','vsrami.s8','vsrapl.s8','vsravs.s8','vsravc.s8','vsrahi.s8','vsrals.s8','vsrage.s8','vsralt.s8','vsragt.s8','vsrale.s8',
+ 'vsraeq.s16','vsrane.s16','vsracs.s16','vsrahs.s16','vsracc.s16','vsralo.s16','vsrami.s16','vsrapl.s16','vsravs.s16','vsravc.s16','vsrahi.s16','vsrals.s16','vsrage.s16','vsralt.s16','vsragt.s16','vsrale.s16',
+ 'vsraeq.s32','vsrane.s32','vsracs.s32','vsrahs.s32','vsracc.s32','vsralo.s32','vsrami.s32','vsrapl.s32','vsravs.s32','vsravc.s32','vsrahi.s32','vsrals.s32','vsrage.s32','vsralt.s32','vsragt.s32','vsrale.s32',
+ 'vsraeq.s64','vsrane.s64','vsracs.s64','vsrahs.s64','vsracc.s64','vsralo.s64','vsrami.s64','vsrapl.s64','vsravs.s64','vsravc.s64','vsrahi.s64','vsrals.s64','vsrage.s64','vsralt.s64','vsragt.s64','vsrale.s64',
+
+ 'vsubleq.s8','vsublne.s8','vsublcs.s8','vsublhs.s8','vsublcc.s8','vsubllo.s8','vsublmi.s8','vsublpl.s8','vsublvs.s8','vsublvc.s8','vsublhi.s8','vsublls.s8','vsublge.s8','vsubllt.s8','vsublgt.s8','vsublle.s8',
+ 'vsubleq.s16','vsublne.s16','vsublcs.s16','vsublhs.s16','vsublcc.s16','vsubllo.s16','vsublmi.s16','vsublpl.s16','vsublvs.s16','vsublvc.s16','vsublhi.s16','vsublls.s16','vsublge.s16','vsubllt.s16','vsublgt.s16','vsublle.s16',
+ 'vsubleq.s32','vsublne.s32','vsublcs.s32','vsublhs.s32','vsublcc.s32','vsubllo.s32','vsublmi.s32','vsublpl.s32','vsublvs.s32','vsublvc.s32','vsublhi.s32','vsublls.s32','vsublge.s32','vsubllt.s32','vsublgt.s32','vsublle.s32',
+
+ 'vsubheq.s8','vsubhne.s8','vsubhcs.s8','vsubhhs.s8','vsubhcc.s8','vsubhlo.s8','vsubhmi.s8','vsubhpl.s8','vsubhvs.s8','vsubhvc.s8','vsubhhi.s8','vsubhls.s8','vsubhge.s8','vsubhlt.s8','vsubhgt.s8','vsubhle.s8',
+ 'vsubheq.s16','vsubhne.s16','vsubhcs.s16','vsubhhs.s16','vsubhcc.s16','vsubhlo.s16','vsubhmi.s16','vsubhpl.s16','vsubhvs.s16','vsubhvc.s16','vsubhhi.s16','vsubhls.s16','vsubhge.s16','vsubhlt.s16','vsubhgt.s16','vsubhle.s16',
+ 'vsubheq.s32','vsubhne.s32','vsubhcs.s32','vsubhhs.s32','vsubhcc.s32','vsubhlo.s32','vsubhmi.s32','vsubhpl.s32','vsubhvs.s32','vsubhvc.s32','vsubhhi.s32','vsubhls.s32','vsubhge.s32','vsubhlt.s32','vsubhgt.s32','vsubhle.s32'
+ ),
+ /* Conditional NEON SIMD Unsigned Integer Instructions */
+ 33 => array(
+ 'vabaeq.u8','vabane.u8','vabacs.u8','vabahs.u8','vabacc.u8','vabalo.u8','vabami.u8','vabapl.u8','vabavs.u8','vabavc.u8','vabahi.u8','vabals.u8','vabage.u8','vabalt.u8','vabagt.u8','vabale.u8',
+ 'vabaeq.u16','vabane.u16','vabacs.u16','vabahs.u16','vabacc.u16','vabalo.u16','vabami.u16','vabapl.u16','vabavs.u16','vabavc.u16','vabahi.u16','vabals.u16','vabage.u16','vabalt.u16','vabagt.u16','vabale.u16',
+ 'vabaeq.u32','vabane.u32','vabacs.u32','vabahs.u32','vabacc.u32','vabalo.u32','vabami.u32','vabapl.u32','vabavs.u32','vabavc.u32','vabahi.u32','vabals.u32','vabage.u32','vabalt.u32','vabagt.u32','vabale.u32',
+
+ 'vabaleq.u8','vabalne.u8','vabalcs.u8','vabalhs.u8','vabalcc.u8','vaballo.u8','vabalmi.u8','vabalpl.u8','vabalvs.u8','vabalvc.u8','vabalhi.u8','vaballs.u8','vabalge.u8','vaballt.u8','vabalgt.u8','vaballe.u8',
+ 'vabaleq.u16','vabalne.u16','vabalcs.u16','vabalhs.u16','vabalcc.u16','vaballo.u16','vabalmi.u16','vabalpl.u16','vabalvs.u16','vabalvc.u16','vabalhi.u16','vaballs.u16','vabalge.u16','vaballt.u16','vabalgt.u16','vaballe.u16',
+ 'vabaleq.u32','vabalne.u32','vabalcs.u32','vabalhs.u32','vabalcc.u32','vaballo.u32','vabalmi.u32','vabalpl.u32','vabalvs.u32','vabalvc.u32','vabalhi.u32','vaballs.u32','vabalge.u32','vaballt.u32','vabalgt.u32','vaballe.u32',
+
+ 'vabdeq.u8','vabdne.u8','vabdcs.u8','vabdhs.u8','vabdcc.u8','vabdlo.u8','vabdmi.u8','vabdpl.u8','vabdvs.u8','vabdvc.u8','vabdhi.u8','vabdls.u8','vabdge.u8','vabdlt.u8','vabdgt.u8','vabdle.u8',
+ 'vabdeq.u16','vabdne.u16','vabdcs.u16','vabdhs.u16','vabdcc.u16','vabdlo.u16','vabdmi.u16','vabdpl.u16','vabdvs.u16','vabdvc.u16','vabdhi.u16','vabdls.u16','vabdge.u16','vabdlt.u16','vabdgt.u16','vabdle.u16',
+ 'vabdeq.u32','vabdne.u32','vabdcs.u32','vabdhs.u32','vabdcc.u32','vabdlo.u32','vabdmi.u32','vabdpl.u32','vabdvs.u32','vabdvc.u32','vabdhi.u32','vabdls.u32','vabdge.u32','vabdlt.u32','vabdgt.u32','vabdle.u32',
+
+ 'vaddleq.u8','vaddlne.u8','vaddlcs.u8','vaddlhs.u8','vaddlcc.u8','vaddllo.u8','vaddlmi.u8','vaddlpl.u8','vaddlvs.u8','vaddlvc.u8','vaddlhi.u8','vaddlls.u8','vaddlge.u8','vaddllt.u8','vaddlgt.u8','vaddlle.u8',
+ 'vaddleq.u16','vaddlne.u16','vaddlcs.u16','vaddlhs.u16','vaddlcc.u16','vaddllo.u16','vaddlmi.u16','vaddlpl.u16','vaddlvs.u16','vaddlvc.u16','vaddlhi.u16','vaddlls.u16','vaddlge.u16','vaddllt.u16','vaddlgt.u16','vaddlle.u16',
+ 'vaddleq.u32','vaddlne.u32','vaddlcs.u32','vaddlhs.u32','vaddlcc.u32','vaddllo.u32','vaddlmi.u32','vaddlpl.u32','vaddlvs.u32','vaddlvc.u32','vaddlhi.u32','vaddlls.u32','vaddlge.u32','vaddllt.u32','vaddlgt.u32','vaddlle.u32',
+
+ 'vsubleq.u8','vsublne.u8','vsublcs.u8','vsublhs.u8','vsublcc.u8','vsubllo.u8','vsublmi.u8','vsublpl.u8','vsublvs.u8','vsublvc.u8','vsublhi.u8','vsublls.u8','vsublge.u8','vsubllt.u8','vsublgt.u8','vsublle.u8',
+ 'vsubleq.u16','vsublne.u16','vsublcs.u16','vsublhs.u16','vsublcc.u16','vsubllo.u16','vsublmi.u16','vsublpl.u16','vsublvs.u16','vsublvc.u16','vsublhi.u16','vsublls.u16','vsublge.u16','vsubllt.u16','vsublgt.u16','vsublle.u16',
+ 'vsubleq.u32','vsublne.u32','vsublcs.u32','vsublhs.u32','vsublcc.u32','vsubllo.u32','vsublmi.u32','vsublpl.u32','vsublvs.u32','vsublvc.u32','vsublhi.u32','vsublls.u32','vsublge.u32','vsubllt.u32','vsublgt.u32','vsublle.u32',
+
+ 'vaddweq.u8','vaddwne.u8','vaddwcs.u8','vaddwhs.u8','vaddwcc.u8','vaddwlo.u8','vaddwmi.u8','vaddwpl.u8','vaddwvs.u8','vaddwvc.u8','vaddwhi.u8','vaddwls.u8','vaddwge.u8','vaddwlt.u8','vaddwgt.u8','vaddwle.u8',
+ 'vaddweq.u16','vaddwne.u16','vaddwcs.u16','vaddwhs.u16','vaddwcc.u16','vaddwlo.u16','vaddwmi.u16','vaddwpl.u16','vaddwvs.u16','vaddwvc.u16','vaddwhi.u16','vaddwls.u16','vaddwge.u16','vaddwlt.u16','vaddwgt.u16','vaddwle.u16',
+ 'vaddweq.u32','vaddwne.u32','vaddwcs.u32','vaddwhs.u32','vaddwcc.u32','vaddwlo.u32','vaddwmi.u32','vaddwpl.u32','vaddwvs.u32','vaddwvc.u32','vaddwhi.u32','vaddwls.u32','vaddwge.u32','vaddwlt.u32','vaddwgt.u32','vaddwle.u32',
+
+ 'vsubheq.u8','vsubhne.u8','vsubhcs.u8','vsubhhs.u8','vsubhcc.u8','vsubhlo.u8','vsubhmi.u8','vsubhpl.u8','vsubhvs.u8','vsubhvc.u8','vsubhhi.u8','vsubhls.u8','vsubhge.u8','vsubhlt.u8','vsubhgt.u8','vsubhle.u8',
+ 'vsubheq.u16','vsubhne.u16','vsubhcs.u16','vsubhhs.u16','vsubhcc.u16','vsubhlo.u16','vsubhmi.u16','vsubhpl.u16','vsubhvs.u16','vsubhvc.u16','vsubhhi.u16','vsubhls.u16','vsubhge.u16','vsubhlt.u16','vsubhgt.u16','vsubhle.u16',
+ 'vsubheq.u32','vsubhne.u32','vsubhcs.u32','vsubhhs.u32','vsubhcc.u32','vsubhlo.u32','vsubhmi.u32','vsubhpl.u32','vsubhvs.u32','vsubhvc.u32','vsubhhi.u32','vsubhls.u32','vsubhge.u32','vsubhlt.u32','vsubhgt.u32','vsubhle.u32',
+
+ 'vhaddeq.u8','vhaddne.u8','vhaddcs.u8','vhaddhs.u8','vhaddcc.u8','vhaddlo.u8','vhaddmi.u8','vhaddpl.u8','vhaddvs.u8','vhaddvc.u8','vhaddhi.u8','vhaddls.u8','vhaddge.u8','vhaddlt.u8','vhaddgt.u8','vhaddle.u8',
+ 'vhaddeq.u16','vhaddne.u16','vhaddcs.u16','vhaddhs.u16','vhaddcc.u16','vhaddlo.u16','vhaddmi.u16','vhaddpl.u16','vhaddvs.u16','vhaddvc.u16','vhaddhi.u16','vhaddls.u16','vhaddge.u16','vhaddlt.u16','vhaddgt.u16','vhaddle.u16',
+ 'vhaddeq.u32','vhaddne.u32','vhaddcs.u32','vhaddhs.u32','vhaddcc.u32','vhaddlo.u32','vhaddmi.u32','vhaddpl.u32','vhaddvs.u32','vhaddvc.u32','vhaddhi.u32','vhaddls.u32','vhaddge.u32','vhaddlt.u32','vhaddgt.u32','vhaddle.u32',
+
+ 'vhsubeq.u8','vhsubne.u8','vhsubcs.u8','vhsubhs.u8','vhsubcc.u8','vhsublo.u8','vhsubmi.u8','vhsubpl.u8','vhsubvs.u8','vhsubvc.u8','vhsubhi.u8','vhsubls.u8','vhsubge.u8','vhsublt.u8','vhsubgt.u8','vhsuble.u8',
+ 'vhsubeq.u16','vhsubne.u16','vhsubcs.u16','vhsubhs.u16','vhsubcc.u16','vhsublo.u16','vhsubmi.u16','vhsubpl.u16','vhsubvs.u16','vhsubvc.u16','vhsubhi.u16','vhsubls.u16','vhsubge.u16','vhsublt.u16','vhsubgt.u16','vhsuble.u16',
+ 'vhsubeq.u32','vhsubne.u32','vhsubcs.u32','vhsubhs.u32','vhsubcc.u32','vhsublo.u32','vhsubmi.u32','vhsubpl.u32','vhsubvs.u32','vhsubvc.u32','vhsubhi.u32','vhsubls.u32','vhsubge.u32','vhsublt.u32','vhsubgt.u32','vhsuble.u32',
+
+ 'vpadaleq.u8','vpadalne.u8','vpadalcs.u8','vpadalhs.u8','vpadalcc.u8','vpadallo.u8','vpadalmi.u8','vpadalpl.u8','vpadalvs.u8','vpadalvc.u8','vpadalhi.u8','vpadalls.u8','vpadalge.u8','vpadallt.u8','vpadalgt.u8','vpadalle.u8',
+ 'vpadaleq.u16','vpadalne.u16','vpadalcs.u16','vpadalhs.u16','vpadalcc.u16','vpadallo.u16','vpadalmi.u16','vpadalpl.u16','vpadalvs.u16','vpadalvc.u16','vpadalhi.u16','vpadalls.u16','vpadalge.u16','vpadallt.u16','vpadalgt.u16','vpadalle.u16',
+ 'vpadaleq.u32','vpadalne.u32','vpadalcs.u32','vpadalhs.u32','vpadalcc.u32','vpadallo.u32','vpadalmi.u32','vpadalpl.u32','vpadalvs.u32','vpadalvc.u32','vpadalhi.u32','vpadalls.u32','vpadalge.u32','vpadallt.u32','vpadalgt.u32','vpadalle.u32',
+
+ 'vpaddleq.u8','vpaddlne.u8','vpaddlcs.u8','vpaddlhs.u8','vpaddlcc.u8','vpaddllo.u8','vpaddlmi.u8','vpaddlpl.u8','vpaddlvs.u8','vpaddlvc.u8','vpaddlhi.u8','vpaddlls.u8','vpaddlge.u8','vpaddllt.u8','vpaddlgt.u8','vpaddlle.u8',
+ 'vpaddleq.u16','vpaddlne.u16','vpaddlcs.u16','vpaddlhs.u16','vpaddlcc.u16','vpaddllo.u16','vpaddlmi.u16','vpaddlpl.u16','vpaddlvs.u16','vpaddlvc.u16','vpaddlhi.u16','vpaddlls.u16','vpaddlge.u16','vpaddllt.u16','vpaddlgt.u16','vpaddlle.u16',
+ 'vpaddleq.u32','vpaddlne.u32','vpaddlcs.u32','vpaddlhs.u32','vpaddlcc.u32','vpaddllo.u32','vpaddlmi.u32','vpaddlpl.u32','vpaddlvs.u32','vpaddlvc.u32','vpaddlhi.u32','vpaddlls.u32','vpaddlge.u32','vpaddllt.u32','vpaddlgt.u32','vpaddlle.u32',
+
+ 'vcgeeq.u8','vcgene.u8','vcgecs.u8','vcgehs.u8','vcgecc.u8','vcgelo.u8','vcgemi.u8','vcgepl.u8','vcgevs.u8','vcgevc.u8','vcgehi.u8','vcgels.u8','vcgege.u8','vcgelt.u8','vcgegt.u8','vcgele.u8',
+ 'vcgeeq.u16','vcgene.u16','vcgecs.u16','vcgehs.u16','vcgecc.u16','vcgelo.u16','vcgemi.u16','vcgepl.u16','vcgevs.u16','vcgevc.u16','vcgehi.u16','vcgels.u16','vcgege.u16','vcgelt.u16','vcgegt.u16','vcgele.u16',
+ 'vcgeeq.u32','vcgene.u32','vcgecs.u32','vcgehs.u32','vcgecc.u32','vcgelo.u32','vcgemi.u32','vcgepl.u32','vcgevs.u32','vcgevc.u32','vcgehi.u32','vcgels.u32','vcgege.u32','vcgelt.u32','vcgegt.u32','vcgele.u32',
+
+ 'vcleeq.u8','vclene.u8','vclecs.u8','vclehs.u8','vclecc.u8','vclelo.u8','vclemi.u8','vclepl.u8','vclevs.u8','vclevc.u8','vclehi.u8','vclels.u8','vclege.u8','vclelt.u8','vclegt.u8','vclele.u8',
+ 'vcleeq.u16','vclene.u16','vclecs.u16','vclehs.u16','vclecc.u16','vclelo.u16','vclemi.u16','vclepl.u16','vclevs.u16','vclevc.u16','vclehi.u16','vclels.u16','vclege.u16','vclelt.u16','vclegt.u16','vclele.u16',
+ 'vcleeq.u32','vclene.u32','vclecs.u32','vclehs.u32','vclecc.u32','vclelo.u32','vclemi.u32','vclepl.u32','vclevs.u32','vclevc.u32','vclehi.u32','vclels.u32','vclege.u32','vclelt.u32','vclegt.u32','vclele.u32',
+
+ 'vcgteq.u8','vcgtne.u8','vcgtcs.u8','vcgths.u8','vcgtcc.u8','vcgtlo.u8','vcgtmi.u8','vcgtpl.u8','vcgtvs.u8','vcgtvc.u8','vcgthi.u8','vcgtls.u8','vcgtge.u8','vcgtlt.u8','vcgtgt.u8','vcgtle.u8',
+ 'vcgteq.u16','vcgtne.u16','vcgtcs.u16','vcgths.u16','vcgtcc.u16','vcgtlo.u16','vcgtmi.u16','vcgtpl.u16','vcgtvs.u16','vcgtvc.u16','vcgthi.u16','vcgtls.u16','vcgtge.u16','vcgtlt.u16','vcgtgt.u16','vcgtle.u16',
+ 'vcgteq.u32','vcgtne.u32','vcgtcs.u32','vcgths.u32','vcgtcc.u32','vcgtlo.u32','vcgtmi.u32','vcgtpl.u32','vcgtvs.u32','vcgtvc.u32','vcgthi.u32','vcgtls.u32','vcgtge.u32','vcgtlt.u32','vcgtgt.u32','vcgtle.u32',
+
+ 'vclteq.u8','vcltne.u8','vcltcs.u8','vclths.u8','vcltcc.u8','vcltlo.u8','vcltmi.u8','vcltpl.u8','vcltvs.u8','vcltvc.u8','vclthi.u8','vcltls.u8','vcltge.u8','vcltlt.u8','vcltgt.u8','vcltle.u8',
+ 'vclteq.u16','vcltne.u16','vcltcs.u16','vclths.u16','vcltcc.u16','vcltlo.u16','vcltmi.u16','vcltpl.u16','vcltvs.u16','vcltvc.u16','vclthi.u16','vcltls.u16','vcltge.u16','vcltlt.u16','vcltgt.u16','vcltle.u16',
+ 'vclteq.u32','vcltne.u32','vcltcs.u32','vclths.u32','vcltcc.u32','vcltlo.u32','vcltmi.u32','vcltpl.u32','vcltvs.u32','vcltvc.u32','vclthi.u32','vcltls.u32','vcltge.u32','vcltlt.u32','vcltgt.u32','vcltle.u32',
+
+ 'vmaxeq.u8','vmaxne.u8','vmaxcs.u8','vmaxhs.u8','vmaxcc.u8','vmaxlo.u8','vmaxmi.u8','vmaxpl.u8','vmaxvs.u8','vmaxvc.u8','vmaxhi.u8','vmaxls.u8','vmaxge.u8','vmaxlt.u8','vmaxgt.u8','vmaxle.u8',
+ 'vmaxeq.u16','vmaxne.u16','vmaxcs.u16','vmaxhs.u16','vmaxcc.u16','vmaxlo.u16','vmaxmi.u16','vmaxpl.u16','vmaxvs.u16','vmaxvc.u16','vmaxhi.u16','vmaxls.u16','vmaxge.u16','vmaxlt.u16','vmaxgt.u16','vmaxle.u16',
+ 'vmaxeq.u32','vmaxne.u32','vmaxcs.u32','vmaxhs.u32','vmaxcc.u32','vmaxlo.u32','vmaxmi.u32','vmaxpl.u32','vmaxvs.u32','vmaxvc.u32','vmaxhi.u32','vmaxls.u32','vmaxge.u32','vmaxlt.u32','vmaxgt.u32','vmaxle.u32',
+
+ 'vmineq.u8','vminne.u8','vmincs.u8','vminhs.u8','vmincc.u8','vminlo.u8','vminmi.u8','vminpl.u8','vminvs.u8','vminvc.u8','vminhi.u8','vminls.u8','vminge.u8','vminlt.u8','vmingt.u8','vminle.u8',
+ 'vmineq.u16','vminne.u16','vmincs.u16','vminhs.u16','vmincc.u16','vminlo.u16','vminmi.u16','vminpl.u16','vminvs.u16','vminvc.u16','vminhi.u16','vminls.u16','vminge.u16','vminlt.u16','vmingt.u16','vminle.u16',
+ 'vmineq.u32','vminne.u32','vmincs.u32','vminhs.u32','vmincc.u32','vminlo.u32','vminmi.u32','vminpl.u32','vminvs.u32','vminvc.u32','vminhi.u32','vminls.u32','vminge.u32','vminlt.u32','vmingt.u32','vminle.u32',
+
+ 'vmlaleq.u8','vmlalne.u8','vmlalcs.u8','vmlalhs.u8','vmlalcc.u8','vmlallo.u8','vmlalmi.u8','vmlalpl.u8','vmlalvs.u8','vmlalvc.u8','vmlalhi.u8','vmlalls.u8','vmlalge.u8','vmlallt.u8','vmlalgt.u8','vmlalle.u8',
+ 'vmlaleq.u16','vmlalne.u16','vmlalcs.u16','vmlalhs.u16','vmlalcc.u16','vmlallo.u16','vmlalmi.u16','vmlalpl.u16','vmlalvs.u16','vmlalvc.u16','vmlalhi.u16','vmlalls.u16','vmlalge.u16','vmlallt.u16','vmlalgt.u16','vmlalle.u16',
+ 'vmlaleq.u32','vmlalne.u32','vmlalcs.u32','vmlalhs.u32','vmlalcc.u32','vmlallo.u32','vmlalmi.u32','vmlalpl.u32','vmlalvs.u32','vmlalvc.u32','vmlalhi.u32','vmlalls.u32','vmlalge.u32','vmlallt.u32','vmlalgt.u32','vmlalle.u32',
+
+ 'vmlsleq.u8','vmlslne.u8','vmlslcs.u8','vmlslhs.u8','vmlslcc.u8','vmlsllo.u8','vmlslmi.u8','vmlslpl.u8','vmlslvs.u8','vmlslvc.u8','vmlslhi.u8','vmlslls.u8','vmlslge.u8','vmlsllt.u8','vmlslgt.u8','vmlslle.u8',
+ 'vmlsleq.u16','vmlslne.u16','vmlslcs.u16','vmlslhs.u16','vmlslcc.u16','vmlsllo.u16','vmlslmi.u16','vmlslpl.u16','vmlslvs.u16','vmlslvc.u16','vmlslhi.u16','vmlslls.u16','vmlslge.u16','vmlsllt.u16','vmlslgt.u16','vmlslle.u16',
+ 'vmlsleq.u32','vmlslne.u32','vmlslcs.u32','vmlslhs.u32','vmlslcc.u32','vmlsllo.u32','vmlslmi.u32','vmlslpl.u32','vmlslvs.u32','vmlslvc.u32','vmlslhi.u32','vmlslls.u32','vmlslge.u32','vmlsllt.u32','vmlslgt.u32','vmlslle.u32',
+
+ 'vmulleq.u8','vmullne.u8','vmullcs.u8','vmullhs.u8','vmullcc.u8','vmulllo.u8','vmullmi.u8','vmullpl.u8','vmullvs.u8','vmullvc.u8','vmullhi.u8','vmullls.u8','vmullge.u8','vmulllt.u8','vmullgt.u8','vmullle.u8',
+ 'vmulleq.u16','vmullne.u16','vmullcs.u16','vmullhs.u16','vmullcc.u16','vmulllo.u16','vmullmi.u16','vmullpl.u16','vmullvs.u16','vmullvc.u16','vmullhi.u16','vmullls.u16','vmullge.u16','vmulllt.u16','vmullgt.u16','vmullle.u16',
+ 'vmulleq.u32','vmullne.u32','vmullcs.u32','vmullhs.u32','vmullcc.u32','vmulllo.u32','vmullmi.u32','vmullpl.u32','vmullvs.u32','vmullvc.u32','vmullhi.u32','vmullls.u32','vmullge.u32','vmulllt.u32','vmullgt.u32','vmullle.u32',
+
+ 'vmovleq.u8','vmovlne.u8','vmovlcs.u8','vmovlhs.u8','vmovlcc.u8','vmovllo.u8','vmovlmi.u8','vmovlpl.u8','vmovlvs.u8','vmovlvc.u8','vmovlhi.u8','vmovlls.u8','vmovlge.u8','vmovllt.u8','vmovlgt.u8','vmovlle.u8',
+ 'vmovleq.u16','vmovlne.u16','vmovlcs.u16','vmovlhs.u16','vmovlcc.u16','vmovllo.u16','vmovlmi.u16','vmovlpl.u16','vmovlvs.u16','vmovlvc.u16','vmovlhi.u16','vmovlls.u16','vmovlge.u16','vmovllt.u16','vmovlgt.u16','vmovlle.u16',
+ 'vmovleq.u32','vmovlne.u32','vmovlcs.u32','vmovlhs.u32','vmovlcc.u32','vmovllo.u32','vmovlmi.u32','vmovlpl.u32','vmovlvs.u32','vmovlvc.u32','vmovlhi.u32','vmovlls.u32','vmovlge.u32','vmovllt.u32','vmovlgt.u32','vmovlle.u32',
+
+ 'vshleq.u8','vshlne.u8','vshlcs.u8','vshlhs.u8','vshlcc.u8','vshllo.u8','vshlmi.u8','vshlpl.u8','vshlvs.u8','vshlvc.u8','vshlhi.u8','vshlls.u8','vshlge.u8','vshllt.u8','vshlgt.u8','vshlle.u8',
+ 'vshleq.u16','vshlne.u16','vshlcs.u16','vshlhs.u16','vshlcc.u16','vshllo.u16','vshlmi.u16','vshlpl.u16','vshlvs.u16','vshlvc.u16','vshlhi.u16','vshlls.u16','vshlge.u16','vshllt.u16','vshlgt.u16','vshlle.u16',
+ 'vshleq.u32','vshlne.u32','vshlcs.u32','vshlhs.u32','vshlcc.u32','vshllo.u32','vshlmi.u32','vshlpl.u32','vshlvs.u32','vshlvc.u32','vshlhi.u32','vshlls.u32','vshlge.u32','vshllt.u32','vshlgt.u32','vshlle.u32',
+ 'vshleq.u64','vshlne.u64','vshlcs.u64','vshlhs.u64','vshlcc.u64','vshllo.u64','vshlmi.u64','vshlpl.u64','vshlvs.u64','vshlvc.u64','vshlhi.u64','vshlls.u64','vshlge.u64','vshllt.u64','vshlgt.u64','vshlle.u64',
+
+ 'vshlleq.u8','vshllne.u8','vshllcs.u8','vshllhs.u8','vshllcc.u8','vshlllo.u8','vshllmi.u8','vshllpl.u8','vshllvs.u8','vshllvc.u8','vshllhi.u8','vshllls.u8','vshllge.u8','vshlllt.u8','vshllgt.u8','vshllle.u8',
+ 'vshlleq.u16','vshllne.u16','vshllcs.u16','vshllhs.u16','vshllcc.u16','vshlllo.u16','vshllmi.u16','vshllpl.u16','vshllvs.u16','vshllvc.u16','vshllhi.u16','vshllls.u16','vshllge.u16','vshlllt.u16','vshllgt.u16','vshllle.u16',
+ 'vshlleq.u32','vshllne.u32','vshllcs.u32','vshllhs.u32','vshllcc.u32','vshlllo.u32','vshllmi.u32','vshllpl.u32','vshllvs.u32','vshllvc.u32','vshllhi.u32','vshllls.u32','vshllge.u32','vshlllt.u32','vshllgt.u32','vshllle.u32',
+
+ 'vshreq.u8','vshrne.u8','vshrcs.u8','vshrhs.u8','vshrcc.u8','vshrlo.u8','vshrmi.u8','vshrpl.u8','vshrvs.u8','vshrvc.u8','vshrhi.u8','vshrls.u8','vshrge.u8','vshrlt.u8','vshrgt.u8','vshrle.u8',
+ 'vshreq.u16','vshrne.u16','vshrcs.u16','vshrhs.u16','vshrcc.u16','vshrlo.u16','vshrmi.u16','vshrpl.u16','vshrvs.u16','vshrvc.u16','vshrhi.u16','vshrls.u16','vshrge.u16','vshrlt.u16','vshrgt.u16','vshrle.u16',
+ 'vshreq.u32','vshrne.u32','vshrcs.u32','vshrhs.u32','vshrcc.u32','vshrlo.u32','vshrmi.u32','vshrpl.u32','vshrvs.u32','vshrvc.u32','vshrhi.u32','vshrls.u32','vshrge.u32','vshrlt.u32','vshrgt.u32','vshrle.u32',
+ 'vshreq.u64','vshrne.u64','vshrcs.u64','vshrhs.u64','vshrcc.u64','vshrlo.u64','vshrmi.u64','vshrpl.u64','vshrvs.u64','vshrvc.u64','vshrhi.u64','vshrls.u64','vshrge.u64','vshrlt.u64','vshrgt.u64','vshrle.u64',
+
+ 'vsraeq.u8','vsrane.u8','vsracs.u8','vsrahs.u8','vsracc.u8','vsralo.u8','vsrami.u8','vsrapl.u8','vsravs.u8','vsravc.u8','vsrahi.u8','vsrals.u8','vsrage.u8','vsralt.u8','vsragt.u8','vsrale.u8',
+ 'vsraeq.u16','vsrane.u16','vsracs.u16','vsrahs.u16','vsracc.u16','vsralo.u16','vsrami.u16','vsrapl.u16','vsravs.u16','vsravc.u16','vsrahi.u16','vsrals.u16','vsrage.u16','vsralt.u16','vsragt.u16','vsrale.u16',
+ 'vsraeq.u32','vsrane.u32','vsracs.u32','vsrahs.u32','vsracc.u32','vsralo.u32','vsrami.u32','vsrapl.u32','vsravs.u32','vsravc.u32','vsrahi.u32','vsrals.u32','vsrage.u32','vsralt.u32','vsragt.u32','vsrale.u32',
+ 'vsraeq.u64','vsrane.u64','vsracs.u64','vsrahs.u64','vsracc.u64','vsralo.u64','vsrami.u64','vsrapl.u64','vsravs.u64','vsravc.u64','vsrahi.u64','vsrals.u64','vsrage.u64','vsralt.u64','vsragt.u64','vsrale.u64',
+
+ 'vpmaxeq.u8','vpmaxne.u8','vpmaxcs.u8','vpmaxhs.u8','vpmaxcc.u8','vpmaxlo.u8','vpmaxmi.u8','vpmaxpl.u8','vpmaxvs.u8','vpmaxvc.u8','vpmaxhi.u8','vpmaxls.u8','vpmaxge.u8','vpmaxlt.u8','vpmaxgt.u8','vpmaxle.u8',
+ 'vpmaxeq.u16','vpmaxne.u16','vpmaxcs.u16','vpmaxhs.u16','vpmaxcc.u16','vpmaxlo.u16','vpmaxmi.u16','vpmaxpl.u16','vpmaxvs.u16','vpmaxvc.u16','vpmaxhi.u16','vpmaxls.u16','vpmaxge.u16','vpmaxlt.u16','vpmaxgt.u16','vpmaxle.u16',
+ 'vpmaxeq.u32','vpmaxne.u32','vpmaxcs.u32','vpmaxhs.u32','vpmaxcc.u32','vpmaxlo.u32','vpmaxmi.u32','vpmaxpl.u32','vpmaxvs.u32','vpmaxvc.u32','vpmaxhi.u32','vpmaxls.u32','vpmaxge.u32','vpmaxlt.u32','vpmaxgt.u32','vpmaxle.u32',
+
+ 'vpmineq.u8','vpminne.u8','vpmincs.u8','vpminhs.u8','vpmincc.u8','vpminlo.u8','vpminmi.u8','vpminpl.u8','vpminvs.u8','vpminvc.u8','vpminhi.u8','vpminls.u8','vpminge.u8','vpminlt.u8','vpmingt.u8','vpminle.u8',
+ 'vpmineq.u16','vpminne.u16','vpmincs.u16','vpminhs.u16','vpmincc.u16','vpminlo.u16','vpminmi.u16','vpminpl.u16','vpminvs.u16','vpminvc.u16','vpminhi.u16','vpminls.u16','vpminge.u16','vpminlt.u16','vpmingt.u16','vpminle.u16',
+ 'vpmineq.u32','vpminne.u32','vpmincs.u32','vpminhs.u32','vpmincc.u32','vpminlo.u32','vpminmi.u32','vpminpl.u32','vpminvs.u32','vpminvc.u32','vpminhi.u32','vpminls.u32','vpminge.u32','vpminlt.u32','vpmingt.u32','vpminle.u32',
+
+ 'vqaddeq.u8','vqaddne.u8','vqaddcs.u8','vqaddhs.u8','vqaddcc.u8','vqaddlo.u8','vqaddmi.u8','vqaddpl.u8','vqaddvs.u8','vqaddvc.u8','vqaddhi.u8','vqaddls.u8','vqaddge.u8','vqaddlt.u8','vqaddgt.u8','vqaddle.u8',
+ 'vqaddeq.u16','vqaddne.u16','vqaddcs.u16','vqaddhs.u16','vqaddcc.u16','vqaddlo.u16','vqaddmi.u16','vqaddpl.u16','vqaddvs.u16','vqaddvc.u16','vqaddhi.u16','vqaddls.u16','vqaddge.u16','vqaddlt.u16','vqaddgt.u16','vqaddle.u16',
+ 'vqaddeq.u32','vqaddne.u32','vqaddcs.u32','vqaddhs.u32','vqaddcc.u32','vqaddlo.u32','vqaddmi.u32','vqaddpl.u32','vqaddvs.u32','vqaddvc.u32','vqaddhi.u32','vqaddls.u32','vqaddge.u32','vqaddlt.u32','vqaddgt.u32','vqaddle.u32',
+ 'vqaddeq.u64','vqaddne.u64','vqaddcs.u64','vqaddhs.u64','vqaddcc.u64','vqaddlo.u64','vqaddmi.u64','vqaddpl.u64','vqaddvs.u64','vqaddvc.u64','vqaddhi.u64','vqaddls.u64','vqaddge.u64','vqaddlt.u64','vqaddgt.u64','vqaddle.u64',
+
+ 'vqsubeq.u8','vqsubne.u8','vqsubcs.u8','vqsubhs.u8','vqsubcc.u8','vqsublo.u8','vqsubmi.u8','vqsubpl.u8','vqsubvs.u8','vqsubvc.u8','vqsubhi.u8','vqsubls.u8','vqsubge.u8','vqsublt.u8','vqsubgt.u8','vqsuble.u8',
+ 'vqsubeq.u16','vqsubne.u16','vqsubcs.u16','vqsubhs.u16','vqsubcc.u16','vqsublo.u16','vqsubmi.u16','vqsubpl.u16','vqsubvs.u16','vqsubvc.u16','vqsubhi.u16','vqsubls.u16','vqsubge.u16','vqsublt.u16','vqsubgt.u16','vqsuble.u16',
+ 'vqsubeq.u32','vqsubne.u32','vqsubcs.u32','vqsubhs.u32','vqsubcc.u32','vqsublo.u32','vqsubmi.u32','vqsubpl.u32','vqsubvs.u32','vqsubvc.u32','vqsubhi.u32','vqsubls.u32','vqsubge.u32','vqsublt.u32','vqsubgt.u32','vqsuble.u32',
+ 'vqsubeq.u64','vqsubne.u64','vqsubcs.u64','vqsubhs.u64','vqsubcc.u64','vqsublo.u64','vqsubmi.u64','vqsubpl.u64','vqsubvs.u64','vqsubvc.u64','vqsubhi.u64','vqsubls.u64','vqsubge.u64','vqsublt.u64','vqsubgt.u64','vqsuble.u64',
+
+ 'vqmovneq.u16','vqmovnne.u16','vqmovncs.u16','vqmovnhs.u16','vqmovncc.u16','vqmovnlo.u16','vqmovnmi.u16','vqmovnpl.u16','vqmovnvs.u16','vqmovnvc.u16','vqmovnhi.u16','vqmovnls.u16','vqmovnge.u16','vqmovnlt.u16','vqmovngt.u16','vqmovnle.u16',
+ 'vqmovneq.u32','vqmovnne.u32','vqmovncs.u32','vqmovnhs.u32','vqmovncc.u32','vqmovnlo.u32','vqmovnmi.u32','vqmovnpl.u32','vqmovnvs.u32','vqmovnvc.u32','vqmovnhi.u32','vqmovnls.u32','vqmovnge.u32','vqmovnlt.u32','vqmovngt.u32','vqmovnle.u32',
+ 'vqmovneq.u64','vqmovnne.u64','vqmovncs.u64','vqmovnhs.u64','vqmovncc.u64','vqmovnlo.u64','vqmovnmi.u64','vqmovnpl.u64','vqmovnvs.u64','vqmovnvc.u64','vqmovnhi.u64','vqmovnls.u64','vqmovnge.u64','vqmovnlt.u64','vqmovngt.u64','vqmovnle.u64',
+
+ 'vqshleq.u8','vqshlne.u8','vqshlcs.u8','vqshlhs.u8','vqshlcc.u8','vqshllo.u8','vqshlmi.u8','vqshlpl.u8','vqshlvs.u8','vqshlvc.u8','vqshlhi.u8','vqshlls.u8','vqshlge.u8','vqshllt.u8','vqshlgt.u8','vqshlle.u8',
+ 'vqshleq.u16','vqshlne.u16','vqshlcs.u16','vqshlhs.u16','vqshlcc.u16','vqshllo.u16','vqshlmi.u16','vqshlpl.u16','vqshlvs.u16','vqshlvc.u16','vqshlhi.u16','vqshlls.u16','vqshlge.u16','vqshllt.u16','vqshlgt.u16','vqshlle.u16',
+ 'vqshleq.u32','vqshlne.u32','vqshlcs.u32','vqshlhs.u32','vqshlcc.u32','vqshllo.u32','vqshlmi.u32','vqshlpl.u32','vqshlvs.u32','vqshlvc.u32','vqshlhi.u32','vqshlls.u32','vqshlge.u32','vqshllt.u32','vqshlgt.u32','vqshlle.u32',
+ 'vqshleq.u64','vqshlne.u64','vqshlcs.u64','vqshlhs.u64','vqshlcc.u64','vqshllo.u64','vqshlmi.u64','vqshlpl.u64','vqshlvs.u64','vqshlvc.u64','vqshlhi.u64','vqshlls.u64','vqshlge.u64','vqshllt.u64','vqshlgt.u64','vqshlle.u64',
+
+ 'vqshrneq.u16','vqshrnne.u16','vqshrncs.u16','vqshrnhs.u16','vqshrncc.u16','vqshrnlo.u16','vqshrnmi.u16','vqshrnpl.u16','vqshrnvs.u16','vqshrnvc.u16','vqshrnhi.u16','vqshrnls.u16','vqshrnge.u16','vqshrnlt.u16','vqshrngt.u16','vqshrnle.u16',
+ 'vqshrneq.u32','vqshrnne.u32','vqshrncs.u32','vqshrnhs.u32','vqshrncc.u32','vqshrnlo.u32','vqshrnmi.u32','vqshrnpl.u32','vqshrnvs.u32','vqshrnvc.u32','vqshrnhi.u32','vqshrnls.u32','vqshrnge.u32','vqshrnlt.u32','vqshrngt.u32','vqshrnle.u32',
+ 'vqshrneq.u64','vqshrnne.u64','vqshrncs.u64','vqshrnhs.u64','vqshrncc.u64','vqshrnlo.u64','vqshrnmi.u64','vqshrnpl.u64','vqshrnvs.u64','vqshrnvc.u64','vqshrnhi.u64','vqshrnls.u64','vqshrnge.u64','vqshrnlt.u64','vqshrngt.u64','vqshrnle.u64',
+
+ 'vqrshleq.u8','vqrshlne.u8','vqrshlcs.u8','vqrshlhs.u8','vqrshlcc.u8','vqrshllo.u8','vqrshlmi.u8','vqrshlpl.u8','vqrshlvs.u8','vqrshlvc.u8','vqrshlhi.u8','vqrshlls.u8','vqrshlge.u8','vqrshllt.u8','vqrshlgt.u8','vqrshlle.u8',
+ 'vqrshleq.u16','vqrshlne.u16','vqrshlcs.u16','vqrshlhs.u16','vqrshlcc.u16','vqrshllo.u16','vqrshlmi.u16','vqrshlpl.u16','vqrshlvs.u16','vqrshlvc.u16','vqrshlhi.u16','vqrshlls.u16','vqrshlge.u16','vqrshllt.u16','vqrshlgt.u16','vqrshlle.u16',
+ 'vqrshleq.u32','vqrshlne.u32','vqrshlcs.u32','vqrshlhs.u32','vqrshlcc.u32','vqrshllo.u32','vqrshlmi.u32','vqrshlpl.u32','vqrshlvs.u32','vqrshlvc.u32','vqrshlhi.u32','vqrshlls.u32','vqrshlge.u32','vqrshllt.u32','vqrshlgt.u32','vqrshlle.u32',
+ 'vqrshleq.u64','vqrshlne.u64','vqrshlcs.u64','vqrshlhs.u64','vqrshlcc.u64','vqrshllo.u64','vqrshlmi.u64','vqrshlpl.u64','vqrshlvs.u64','vqrshlvc.u64','vqrshlhi.u64','vqrshlls.u64','vqrshlge.u64','vqrshllt.u64','vqrshlgt.u64','vqrshlle.u64',
+
+ 'vqrshrneq.u16','vqrshrnne.u16','vqrshrncs.u16','vqrshrnhs.u16','vqrshrncc.u16','vqrshrnlo.u16','vqrshrnmi.u16','vqrshrnpl.u16','vqrshrnvs.u16','vqrshrnvc.u16','vqrshrnhi.u16','vqrshrnls.u16','vqrshrnge.u16','vqrshrnlt.u16','vqrshrngt.u16','vqrshrnle.u16',
+ 'vqrshrneq.u32','vqrshrnne.u32','vqrshrncs.u32','vqrshrnhs.u32','vqrshrncc.u32','vqrshrnlo.u32','vqrshrnmi.u32','vqrshrnpl.u32','vqrshrnvs.u32','vqrshrnvc.u32','vqrshrnhi.u32','vqrshrnls.u32','vqrshrnge.u32','vqrshrnlt.u32','vqrshrngt.u32','vqrshrnle.u32',
+ 'vqrshrneq.u64','vqrshrnne.u64','vqrshrncs.u64','vqrshrnhs.u64','vqrshrncc.u64','vqrshrnlo.u64','vqrshrnmi.u64','vqrshrnpl.u64','vqrshrnvs.u64','vqrshrnvc.u64','vqrshrnhi.u64','vqrshrnls.u64','vqrshrnge.u64','vqrshrnlt.u64','vqrshrngt.u64','vqrshrnle.u64',
+
+ 'vrhaddeq.u8','vrhaddne.u8','vrhaddcs.u8','vrhaddhs.u8','vrhaddcc.u8','vrhaddlo.u8','vrhaddmi.u8','vrhaddpl.u8','vrhaddvs.u8','vrhaddvc.u8','vrhaddhi.u8','vrhaddls.u8','vrhaddge.u8','vrhaddlt.u8','vrhaddgt.u8','vrhaddle.u8',
+ 'vrhaddeq.u16','vrhaddne.u16','vrhaddcs.u16','vrhaddhs.u16','vrhaddcc.u16','vrhaddlo.u16','vrhaddmi.u16','vrhaddpl.u16','vrhaddvs.u16','vrhaddvc.u16','vrhaddhi.u16','vrhaddls.u16','vrhaddge.u16','vrhaddlt.u16','vrhaddgt.u16','vrhaddle.u16',
+ 'vrhaddeq.u32','vrhaddne.u32','vrhaddcs.u32','vrhaddhs.u32','vrhaddcc.u32','vrhaddlo.u32','vrhaddmi.u32','vrhaddpl.u32','vrhaddvs.u32','vrhaddvc.u32','vrhaddhi.u32','vrhaddls.u32','vrhaddge.u32','vrhaddlt.u32','vrhaddgt.u32','vrhaddle.u32',
+
+ 'vrshleq.u8','vrshlne.u8','vrshlcs.u8','vrshlhs.u8','vrshlcc.u8','vrshllo.u8','vrshlmi.u8','vrshlpl.u8','vrshlvs.u8','vrshlvc.u8','vrshlhi.u8','vrshlls.u8','vrshlge.u8','vrshllt.u8','vrshlgt.u8','vrshlle.u8',
+ 'vrshleq.u16','vrshlne.u16','vrshlcs.u16','vrshlhs.u16','vrshlcc.u16','vrshllo.u16','vrshlmi.u16','vrshlpl.u16','vrshlvs.u16','vrshlvc.u16','vrshlhi.u16','vrshlls.u16','vrshlge.u16','vrshllt.u16','vrshlgt.u16','vrshlle.u16',
+ 'vrshleq.u32','vrshlne.u32','vrshlcs.u32','vrshlhs.u32','vrshlcc.u32','vrshllo.u32','vrshlmi.u32','vrshlpl.u32','vrshlvs.u32','vrshlvc.u32','vrshlhi.u32','vrshlls.u32','vrshlge.u32','vrshllt.u32','vrshlgt.u32','vrshlle.u32',
+ 'vrshleq.u64','vrshlne.u64','vrshlcs.u64','vrshlhs.u64','vrshlcc.u64','vrshllo.u64','vrshlmi.u64','vrshlpl.u64','vrshlvs.u64','vrshlvc.u64','vrshlhi.u64','vrshlls.u64','vrshlge.u64','vrshllt.u64','vrshlgt.u64','vrshlle.u64',
+
+ 'vrshreq.u8','vrshrne.u8','vrshrcs.u8','vrshrhs.u8','vrshrcc.u8','vrshrlo.u8','vrshrmi.u8','vrshrpl.u8','vrshrvs.u8','vrshrvc.u8','vrshrhi.u8','vrshrls.u8','vrshrge.u8','vrshrlt.u8','vrshrgt.u8','vrshrle.u8',
+ 'vrshreq.u16','vrshrne.u16','vrshrcs.u16','vrshrhs.u16','vrshrcc.u16','vrshrlo.u16','vrshrmi.u16','vrshrpl.u16','vrshrvs.u16','vrshrvc.u16','vrshrhi.u16','vrshrls.u16','vrshrge.u16','vrshrlt.u16','vrshrgt.u16','vrshrle.u16',
+ 'vrshreq.u32','vrshrne.u32','vrshrcs.u32','vrshrhs.u32','vrshrcc.u32','vrshrlo.u32','vrshrmi.u32','vrshrpl.u32','vrshrvs.u32','vrshrvc.u32','vrshrhi.u32','vrshrls.u32','vrshrge.u32','vrshrlt.u32','vrshrgt.u32','vrshrle.u32',
+ 'vrshreq.u64','vrshrne.u64','vrshrcs.u64','vrshrhs.u64','vrshrcc.u64','vrshrlo.u64','vrshrmi.u64','vrshrpl.u64','vrshrvs.u64','vrshrvc.u64','vrshrhi.u64','vrshrls.u64','vrshrge.u64','vrshrlt.u64','vrshrgt.u64','vrshrle.u64',
+
+ 'vrsraeq.u8','vrsrane.u8','vrsracs.u8','vrsrahs.u8','vrsracc.u8','vrsralo.u8','vrsrami.u8','vrsrapl.u8','vrsravs.u8','vrsravc.u8','vrsrahi.u8','vrsrals.u8','vrsrage.u8','vrsralt.u8','vrsragt.u8','vrsrale.u8',
+ 'vrsraeq.u16','vrsrane.u16','vrsracs.u16','vrsrahs.u16','vrsracc.u16','vrsralo.u16','vrsrami.u16','vrsrapl.u16','vrsravs.u16','vrsravc.u16','vrsrahi.u16','vrsrals.u16','vrsrage.u16','vrsralt.u16','vrsragt.u16','vrsrale.u16',
+ 'vrsraeq.u32','vrsrane.u32','vrsracs.u32','vrsrahs.u32','vrsracc.u32','vrsralo.u32','vrsrami.u32','vrsrapl.u32','vrsravs.u32','vrsravc.u32','vrsrahi.u32','vrsrals.u32','vrsrage.u32','vrsralt.u32','vrsragt.u32','vrsrale.u32',
+ 'vrsraeq.u64','vrsrane.u64','vrsracs.u64','vrsrahs.u64','vrsracc.u64','vrsralo.u64','vrsrami.u64','vrsrapl.u64','vrsravs.u64','vrsravc.u64','vrsrahi.u64','vrsrals.u64','vrsrage.u64','vrsralt.u64','vrsragt.u64','vrsrale.u64',
+ ),
+ /* Conditional VFPv3 & NEON SIMD Floating-Point Instructions */
+ 34 => array(
+ 'vabdeq.f32','vabdne.f32','vabdcs.f32','vabdhs.f32','vabdcc.f32','vabdlo.f32','vabdmi.f32','vabdpl.f32','vabdvs.f32','vabdvc.f32','vabdhi.f32','vabdls.f32','vabdge.f32','vabdlt.f32','vabdgt.f32','vabdle.f32',
+
+ 'vabseq.f32','vabsne.f32','vabscs.f32','vabshs.f32','vabscc.f32','vabslo.f32','vabsmi.f32','vabspl.f32','vabsvs.f32','vabsvc.f32','vabshi.f32','vabsls.f32','vabsge.f32','vabslt.f32','vabsgt.f32','vabsle.f32',
+ 'vabseq.f64','vabsne.f64','vabscs.f64','vabshs.f64','vabscc.f64','vabslo.f64','vabsmi.f64','vabspl.f64','vabsvs.f64','vabsvc.f64','vabshi.f64','vabsls.f64','vabsge.f64','vabslt.f64','vabsgt.f64','vabsle.f64',
+
+ 'vacgeeq.f32','vacgene.f32','vacgecs.f32','vacgehs.f32','vacgecc.f32','vacgelo.f32','vacgemi.f32','vacgepl.f32','vacgevs.f32','vacgevc.f32','vacgehi.f32','vacgels.f32','vacgege.f32','vacgelt.f32','vacgegt.f32','vacgele.f32',
+ 'vacgteq.f32','vacgtne.f32','vacgtcs.f32','vacgths.f32','vacgtcc.f32','vacgtlo.f32','vacgtmi.f32','vacgtpl.f32','vacgtvs.f32','vacgtvc.f32','vacgthi.f32','vacgtls.f32','vacgtge.f32','vacgtlt.f32','vacgtgt.f32','vacgtle.f32',
+ 'vacleeq.f32','vaclene.f32','vaclecs.f32','vaclehs.f32','vaclecc.f32','vaclelo.f32','vaclemi.f32','vaclepl.f32','vaclevs.f32','vaclevc.f32','vaclehi.f32','vaclels.f32','vaclege.f32','vaclelt.f32','vaclegt.f32','vaclele.f32',
+ 'vaclteq.f32','vacltne.f32','vacltcs.f32','vaclths.f32','vacltcc.f32','vacltlo.f32','vacltmi.f32','vacltpl.f32','vacltvs.f32','vacltvc.f32','vaclthi.f32','vacltls.f32','vacltge.f32','vacltlt.f32','vacltgt.f32','vacltle.f32',
+
+ 'vaddeq.f32','vaddne.f32','vaddcs.f32','vaddhs.f32','vaddcc.f32','vaddlo.f32','vaddmi.f32','vaddpl.f32','vaddvs.f32','vaddvc.f32','vaddhi.f32','vaddls.f32','vaddge.f32','vaddlt.f32','vaddgt.f32','vaddle.f32',
+ 'vaddeq.f64','vaddne.f64','vaddcs.f64','vaddhs.f64','vaddcc.f64','vaddlo.f64','vaddmi.f64','vaddpl.f64','vaddvs.f64','vaddvc.f64','vaddhi.f64','vaddls.f64','vaddge.f64','vaddlt.f64','vaddgt.f64','vaddle.f64',
+
+ 'vceqeq.f32','vceqne.f32','vceqcs.f32','vceqhs.f32','vceqcc.f32','vceqlo.f32','vceqmi.f32','vceqpl.f32','vceqvs.f32','vceqvc.f32','vceqhi.f32','vceqls.f32','vceqge.f32','vceqlt.f32','vceqgt.f32','vceqle.f32',
+ 'vcgeeq.f32','vcgene.f32','vcgecs.f32','vcgehs.f32','vcgecc.f32','vcgelo.f32','vcgemi.f32','vcgepl.f32','vcgevs.f32','vcgevc.f32','vcgehi.f32','vcgels.f32','vcgege.f32','vcgelt.f32','vcgegt.f32','vcgele.f32',
+ 'vcleeq.f32','vclene.f32','vclecs.f32','vclehs.f32','vclecc.f32','vclelo.f32','vclemi.f32','vclepl.f32','vclevs.f32','vclevc.f32','vclehi.f32','vclels.f32','vclege.f32','vclelt.f32','vclegt.f32','vclele.f32',
+ 'vcgteq.f32','vcgtne.f32','vcgtcs.f32','vcgths.f32','vcgtcc.f32','vcgtlo.f32','vcgtmi.f32','vcgtpl.f32','vcgtvs.f32','vcgtvc.f32','vcgthi.f32','vcgtls.f32','vcgtge.f32','vcgtlt.f32','vcgtgt.f32','vcgtle.f32',
+ 'vclteq.f32','vcltne.f32','vcltcs.f32','vclths.f32','vcltcc.f32','vcltlo.f32','vcltmi.f32','vcltpl.f32','vcltvs.f32','vcltvc.f32','vclthi.f32','vcltls.f32','vcltge.f32','vcltlt.f32','vcltgt.f32','vcltle.f32',
+
+ 'vcmpeq.f32','vcmpne.f32','vcmpcs.f32','vcmphs.f32','vcmpcc.f32','vcmplo.f32','vcmpmi.f32','vcmppl.f32','vcmpvs.f32','vcmpvc.f32','vcmphi.f32','vcmpls.f32','vcmpge.f32','vcmplt.f32','vcmpgt.f32','vcmple.f32',
+ 'vcmpeq.f64','vcmpne.f64','vcmpcs.f64','vcmphs.f64','vcmpcc.f64','vcmplo.f64','vcmpmi.f64','vcmppl.f64','vcmpvs.f64','vcmpvc.f64','vcmphi.f64','vcmpls.f64','vcmpge.f64','vcmplt.f64','vcmpgt.f64','vcmple.f64',
+
+ 'vcmpeeq.f32','vcmpene.f32','vcmpecs.f32','vcmpehs.f32','vcmpecc.f32','vcmpelo.f32','vcmpemi.f32','vcmpepl.f32','vcmpevs.f32','vcmpevc.f32','vcmpehi.f32','vcmpels.f32','vcmpege.f32','vcmpelt.f32','vcmpegt.f32','vcmpele.f32',
+ 'vcmpeeq.f64','vcmpene.f64','vcmpecs.f64','vcmpehs.f64','vcmpecc.f64','vcmpelo.f64','vcmpemi.f64','vcmpepl.f64','vcmpevs.f64','vcmpevc.f64','vcmpehi.f64','vcmpels.f64','vcmpege.f64','vcmpelt.f64','vcmpegt.f64','vcmpele.f64',
+
+ 'vcvteq.s16.f32','vcvtne.s16.f32','vcvtcs.s16.f32','vcvths.s16.f32','vcvtcc.s16.f32','vcvtlo.s16.f32','vcvtmi.s16.f32','vcvtpl.s16.f32','vcvtvs.s16.f32','vcvtvc.s16.f32','vcvthi.s16.f32','vcvtls.s16.f32','vcvtge.s16.f32','vcvtlt.s16.f32','vcvtgt.s16.f32','vcvtle.s16.f32',
+ 'vcvteq.s16.f64','vcvtne.s16.f64','vcvtcs.s16.f64','vcvths.s16.f64','vcvtcc.s16.f64','vcvtlo.s16.f64','vcvtmi.s16.f64','vcvtpl.s16.f64','vcvtvs.s16.f64','vcvtvc.s16.f64','vcvthi.s16.f64','vcvtls.s16.f64','vcvtge.s16.f64','vcvtlt.s16.f64','vcvtgt.s16.f64','vcvtle.s16.f64',
+ 'vcvteq.s32.f32','vcvtne.s32.f32','vcvtcs.s32.f32','vcvths.s32.f32','vcvtcc.s32.f32','vcvtlo.s32.f32','vcvtmi.s32.f32','vcvtpl.s32.f32','vcvtvs.s32.f32','vcvtvc.s32.f32','vcvthi.s32.f32','vcvtls.s32.f32','vcvtge.s32.f32','vcvtlt.s32.f32','vcvtgt.s32.f32','vcvtle.s32.f32',
+ 'vcvteq.s32.f64','vcvtne.s32.f64','vcvtcs.s32.f64','vcvths.s32.f64','vcvtcc.s32.f64','vcvtlo.s32.f64','vcvtmi.s32.f64','vcvtpl.s32.f64','vcvtvs.s32.f64','vcvtvc.s32.f64','vcvthi.s32.f64','vcvtls.s32.f64','vcvtge.s32.f64','vcvtlt.s32.f64','vcvtgt.s32.f64','vcvtle.s32.f64',
+ 'vcvteq.u16.f32','vcvtne.u16.f32','vcvtcs.u16.f32','vcvths.u16.f32','vcvtcc.u16.f32','vcvtlo.u16.f32','vcvtmi.u16.f32','vcvtpl.u16.f32','vcvtvs.u16.f32','vcvtvc.u16.f32','vcvthi.u16.f32','vcvtls.u16.f32','vcvtge.u16.f32','vcvtlt.u16.f32','vcvtgt.u16.f32','vcvtle.u16.f32',
+ 'vcvteq.u16.f64','vcvtne.u16.f64','vcvtcs.u16.f64','vcvths.u16.f64','vcvtcc.u16.f64','vcvtlo.u16.f64','vcvtmi.u16.f64','vcvtpl.u16.f64','vcvtvs.u16.f64','vcvtvc.u16.f64','vcvthi.u16.f64','vcvtls.u16.f64','vcvtge.u16.f64','vcvtlt.u16.f64','vcvtgt.u16.f64','vcvtle.u16.f64',
+ 'vcvteq.u32.f32','vcvtne.u32.f32','vcvtcs.u32.f32','vcvths.u32.f32','vcvtcc.u32.f32','vcvtlo.u32.f32','vcvtmi.u32.f32','vcvtpl.u32.f32','vcvtvs.u32.f32','vcvtvc.u32.f32','vcvthi.u32.f32','vcvtls.u32.f32','vcvtge.u32.f32','vcvtlt.u32.f32','vcvtgt.u32.f32','vcvtle.u32.f32',
+ 'vcvteq.u32.f64','vcvtne.u32.f64','vcvtcs.u32.f64','vcvths.u32.f64','vcvtcc.u32.f64','vcvtlo.u32.f64','vcvtmi.u32.f64','vcvtpl.u32.f64','vcvtvs.u32.f64','vcvtvc.u32.f64','vcvthi.u32.f64','vcvtls.u32.f64','vcvtge.u32.f64','vcvtlt.u32.f64','vcvtgt.u32.f64','vcvtle.u32.f64',
+ 'vcvteq.f16.f32','vcvtne.f16.f32','vcvtcs.f16.f32','vcvths.f16.f32','vcvtcc.f16.f32','vcvtlo.f16.f32','vcvtmi.f16.f32','vcvtpl.f16.f32','vcvtvs.f16.f32','vcvtvc.f16.f32','vcvthi.f16.f32','vcvtls.f16.f32','vcvtge.f16.f32','vcvtlt.f16.f32','vcvtgt.f16.f32','vcvtle.f16.f32',
+ 'vcvteq.f32.s32','vcvtne.f32.s32','vcvtcs.f32.s32','vcvths.f32.s32','vcvtcc.f32.s32','vcvtlo.f32.s32','vcvtmi.f32.s32','vcvtpl.f32.s32','vcvtvs.f32.s32','vcvtvc.f32.s32','vcvthi.f32.s32','vcvtls.f32.s32','vcvtge.f32.s32','vcvtlt.f32.s32','vcvtgt.f32.s32','vcvtle.f32.s32',
+ 'vcvteq.f32.u32','vcvtne.f32.u32','vcvtcs.f32.u32','vcvths.f32.u32','vcvtcc.f32.u32','vcvtlo.f32.u32','vcvtmi.f32.u32','vcvtpl.f32.u32','vcvtvs.f32.u32','vcvtvc.f32.u32','vcvthi.f32.u32','vcvtls.f32.u32','vcvtge.f32.u32','vcvtlt.f32.u32','vcvtgt.f32.u32','vcvtle.f32.u32',
+ 'vcvteq.f32.f16','vcvtne.f32.f16','vcvtcs.f32.f16','vcvths.f32.f16','vcvtcc.f32.f16','vcvtlo.f32.f16','vcvtmi.f32.f16','vcvtpl.f32.f16','vcvtvs.f32.f16','vcvtvc.f32.f16','vcvthi.f32.f16','vcvtls.f32.f16','vcvtge.f32.f16','vcvtlt.f32.f16','vcvtgt.f32.f16','vcvtle.f32.f16',
+ 'vcvteq.f32.f64','vcvtne.f32.f64','vcvtcs.f32.f64','vcvths.f32.f64','vcvtcc.f32.f64','vcvtlo.f32.f64','vcvtmi.f32.f64','vcvtpl.f32.f64','vcvtvs.f32.f64','vcvtvc.f32.f64','vcvthi.f32.f64','vcvtls.f32.f64','vcvtge.f32.f64','vcvtlt.f32.f64','vcvtgt.f32.f64','vcvtle.f32.f64',
+ 'vcvteq.f64.s32','vcvtne.f64.s32','vcvtcs.f64.s32','vcvths.f64.s32','vcvtcc.f64.s32','vcvtlo.f64.s32','vcvtmi.f64.s32','vcvtpl.f64.s32','vcvtvs.f64.s32','vcvtvc.f64.s32','vcvthi.f64.s32','vcvtls.f64.s32','vcvtge.f64.s32','vcvtlt.f64.s32','vcvtgt.f64.s32','vcvtle.f64.s32',
+ 'vcvteq.f64.u32','vcvtne.f64.u32','vcvtcs.f64.u32','vcvths.f64.u32','vcvtcc.f64.u32','vcvtlo.f64.u32','vcvtmi.f64.u32','vcvtpl.f64.u32','vcvtvs.f64.u32','vcvtvc.f64.u32','vcvthi.f64.u32','vcvtls.f64.u32','vcvtge.f64.u32','vcvtlt.f64.u32','vcvtgt.f64.u32','vcvtle.f64.u32',
+ 'vcvteq.f64.f32','vcvtne.f64.f32','vcvtcs.f64.f32','vcvths.f64.f32','vcvtcc.f64.f32','vcvtlo.f64.f32','vcvtmi.f64.f32','vcvtpl.f64.f32','vcvtvs.f64.f32','vcvtvc.f64.f32','vcvthi.f64.f32','vcvtls.f64.f32','vcvtge.f64.f32','vcvtlt.f64.f32','vcvtgt.f64.f32','vcvtle.f64.f32',
+
+ 'vcvtreq.s32.f32','vcvtrne.s32.f32','vcvtrcs.s32.f32','vcvtrhs.s32.f32','vcvtrcc.s32.f32','vcvtrlo.s32.f32','vcvtrmi.s32.f32','vcvtrpl.s32.f32','vcvtrvs.s32.f32','vcvtrvc.s32.f32','vcvtrhi.s32.f32','vcvtrls.s32.f32','vcvtrge.s32.f32','vcvtrlt.s32.f32','vcvtrgt.s32.f32','vcvtrle.s32.f32',
+ 'vcvtreq.s32.f64','vcvtrne.s32.f64','vcvtrcs.s32.f64','vcvtrhs.s32.f64','vcvtrcc.s32.f64','vcvtrlo.s32.f64','vcvtrmi.s32.f64','vcvtrpl.s32.f64','vcvtrvs.s32.f64','vcvtrvc.s32.f64','vcvtrhi.s32.f64','vcvtrls.s32.f64','vcvtrge.s32.f64','vcvtrlt.s32.f64','vcvtrgt.s32.f64','vcvtrle.s32.f64',
+ 'vcvtreq.u32.f32','vcvtrne.u32.f32','vcvtrcs.u32.f32','vcvtrhs.u32.f32','vcvtrcc.u32.f32','vcvtrlo.u32.f32','vcvtrmi.u32.f32','vcvtrpl.u32.f32','vcvtrvs.u32.f32','vcvtrvc.u32.f32','vcvtrhi.u32.f32','vcvtrls.u32.f32','vcvtrge.u32.f32','vcvtrlt.u32.f32','vcvtrgt.u32.f32','vcvtrle.u32.f32',
+ 'vcvtreq.u32.f64','vcvtrne.u32.f64','vcvtrcs.u32.f64','vcvtrhs.u32.f64','vcvtrcc.u32.f64','vcvtrlo.u32.f64','vcvtrmi.u32.f64','vcvtrpl.u32.f64','vcvtrvs.u32.f64','vcvtrvc.u32.f64','vcvtrhi.u32.f64','vcvtrls.u32.f64','vcvtrge.u32.f64','vcvtrlt.u32.f64','vcvtrgt.u32.f64','vcvtrle.u32.f64',
+
+ 'vcvtbeq.f16.f32','vcvtbne.f16.f32','vcvtbcs.f16.f32','vcvtbhs.f16.f32','vcvtbcc.f16.f32','vcvtblo.f16.f32','vcvtbmi.f16.f32','vcvtbpl.f16.f32','vcvtbvs.f16.f32','vcvtbvc.f16.f32','vcvtbhi.f16.f32','vcvtbls.f16.f32','vcvtbge.f16.f32','vcvtblt.f16.f32','vcvtbgt.f16.f32','vcvtble.f16.f32',
+ 'vcvtbeq.f32.f16','vcvtbne.f32.f16','vcvtbcs.f32.f16','vcvtbhs.f32.f16','vcvtbcc.f32.f16','vcvtblo.f32.f16','vcvtbmi.f32.f16','vcvtbpl.f32.f16','vcvtbvs.f32.f16','vcvtbvc.f32.f16','vcvtbhi.f32.f16','vcvtbls.f32.f16','vcvtbge.f32.f16','vcvtblt.f32.f16','vcvtbgt.f32.f16','vcvtble.f32.f16',
+
+ 'vcvtteq.f16.f32','vcvttne.f16.f32','vcvttcs.f16.f32','vcvtths.f16.f32','vcvttcc.f16.f32','vcvttlo.f16.f32','vcvttmi.f16.f32','vcvttpl.f16.f32','vcvttvs.f16.f32','vcvttvc.f16.f32','vcvtthi.f16.f32','vcvttls.f16.f32','vcvttge.f16.f32','vcvttlt.f16.f32','vcvttgt.f16.f32','vcvttle.f16.f32',
+ 'vcvtteq.f32.f16','vcvttne.f32.f16','vcvttcs.f32.f16','vcvtths.f32.f16','vcvttcc.f32.f16','vcvttlo.f32.f16','vcvttmi.f32.f16','vcvttpl.f32.f16','vcvttvs.f32.f16','vcvttvc.f32.f16','vcvtthi.f32.f16','vcvttls.f32.f16','vcvttge.f32.f16','vcvttlt.f32.f16','vcvttgt.f32.f16','vcvttle.f32.f16',
+
+ 'vdiveq.f32','vdivne.f32','vdivcs.f32','vdivhs.f32','vdivcc.f32','vdivlo.f32','vdivmi.f32','vdivpl.f32','vdivvs.f32','vdivvc.f32','vdivhi.f32','vdivls.f32','vdivge.f32','vdivlt.f32','vdivgt.f32','vdivle.f32',
+ 'vdiveq.f64','vdivne.f64','vdivcs.f64','vdivhs.f64','vdivcc.f64','vdivlo.f64','vdivmi.f64','vdivpl.f64','vdivvs.f64','vdivvc.f64','vdivhi.f64','vdivls.f64','vdivge.f64','vdivlt.f64','vdivgt.f64','vdivle.f64',
+
+ 'vmaxeq.f32','vmaxne.f32','vmaxcs.f32','vmaxhs.f32','vmaxcc.f32','vmaxlo.f32','vmaxmi.f32','vmaxpl.f32','vmaxvs.f32','vmaxvc.f32','vmaxhi.f32','vmaxls.f32','vmaxge.f32','vmaxlt.f32','vmaxgt.f32','vmaxle.f32',
+ 'vmineq.f32','vminne.f32','vmincs.f32','vminhs.f32','vmincc.f32','vminlo.f32','vminmi.f32','vminpl.f32','vminvs.f32','vminvc.f32','vminhi.f32','vminls.f32','vminge.f32','vminlt.f32','vmingt.f32','vminle.f32',
+
+ 'vmlaeq.f32','vmlane.f32','vmlacs.f32','vmlahs.f32','vmlacc.f32','vmlalo.f32','vmlami.f32','vmlapl.f32','vmlavs.f32','vmlavc.f32','vmlahi.f32','vmlals.f32','vmlage.f32','vmlalt.f32','vmlagt.f32','vmlale.f32',
+ 'vmlaeq.f64','vmlane.f64','vmlacs.f64','vmlahs.f64','vmlacc.f64','vmlalo.f64','vmlami.f64','vmlapl.f64','vmlavs.f64','vmlavc.f64','vmlahi.f64','vmlals.f64','vmlage.f64','vmlalt.f64','vmlagt.f64','vmlale.f64',
+
+ 'vmlseq.f32','vmlsne.f32','vmlscs.f32','vmlshs.f32','vmlscc.f32','vmlslo.f32','vmlsmi.f32','vmlspl.f32','vmlsvs.f32','vmlsvc.f32','vmlshi.f32','vmlsls.f32','vmlsge.f32','vmlslt.f32','vmlsgt.f32','vmlsle.f32',
+ 'vmlseq.f64','vmlsne.f64','vmlscs.f64','vmlshs.f64','vmlscc.f64','vmlslo.f64','vmlsmi.f64','vmlspl.f64','vmlsvs.f64','vmlsvc.f64','vmlshi.f64','vmlsls.f64','vmlsge.f64','vmlslt.f64','vmlsgt.f64','vmlsle.f64',
+
+ 'vmuleq.f32','vmulne.f32','vmulcs.f32','vmulhs.f32','vmulcc.f32','vmullo.f32','vmulmi.f32','vmulpl.f32','vmulvs.f32','vmulvc.f32','vmulhi.f32','vmulls.f32','vmulge.f32','vmullt.f32','vmulgt.f32','vmulle.f32',
+ 'vmuleq.f64','vmulne.f64','vmulcs.f64','vmulhs.f64','vmulcc.f64','vmullo.f64','vmulmi.f64','vmulpl.f64','vmulvs.f64','vmulvc.f64','vmulhi.f64','vmulls.f64','vmulge.f64','vmullt.f64','vmulgt.f64','vmulle.f64',
+
+ 'vnegeq.f32','vnegne.f32','vnegcs.f32','vneghs.f32','vnegcc.f32','vneglo.f32','vnegmi.f32','vnegpl.f32','vnegvs.f32','vnegvc.f32','vneghi.f32','vnegls.f32','vnegge.f32','vneglt.f32','vneggt.f32','vnegle.f32',
+ 'vnegeq.f64','vnegne.f64','vnegcs.f64','vneghs.f64','vnegcc.f64','vneglo.f64','vnegmi.f64','vnegpl.f64','vnegvs.f64','vnegvc.f64','vneghi.f64','vnegls.f64','vnegge.f64','vneglt.f64','vneggt.f64','vnegle.f64',
+
+ 'vnmlaeq.f32','vnmlane.f32','vnmlacs.f32','vnmlahs.f32','vnmlacc.f32','vnmlalo.f32','vnmlami.f32','vnmlapl.f32','vnmlavs.f32','vnmlavc.f32','vnmlahi.f32','vnmlals.f32','vnmlage.f32','vnmlalt.f32','vnmlagt.f32','vnmlale.f32',
+ 'vnmlaeq.f64','vnmlane.f64','vnmlacs.f64','vnmlahs.f64','vnmlacc.f64','vnmlalo.f64','vnmlami.f64','vnmlapl.f64','vnmlavs.f64','vnmlavc.f64','vnmlahi.f64','vnmlals.f64','vnmlage.f64','vnmlalt.f64','vnmlagt.f64','vnmlale.f64',
+
+ 'vnmlseq.f32','vnmlsne.f32','vnmlscs.f32','vnmlshs.f32','vnmlscc.f32','vnmlslo.f32','vnmlsmi.f32','vnmlspl.f32','vnmlsvs.f32','vnmlsvc.f32','vnmlshi.f32','vnmlsls.f32','vnmlsge.f32','vnmlslt.f32','vnmlsgt.f32','vnmlsle.f32',
+ 'vnmlseq.f64','vnmlsne.f64','vnmlscs.f64','vnmlshs.f64','vnmlscc.f64','vnmlslo.f64','vnmlsmi.f64','vnmlspl.f64','vnmlsvs.f64','vnmlsvc.f64','vnmlshi.f64','vnmlsls.f64','vnmlsge.f64','vnmlslt.f64','vnmlsgt.f64','vnmlsle.f64',
+
+ 'vnmuleq.f64','vnmulne.f64','vnmulcs.f64','vnmulhs.f64','vnmulcc.f64','vnmullo.f64','vnmulmi.f64','vnmulpl.f64','vnmulvs.f64','vnmulvc.f64','vnmulhi.f64','vnmulls.f64','vnmulge.f64','vnmullt.f64','vnmulgt.f64','vnmulle.f64',
+ 'vnmuleq.f32','vnmulne.f32','vnmulcs.f32','vnmulhs.f32','vnmulcc.f32','vnmullo.f32','vnmulmi.f32','vnmulpl.f32','vnmulvs.f32','vnmulvc.f32','vnmulhi.f32','vnmulls.f32','vnmulge.f32','vnmullt.f32','vnmulgt.f32','vnmulle.f32',
+
+ 'vpaddeq.f32','vpaddne.f32','vpaddcs.f32','vpaddhs.f32','vpaddcc.f32','vpaddlo.f32','vpaddmi.f32','vpaddpl.f32','vpaddvs.f32','vpaddvc.f32','vpaddhi.f32','vpaddls.f32','vpaddge.f32','vpaddlt.f32','vpaddgt.f32','vpaddle.f32',
+
+ 'vpmaxeq.f32','vpmaxne.f32','vpmaxcs.f32','vpmaxhs.f32','vpmaxcc.f32','vpmaxlo.f32','vpmaxmi.f32','vpmaxpl.f32','vpmaxvs.f32','vpmaxvc.f32','vpmaxhi.f32','vpmaxls.f32','vpmaxge.f32','vpmaxlt.f32','vpmaxgt.f32','vpmaxle.f32',
+ 'vpmineq.f32','vpminne.f32','vpmincs.f32','vpminhs.f32','vpmincc.f32','vpminlo.f32','vpminmi.f32','vpminpl.f32','vpminvs.f32','vpminvc.f32','vpminhi.f32','vpminls.f32','vpminge.f32','vpminlt.f32','vpmingt.f32','vpminle.f32',
+
+ 'vrecpeeq.u32','vrecpene.u32','vrecpecs.u32','vrecpehs.u32','vrecpecc.u32','vrecpelo.u32','vrecpemi.u32','vrecpepl.u32','vrecpevs.u32','vrecpevc.u32','vrecpehi.u32','vrecpels.u32','vrecpege.u32','vrecpelt.u32','vrecpegt.u32','vrecpele.u32',
+ 'vrecpeeq.f32','vrecpene.f32','vrecpecs.f32','vrecpehs.f32','vrecpecc.f32','vrecpelo.f32','vrecpemi.f32','vrecpepl.f32','vrecpevs.f32','vrecpevc.f32','vrecpehi.f32','vrecpels.f32','vrecpege.f32','vrecpelt.f32','vrecpegt.f32','vrecpele.f32',
+ 'vrecpseq.f32','vrecpsne.f32','vrecpscs.f32','vrecpshs.f32','vrecpscc.f32','vrecpslo.f32','vrecpsmi.f32','vrecpspl.f32','vrecpsvs.f32','vrecpsvc.f32','vrecpshi.f32','vrecpsls.f32','vrecpsge.f32','vrecpslt.f32','vrecpsgt.f32','vrecpsle.f32',
+
+ 'vrsqrteeq.u32','vrsqrtene.u32','vrsqrtecs.u32','vrsqrtehs.u32','vrsqrtecc.u32','vrsqrtelo.u32','vrsqrtemi.u32','vrsqrtepl.u32','vrsqrtevs.u32','vrsqrtevc.u32','vrsqrtehi.u32','vrsqrtels.u32','vrsqrtege.u32','vrsqrtelt.u32','vrsqrtegt.u32','vrsqrtele.u32',
+ 'vrsqrteeq.f32','vrsqrtene.f32','vrsqrtecs.f32','vrsqrtehs.f32','vrsqrtecc.f32','vrsqrtelo.f32','vrsqrtemi.f32','vrsqrtepl.f32','vrsqrtevs.f32','vrsqrtevc.f32','vrsqrtehi.f32','vrsqrtels.f32','vrsqrtege.f32','vrsqrtelt.f32','vrsqrtegt.f32','vrsqrtele.f32',
+ 'vrsqrtseq.f32','vrsqrtsne.f32','vrsqrtscs.f32','vrsqrtshs.f32','vrsqrtscc.f32','vrsqrtslo.f32','vrsqrtsmi.f32','vrsqrtspl.f32','vrsqrtsvs.f32','vrsqrtsvc.f32','vrsqrtshi.f32','vrsqrtsls.f32','vrsqrtsge.f32','vrsqrtslt.f32','vrsqrtsgt.f32','vrsqrtsle.f32',
+
+ 'vsqrteq.f32','vsqrtne.f32','vsqrtcs.f32','vsqrths.f32','vsqrtcc.f32','vsqrtlo.f32','vsqrtmi.f32','vsqrtpl.f32','vsqrtvs.f32','vsqrtvc.f32','vsqrthi.f32','vsqrtls.f32','vsqrtge.f32','vsqrtlt.f32','vsqrtgt.f32','vsqrtle.f32',
+ 'vsqrteq.f64','vsqrtne.f64','vsqrtcs.f64','vsqrths.f64','vsqrtcc.f64','vsqrtlo.f64','vsqrtmi.f64','vsqrtpl.f64','vsqrtvs.f64','vsqrtvc.f64','vsqrthi.f64','vsqrtls.f64','vsqrtge.f64','vsqrtlt.f64','vsqrtgt.f64','vsqrtle.f64',
+
+ 'vsubeq.f32','vsubne.f32','vsubcs.f32','vsubhs.f32','vsubcc.f32','vsublo.f32','vsubmi.f32','vsubpl.f32','vsubvs.f32','vsubvc.f32','vsubhi.f32','vsubls.f32','vsubge.f32','vsublt.f32','vsubgt.f32','vsuble.f32',
+ 'vsubeq.f64','vsubne.f64','vsubcs.f64','vsubhs.f64','vsubcc.f64','vsublo.f64','vsubmi.f64','vsubpl.f64','vsubvs.f64','vsubvc.f64','vsubhi.f64','vsubls.f64','vsubge.f64','vsublt.f64','vsubgt.f64','vsuble.f64'
+ ),
+ /* Registers */
+ 35 => array(
+ /* General-Purpose Registers */
+ 'r0','r1','r2','r3','r4','r5','r6','r7',
+ 'r8','r9','r10','r11','r12','r13','r14','r15',
+ /* Scratch Registers */
+ 'a1','a2','a3','a4',
+ /* Variable Registers */
+ 'v1','v2','v3','v4','v5','v6','v7','v8',
+ /* Other Synonims for General-Purpose Registers */
+ 'sb','sl','fp','ip','sp','lr','pc',
+ /* WMMX Data Registers */
+ 'wr0','wr1','wr2','wr3','wr4','wr5','wr6','wr7',
+ 'wr8','wr9','wr10','wr11','wr12','wr13','wr14','wr15',
+ /* WMMX Control Registers */
+ 'wcid','wcon','wcssf','wcasf',
+ /* WMMX-Mapped General-Purpose Registers */
+ 'wcgr0','wcgr1','wcgr2','wcgr3',
+ /* VFPv3 Registers */
+ 's0','s1','s2','s3','s4','s5','s6','s7',
+ 's8','s9','s10','s11','s12','s13','s14','s15',
+ 's16','s17','s18','s19','s20','s21','s22','s23',
+ 's24','s25','s26','s27','s28','s29','s30','s31',
+ /* VFPv3/NEON Registers */
+ 'd0','d1','d2','d3','d4','d5','d6','d7',
+ 'd8','d9','d10','d11','d12','d13','d14','d15',
+ 'd16','d17','d18','d19','d20','d21','d22','d23',
+ 'd24','d25','d26','d27','d28','d29','d30','d31',
+ /* NEON Registers */
+ 'q0','q1','q2','q3','q4','q5','q6','q7',
+ 'q8','q9','q10','q11','q12','q13','q14','q15'
+ )
+ ),
+ 'SYMBOLS' => array(
+ '[', ']', '(', ')',
+ '+', '-', '*', '/', '%',
+ '.', ',', ';', ':'
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false,
+ 1 => false,
+ 2 => false,
+ 3 => false,
+ 4 => false,
+ 5 => false,
+ 6 => false,
+ 7 => false,
+ 8 => false,
+ 9 => false,
+ 10 => false,
+ 11 => false,
+ 12 => false,
+ 13 => false,
+ 14 => false,
+ 15 => false,
+ 16 => false,
+ 17 => false,
+ 18 => false,
+ 19 => false,
+ 20 => false,
+ 21 => false,
+ 22 => false,
+ 23 => false,
+ 24 => false,
+ 25 => false,
+ 26 => false,
+ 27 => false,
+ 28 => false,
+ 29 => false,
+ 30 => false,
+ 31 => false,
+ 32 => false,
+ 33 => false,
+ 34 => false,
+ 35 => false
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ /* Unconditional Data Processing Instructions */
+ 1 => 'color: #00007f; font-weight: normal; font-style: normal;',
+ /* Conditional Data Processing Instructions */
+ 2 => 'color: #00007f; font-weight: normal; font-style: italic;',
+ /* Unconditional Memory Access Instructions */
+ 3 => 'color: #00007f; font-weight: normal; font-style: normal;',
+ /* Conditional Memory Access Instructions */
+ 4 => 'color: #00007f; font-weight: normal; font-style: italic;',
+ /* Unconditional Flags Changing Instructions */
+ 5 => 'color: #00007f; font-weight: bold; font-style: normal;',
+ /* Conditional Flags Changing Instructions */
+ 6 => 'color: #00007f; font-weight: bold; font-style: italic;',
+ /* Unconditional Flow Control Instructions */
+ 7 => 'color: #0000ff; font-weight: normal; font-style: normal;',
+ /* Conditional Flow Control Instructions */
+ 8 => 'color: #0000ff; font-weight: normal; font-style: italic;',
+ /* Unconditional Syncronization Instructions */
+ 9 => 'color: #00007f; font-weight: normal; font-style: normal;',
+ /* Conditional Syncronization Instructions */
+ 10 => 'color: #00007f; font-weight: normal; font-style: italic;',
+ /* Unonditional ARMv6 SIMD */
+ 11 => 'color: #b00040; font-weight: normal; font-style: normal;',
+ /* Conditional ARMv6 SIMD */
+ 12 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Unconditional Coprocessor Instructions */
+ 13 => 'color: #00007f; font-weight: normal; font-style: normal;',
+ /* Conditional Coprocessor Instructions */
+ 14 => 'color: #00007f; font-weight: bold; font-style: italic;',
+ /* Unconditional System Instructions */
+ 15 => 'color: #00007f; font-weight: normal; font-style: normal;',
+ /* Conditional System Instructions */
+ 16 => 'color: #00007f; font-weight: bold; font-style: italic;',
+ /* Unconditional WMMX/WMMX2 SIMD Instructions */
+ 17 => 'color: #b00040; font-weight: normal; font-style: normal;',
+ /* Conditional WMMX/WMMX2 SIMD Instructions */
+ 18 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Unconditional VFPv3 & NEON SIMD Memory Access Instructions */
+ 19 => 'color: #b00040; font-weight: normal; font-style: normal;',
+ /* Unconditional NEON SIMD Logical Instructions */
+ 20 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Unconditional NEON SIMD ARM Registers Interop Instructions */
+ 21 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Unconditional NEON SIMD Bit/Byte-Level Instructions */
+ 22 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Unconditional NEON SIMD Universal Integer Instructions */
+ 23 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Unconditional NEON SIMD Signed Integer Instructions */
+ 24 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Unconditional NEON SIMD Unsigned Integer Instructions */
+ 25 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Unconditional VFPv3 & NEON SIMD Floating-Point Instructions */
+ 26 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Conditional VFPv3 & NEON SIMD Memory Access Instructions */
+ 27 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Conditional NEON SIMD Logical Instructions */
+ 28 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Conditional NEON SIMD ARM Registers Interop Instructions */
+ 29 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Conditional NEON SIMD Bit/Byte-Level Instructions */
+ 30 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Conditional NEON SIMD Universal Integer Instructions */
+ 31 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Conditional NEON SIMD Signed Integer Instructions */
+ 32 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Conditional NEON SIMD Unsigned Integer Instructions */
+ 33 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Conditional VFPv3 & NEON SIMD Floating-Point Instructions */
+ 34 => 'color: #b00040; font-weight: normal; font-style: italic;',
+ /* Registers */
+ 35 => 'color: #46aa03; font-weight: bold;'
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #666666; font-style: italic;',
+ 2 => 'color: #adadad; font-style: italic;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #000099; font-weight: bold;'
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #009900; font-weight: bold;'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #7f007f;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #ff0000;'
+ ),
+ 'METHODS' => array(
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color: #339933;'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'SCRIPT' => array(
+ )
+ ),
+ 'URLS' => array(
+ 1 => '',
+ 2 => '',
+ 3 => '',
+ 4 => '',
+ 5 => '',
+ 6 => '',
+ 7 => '',
+ 8 => '',
+ 9 => '',
+ 10 => '',
+ 11 => '',
+ 12 => '',
+ 13 => '',
+ 14 => '',
+ 15 => '',
+ 16 => '',
+ 17 => '',
+ 18 => '',
+ 19 => '',
+ 20 => '',
+ 21 => '',
+ 22 => '',
+ 23 => '',
+ 24 => '',
+ 25 => '',
+ 26 => '',
+ 27 => '',
+ 28 => '',
+ 29 => '',
+ 30 => '',
+ 31 => '',
+ 32 => '',
+ 33 => '',
+ 34 => '',
+ 35 => ''
+ ),
+ 'NUMBERS' =>
+ GESHI_NUMBER_BIN_PREFIX_PERCENT |
+ GESHI_NUMBER_BIN_SUFFIX |
+ GESHI_NUMBER_HEX_PREFIX |
+ GESHI_NUMBER_HEX_SUFFIX |
+ GESHI_NUMBER_OCT_SUFFIX |
+ GESHI_NUMBER_INT_BASIC |
+ GESHI_NUMBER_FLT_NONSCI |
+ GESHI_NUMBER_FLT_NONSCI_F |
+ GESHI_NUMBER_FLT_SCI_ZERO,
+ 'OOLANG' => false,
+ 'OBJECT_SPLITTERS' => array(
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ ),
+ 'TAB_WIDTH' => 8,
+ 'PARSER_CONTROL' => array(
+ 'KEYWORDS' => array(
+ 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])",
+ 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%])"
+ )
+ )
+);
+
+?> \ No newline at end of file
diff --git a/inc/geshi/asm.php b/inc/geshi/asm.php
index 2093d86b8..dd0a7ec50 100644
--- a/inc/geshi/asm.php
+++ b/inc/geshi/asm.php
@@ -3,15 +3,56 @@
* asm.php
* -------
* Author: Tux (tux@inmail.cz)
- * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Copyright: (c) 2004 Tux (http://tux.a4.cz/),
+ * 2004-2009 Nigel McNie (http://qbnz.com/highlighter),
+ * 2009-2011 Benny Baumann (http://qbnz.com/highlighter),
+ * 2011 Dennis Yurichev (dennis@conus.info),
+ * 2011 Marat Dukhan (mdukhan3.at.gatech.dot.edu)
+ * Release Version: 1.0.8.11
* Date Started: 2004/07/27
*
* x86 Assembler language file for GeSHi.
- * Words are from SciTe configuration file (based on NASM syntax)
+ * Based on the following documents:
+ * - "Intel64 and IA-32 Architectures Programmer's Reference Manual
+ * Volume 2 (2A & 2B): Instructions Set Reference, A-Z",
+ * Order Number 25383-039US, May 2011
+ * - "Intel Advanced Vector Extensions Programming Reference",
+ * Order Number 319433-011, June 2011
+ * - "AMD64 Architecture Programmer's Manual Volume 3:
+ * General-Purpose and System Instructions", Publication No. 24594,
+ * Revision 3.15, November 2009
+ * - "AMD64 Architecture Programmer's Manual Volume 4:
+ * 128-Bit and 256-Bit Media Instructions", Publication No. 26568,
+ * Revision 3.12, May 2011
+ * - "AMD64 Architecture Programmer's Manual Volume 5:
+ * 64-Bit Media and x87 Floating-Point Instructions",
+ * Publication No. 26569, Revision 3.11, December 2009
+ * - "AMD64 Technology Lightweight Profiling Specification",
+ * Publication No. 43724, Revision 3.08, August 2010
+ * - "Application Note 108: Cyrix Extended MMX Instruction Set"
+ * - "VIA Padlock Programming Guide", 3rd May 2005
+ * - http://en.wikipedia.org/wiki/X86_instruction_listings
+ * - NASM 2.10rc8 Online Documenation at
+ * http://www.nasm.us/xdoc/2.10rc8/html/nasmdoc0.html
+ * Color scheme is taken from SciTE. Previous versions of this file
+ * also used words from SciTE configuration file (based on NASM syntax)
*
* CHANGES
* -------
+ * 2011/10/07
+ * - Rearranged instructions and registers into groups
+ * - Updated to support the following extensions
+ * - CMOV, BMI1, BMI2, TBM, FSGSBASE
+ * - LZCNT, TZCNT, POPCNT, MOVBE, CRC32
+ * - MMX, MMX+, EMMX
+ * - 3dnow!, 3dnow!+, 3dnow! Geode, 3dnow! Prefetch
+ * - SSE, SSE2, SSE3, SSSE3, SSE4A, SSE4.1, SSE4.2
+ * - AVX, AVX2, XOP, FMA3, FMA4, CVT16
+ * - VMX, SVM
+ * - AES, PCLMULQDQ, Padlock, RDRAND
+ * - Updated NASM macros and directives
+ * 2010/07/01 (1.0.8.11)
+ * - Added MMX/SSE/new x86-64 registers, MMX/SSE (up to 4.2) instructions
* 2008/05/23 (1.0.7.22)
* - Added description of extra language features (SF#1970248)
* 2004/11/27 (1.0.2)
@@ -55,26 +96,71 @@ $language_data = array (
'QUOTEMARKS' => array("'", '"'),
'ESCAPE_CHAR' => '',
'KEYWORDS' => array(
- /*CPU*/
+ /* General-Purpose */
1 => array(
- 'aaa','aad','aam','aas','adc','add','and','call','cbw','clc','cld','cli','cmc','cmp',
- 'cmps','cmpsb','cmpsw','cwd','daa','das','dec','div','esc','hlt','idiv','imul','in','inc',
- 'int','into','iret','ja','jae','jb','jbe','jc','jcxz','je','jg','jge','jl','jle','jmp',
- 'jna','jnae','jnb','jnbe','jnc','jne','jng','jnge','jnl','jnle','jno','jnp','jns','jnz',
- 'jo','jp','jpe','jpo','js','jz','lahf','lds','lea','les','lods','lodsb','lodsw','loop',
- 'loope','loopew','loopne','loopnew','loopnz','loopnzw','loopw','loopz','loopzw','mov',
- 'movs','movsb','movsw','mul','neg','nop','not','or','out','pop','popf','push','pushf',
- 'rcl','rcr','ret','retf','retn','rol','ror','sahf','sal','sar','sbb','scas','scasb','scasw',
- 'shl','shr','stc','std','sti','stos','stosb','stosw','sub','test','wait','xchg','xlat',
- 'xlatb','xor','bound','enter','ins','insb','insw','leave','outs','outsb','outsw','popa','pusha','pushw',
- 'arpl','lar','lsl','sgdt','sidt','sldt','smsw','str','verr','verw','clts','lgdt','lidt','lldt','lmsw','ltr',
- 'bsf','bsr','bt','btc','btr','bts','cdq','cmpsd','cwde','insd','iretd','iretdf','iretf',
- 'jecxz','lfs','lgs','lodsd','loopd','looped','loopned','loopnzd','loopzd','lss','movsd',
- 'movsx','movzx','outsd','popad','popfd','pushad','pushd','pushfd','scasd','seta','setae',
- 'setb','setbe','setc','sete','setg','setge','setl','setle','setna','setnae','setnb','setnbe',
- 'setnc','setne','setng','setnge','setnl','setnle','setno','setnp','setns','setnz','seto','setp',
- 'setpe','setpo','sets','setz','shld','shrd','stosd','bswap','cmpxchg','invd','invlpg','wbinvd','xadd','lock',
- 'rep','repe','repne','repnz','repz'
+ /* BCD instructions */
+ 'aaa','aad','aam','aas','daa','das',
+ /* Control flow instructions */
+ 'ja','jae','jb','jbe','jc','je','jg','jge','jl','jle','jmp','jna',
+ 'jnae','jnb','jnbe','jnc','jne','jng','jnge','jnl','jnle','jno','jnp','jns','jnz',
+ 'jo','jp','jpe','jpo','js','jz','jcxz','jecxz','jrcxz','loop','loope','loopne',
+ 'call','ret','enter','leave','syscall','sysenter','int','into',
+ /* Predicate instructions */
+ 'seta','setae','setb','setbe','setc','sete','setg','setge','setl','setle','setna',
+ 'setnae','setnb','setnbe','setnc','setne','setng','setnge','setnl','setnle','setno',
+ 'setnp','setns','setnz','seto','setp','setpe','setpo','sets','setz','salc',
+ /* Conditional move instructions */
+ 'cmovo','cmovno','cmovb','cmovc','cmovnae','cmovae','cmovnb','cmovnc','cmove','cmovz',
+ 'cmovne','cmovnz','cmovbe','cmovna','cmova','cmovnbe','cmovs','cmovns','cmovp','cmovpe',
+ 'cmovnp','cmovpo','cmovl','cmovnge','cmovge','cmovnl','cmovle','cmovng','cmovg','cmovnle',
+ /* ALU instructions */
+ 'add','sub','adc','sbb','neg','cmp','inc','dec','and','or','xor','not','test',
+ 'shl','shr','sal','sar','shld','shrd','rol','ror','rcl','rcr',
+ 'cbw','cwd','cwde','cdq','cdqe','cqo','bsf','bsr','bt','btc','btr','bts',
+ 'idiv','imul','div','mul','bswap','nop',
+ /* Memory instructions */
+ 'lea','mov','movsx','movsxd','movzx','xlatb','bound','xchg','xadd','cmpxchg','cmpxchg8b','cmpxchg16b',
+ /* Stack instructions */
+ 'push','pop','pusha','popa','pushad','popad','pushf','popf','pushfd','popfd','pushfq','popfq',
+ /* EFLAGS manipulations instructions */
+ 'clc','cld','stc','std','cmc','lahf','sahf',
+ /* Prefix instructions */
+ 'lock','rep','repe','repz','repne','repnz',
+ /* String instructions */
+ 'cmps','cmpsb','cmpsw',/*'cmpsd',*/ 'cmpsq', /*CMPSD conflicts with the SSE2 instructions of the same name*/
+ 'movs','movsb','movsw',/*'movsd',*/ 'movsq', /*MOVSD conflicts with the SSE2 instructions of the same name*/
+ 'scas','scasb','scasw','scasd','scasq',
+ 'stos','stosb','stosw','stosd','stosq',
+ 'lods','lodsb','lodsw','lodsd','lodsq',
+ /* Information instructions */
+ 'cpuid','rdtsc','rdtscp','rdpmc','xgetbv',
+ 'sgdt','sidt','sldt','smsw','str','lar',
+ /* LWP instructions */
+ 'llwpcb','slwpcb','lwpval','lwpins',
+ /* Instructions from miscellaneous extensions */
+ 'crc32','popcnt','lzcnt','tzcnt','movbe','pclmulqdq','rdrand',
+ /* FSGSBASE instructions */
+ 'rdfsbase','rdgsbase','wrfsbase','wrgsbase',
+ /* BMI1 instructions */
+ 'andn','bextr','blsi','blsmk','blsr',
+ /* BMI2 instructions */
+ 'bzhi','mulx','pdep','pext','rorx','sarx','shlx','shrx',
+ /* TBM instructions */
+ 'blcfill','blci','blcic','blcmsk','blcs','blsfill','blsic','t1mskc','tzmsk',
+ /* Legacy instructions */
+ 'arpl','ud2','lds','les','lfs','lgs','lss','lsl','verr','verw',
+ /* Privileged instructions */
+ 'cli','sti','clts','hlt','rsm','in','insb','insw','insd',
+ 'out','outsb','outsw','outsd','clflush','invd','invlpg','invpcid','wbinvd',
+ 'iret','iretd','iretq','sysexit','sysret','lidt','lgdt','lldt','lmsw','ltr',
+ 'monitor','mwait','rdmsr','wrmsr','swapgs',
+ 'fxsave','fxsave64','fxrstor','fxrstor64',
+ 'xsave','xsaveopt','xrstor','xsetbv','getsec',
+ /* VMX instructions */
+ 'invept','invvpid','vmcall','vmclear','vmlaunch','vmresume',
+ 'vmptrld','vmptrst','vmread','vmwrite','vmxoff','vmxon',
+ /* SVM (AMD-V) instructions */
+ 'invlpga','skinit','clgi','stgi','vmload','vmsave','vmmcall','vmrun'
),
/*FPU*/
2 => array(
@@ -87,56 +173,350 @@ $language_data = array (
'fsavew','fscale','fsqrt','fst','fstcw','fstenv','fstenvw','fstp','fstsw','fsub','fsubp',
'fsubr','fsubrp','ftst','fwait','fxam','fxch','fxtract','fyl2x','fyl2xp1',
'fsetpm','fcos','fldenvd','fnsaved','fnstenvd','fprem1','frstord','fsaved','fsin','fsincos',
- 'fstenvd','fucom','fucomp','fucompp'
+ 'fstenvd','fucom','fucomp','fucompp','ffreep',
+ /* FCMOV instructions */
+ 'fcomi','fcomip','fucomi','fucomip',
+ 'fcmovb','fcmove','fcmovbe','fcmovu','fcmovnb','fcmovne','fcmovnbe','fcmovnu',
+ /* SSE3 instructions */
+ 'fisttp'
),
- /*registers*/
+ /*SIMD*/
3 => array(
- 'ah','al','ax','bh','bl','bp','bx','ch','cl','cr0','cr2','cr3','cs','cx','dh','di','dl',
- 'dr0','dr1','dr2','dr3','dr6','dr7','ds','dx','eax','ebp','ebx','ecx','edi','edx',
- 'es','esi','esp','fs','gs','si','sp','ss','st','tr3','tr4','tr5','tr6','tr7'
+ /* MMX instructions */
+ 'movd','movq',
+ 'paddb','paddw','paddd','paddsb','paddsw','paddusb','paddusw',
+ 'psubb','psubw','psubd','psubsb','psubsw','psubusb','psubusw',
+ 'pand','pandn','por','pxor',
+ 'pcmpeqb','pcmpeqd','pcmpeqw','pcmpgtb','pcmpgtd','pcmpgtw',
+ 'pmaddwd','pmulhw','pmullw',
+ 'psllw','pslld','psllq','psrlw','psrld','psrlq','psraw','psrad',
+ 'packuswb','packsswb','packssdw',
+ 'punpcklbw','punpcklwd','punpckldq','punpckhbw','punpckhwd','punpckhdq',
+ 'emms',
+ /* MMX+ instructions */
+ 'pavgb','pavgw',
+ 'pextrw','pinsrw','pmovmskb',
+ 'pmaxsw','pmaxub','pminsw','pminub',
+ 'pmulhuw','psadbw','pshufw',
+ 'prefetchnta','prefetcht0','prefetcht1','prefetcht2',
+ 'maskmovq','movntq','sfence',
+ /* EMMX instructions (only available on Cyrix MediaGXm) */
+ 'paddsiw','psubsiw',
+ /*'pmulhrw',*/'pmachriw','pmulhriw', /* PMULHRW conflicts with the 3dnow! instruction of the same name */
+ 'pmagw','pdistib','paveb',
+ 'pmvzb','pmvnzb','pmvlzb','pmvgezb',
+ /* 3dnow! instructions! */
+ 'pfacc','pfadd','pfsub','pfsubr','pfmul',
+ 'pfcmpeq','pfcmpge','pfcmpgt',
+ 'pfmax','pfmin',
+ 'pfrcp','pfrcpit1','pfrcpit2','pfrsqit1','pfrsqrt',
+ 'pi2fd','pf2id',
+ 'pavgusb','pmulhrw',
+ 'femms',
+ /* 3dnow!+ instructions */
+ 'pfnacc','pfpnacc','pi2fw','pf2iw','pswapd',
+ /* 3dnow! Geode instructions */
+ 'pfrsqrtv','pfrcpv',
+ /* 3dnow! Prefetch instructions */
+ 'prefetch','prefetchw',
+ /* SSE instructions */
+ 'addss','addps','subss','subps',
+ 'mulss','mulps','divss','divps','sqrtss','sqrtps',
+ 'rcpss','rcpps','rsqrtss','rsqrtps',
+ 'maxss','maxps','minss','minps',
+ 'cmpss','comiss','ucomiss','cmpps',
+ 'cmpeqss','cmpltss','cmpless','cmpunordss','cmpneqss','cmpnltss','cmpnless','cmpordss',
+ 'cmpeqps','cmpltps','cmpleps','cmpunordps','cmpneqps','cmpnltps','cmpnleps','cmpordps',
+ 'andnps','andps','orps','xorps',
+ 'cvtsi2ss','cvtss2si','cvttss2si',
+ 'cvtpi2ps','cvtps2pi','cvttps2pi',
+ 'movss','movlps','movhps','movlhps','movhlps','movaps','movups','movntps','movmskps',
+ 'shufps','unpckhps','unpcklps',
+ 'ldmxcsr','stmxcsr',
+ /* SSE2 instructions */
+ 'addpd','addsd','subpd','subsd',
+ 'mulsd','mulpd','divsd','divpd','sqrtsd','sqrtpd',
+ 'maxsd','maxpd','minsd','minpd',
+ 'cmpsd','comisd','ucomisd','cmppd',
+ 'cmpeqsd','cmpltsd','cmplesd','cmpunordsd','cmpneqsd','cmpnltsd','cmpnlesd','cmpordsd',
+ 'cmpeqpd','cmpltpd','cmplepd','cmpunordpd','cmpneqpd','cmpnltpd','cmpnlepd','cmpordpd',
+ 'andnpd','andpd','orpd','xorpd',
+ 'cvtsd2ss','cvtpd2ps','cvtss2sd','cvtps2pd',
+ 'cvtdq2ps','cvtps2dq','cvttps2dq',
+ 'cvtdq2pd','cvtpd2dq','cvttpd2dq',
+ 'cvtsi2sd','cvtsd2si','cvttsd2si',
+ 'cvtpi2pd','cvtpd2pi','cvttpd2pi',
+ 'movsd','movlpd','movhpd','movapd','movupd','movntpd','movmskpd',
+ 'shufpd','unpckhpd','unpcklpd',
+ 'movnti','movdqa','movdqu','movntdq','maskmovdqu',
+ 'movdq2q','movq2dq',
+ 'paddq','psubq','pmuludq',
+ 'pslldq','psrldq',
+ 'punpcklqdq','punpckhqdq',
+ 'pshufhw','pshuflw','pshufd',
+ 'lfence','mfence',
+ /* SSE3 instructions */
+ 'addsubps','addsubpd',
+ 'haddps','haddpd','hsubps','hsubpd',
+ 'movsldup','movshdup','movddup',
+ 'lddqu',
+ /* SSSE3 instructions */
+ 'psignb','psignw','psignd',
+ 'pabsb','pabsw','pabsd',
+ 'palignr','pshufb',
+ 'pmulhrsw','pmaddubsw',
+ 'phaddw','phaddd','phaddsw',
+ 'phsubw','phsubd','phsubsw',
+ /* SSE4A instructions */
+ 'extrq','insertq','movntsd','movntss',
+ /* SSE4.1 instructions */
+ 'mpsadbw','phminposuw',
+ 'pmuldq','pmulld',
+ 'dpps','dppd',
+ 'blendps','blendpd','blendvps','blendvpd','pblendvb','pblendw',
+ 'pmaxsb','pmaxuw','pmaxsd','pmaxud','pminsb','pminuw','pminsd','pminud',
+ 'roundps','roundss','roundpd','roundsd',
+ 'insertps','pinsrb','pinsrd','pinsrq',
+ 'extractps','pextrb','pextrd','pextrq',
+ 'pmovsxbw','pmovsxbd','pmovsxbq','pmovsxwd','pmovsxwq','pmovsxdq',
+ 'pmovzxbw','pmovzxbd','pmovzxbq','pmovzxwd','pmovzxwq','pmovzxdq',
+ 'ptest',
+ 'pcmpeqq',
+ 'packusdw',
+ 'movntdqa',
+ /* SSE4.2 instructions */
+ 'pcmpgtq',
+ 'pcmpestri','pcmpestrm','pcmpistri','pcmpistrm',
+ /* AES instructions */
+ 'aesenc','aesenclast','aesdec','aesdeclast','aeskeygenassist','aesimc',
+ /* VIA Padlock instructions */
+ 'xcryptcbc','xcryptcfb','xcryptctr','xcryptecb','xcryptofb',
+ 'xsha1','xsha256','montmul','xstore',
+ /* AVX instructions */
+ 'vaddss','vaddps','vaddsd','vaddpd','vsubss','vsubps','vsubsd','vsubpd',
+ 'vaddsubps','vaddsubpd',
+ 'vhaddps','vhaddpd','vhsubps','vhsubpd',
+ 'vmulss','vmulps','vmulsd','vmulpd',
+ 'vmaxss','vmaxps','vmaxsd','vmaxpd','vminss','vminps','vminsd','vminpd',
+ 'vandps','vandpd','vandnps','vandnpd','vorps','vorpd','vxorps','vxorpd',
+ 'vblendps','vblendpd','vblendvps','vblendvpd',
+ 'vcmpss','vcomiss','vucomiss','vcmpsd','vcomisd','vucomisd','vcmpps','vcmppd',
+ 'vcmpeqss','vcmpltss','vcmpless','vcmpunordss','vcmpneqss','vcmpnltss','vcmpnless','vcmpordss',
+ 'vcmpeq_uqss','vcmpngess','vcmpngtss','vcmpfalsess','vcmpneq_oqss','vcmpgess','vcmpgtss','vcmptruess',
+ 'vcmpeq_osss','vcmplt_oqss','vcmple_oqss','vcmpunord_sss','vcmpneq_usss','vcmpnlt_uqss','vcmpnle_uqss','vcmpord_sss',
+ 'vcmpeq_usss','vcmpnge_uqss','vcmpngt_uqss','vcmpfalse_osss','vcmpneq_osss','vcmpge_oqss','vcmpgt_oqss','vcmptrue_usss',
+ 'vcmpeqps','vcmpltps','vcmpleps','vcmpunordps','vcmpneqps','vcmpnltps','vcmpnleps','vcmpordps',
+ 'vcmpeq_uqps','vcmpngeps','vcmpngtps','vcmpfalseps','vcmpneq_oqps','vcmpgeps','vcmpgtps','vcmptrueps',
+ 'vcmpeq_osps','vcmplt_oqps','vcmple_oqps','vcmpunord_sps','vcmpneq_usps','vcmpnlt_uqps','vcmpnle_uqps','vcmpord_sps',
+ 'vcmpeq_usps','vcmpnge_uqps','vcmpngt_uqps','vcmpfalse_osps','vcmpneq_osps','vcmpge_oqps','vcmpgt_oqps','vcmptrue_usps',
+ 'vcmpeqsd','vcmpltsd','vcmplesd','vcmpunordsd','vcmpneqsd','vcmpnltsd','vcmpnlesd','vcmpordsd',
+ 'vcmpeq_uqsd','vcmpngesd','vcmpngtsd','vcmpfalsesd','vcmpneq_oqsd','vcmpgesd','vcmpgtsd','vcmptruesd',
+ 'vcmpeq_ossd','vcmplt_oqsd','vcmple_oqsd','vcmpunord_ssd','vcmpneq_ussd','vcmpnlt_uqsd','vcmpnle_uqsd','vcmpord_ssd',
+ 'vcmpeq_ussd','vcmpnge_uqsd','vcmpngt_uqsd','vcmpfalse_ossd','vcmpneq_ossd','vcmpge_oqsd','vcmpgt_oqsd','vcmptrue_ussd',
+ 'vcmpeqpd','vcmpltpd','vcmplepd','vcmpunordpd','vcmpneqpd','vcmpnltpd','vcmpnlepd','vcmpordpd',
+ 'vcmpeq_uqpd','vcmpngepd','vcmpngtpd','vcmpfalsepd','vcmpneq_oqpd','vcmpgepd','vcmpgtpd','vcmptruepd',
+ 'vcmpeq_ospd','vcmplt_oqpd','vcmple_oqpd','vcmpunord_spd','vcmpneq_uspd','vcmpnlt_uqpd','vcmpnle_uqpd','vcmpord_spd',
+ 'vcmpeq_uspd','vcmpnge_uqpd','vcmpngt_uqpd','vcmpfalse_ospd','vcmpneq_ospd','vcmpge_oqpd','vcmpgt_oqpd','vcmptrue_uspd',
+ 'vcvtsd2ss','vcvtpd2ps','vcvtss2sd','vcvtps2pd',
+ 'vcvtsi2ss','vcvtss2si','vcvttss2si',
+ 'vcvtpi2ps','vcvtps2pi','vcvttps2pi',
+ 'vcvtdq2ps','vcvtps2dq','vcvttps2dq',
+ 'vcvtdq2pd','vcvtpd2dq','vcvttpd2dq',
+ 'vcvtsi2sd','vcvtsd2si','vcvttsd2si',
+ 'vcvtpi2pd','vcvtpd2pi','vcvttpd2pi',
+ 'vdivss','vdivps','vdivsd','vdivpd','vsqrtss','vsqrtps','vsqrtsd','vsqrtpd',
+ 'vdpps','vdppd',
+ 'vmaskmovps','vmaskmovpd',
+ 'vmovss','vmovsd','vmovaps','vmovapd','vmovups','vmovupd','vmovntps','vmovntpd',
+ 'vmovhlps','vmovlhps','vmovlps','vmovlpd','vmovhps','vmovhpd',
+ 'vmovsldup','vmovshdup','vmovddup',
+ 'vmovmskps','vmovmskpd',
+ 'vroundss','vroundps','vroundsd','vroundpd',
+ 'vrcpss','vrcpps','vrsqrtss','vrsqrtps',
+ 'vunpcklps','vunpckhps','vunpcklpd','vunpckhpd',
+ 'vbroadcastss','vbroadcastsd','vbroadcastf128',
+ 'vextractps','vinsertps','vextractf128','vinsertf128',
+ 'vshufps','vshufpd','vpermilps','vpermilpd','vperm2f128',
+ 'vtestps','vtestpd',
+ 'vpaddb','vpaddusb','vpaddsb','vpaddw','vpaddusw','vpaddsw','vpaddd','vpaddq',
+ 'vpsubb','vpsubusb','vpsubsb','vpsubw','vpsubusw','vpsubsw','vpsubd','vpsubq',
+ 'vphaddw','vphaddsw','vphaddd','vphsubw','vphsubsw','vphsubd',
+ 'vpsllw','vpslld','vpsllq','vpsrlw','vpsrld','vpsrlq','vpsraw','vpsrad',
+ 'vpand','vpandn','vpor','vpxor',
+ 'vpblendwb','vpblendw',
+ 'vpsignb','vpsignw','vpsignd',
+ 'vpavgb','vpavgw',
+ 'vpabsb','vpabsw','vpabsd',
+ 'vmovd','vmovq','vmovdqa','vmovdqu','vlddqu','vmovntdq','vmovntdqa','vmaskmovdqu',
+ 'vpmovsxbw','vpmovsxbd','vpmovsxbq','vpmovsxwd','vpmovsxwq','vpmovsxdq',
+ 'vpmovzxbw','vpmovzxbd','vpmovzxbq','vpmovzxwd','vpmovzxwq','vpmovzxdq',
+ 'vpackuswb','vpacksswb','vpackusdw','vpackssdw',
+ 'vpcmpeqb','vpcmpeqw','vpcmpeqd','vpcmpeqq','vpcmpgtb','vpcmpgtw','vpcmpgtd','vpcmpgtq',
+ 'vpmaddubsw','vpmaddwd',
+ 'vpmullw','vpmulhuw','vpmulhw','vpmulhrsw','vpmulld','vpmuludq','vpmuldq',
+ 'vpmaxub','vpmaxsb','vpmaxuw','vpmaxsw','vpmaxud','vpmaxsd',
+ 'vpminub','vpminsb','vpminuw','vpminsw','vpminud','vpminsd',
+ 'vpmovmskb','vptest',
+ 'vpunpcklbw','vpunpcklwd','vpunpckldq','vpunpcklqdq',
+ 'vpunpckhbw','vpunpckhwd','vpunpckhdq','vpunpckhqdq',
+ 'vpslldq','vpsrldq','vpalignr',
+ 'vpshufb','vpshuflw','vpshufhw','vpshufd',
+ 'vpextrb','vpextrw','vpextrd','vpextrq','vpinsrb','vpinsrw','vpinsrd','vpinsrq',
+ 'vpsadbw','vmpsadbw','vphminposuw',
+ 'vpcmpestri','vpcmpestrm','vpcmpistri','vpcmpistrm',
+ 'vpclmulqdq','vaesenc','vaesenclast','vaesdec','vaesdeclast','vaeskeygenassist','vaesimc',
+ 'vldmxcsr','vstmxcsr','vzeroall','vzeroupper',
+ /* AVX2 instructions */
+ 'vbroadcasti128','vpbroadcastb','vpbroadcastw','vpbroadcastd','vpbroadcastq',
+ 'vpblendd',
+ 'vpermd','vpermq','vperm2i128',
+ 'vextracti128','vinserti128',
+ 'vpmaskmovd','vpmaskmovq',
+ 'vpsllvd','vpsllvq','vpsravd','vpsrlvd',
+ 'vpgatherdd','vpgatherqd','vgatherdq','vgatherqq',
+ 'vpermps','vpermpd',
+ 'vgatherdpd','vgatherqpd','vgatherdps','vgatherqps',
+ /* XOP instructions */
+ 'vfrczss','vfrczps','vfrczsd','vfrczpd',
+ 'vpermil2ps','vperlil2pd',
+ 'vpcomub','vpcomb','vpcomuw','vpcomw','vpcomud','vpcomd','vpcomuq','vpcomq',
+ 'vphaddubw','vphaddbw','vphaddubd','vphaddbd','vphaddubq','vphaddbq',
+ 'vphadduwd','vphaddwd','vphadduwq','vphaddwq','vphaddudq','vphadddq',
+ 'vphsubbw','vphsubwd','vphsubdq',
+ 'vpmacsdd','vpmacssdd','vpmacsdql','vpmacssdql','vpmacsdqh','vpmacssdqh',
+ 'vpmacsww','vpmacssww','vpmacswd','vpmacsswd',
+ 'vpmadcswd','vpmadcsswd',
+ 'vpcmov','vpperm',
+ 'vprotb','vprotw','vprotd','vprotq',
+ 'vpshab','vpshaw','vpshad','vpshaq',
+ 'vpshlb','vpshlw','vpshld','vpshlq',
+ /* CVT16 instructions */
+ 'vcvtph2ps','vcvtps2ph',
+ /* FMA4 instructions */
+ 'vfmaddss','vfmaddps','vfmaddsd','vfmaddpd',
+ 'vfmsubss','vfmsubps','vfmsubsd','vfmsubpd',
+ 'vnfmaddss','vnfmaddps','vnfmaddsd','vnfmaddpd',
+ 'vnfmsubss','vnfmsubps','vnfmsubsd','vnfmsubpd',
+ 'vfmaddsubps','vfmaddsubpd','vfmsubaddps','vfmsubaddpd',
+ /* FMA3 instructions */
+ 'vfmadd132ss','vfmadd213ss','vfmadd231ss',
+ 'vfmadd132ps','vfmadd213ps','vfmadd231ps',
+ 'vfmadd132sd','vfmadd213sd','vfmadd231sd',
+ 'vfmadd132pd','vfmadd213pd','vfmadd231pd',
+ 'vfmaddsub132ps','vfmaddsub213ps','vfmaddsub231ps',
+ 'vfmaddsub132pd','vfmaddsub213pd','vfmaddsub231pd',
+ 'vfmsubadd132ps','vfmsubadd213ps','vfmsubadd231ps',
+ 'vfmsubadd132pd','vfmsubadd213pd','vfmsubadd231pd',
+ 'vfmsub132ss','vfmsub213ss','vfmsub231ss',
+ 'vfmsub132ps','vfmsub213ps','vfmsub231ps',
+ 'vfmsub132sd','vfmsub213sd','vfmsub231sd',
+ 'vfmsub132pd','vfmsub213pd','vfmsub231pd',
+ 'vfnmadd132ss','vfnmadd213ss','vfnmadd231ss',
+ 'vfnmadd132ps','vfnmadd213ps','vfnmadd231ps',
+ 'vfnmadd132sd','vfnmadd213sd','vfnmadd231sd',
+ 'vfnmadd132pd','vfnmadd213pd','vfnmadd231pd',
+ 'vfnmsub132ss','vfnmsub213ss','vfnmsub231ss',
+ 'vfnmsub132ps','vfnmsub213ps','vfnmsub231ps',
+ 'vfnmsub132sd','vfnmsub213sd','vfnmsub231sd',
+ 'vfnmsub132pd','vfnmsub213pd','vfnmsub231pd'
),
- /*Directive*/
+ /*registers*/
4 => array(
- '186','286','286c','286p','287','386','386c','386p','387','486','486p',
- '8086','8087','alpha','break','code','const','continue','cref','data','data?',
- 'dosseg','else','elseif','endif','endw','equ','err','err1','err2','errb',
- 'errdef','errdif','errdifi','erre','erridn','erridni','errnb','errndef',
- 'errnz','exit','fardata','fardata?','global','if','lall','lfcond','list','listall',
- 'listif','listmacro','listmacroall',' model','no87','nocref','nolist',
- 'nolistif','nolistmacro','radix','repeat','sall','seq','sfcond','stack',
- 'startup','tfcond','type','until','untilcxz','while','xall','xcref',
- 'xlist','alias','align','assume','catstr','comm','comment','db','dd','df','dq',
- 'dt','dup','dw','echo','elseif1','elseif2','elseifb','elseifdef','elseifdif',
- 'elseifdifi','elseife','elseifidn','elseifidni','elseifnb','elseifndef','end',
- 'endm','endp','ends','eq',' equ','even','exitm','extern','externdef','extrn','for',
- 'forc','ge','goto','group','high','highword','if1','if2','ifb','ifdef','ifdif',
- 'ifdifi','ife',' ifidn','ifidni','ifnb','ifndef','include','includelib','instr','invoke',
- 'irp','irpc','label','le','length','lengthof','local','low','lowword','lroffset',
- 'macro','mask','mod','msfloat','name','ne','offset','opattr','option','org','%out',
- 'page','popcontext','private','proc','proto','ptr','public','purge','pushcontext','record',
- 'resb','resd','resw','rept','section','seg','segment','short','size','sizeof','sizestr','struc','struct',
- 'substr','subtitle','subttl','textequ','this','title','typedef','union','width',
- '.model', '.stack', '.code', '.data'
+ /* General-Purpose Registers */
+ 'al','ah','bl','bh','cl','ch','dl','dh','sil','dil','bpl','spl',
+ 'r8b','r9b','r10b','r11b','r12b','r13b','r14b','r15b',
+ 'ax','bx','cx','dx','si','di','bp','sp',
+ 'r8w','r9w','r10w','r11w','r12w','r13w','r14w','r15w',
+ 'eax','ebx','ecx','edx','esi','edi','ebp','esp',
+ 'r8d','r9d','r10d','r11d','r12d','r13d','r14d','r15d',
+ 'rax','rcx','rdx','rbx','rsp','rbp','rsi','rdi',
+ 'r8','r9','r10','r11','r12','r13','r14','r15',
+ /* Debug Registers */
+ 'dr0','dr1','dr2','dr3','dr6','dr7',
+ /* Control Registers */
+ 'cr0','cr2','cr3','cr4','cr8',
+ /* Test Registers (Supported on Intel 486 only) */
+ 'tr3','tr4','tr5','tr6','tr7',
+ /* Segment Registers */
+ 'cs','ds','es','fs','gs','ss',
+ /* FPU Registers */
+ 'st','st0','st1','st2','st3','st4','st5','st6','st7',
+ /* MMX Registers */
+ 'mm0','mm1','mm2','mm3','mm4','mm5','mm6','mm7',
+ /* SSE Registers */
+ 'xmm0','xmm1','xmm2','xmm3','xmm4','xmm5','xmm6','xmm7',
+ 'xmm8','xmm9','xmm10','xmm11','xmm12','xmm13','xmm14','xmm15',
+ /* AVX Registers */
+ 'ymm0','ymm1','ymm2','ymm3','ymm4','ymm5','ymm6','ymm7',
+ 'ymm8','ymm9','ymm10','ymm11','ymm12','ymm13','ymm14','ymm15'
),
- /*Operands*/
+ /*Directive*/
5 => array(
- '@b','@f','addr','basic','byte','c','carry?','dword',
- 'far','far16','fortran','fword','near','near16','overflow?','parity?','pascal','qword',
- 'real4',' real8','real10','sbyte','sdword','sign?','stdcall','sword','syscall','tbyte',
- 'vararg','word','zero?','flat','near32','far32',
- 'abs','all','assumes','at','casemap','common','compact',
- 'cpu','dotname','emulator','epilogue','error','export','expr16','expr32','farstack',
- 'forceframe','huge','language','large','listing','ljmp','loadds','m510','medium','memory',
- 'nearstack','nodotname','noemulator','nokeyword','noljmp','nom510','none','nonunique',
- 'nooldmacros','nooldstructs','noreadonly','noscoped','nosignextend','nothing',
- 'notpublic','oldmacros','oldstructs','os_dos','para','prologue',
- 'readonly','req','scoped','setif2','smallstack','tiny','use16','use32','uses'
+ 'db','dw','dd','dq','dt','do','dy',
+ 'resb','resw','resd','resq','rest','reso','resy','incbin','equ','times','safeseh',
+ '__utf16__','__utf32__',
+ 'default','cpu','float','start','imagebase','osabi',
+ '..start','..imagebase','..gotpc','..gotoff','..gottpoff','..got','..plt','..sym','..tlsie',
+ 'section','segment','__sect__','group','absolute',
+ '.bss','.comment','.data','.lbss','.ldata','.lrodata','.rdata','.rodata','.tbss','.tdata','.text',
+ 'alloc','bss','code','exec','data','noalloc','nobits','noexec','nowrite','progbits','rdata','tls','write',
+ 'private','public','common','stack','overlay','class',
+ 'extern','global','import','export',
+ '%define','%idefine','%xdefine','%ixdefine','%assign','%undef',
+ '%defstr','%idefstr','%deftok','%ideftok',
+ '%strcat','%strlen','%substr',
+ '%macro','%imacro','%rmacro','%exitmacro','%endmacro','%unmacro',
+ '%if','%ifn','%elif','%elifn','%else','%endif',
+ '%ifdef','%ifndef','%elifdef','%elifndef',
+ '%ifmacro','%ifnmacro','%elifmacro','%elifnmacro',
+ '%ifctx','%ifnctx','%elifctx','%elifnctx',
+ '%ifidn','%ifnidn','%elifidn','%elifnidn',
+ '%ifidni','%ifnidni','%elifidni','%elifnidni',
+ '%ifid','%ifnid','%elifid','%elifnid',
+ '%ifnum','%ifnnum','%elifnum','%elifnnum',
+ '%ifstr','%ifnstr','%elifstr','%elifnstr',
+ '%iftoken','%ifntoken','%eliftoken','%elifntoken',
+ '%ifempty','%ifnempty','%elifempty','%elifnempty',
+ '%ifenv','%ifnenv','%elifenv','%elifnenv',
+ '%rep','%exitrep','%endrep',
+ '%while','%exitwhile','%endwhile',
+ '%include','%pathsearch','%depend','%use',
+ '%push','%pop','%repl','%arg','%local','%stacksize','flat','flat64','large','small',
+ '%error','%warning','%fatal',
+ '%00','.nolist','%rotate','%line','%!','%final','%clear',
+ 'struc','endstruc','istruc','at','iend',
+ 'align','alignb','sectalign',
+ 'bits','use16','use32','use64',
+ '__nasm_major__','__nasm_minor__','__nasm_subminor__','___nasm_patchlevel__',
+ '__nasm_version_id__','__nasm_ver__',
+ '__file__','__line__','__pass__','__bits__','__output_format__',
+ '__date__','__time__','__date_num__','__time_num__','__posix_time__',
+ '__utc_date__','__utc_time__','__utc_date_num__','__utc_time_num__',
+ '__float_daz__','__float_round__','__float__',
+ /* Keywords from standard packages */
+ '__use_altreg__',
+ '__use_smartalign__','smartalign','__alignmode__',
+ '__use_fp__','__infinity__','__nan__','__qnan__','__snan__',
+ '__float8__','__float16__','__float32__','__float64__','__float80m__','__float80e__','__float128l__','__float128h__'
+ ),
+ /*Operands*/
+ 6 => array(
+ 'a16','a32','a64','o16','o32','o64','strict',
+ 'byte','word','dword','qword','tword','oword','yword','nosplit',
+ '%0','%1','%2','%3','%4','%5','%6','%7','%8','%9',
+ 'abs','rel',
+ 'seg','wrt'
)
),
'SYMBOLS' => array(
- '[', ']', '(', ')',
- '+', '-', '*', '/', '%',
- '.', ',', ';', ':'
+ 1 => array(
+ '[', ']', '(', ')',
+ '+', '-', '*', '/', '%',
+ '.', ',', ';', ':'
+ ),
+ 2 => array(
+ '$','$$','%+','%?','%??'
+ )
),
'CASE_SENSITIVE' => array(
GESHI_COMMENTS => false,
@@ -144,19 +524,21 @@ $language_data = array (
2 => false,
3 => false,
4 => false,
- 5 => false
+ 5 => false,
+ 6 => false
),
'STYLES' => array(
'KEYWORDS' => array(
1 => 'color: #00007f; font-weight: bold;',
- 2 => 'color: #0000ff; font-weight: bold;',
- 3 => 'color: #00007f;',
- 4 => 'color: #000000; font-weight: bold;',
- 5 => 'color: #000000; font-weight: bold;'
+ 2 => 'color: #0000ff;',
+ 3 => 'color: #b00040;',
+ 4 => 'color: #46aa03; font-weight: bold;',
+ 5 => 'color: #0000ff; font-weight: bold;',
+ 6 => 'color: #0000ff; font-weight: bold;'
),
'COMMENTS' => array(
1 => 'color: #666666; font-style: italic;',
- 2 => 'color: #adadad; font-style: italic;',
+ 2 => 'color: #adadad; font-style: italic;'
),
'ESCAPE_CHAR' => array(
0 => 'color: #000099; font-weight: bold;'
@@ -168,16 +550,15 @@ $language_data = array (
0 => 'color: #7f007f;'
),
'NUMBERS' => array(
- 0 => 'color: #0000ff;'
+ 0 => 'color: #ff0000;'
),
'METHODS' => array(
),
'SYMBOLS' => array(
- 0 => 'color: #339933;'
+ 1 => 'color: #339933;',
+ 2 => 'color: #0000ff; font-weight: bold;'
),
'REGEXPS' => array(
-// 0 => 'color: #0000ff;',
-// 1 => 'color: #0000ff;'
),
'SCRIPT' => array(
)
@@ -187,7 +568,8 @@ $language_data = array (
2 => '',
3 => '',
4 => '',
- 5 => ''
+ 5 => '',
+ 6 => ''
),
'NUMBERS' =>
GESHI_NUMBER_BIN_PREFIX_PERCENT |
@@ -203,10 +585,6 @@ $language_data = array (
'OBJECT_SPLITTERS' => array(
),
'REGEXPS' => array(
- //Hex numbers
-// 0 => /* */ "(?<=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))(?:[0-9][0-9a-fA-F]{0,31}[hH]|0x[0-9a-fA-F]{1,32})(?=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))",
- //Binary numbers
-// 1 => "(?<=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))[01]{1,64}[bB](?=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))"
),
'STRICT_MODE_APPLIES' => GESHI_NEVER,
'SCRIPT_DELIMITERS' => array(
diff --git a/inc/geshi/asp.php b/inc/geshi/asp.php
index c011de960..0096a169c 100644
--- a/inc/geshi/asp.php
+++ b/inc/geshi/asp.php
@@ -4,7 +4,7 @@
* --------
* Author: Amit Gupta (http://blog.igeek.info/)
* Copyright: (c) 2004 Amit Gupta (http://blog.igeek.info/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/08/13
*
* ASP language file for GeSHi.
diff --git a/inc/geshi/asymptote.php b/inc/geshi/asymptote.php
new file mode 100644
index 000000000..8683588e5
--- /dev/null
+++ b/inc/geshi/asymptote.php
@@ -0,0 +1,194 @@
+<?php
+/*************************************************************************************
+ * asymptote.php
+ * -------------
+ * Author: Manuel Yguel (manuel.yguel.robotics@gmail.com)
+ * Copyright: (c) 2012 Manuel Yguel (http://manuelyguel.eu)
+ * Release Version: 1.0.8.11
+ * Date Started: 2012/05/24
+ *
+ * asymptote language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2012/05/24 (1.0.0.0)
+ * - First Release
+ *
+ * TODO (updated 2012/05/24)
+ * -------------------------
+ * * Split to several files - php4, php5 etc
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * ************************************************************************************/
+
+$language_data = array(
+ 'LANG_NAME' => 'asymptote',
+ 'COMMENT_SINGLE' => array(1 => '//'),
+ 'COMMENT_MULTI' => array('/*' => '*/'),
+ 'COMMENT_REGEXP' => array(
+ //Multiline-continued single-line comments
+ 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
+ //Multiline-continued preprocessor define
+ 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
+ ),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array("'", '"'),
+ 'ESCAPE_CHAR' => '',
+ 'ESCAPE_REGEXP' => array(
+ //Simple Single Char Escapes
+ 1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
+ //Hexadecimal Char Specs
+ 2 => "#\\\\x[\da-fA-F]{2}#",
+ //Hexadecimal Char Specs
+ 3 => "#\\\\u[\da-fA-F]{4}#",
+ //Hexadecimal Char Specs
+ 4 => "#\\\\U[\da-fA-F]{8}#",
+ //Octal Char Specs
+ 5 => "#\\\\[0-7]{1,3}#"
+ ),
+ 'NUMBERS' =>
+ GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
+ GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
+ GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
+ 'KEYWORDS' => array(
+ 1 => array(
+ 'and','controls','tension','atleast','curl','if','else','while','for','do','return','break','continue','struct','typedef','new','access','import','unravel','from','include','quote','static','public','private','restricted','this','explicit','true','false','null','cycle','newframe','operator'
+ ),
+ 2 => array(
+ 'Braid','FitResult','Label','Legend','Segment','Solution','TreeNode','abscissa','arc','arrowhead','binarytree','binarytreeNode','block','bool','bool3','bounds','bqe','circle','conic','coord','coordsys','cputime','ellipse','file','filltype','frame','grid3','guide','horner','hsv','hyperbola','indexedTransform','int','inversion','key','light','line','linefit','marginT','marker','mass','object','pair','parabola','path','path3','pen','picture','point','position','projection','real','revolution','scaleT','scientific','segment','side','slice','solution','splitface','string','surface','tensionSpecifier','ticklocate','ticksgridT','tickvalues','transform','transformation','tree','triangle','trilinear','triple','vector','vertex','void'),
+ 3 => array(
+ 'AND','Arc','ArcArrow','ArcArrows','Arrow','Arrows','Automatic','AvantGarde','BBox','BWRainbow','BWRainbow2','Bar','Bars','BeginArcArrow','BeginArrow','BeginBar','BeginDotMargin','BeginMargin','BeginPenMargin','Blank','Bookman','Bottom','BottomTop','Bounds','Break','Broken','BrokenLog','CLZ','CTZ','Ceil','Circle','CircleBarIntervalMarker','Cos','Courier','CrossIntervalMarker','DOSendl','DOSnewl','DefaultFormat','DefaultLogFormat','Degrees','Dir','DotMargin','DotMargins','Dotted','Draw','Drawline','Embed','EndArcArrow','EndArrow','EndBar','EndDotMargin','EndMargin','EndPenMargin','Fill','FillDraw','Floor','Format','Full','Gaussian','Gaussrand','Gaussrandpair',
+ 'Gradient','Grayscale','Helvetica','Hermite','HookHead','InOutTicks','InTicks','Jn','Label','Landscape','Left','LeftRight','LeftTicks','Legend','Linear','Link','Log','LogFormat','Margin','Margins','Mark','MidArcArrow','MidArrow','NOT','NewCenturySchoolBook','NoBox','NoMargin','NoModifier','NoTicks','NoTicks3','NoZero','NoZeroFormat','None','OR','OmitFormat','OmitTick','OmitTickInterval','OmitTickIntervals','OutTicks','Ox','Oy','Palatino','PaletteTicks','Pen','PenMargin','PenMargins','Pentype','Portrait','RadialShade','RadialShadeDraw','Rainbow','Range','Relative','Right','RightTicks','Rotate','Round','SQR','Scale','ScaleX','ScaleY','ScaleZ','Seascape','Segment','Shift','Sin','Slant','Spline','StickIntervalMarker','Straight','Symbol','Tan','TeXify','Ticks','Ticks3','TildeIntervalMarker','TimesRoman','Top','TrueMargin','UnFill','UpsideDown','Wheel','X','XEquals','XOR','XY','XYEquals','XYZero','XYgrid','XZEquals','XZZero','XZero','XZgrid','Y','YEquals','YXgrid','YZ','YZEquals','YZZero','YZero','YZgrid','Yn','Z','ZX','ZXgrid','ZYgrid','ZapfChancery','ZapfDingbats','_begingroup3','_cputime','_draw','_eval','_image','_labelpath','_projection','_strokepath','_texpath','aCos','aSin','aTan','abort','abs','accel','acos','acosh','acot','acsc','activatequote','add',
+ 'addArrow','addMargins','addSaveFunction','addpenarc','addpenline','adjust','alias','align','all','altitude','angabscissa','angle','angpoint','animate','annotate','anticomplementary','antipedal','apply','approximate','arc','arcarrowsize','arccircle','arcdir','arcfromcenter','arcfromfocus','arclength','arcnodesnumber','arcpoint','arcsubtended','arcsubtendedcenter','arctime','arctopath','array','arrow','arrow2','arrowbase','arrowbasepoints','arrowsize','asec','asin','asinh','ask','assert','asy','asycode','asydir','asyfigure','asyfilecode','asyinclude','asywrite','atan','atan2','atanh','atbreakpoint','atexit','attach','attract','atupdate','autoformat','autoscale','autoscale3','axes','axes3','axialshade','axis','axiscoverage','azimuth','babel','background','bangles','bar','barmarksize','barsize','basealign','baseline','bbox','beep','begin','beginclip','begingroup','beginpoint','between','bevel','bezier','bezierP','bezierPP','bezierPPP','bezulate','bibliography','bibliographystyle','binarytree','binarytreeNode','binomial','binput','bins','bisector','bisectorpoint','bispline','blend','blockconnector','boutput','box','bqe','breakpoint','breakpoints','brick','buildRestoreDefaults','buildRestoreThunk','buildcycle','bulletcolor','byte','calculateScaling','canonical','canonicalcartesiansystem','cartesiansystem','case1','case2','case3','case4','cbrt','cd','ceil','center','centerToFocus',
+ 'centroid','cevian','change2','changecoordsys','checkSegment','checkconditionlength','checker','checkincreasing','checklengths','checkposition','checktriangle','choose','circle','circlebarframe','circlemarkradius','circlenodesnumber','circumcenter','circumcircle','clamped','clear','clip','clipdraw','close','cmyk','code','colatitude','collect','collinear','color','colorless','colors','colorspace','comma','compassmark','complement','complementary','concat','concurrent','cone','conic','conicnodesnumber','conictype','conj','connect','connected','connectedindex','containmentTree','contains','contour','contour3','contouredges','controlSpecifier','convert','coordinates','coordsys','copy','copyPairOrTriple','cos','cosh','cot','countIntersections','cputime','crop','cropcode','cross',
+ 'crossframe','crosshatch','crossmarksize','csc','cubicroots','curabscissa','curlSpecifier','curpoint','currentarrow','currentexitfunction','currentmomarrow','currentpolarconicroutine','curve','cut','cutafter','cutbefore','cyclic','cylinder','deactivatequote','debugger','deconstruct','defaultdir','defaultformat','defaultpen','defined','degenerate','degrees','delete','deletepreamble','determinant','diagonal','diamond','diffdiv','dir','dirSpecifier','dirtime','display','distance',
+ 'divisors','do_overpaint','dot','dotframe','dotsize','downcase','draw','drawAll','drawDoubleLine','drawFermion','drawGhost','drawGluon','drawMomArrow','drawPRCcylinder','drawPRCdisk','drawPRCsphere','drawPRCtube','drawPhoton','drawScalar','drawVertex','drawVertexBox','drawVertexBoxO','drawVertexBoxX','drawVertexO','drawVertexOX','drawVertexTriangle','drawVertexTriangleO','drawVertexX','drawarrow','drawarrow2','drawline','drawpixel','drawtick','duplicate','elle','ellipse','ellipsenodesnumber','embed','embed3','empty','enclose','end','endScript','endclip','endgroup','endgroup3','endl','endpoint','endpoints','eof','eol','equation','equations','erase','erasestep','erf','erfc','error','errorbar','errorbars','eval','excenter','excircle','exit','exitXasyMode','exitfunction','exp','expfactors','expi','expm1','exradius','extend','extension','extouch','fabs','factorial','fermat','fft','fhorner','figure','file','filecode','fill','filldraw','filloutside','fillrule','filltype','find','finite','finiteDifferenceJacobian','firstcut','firstframe','fit','fit2','fixedscaling','floor','flush','fmdefaults','fmod','focusToCenter','font','fontcommand','fontsize','foot','format','frac','frequency','fromCenter','fromFocus','fspline','functionshade','gamma','generate_random_backtrace','generateticks','gergonne','getc','getint','getpair','getreal','getstring','gettriple','gluon','gouraudshade','graph','graphic','gray','grestore','grid','grid3','gsave','halfbox','hatch','hdiffdiv','hermite','hex','histogram','history','hline','hprojection',
+ 'hsv','hyperbola','hyperbolanodesnumber','hyperlink','hypot','identity','image','incenter','incentral','incircle','increasing','incrementposition','indexedTransform','indexedfigure','initXasyMode','initdefaults','input','inradius','insert','inside','integrate','interactive','interior','interp','interpolate','intersect','intersection','intersectionpoint','intersectionpoints','intersections','intouch','inverse','inversion','invisible','is3D','isCCW','isDuplicate','isogonal','isogonalconjugate','isotomic','isotomicconjugate','isparabola','italic','item','jobname','key','kurtosis','kurtosisexcess','label','labelaxis','labelmargin','labelpath','labels','labeltick','labelx','labelx3','labely','labely3','labelz','labelz3','lastcut','latex','latitude','latticeshade','layer','layout','ldexp','leastsquares','legend','legenditem','length','lexorder','lift','light','limits','line','linear','linecap','lineinversion','linejoin','linemargin','lineskip','linetype','linewidth','link','list','lm_enorm','lm_evaluate_default','lm_lmdif','lm_lmpar','lm_minimize','lm_print_default','lm_print_quiet','lm_qrfac','lm_qrsolv','locale','locate',
+ 'locatefile','location','log','log10','log1p','logaxiscoverage','longitude','lookup','makeNode','makedraw','makepen','map','margin','markangle','markangleradius','markanglespace','markarc','marker','markinterval','marknodes','markrightangle','markuniform','mass','masscenter','massformat','math','max','max3','maxAfterTransform','maxbezier','maxbound','maxcoords','maxlength','maxratio','maxtimes','mean','medial','median','midpoint','min','min3','minAfterTransform','minbezier','minbound','minipage','minratio','mintimes','miterlimit','mktemp','momArrowPath','momarrowsize','monotonic','multifigure','nativeformat','natural','needshipout','newl','newpage','newslide','newton','newtree','nextframe','nextnormal','nextpage','nib','nodabscissa','none','norm','normalvideo','notaknot','nowarn','numberpage','nurb','object','offset','onpath','opacity','opposite','orientation','origin','orthic','orthocentercenter','outformat','outline','outname','outprefix','output','overloadedMessage','overwrite','pack','pad','pairs','palette','parabola','parabolanodesnumber','parallel','parallelogram','partialsum','path','path3','pattern','pause','pdf','pedal','periodic','perp','perpendicular','perpendicularmark','phantom','phi1','phi2','phi3','photon','piecewisestraight','point','polar','polarconicroutine','polargraph','polygon','postcontrol','postscript','pow10','ppoint','prc','prc0','precision','precontrol','prepend','printBytecode','print_random_addresses','project','projection','purge','pwhermite','quadrant','quadraticroots','quantize','quarticroots','quotient','radialshade','radians','radicalcenter','radicalline','radius','rand','randompath','rd','readline','realmult','realquarticroots','rectangle','rectangular','rectify','reflect','relabscissa','relative','relativedistance','reldir','relpoint','reltime','remainder','remark','removeDuplicates','rename','replace','report','resetdefaultpen','restore','restoredefaults','reverse','reversevideo','rf','rfind','rgb','rgba','rgbint','rms',
+ 'rotate','rotateO','rotation','round','roundbox','roundedpath','roundrectangle','same','samecoordsys','sameside','sample','save','savedefaults','saveline','scale','scale3','scaleO','scaleT','scaleless','scientific','search','searchindex','searchtree','sec','secondaryX','secondaryY','seconds','section','sector','seek','seekeof','segment','sequence','setcontour','setpens','sgn','sgnd','sharpangle','sharpdegrees','shift','shiftless','shipout','shipout3','show','side','simeq','simpson','sin','sinh','size','size3','skewness','skip','slant','sleep','slope','slopefield','solve','solveBVP','sort','sourceline','sphere','split','sqrt','square','srand','standardizecoordsys','startScript','stdev','step','stickframe','stickmarksize','stickmarkspace','stop','straight','straightness','string','stripdirectory','stripextension','stripfile','stripsuffix','strokepath','subdivide','subitem','subpath','substr','sum','surface','symmedial','symmedian','system',
+ 'tab','tableau','tan','tangent','tangential','tangents','tanh','tell','tensionSpecifier','tensorshade','tex','texcolor','texify','texpath','texpreamble','texreset','texshipout','texsize','textpath','thick','thin','tick','tickMax','tickMax3','tickMin','tickMin3','ticklabelshift','ticklocate','tildeframe','tildemarksize','tile','tiling','time','times','title','titlepage','topbox','transform','transformation','transpose','trembleFuzz','triangle','triangleAbc','triangleabc','triangulate','tricoef','tridiagonal','trilinear','trim','truepoint','tube','uncycle','unfill','uniform','unique','unit','unitrand','unitsize','unityroot','unstraighten','upcase','updatefunction','uperiodic','upscale','uptodate','usepackage','usersetting','usetypescript','usleep','value','variance','variancebiased','vbox','vector','vectorfield','verbatim','view','vline','vperiodic','vprojection','warn','warning','windingnumber','write','xaxis','xaxis3','xaxis3At','xaxisAt','xequals','xinput','xlimits','xoutput','xpart','xscale','xscaleO','xtick','xtick3','xtrans','yaxis','yaxis3','yaxis3At','yaxisAt','yequals','ylimits','ypart','yscale','yscaleO','ytick','ytick3','ytrans','zaxis3','zaxis3At','zero','zero3','zlimits','zpart','ztick','ztick3','ztrans'
+ ),
+ 4 => array(
+ 'AliceBlue','Align','Allow','AntiqueWhite','Apricot','Aqua','Aquamarine','Aspect','Azure','BeginPoint','Beige','Bisque','Bittersweet','Black','BlanchedAlmond','Blue','BlueGreen','BlueViolet','Both','Break','BrickRed','Brown','BurlyWood','BurntOrange','CCW','CW','CadetBlue','CarnationPink','Center','Centered','Cerulean','Chartreuse','Chocolate','Coeff','Coral','CornflowerBlue','Cornsilk','Crimson','Crop','Cyan','Dandelion','DarkBlue','DarkCyan','DarkGoldenrod','DarkGray','DarkGreen','DarkKhaki','DarkMagenta','DarkOliveGreen','DarkOrange','DarkOrchid','DarkRed','DarkSalmon','DarkSeaGreen','DarkSlateBlue','DarkSlateGray','DarkTurquoise','DarkViolet','DeepPink','DeepSkyBlue','DefaultHead','DimGray','DodgerBlue','Dotted','Down','Draw','E','ENE','EPS','ESE','E_Euler','E_PC','E_RK2','E_RK3BS','Emerald','EndPoint','Euler','Fill','FillDraw','FireBrick','FloralWhite','ForestGreen','Fuchsia','Gainsboro','GhostWhite','Gold','Goldenrod','Gray','Green','GreenYellow','Honeydew','HookHead','Horizontal','HotPink','I','IgnoreAspect','IndianRed','Indigo','Ivory','JOIN_IN','JOIN_OUT','JungleGreen','Khaki','LM_DWARF','LM_MACHEP','LM_SQRT_DWARF','LM_SQRT_GIANT','LM_USERTOL','Label','Lavender','LavenderBlush','LawnGreen','Left','LeftJustified','LeftSide','LemonChiffon','LightBlue','LightCoral','LightCyan','LightGoldenrodYellow',
+ 'LightGreen','LightGrey','LightPink','LightSalmon','LightSeaGreen','LightSkyBlue','LightSlateGray','LightSteelBlue','LightYellow','Lime','LimeGreen','Linear','Linen','Log','Logarithmic','Magenta','Mahogany','Mark','MarkFill','Maroon','Max','MediumAquamarine','MediumBlue','MediumOrchid','MediumPurple','MediumSeaGreen','MediumSlateBlue','MediumSpringGreen','MediumTurquoise','MediumVioletRed','Melon','MidPoint','MidnightBlue','Min','MintCream','MistyRose','Moccasin','Move','MoveQuiet','Mulberry','N','NE','NNE','NNW','NW','NavajoWhite','Navy','NavyBlue','NoAlign','NoCrop','NoFill','NoSide','OldLace','Olive','OliveDrab','OliveGreen','Orange','OrangeRed','Orchid','Ox','Oy','PC','PaleGoldenrod','PaleGreen','PaleTurquoise','PaleVioletRed','PapayaWhip','Peach','PeachPuff','Periwinkle','Peru','PineGreen','Pink','Plum','PowderBlue','ProcessBlue','Purple','RK2','RK3','RK3BS','RK4','RK5','RK5DP','RK5F','RawSienna','Red','RedOrange','RedViolet','Rhodamine','Right','RightJustified','RightSide','RosyBrown','RoyalBlue','RoyalPurple','RubineRed','S','SE','SSE','SSW','SW','SaddleBrown','Salmon','SandyBrown','SeaGreen','Seashell','Sepia','Sienna','Silver','SimpleHead','SkyBlue','SlateBlue','SlateGray','Snow','SpringGreen','SteelBlue','Suppress','SuppressQuiet','Tan','TeXHead','Teal','TealBlue','Thistle','Ticksize','Tomato',
+ 'Turquoise','UnFill','Up','VERSION','Value','Vertical','Violet','VioletRed','W','WNW','WSW','Wheat','White','WhiteSmoke','WildStrawberry','XYAlign','YAlign','Yellow','YellowGreen','YellowOrange','addpenarc','addpenline','align','allowstepping','angularsystem','animationdelay','appendsuffix','arcarrowangle','arcarrowfactor','arrow2sizelimit','arrowangle','arrowbarb','arrowdir','arrowfactor','arrowhookfactor','arrowlength','arrowsizelimit','arrowtexfactor','authorpen','axis','axiscoverage','axislabelfactor','background','backgroundcolor','backgroundpen','barfactor','barmarksizefactor','basealign','baselinetemplate','beveljoin','bigvertexpen','bigvertexsize','black','blue','bm','bottom','bp','brown','bullet','byfoci','byvertices','camerafactor','chartreuse','circlemarkradiusfactor','circlenodesnumberfactor','circleprecision','circlescale','cm','codefile','codepen','codeskip','colorPen','coloredNodes','coloredSegments',
+ 'conditionlength','conicnodesfactor','count','cputimeformat','crossmarksizefactor','currentcoordsys','currentlight','currentpatterns','currentpen','currentpicture','currentposition','currentprojection','curvilinearsystem','cuttings','cyan','darkblue','darkbrown','darkcyan','darkgray','darkgreen','darkgrey','darkmagenta','darkolive','darkred','dashdotted','dashed','datepen','dateskip','debuggerlines','debugging','deepblue','deepcyan','deepgray','deepgreen','deepgrey','deepmagenta','deepred','default','defaultControl','defaultS','defaultbackpen','defaultcoordsys','defaultexcursion','defaultfilename','defaultformat','defaultmassformat','defaultpen','diagnostics','differentlengths','dot','dotfactor','dotframe','dotted','doublelinepen','doublelinespacing','down','duplicateFuzz','edge','ellipsenodesnumberfactor','eps','epsgeo','epsilon','evenodd','expansionfactor','extendcap','exterior','fermionpen','figureborder','figuremattpen','file3','firstnode','firststep','foregroundcolor','fuchsia','fuzz','gapfactor','ghostpen','gluonamplitude','gluonpen','gluonratio','gray','green','grey','hatchepsilon','havepagenumber','heavyblue','heavycyan','heavygray','heavygreen','heavygrey','heavymagenta','heavyred','hline','hwratio','hyperbola','hyperbolanodesnumberfactor','identity4','ignore','inXasyMode','inch','inches','includegraphicscommand','inf','infinity','institutionpen','intMax','intMin','interior','invert','invisible','itempen','itemskip','itemstep','labelmargin','landscape','lastnode','left','legendhskip','legendlinelength',
+ 'legendmargin','legendmarkersize','legendmaxrelativewidth','legendvskip','lightblue','lightcyan','lightgray','lightgreen','lightgrey','lightmagenta','lightolive','lightred','lightyellow','line','linemargin','lm_infmsg','lm_shortmsg','longdashdotted','longdashed','magenta','magneticRadius','mantissaBits','markangleradius','markangleradiusfactor','markanglespace','markanglespacefactor','mediumblue','mediumcyan','mediumgray','mediumgreen','mediumgrey','mediummagenta','mediumred','mediumyellow','middle','minDistDefault','minblockheight','minblockwidth','mincirclediameter','minipagemargin','minipagewidth','minvertexangle','miterjoin','mm','momarrowfactor','momarrowlength','momarrowmargin','momarrowoffset','momarrowpen','monoPen','morepoints','nCircle','newbulletcolor','ngraph','nil','nmesh','nobasealign','nodeMarginDefault','nodesystem','nomarker','nopoint','noprimary','nullpath','nullpen','numarray','ocgindex','oldbulletcolor','olive','orange','origin','overpaint','page','pageheight','pagemargin','pagenumberalign','pagenumberpen','pagenumberposition','pagewidth','paleblue','palecyan','palegray','palegreen','palegrey',
+ 'palemagenta','palered','paleyellow','parabolanodesnumberfactor','perpfactor','phi','photonamplitude','photonpen','photonratio','pi','pink','plain','plain_bounds','plain_scaling','plus','preamblenodes','pt','purple','r3','r4a','r4b','randMax','realDigits','realEpsilon','realMax','realMin','red','relativesystem','reverse','right','roundcap','roundjoin','royalblue','salmon','saveFunctions','scalarpen','sequencereal','settings','shipped','signedtrailingzero','solid','springgreen','sqrtEpsilon','squarecap','squarepen','startposition','stdin','stdout','stepfactor','stepfraction','steppagenumberpen','stepping','stickframe','stickmarksizefactor','stickmarkspacefactor','swap','textpen','ticksize','tildeframe','tildemarksizefactor','tinv','titlealign','titlepagepen','titlepageposition','titlepen','titleskip','top','trailingzero','treeLevelStep','treeMinNodeWidth','treeNodeStep','trembleAngle','trembleFrequency','trembleRandom','undefined','unitcircle','unitsquare','up','urlpen','urlskip','version','vertexpen','vertexsize','viewportmargin','viewportsize','vline','white','wye','xformStack','yellow','ylabelwidth','zerotickfuzz','zerowinding'
+ )
+ ),
+ 'SYMBOLS' => array(
+ 0 => array(
+ '(', ')', '{', '}', '[', ']'
+ ),
+ 1 => array('<', '>','='),
+ 2 => array('+', '-', '*', '/', '%'),
+ 3 => array('!', '^', '&', '|'),
+ 4 => array('?', ':', ';'),
+ 5 => array('..')
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false,
+ 1 => true,
+ 2 => true,
+ 3 => true,
+ 4 => true
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color: #b1b100;',
+ 2 => 'color: #000000; font-weight: bold;',
+ 3 => 'color: #990000;',
+ 4 => 'color: #009900; font-weight: bold;'
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #666666;',
+ 2 => 'color: #339900;',
+ 'MULTI' => 'color: #ff0000; font-style: italic;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #000099; font-weight: bold;',
+ 1 => 'color: #000099; font-weight: bold;',
+ 2 => 'color: #660099; font-weight: bold;',
+ 3 => 'color: #660099; font-weight: bold;',
+ 4 => 'color: #660099; font-weight: bold;',
+ 5 => 'color: #006699; font-weight: bold;',
+ 'HARD' => '',
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #008000;'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #FF0000;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #0000dd;',
+ GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
+ GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
+ GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
+ GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
+ GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
+ GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
+ GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
+ ),
+ 'METHODS' => array(
+ 1 => 'color: #007788;',
+ 2 => 'color: #007788;'
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color: #008000;',
+ 1 => 'color: #000080;',
+ 2 => 'color: #000040;',
+ 3 => 'color: #000040;',
+ 4 => 'color: #008080;',
+ 5 => 'color: #009080;'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'SCRIPT' => array(
+ )
+ ),
+ 'URLS' => array(
+ 1 => '',
+ 2 => '',
+ 3 => '',
+ 4 => ''
+ ),
+ 'OOLANG' => true,
+ 'OBJECT_SPLITTERS' => array(
+ 1 => '.',
+ 2 => '::'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_MAYBE,
+ 'SCRIPT_DELIMITERS' => array(
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ ),
+ 'TAB_WIDTH' => 4,
+ 'PARSER_CONTROL' => array(
+ 'KEYWORDS' => array(
+ 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#])",
+ 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\|%\\-])"
+ )
+ )
+);
+
+?>
diff --git a/inc/geshi/autoconf.php b/inc/geshi/autoconf.php
index 901125bdc..7a0f1ee9c 100644
--- a/inc/geshi/autoconf.php
+++ b/inc/geshi/autoconf.php
@@ -4,7 +4,7 @@
* -----
* Author: Mihai Vasilian (grayasm@gmail.com)
* Copyright: (c) 2010 Mihai Vasilian
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/01/25
*
* autoconf language file for GeSHi.
diff --git a/inc/geshi/autohotkey.php b/inc/geshi/autohotkey.php
index c162f7ade..970684daf 100644
--- a/inc/geshi/autohotkey.php
+++ b/inc/geshi/autohotkey.php
@@ -4,7 +4,7 @@
* --------
* Author: Naveen Garg (naveen.garg@gmail.com)
* Copyright: (c) 2009 Naveen Garg and GeSHi
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/06/11
*
* Autohotkey language file for GeSHi.
diff --git a/inc/geshi/autoit.php b/inc/geshi/autoit.php
index 7f69d2bd5..ab401b4cd 100644
--- a/inc/geshi/autoit.php
+++ b/inc/geshi/autoit.php
@@ -4,7 +4,7 @@
* --------
* Author: big_daddy (robert.i.anthony@gmail.com)
* Copyright: (c) 2006 and to GESHi ;)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2006/01/26
*
* AutoIT language file for GeSHi.
diff --git a/inc/geshi/avisynth.php b/inc/geshi/avisynth.php
index 949d0ecb6..88f662886 100644
--- a/inc/geshi/avisynth.php
+++ b/inc/geshi/avisynth.php
@@ -4,7 +4,7 @@
* --------
* Author: Ryan Jones (sciguyryan@gmail.com)
* Copyright: (c) 2008 Ryan Jones
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/10/08
*
* AviSynth language file for GeSHi.
diff --git a/inc/geshi/awk.php b/inc/geshi/awk.php
index a1ab68ef1..1ec239b70 100644
--- a/inc/geshi/awk.php
+++ b/inc/geshi/awk.php
@@ -4,7 +4,7 @@
* -------
* Author: George Pollard (porges@porg.es)
* Copyright: (c) 2009 George Pollard
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/01/28
*
* Awk language file for GeSHi.
diff --git a/inc/geshi/bascomavr.php b/inc/geshi/bascomavr.php
index 8270fb26e..864f74e8d 100644
--- a/inc/geshi/bascomavr.php
+++ b/inc/geshi/bascomavr.php
@@ -4,7 +4,7 @@
* ---------------------------------
* Author: aquaticus.info
* Copyright: (c) 2008 aquaticus.info
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/01/09
*
* BASCOM AVR language file for GeSHi.
diff --git a/inc/geshi/bash.php b/inc/geshi/bash.php
index 8edb3f30e..c69f0054f 100644
--- a/inc/geshi/bash.php
+++ b/inc/geshi/bash.php
@@ -4,7 +4,7 @@
* --------
* Author: Andreas Gohr (andi@splitbrain.org)
* Copyright: (c) 2004 Andreas Gohr, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/08/20
*
* BASH language file for GeSHi.
@@ -157,8 +157,8 @@ $language_data = array (
'ed', 'egrep', 'env', 'expr',
- 'false', 'fbset', 'ffmpeg', 'fgconsole','fgrep', 'file', 'find',
- 'flex', 'flex++', 'fmt', 'free', 'ftp', 'funzip', 'fuser',
+ 'false', 'fbset', 'fdisk', 'ffmpeg', 'fgconsole','fgrep', 'file',
+ 'find', 'flex', 'flex++', 'fmt', 'free', 'ftp', 'funzip', 'fuser',
'g++', 'gawk', 'gc','gcc', 'gdb', 'getent', 'getkeycodes',
'getopt', 'gettext', 'gettextize', 'gimp', 'gimp-remote',
diff --git a/inc/geshi/basic4gl.php b/inc/geshi/basic4gl.php
index ce409e8a4..35c927406 100644
--- a/inc/geshi/basic4gl.php
+++ b/inc/geshi/basic4gl.php
@@ -4,7 +4,7 @@
* ---------------------------------
* Author: Matthew Webb (bmatthew1@blueyonder.co.uk)
* Copyright: (c) 2004 Matthew Webb (http://matthew-4gl.wikispaces.com)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/09/15
*
* Basic4GL language file for GeSHi.
diff --git a/inc/geshi/bf.php b/inc/geshi/bf.php
index 0529ec3c5..c06ca5bf6 100644
--- a/inc/geshi/bf.php
+++ b/inc/geshi/bf.php
@@ -4,7 +4,7 @@
* ----------
* Author: Benny Baumann (BenBE@geshi.org)
* Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/10/31
*
* Brainfuck language file for GeSHi.
@@ -63,7 +63,7 @@ $language_data = array (
1 => 'color: #666666; font-style: italic;'
),
'BRACKETS' => array(
- 0 => 'color: #66cc66;'
+ 0 => 'color: #660000;'
),
'STRINGS' => array(
0 => 'color: #ff0000;'
@@ -76,8 +76,8 @@ $language_data = array (
0 => 'color: #006600;',
1 => 'color: #660000;',
2 => 'color: #000066;',
- 3 => 'color: #660066;',
- 4 => 'color: #666600;'
+ 3 => 'color: #666600;',
+ 4 => 'color: #660066;'
),
'ESCAPE_CHAR' => array(
),
@@ -102,8 +102,9 @@ $language_data = array (
'PARSER_CONTROL' => array(
'ENABLE_FLAGS' => array(
'STRINGS' => GESHI_NEVER,
- 'NUMBERS' => GESHI_NEVER
- ),
+ 'NUMBERS' => GESHI_NEVER,
+ 'BRACKETS' => GESHI_NEVER
+ ),
'KEYWORDS' => array(
'DISALLOW_BEFORE' => '',
'DISALLOW_AFTER' => ''
@@ -111,4 +112,4 @@ $language_data = array (
)
);
-?>
+?> \ No newline at end of file
diff --git a/inc/geshi/bibtex.php b/inc/geshi/bibtex.php
index 13685608b..51cb4cebd 100644
--- a/inc/geshi/bibtex.php
+++ b/inc/geshi/bibtex.php
@@ -4,7 +4,7 @@
* -----
* Author: Quinn Taylor (quinntaylor@mac.com)
* Copyright: (c) 2009 Quinn Taylor (quinntaylor@mac.com), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/04/29
*
* BibTeX language file for GeSHi.
diff --git a/inc/geshi/blitzbasic.php b/inc/geshi/blitzbasic.php
index 15f24fdbe..1d3c08d05 100644
--- a/inc/geshi/blitzbasic.php
+++ b/inc/geshi/blitzbasic.php
@@ -4,7 +4,7 @@
* --------------
* Author: P�draig O`Connel (info@moonsword.info)
* Copyright: (c) 2005 P�draig O`Connel (http://moonsword.info)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 16.10.2005
*
* BlitzBasic language file for GeSHi.
@@ -56,7 +56,7 @@ $language_data = array (
'ESCAPE_CHAR' => '',
'KEYWORDS' => array(
1 => array(
- 'If','EndIf','ElseIf','Else If','Else','While','Wend','Return','Next','Include','End Type','End Select','End If','End Function','End','Select',
+ 'If','EndIf','ElseIf','Else','While','Wend','Return','Next','Include','End Type','End Select','End If','End Function','End','Select',
'Type','Forever','For','Or','And','AppTitle','Case','Goto','Gosub','Step','Stop','Int','Last','False','Then','To','True','Until','Float',
'String','Before','Not'
),
diff --git a/inc/geshi/bnf.php b/inc/geshi/bnf.php
index 7cec792a9..ca15cf9eb 100644
--- a/inc/geshi/bnf.php
+++ b/inc/geshi/bnf.php
@@ -4,7 +4,7 @@
* --------
* Author: Rowan Rodrik van der Molen (rowan@bigsmoke.us)
* Copyright: (c) 2006 Rowan Rodrik van der Molen (http://www.bigsmoke.us/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2006/09/28
*
* BNF (Backus-Naur form) language file for GeSHi.
diff --git a/inc/geshi/boo.php b/inc/geshi/boo.php
index f56afee5f..b68d442f7 100644
--- a/inc/geshi/boo.php
+++ b/inc/geshi/boo.php
@@ -4,7 +4,7 @@
* --------
* Author: Marcus Griep (neoeinstein+GeSHi@gmail.com)
* Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/09/10
*
* Boo language file for GeSHi.
diff --git a/inc/geshi/c.php b/inc/geshi/c.php
index 7db6d3d50..35d5b019d 100644
--- a/inc/geshi/c.php
+++ b/inc/geshi/c.php
@@ -7,7 +7,7 @@
* - Jack Lloyd (lloyd@randombit.net)
* - Michael Mol (mikemol@gmail.com)
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/06/04
*
* C language file for GeSHi.
diff --git a/inc/geshi/c_loadrunner.php b/inc/geshi/c_loadrunner.php
index 4e5429cda..42b3d7721 100644
--- a/inc/geshi/c_loadrunner.php
+++ b/inc/geshi/c_loadrunner.php
@@ -4,7 +4,7 @@
* ---------------------------------
* Author: Stuart Moncrieff (stuart at myloadtest dot com)
* Copyright: (c) 2010 Stuart Moncrieff (http://www.myloadtest.com/loadrunner-syntax-highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010-07-25
*
* C (for LoadRunner) language file for GeSHi.
diff --git a/inc/geshi/c_mac.php b/inc/geshi/c_mac.php
index f80dc2ed2..41c21ce54 100644
--- a/inc/geshi/c_mac.php
+++ b/inc/geshi/c_mac.php
@@ -4,7 +4,7 @@
* ---------
* Author: M. Uli Kusterer (witness.of.teachtext@gmx.net)
* Copyright: (c) 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/06/04
*
* C for Macs language file for GeSHi.
diff --git a/inc/geshi/caddcl.php b/inc/geshi/caddcl.php
index 6587cfed9..8b8b2f248 100644
--- a/inc/geshi/caddcl.php
+++ b/inc/geshi/caddcl.php
@@ -4,7 +4,7 @@
* ----------
* Author: Roberto Rossi (rsoftware@altervista.org)
* Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/08/30
*
* CAD DCL (Dialog Control Language) language file for GeSHi.
diff --git a/inc/geshi/cadlisp.php b/inc/geshi/cadlisp.php
index 00e3c6c5b..3fa7ead09 100644
--- a/inc/geshi/cadlisp.php
+++ b/inc/geshi/cadlisp.php
@@ -4,7 +4,7 @@
* -----------
* Author: Roberto Rossi (rsoftware@altervista.org)
* Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/blog)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/08/30
*
* AutoCAD/IntelliCAD Lisp language file for GeSHi.
diff --git a/inc/geshi/cfdg.php b/inc/geshi/cfdg.php
index 31d32fa45..e40963f06 100644
--- a/inc/geshi/cfdg.php
+++ b/inc/geshi/cfdg.php
@@ -4,7 +4,7 @@
* --------
* Author: John Horigan <john@glyphic.com>
* Copyright: (c) 2006 John Horigan http://www.ozonehouse.com/john/
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2006/03/11
*
* CFDG language file for GeSHi.
diff --git a/inc/geshi/cfm.php b/inc/geshi/cfm.php
index f340c39ac..2d165bd68 100644
--- a/inc/geshi/cfm.php
+++ b/inc/geshi/cfm.php
@@ -4,7 +4,7 @@
* -------
* Author: Diego
* Copyright: (c) 2006 Diego
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2006/02/25
*
* ColdFusion language file for GeSHi.
diff --git a/inc/geshi/chaiscript.php b/inc/geshi/chaiscript.php
index dcd05dbf5..f9d0a8681 100644
--- a/inc/geshi/chaiscript.php
+++ b/inc/geshi/chaiscript.php
@@ -6,7 +6,7 @@
* Copyright: (c) 2010 Jason Turner (lefticus@gmail.com),
* (c) 2009 Jonathan Turner,
* (c) 2004 Ben Keen (ben.keen@gmail.com), Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/07/03
*
* ChaiScript language file for GeSHi.
@@ -52,7 +52,7 @@ $language_data = array (
'ESCAPE_CHAR' => '\\',
'KEYWORDS' => array(
1 => array(
- 'break', 'else', 'else if', 'eval', 'for', 'if', 'return', 'while', 'try', 'catch', 'finally',
+ 'break', 'else', 'elseif', 'eval', 'for', 'if', 'return', 'while', 'try', 'catch', 'finally',
),
2 => array(
'def', 'false', 'fun', 'true', 'var', 'attr',
diff --git a/inc/geshi/cil.php b/inc/geshi/cil.php
index 975572c64..9872e755f 100644
--- a/inc/geshi/cil.php
+++ b/inc/geshi/cil.php
@@ -4,7 +4,7 @@
* --------
* Author: Marcus Griep (neoeinstein+GeSHi@gmail.com)
* Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/10/24
*
* CIL (Common Intermediate Language) language file for GeSHi.
diff --git a/inc/geshi/clojure.php b/inc/geshi/clojure.php
index bf21c7603..0ad4e4ad7 100644
--- a/inc/geshi/clojure.php
+++ b/inc/geshi/clojure.php
@@ -4,7 +4,7 @@
* --------
* Author: Jess Johnson (jess@grok-code.com)
* Copyright: (c) 2009 Jess Johnson (http://grok-code.com)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/09/20
*
* Clojure language file for GeSHi.
diff --git a/inc/geshi/cmake.php b/inc/geshi/cmake.php
index fcf45c691..67277aa9c 100644
--- a/inc/geshi/cmake.php
+++ b/inc/geshi/cmake.php
@@ -4,7 +4,7 @@
* -------
* Author: Daniel Nelson (danieln@eng.utah.edu)
* Copyright: (c) 2009 Daniel Nelson
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/04/06
*
* CMake language file for GeSHi.
diff --git a/inc/geshi/cobol.php b/inc/geshi/cobol.php
index c3ed01d4c..b07be48a1 100644
--- a/inc/geshi/cobol.php
+++ b/inc/geshi/cobol.php
@@ -4,7 +4,7 @@
* ----------
* Author: BenBE (BenBE@omorphia.org)
* Copyright: (c) 2007-2008 BenBE (http://www.omorphia.de/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/07/02
*
* COBOL language file for GeSHi.
diff --git a/inc/geshi/coffeescript.php b/inc/geshi/coffeescript.php
index f85541973..194aecd08 100644
--- a/inc/geshi/coffeescript.php
+++ b/inc/geshi/coffeescript.php
@@ -4,7 +4,7 @@
* ----------
* Author: Trevor Burnham (trevorburnham@gmail.com)
* Copyright: (c) 2010 Trevor Burnham (http://iterative.ly)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/06/08
*
* CoffeeScript language file for GeSHi.
diff --git a/inc/geshi/cpp-qt.php b/inc/geshi/cpp-qt.php
index 3f6aa3079..36626c90d 100644
--- a/inc/geshi/cpp-qt.php
+++ b/inc/geshi/cpp-qt.php
@@ -4,10 +4,10 @@
* -------
* Author: Iulian M
* Copyright: (c) 2006 Iulian M
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/09/27
*
- * C++ (with QT extensions) language file for GeSHi.
+ * C++ (with Qt extensions) language file for GeSHi.
*
* CHANGES
* -------
@@ -41,7 +41,7 @@
************************************************************************************/
$language_data = array (
- 'LANG_NAME' => 'C++ (QT)',
+ 'LANG_NAME' => 'C++ (Qt)',
'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
'COMMENT_MULTI' => array('/*' => '*/'),
'COMMENT_REGEXP' => array(
diff --git a/inc/geshi/cpp.php b/inc/geshi/cpp.php
index 289ab9947..42ab311cc 100644
--- a/inc/geshi/cpp.php
+++ b/inc/geshi/cpp.php
@@ -7,7 +7,7 @@
* - M. Uli Kusterer (witness.of.teachtext@gmx.net)
* - Jack Lloyd (lloyd@randombit.net)
* Copyright: (c) 2004 Dennis Bayer, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/09/27
*
* C++ language file for GeSHi.
diff --git a/inc/geshi/csharp.php b/inc/geshi/csharp.php
index e73f22d50..26024e91a 100644
--- a/inc/geshi/csharp.php
+++ b/inc/geshi/csharp.php
@@ -5,13 +5,15 @@
* Author: Alan Juden (alan@judenware.org)
* Revised by: Michael Mol (mikemol@gmail.com)
* Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/06/04
*
* C# language file for GeSHi.
*
* CHANGES
* -------
+ * 2012/06/18 (1.0.8.11)
+ * - Added missing keywords (Christian Stelzmann)
* 2009/04/03 (1.0.8.6)
* - Added missing keywords identified by Rosetta Code users.
* 2008/05/25 (1.0.7.22)
@@ -60,14 +62,15 @@ $language_data = array (
'ESCAPE_CHAR' => '\\',
'KEYWORDS' => array(
1 => array(
- 'as', 'auto', 'base', 'break', 'case', 'catch', 'const', 'continue',
+ 'abstract', 'add', 'as', 'base', 'break', 'by', 'case', 'catch', 'const', 'continue',
'default', 'do', 'else', 'event', 'explicit', 'extern', 'false',
- 'finally', 'fixed', 'for', 'foreach', 'from', 'goto', 'if',
- 'implicit', 'in', 'internal', 'lock', 'namespace', 'null',
+ 'finally', 'fixed', 'for', 'foreach', 'from', 'get', 'goto', 'group', 'if',
+ 'implicit', 'in', 'into', 'internal', 'join', 'lock', 'namespace', 'null',
'operator', 'out', 'override', 'params', 'partial', 'private',
- 'protected', 'public', 'readonly', 'ref', 'return', 'sealed',
- 'select', 'stackalloc', 'static', 'switch', 'this', 'throw', 'true',
- 'try', 'unsafe', 'using', 'virtual', 'where', 'while', 'yield'
+ 'protected', 'public', 'readonly', 'remove', 'ref', 'return', 'sealed',
+ 'select', 'set', 'stackalloc', 'static', 'switch', 'this', 'throw', 'true',
+ 'try', 'unsafe', 'using', 'var', 'value', 'virtual', 'volatile', 'where',
+ 'while', 'yield'
),
2 => array(
'#elif', '#endif', '#endregion', '#else', '#error', '#define', '#if',
@@ -78,7 +81,7 @@ $language_data = array (
),
4 => array(
'bool', 'byte', 'char', 'class', 'decimal', 'delegate', 'double',
- 'enum', 'float', 'int', 'interface', 'long', 'object', 'sbyte',
+ 'dynamic', 'enum', 'float', 'int', 'interface', 'long', 'object', 'sbyte',
'short', 'string', 'struct', 'uint', 'ulong', 'ushort', 'void'
),
5 => array(
diff --git a/inc/geshi/css.php b/inc/geshi/css.php
index a8706bd26..d09bea7da 100644
--- a/inc/geshi/css.php
+++ b/inc/geshi/css.php
@@ -4,7 +4,7 @@
* -------
* Author: Nigel McNie (nigel@geshi.org)
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/06/18
*
* CSS language file for GeSHi.
@@ -72,6 +72,8 @@ $language_data = array (
'aqua', 'azimuth', 'background-attachment', 'background-color',
'background-image', 'background-position', 'background-repeat',
'background', 'black', 'blue', 'border-bottom-color',
+ 'border-radius', 'border-top-left-radius', 'border-top-right-radius',
+ 'border-bottom-right-radius', 'border-bottom-left-radius',
'border-bottom-style', 'border-bottom-width', 'border-left-color',
'border-left-style', 'border-left-width', 'border-right',
'border-right-color', 'border-right-style', 'border-right-width',
@@ -215,7 +217,8 @@ $language_data = array (
'TAB_WIDTH' => 4,
'PARSER_CONTROL' => array(
'KEYWORDS' => array(
- 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\.])'
+ 'DISALLOWED_AFTER' => '(?![\-a-zA-Z0-9_\|%\\-&\.])',
+ 'DISALLOWED_BEFORE' => '(?<![\-a-zA-Z0-9_\|%\\~&\.])'
)
)
);
diff --git a/inc/geshi/cuesheet.php b/inc/geshi/cuesheet.php
index e994a0aa3..ebaca955f 100644
--- a/inc/geshi/cuesheet.php
+++ b/inc/geshi/cuesheet.php
@@ -4,7 +4,7 @@
* ----------
* Author: Benny Baumann (benbe@geshi.org)
* Copyright: (c) 2009 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/12/21
*
* Cuesheet language file for GeSHi.
diff --git a/inc/geshi/d.php b/inc/geshi/d.php
index 107d07b1a..7f3e9857a 100644
--- a/inc/geshi/d.php
+++ b/inc/geshi/d.php
@@ -3,14 +3,18 @@
* d.php
* -----
* Author: Thomas Kuehne (thomas@kuehne.cn)
+ * Contributors:
+ * - Jimmy Cao
* Copyright: (c) 2005 Thomas Kuehne (http://thomas.kuehne.cn/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/04/22
*
* D language file for GeSHi.
*
* CHANGES
* -------
+ * 2011/06/28 (0.0.3) (Jimmy Cao)
+ * - added D2 features
* 2005/04/22 (0.0.2)
* - added _d_* and sizeof/ptrdiff_t
* 2005/04/20 (0.0.1)
@@ -45,7 +49,7 @@
$language_data = array (
'LANG_NAME' => 'D',
'COMMENT_SINGLE' => array(2 => '///', 1 => '//'),
- 'COMMENT_MULTI' => array('/*' => '*/'),
+ 'COMMENT_MULTI' => array('/*' => '*/', '/+' => '+/'),
'COMMENT_REGEXP' => array(
// doxygen comments
3 => '#/\*\*(?![\*\/]).*\*/#sU',
@@ -126,63 +130,39 @@ $language_data = array (
1 => array(
'break', 'case', 'continue', 'do', 'else',
'for', 'foreach', 'goto', 'if', 'return',
- 'switch', 'while'
+ 'switch', 'while', 'foreach_reverse'
),
2 => array(
'alias', 'asm', 'assert', 'body', 'cast',
'catch', 'default', 'delegate', 'delete',
'extern', 'false', 'finally', 'function',
- 'import', 'in', 'inout', 'interface',
- 'invariant', 'is', 'mixin', 'module', 'new',
+ 'import', 'in', 'inout',
+ 'invariant', 'is', 'lazy', 'mixin', 'module', 'new',
'null', 'out', 'pragma', 'ref', 'super', 'this',
- 'throw', 'true', 'try', 'typedef', 'typeid',
- 'typeof', 'union', 'with'
+ 'throw', 'true', 'try', 'typeid',
+ 'typeof', 'union', 'with', 'scope'
),
3 => array(
- 'ArrayBoundsError', 'AssertError',
'ClassInfo', 'Error', 'Exception',
- 'Interface', 'ModuleInfo', 'Object',
- 'OutOfMemoryException', 'SwitchError',
- 'TypeInfo', '_d_arrayappend',
- '_d_arrayappendb', '_d_arrayappendc',
- '_d_arrayappendcb', '_d_arraycast',
- '_d_arraycast_frombit', '_d_arraycat',
- '_d_arraycatb', '_d_arraycatn',
- '_d_arraycopy', '_d_arraycopybit',
- '_d_arraysetbit', '_d_arraysetbit2',
- '_d_arraysetlength', '_d_arraysetlengthb',
- '_d_callfinalizer',
- '_d_create_exception_object',
- '_d_criticalenter', '_d_criticalexit',
- '_d_delarray', '_d_delclass',
- '_d_delinterface', '_d_delmemory',
- '_d_dynamic_cast', '_d_exception',
- '_d_exception_filter', '_d_framehandler',
- '_d_interface_cast', '_d_interface_vtbl',
- '_d_invariant', '_d_isbaseof',
- '_d_isbaseof2', '_d_local_unwind',
- '_d_monitorenter', '_d_monitorexit',
- '_d_monitorrelease', '_d_monitor_epilog',
- '_d_monitor_handler', '_d_monitor_prolog',
- '_d_new', '_d_newarrayi', '_d_newbitarray',
- '_d_newclass', '_d_obj_cmp', '_d_obj_eq',
- '_d_OutOfMemory', '_d_switch_dstring',
- '_d_switch_string', '_d_switch_ustring',
- '_d_throw',
+ 'Interface', 'Object', 'IMonitor',
+ 'OffsetTypeInfo', 'Throwable',
+ 'TypeInfo_Class', 'TypeInfo', '__traits',
+ '__EOF__', '__FILE__', '__LINE__',
),
4 => array(
'abstract', 'align', 'auto', 'bit', 'bool',
- 'byte', 'cdouble', 'cent', 'cfloat', 'char',
- 'class', 'const', 'creal', 'dchar', 'debug',
+ 'byte', 'cdouble', 'cfloat', 'char',
+ 'class', 'const', 'creal', 'dchar', 'dstring', 'debug',
'deprecated', 'double', 'enum', 'export',
- 'final', 'float', 'idouble', 'ifloat', 'int',
- 'ireal', 'long', 'override', 'package',
- 'private', 'protected', 'ptrdiff_t',
- 'public', 'real', 'short', 'size_t',
- 'static', 'struct', 'synchronized',
+ 'final', 'float', 'idouble', 'ifloat', 'immutable', 'int',
+ 'interface', 'ireal', 'long', 'nothrow', 'override',
+ 'package', 'private', 'protected', 'ptrdiff_t',
+ 'public', 'real', 'short', 'shared', 'size_t',
+ 'static', 'string', 'struct', 'synchronized',
'template', 'ubyte', 'ucent', 'uint',
'ulong', 'unittest', 'ushort', 'version',
- 'void', 'volatile', 'wchar'
+ 'void', 'volatile', 'wchar', 'wstring',
+ '__gshared', '@disable', '@property', 'pure', 'safe'
)
),
'SYMBOLS' => array(
diff --git a/inc/geshi/dcl.php b/inc/geshi/dcl.php
new file mode 100644
index 000000000..db12a4c4e
--- /dev/null
+++ b/inc/geshi/dcl.php
@@ -0,0 +1,192 @@
+<?php
+/*************************************************************************************
+ * dcl.php
+ * --------
+ * Author: Petr Hendl (petr@hendl.cz)
+ * Copyright: (c) 2011 Petr Hendl http://hendl.cz/geshi/
+ * Release Version: 1.0.8.11
+ * Date Started: 2011/02/17
+ *
+ * DCL language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2011-02-17 (1.0.8.11)
+ * - First Release
+ *
+ * TODO
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'DCL',
+ 'COMMENT_SINGLE' => array('$!', '!'),
+ 'COMMENT_MULTI' => array(),
+ 'COMMENT_REGEXP' => array(
+ 2 => '/(?<=\$)\s*sql\s+.*?(?:quit|exit);?\s*?$/sim' // do not highlight inline sql
+ ),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array('"'),
+ 'HARDESCAPE' => array(),
+ 'ESCAPE_CHAR' => '',
+ 'ESCAPE_REGEXP' => array(
+ 1 => "/''[a-zA-Z\\-_]+'/"
+ ),
+ 'KEYWORDS' => array(
+ 1 => array( // commands
+ 'ACCOUNTING', 'ALLOCATE', 'ANALYZE', 'APPEND', 'ASSIGN', 'ATTACH', 'BACKUP',
+ 'CALL', 'CANCEL', 'CHECKSUM', 'CLOSE', 'CONNECT', 'CONTINUE', 'CONVERT',
+ 'COPY', 'CREATE', 'DEALLOCATE', 'DEASSIGN', 'DEBUG', 'DECK',
+ 'DECRYPT', 'DEFINE', 'DELETE', 'DEPOSIT', 'DIFFERENCES', 'DIRECTORY',
+ 'DISABLE', 'AUTOSTART', 'DISCONNECT', 'DISMOUNT', 'DUMP', 'EDIT', 'ENABLE',
+ 'ENCRYPT', 'ENDSUBROUTINE', 'EOD', 'EOJ', 'EXAMINE', 'EXCHANGE',
+ 'EXIT', 'FONT', 'GOSUB', 'GOTO', 'HELP', 'IF', 'THEN', 'ELSE', 'ENDIF', 'INITIALIZE', 'INQUIRE',
+ 'INSTALL', 'JAVA', 'JOB', 'LIBRARY', 'LICENSE', 'LINK', 'LOGIN', 'LOGOUT',
+ 'MACRO', 'MAIL', 'MERGE', 'MESSAGE', 'MONITOR', 'MOUNT', 'NCS', 'ON', 'OPEN',
+ 'PASSWORD', 'PATCH', 'PHONE', 'PIPE', 'PPPD', 'PRINT', 'PRODUCT', 'PURGE',
+ 'READ', 'RECALL', 'RENAME', 'REPLY', 'REQUEST', 'RETURN', 'RMU', 'RUN', 'RUNOFF',
+ 'SEARCH', 'SET', 'SET AUDIT', 'SET BOOTBLOCK', 'SET BROADCAST',
+ 'SET CACHE', 'SET CARD_READER', 'SET CLUSTER', 'SET COMMAND', 'SET CONTROL',
+ 'SET CPU', 'SET DAY', 'SET DEFAULT', 'SET DEVICE', 'SET DIRECTORY',
+ 'SET DISPLAY', 'SET ENTRY', 'SET FILE', 'SET HOST', 'SET IMAGE', 'SET KEY',
+ 'SET LOGINS', 'SET MAGTAPE', 'SET MESSAGE', 'SET NETWORK', 'SET ON', 'SET OUTPUT_RATE',
+ 'SET PASSWORD', 'SET PREFERRED_PATH', 'SET PREFIX', 'SET PRINTER', 'SET PROCESS',
+ 'SET PROMPT', 'SET PROTECTION', 'SET QUEUE', 'SET RESTART_VALUE',
+ 'SET RIGHTS_LIST', 'SET RMS_DEFAULT', 'SET ROOT', 'SET SECURITY',
+ 'SET SERVER ACME_SERVER', 'SET SERVER REGISTRY_SERVER', 'SET SERVER SECURITY_SERVER',
+ 'SET SHADOW', 'SET SYMBOL', 'SET TERMINAL', 'SET TIME', 'SET VERIFY',
+ 'SET VOLUME', 'SET WORKING_SET', 'SHOW', 'SHOW AUDIT',
+ 'SHOW BROADCAST', 'SHOW CLUSTER', 'SHOW CPU', 'SHOW DEFAULT', 'SHOW DEVICES',
+ 'SHOW DISPLAY', 'SHOW ENTRY', 'SHOW ERROR', 'SHOW FASTPATH', 'SHOW IMAGE',
+ 'SHOW INTRUSION', 'SHOW KEY', 'SHOW LICENSE', 'SHOW LOGICAL', 'SHOW MEMORY',
+ 'SHOW NETWORK', 'SHOW PRINTER', 'SHOW PROCESS', 'SHOW PROTECTION', 'SHOW QUEUE',
+ 'SHOW QUOTA', 'SHOW RMS_DEFAULT', 'SHOW ROOT', 'SHOW SECURITY',
+ 'SHOW SERVER ACME_SERVER', 'SHOW SERVER REGISTRY_SERVER', 'SHOW SHADOW',
+ 'SHOW STATUS', 'SHOW SYMBOL', 'SHOW SYSTEM', 'SHOW TERMINAL', 'SHOW TIME',
+ 'SHOW TRANSLATION', 'SHOW USERS', 'SHOW WORKING_SET', 'SHOW ZONE', 'SORT',
+ 'SPAWN', 'START', 'STOP', 'SUBMIT', 'SUBROUTINE', 'SYNCHRONIZE', 'TYPE',
+ 'UNLOCK', 'VIEW', 'WAIT', 'WRITE', 'XAUTH'
+ ),
+ 2 => array( // lexical functions
+ 'F$CONTEXT', 'F$CSID', 'F$CUNITS', 'F$CVSI', 'F$CVTIME', 'F$CVUI',
+ 'F$DELTA_TIME', 'F$DEVICE', 'F$DIRECTORY', 'F$EDIT', 'F$ELEMENT',
+ 'F$ENVIRONMENT', 'F$EXTRACT', 'F$FAO', 'F$FID_TO_NAME', 'F$FILE_ATTRIBUTES',
+ 'F$GETDVI', 'F$GETENV', 'F$GETJPI', 'F$GETQUI', 'F$GETSYI', 'F$IDENTIFIER',
+ 'F$INTEGER', 'F$LENGTH', 'F$LICENSE', 'F$LOCATE', 'F$MATCH_WILD', 'F$MESSAGE',
+ 'F$MODE', 'F$MULTIPATH', 'F$PARSE', 'F$PID', 'F$PRIVILEGE', 'F$PROCESS',
+ 'F$SEARCH', 'F$SETPRV', 'F$STRING', 'F$TIME', 'F$TRNLNM', 'F$TYPE', 'F$UNIQUE',
+ 'F$USER', 'F$VERIFY'
+ ),
+ 3 => array( // special variables etc
+ 'sql$database', 'P1', 'P2', 'P3', 'P4', 'P5', 'P6', 'P7', 'P8', 'P9',
+ '$status', '$severity', 'sys$login', 'sys$system',
+ 'sys$input', 'sys$output', 'sys$pipe'
+ )
+ ),
+ 'SYMBOLS' => array(
+ '(', ')', '[', ']', '@', '&', '|', '<', '>', '-',
+ '.eqs.', '.eq.', '.lt.', '.lts.', '.gt.', '.gts.', '.ne.', '.nes.',
+ '.le.', '.ge.', '.ges.', '.les.',
+ '.EQS.', '.EQ.', '.LT.', '.LTS.', '.GT.', '.GTS.', '.NE.', '.NES.',
+ '.LE.', '.GE.', '.GES.', '.LES.',
+ '.and.', '.or.', '.not.',
+ '.AND.', '.OR.', '.NOT.',
+ '==', ':==', '=', ':='
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false,
+ 1 => false,
+ 2 => false,
+ 3 => false
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color: #000099; font-weight: bold;',
+ 2 => 'color: #0066FF;',
+ 3 => 'color: #993300;'
+ ),
+ 'COMMENTS' => array(
+ 0 => 'color: #666666; font-style: italic;',
+ 1 => 'color: #666666; font-style: italic;',
+ 2 => 'color: #9999FF; font-style: italic;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #006666;',
+ 1 => 'color: #0099FF;',
+ 2 => 'color: red;',
+ 3 => 'color: #007800;',
+ 4 => 'color: #007800;',
+ 5 => 'color: #780078;'
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #7a0874; font-weight: bold;'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #009900;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #000000;'
+ ),
+ 'METHODS' => array(
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color: #000000; font-weight: bold;'
+ ),
+ 'REGEXPS' => array(
+ 0 => 'color: #0099FF;', // variables
+ 1 => 'color: #0000FF;', // qualifiers
+ 2 => 'color: #FF6600; font-weight: bold;' // labels
+ ),
+ 'SCRIPT' => array(
+ )
+ ),
+ 'URLS' => array(
+ 1 => '',
+ 2 => '',
+ 3 => ''
+ ),
+ 'OOLANG' => false,
+ 'OBJECT_SPLITTERS' => array(
+ ),
+ 'REGEXPS' => array(
+ // variables
+ 0 => "'[a-zA-Z_\\-$]+'",
+ // qualifiers and parameters
+ 1 => "(?:\/[a-zA-Z_\/]+)[\s=]",
+ // labels
+ 2 => '(?<=\$)\s*[a-zA-Z\-_]+:'
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ ),
+ 'TAB_WIDTH' => 4,
+ 'PARSER_CONTROL' => array(
+ 'COMMENTS' => array(
+ ),
+ 'KEYWORDS' => array(
+ )
+ )
+);
+
+?> \ No newline at end of file
diff --git a/inc/geshi/dcpu16.php b/inc/geshi/dcpu16.php
new file mode 100644
index 000000000..5fcb25e51
--- /dev/null
+++ b/inc/geshi/dcpu16.php
@@ -0,0 +1,131 @@
+<?php
+/*************************************************************************************
+ * dcpu16.php
+ * -------
+ * Author: Benny Baumann (BenBE@omorphia.de)
+ * Copyright: (c) 2007-2012 Benny Baumann (http://geshi.org/)
+ * Release Version: 1.0.8.11
+ * Date Started: 2012/04/12
+ *
+ * DCPU/16 Assembly language file for GeSHi.
+ * Syntax definition based on http://0x10c.com/doc/dcpu-16.txt
+ *
+ * CHANGES
+ * -------
+ * 2012/04/12 (1.0.0)
+ * - First Release
+ *
+ * TODO (updated 2012/04/12)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'DCPU-16 Assembly',
+ 'COMMENT_SINGLE' => array(1 => ';'),
+ 'COMMENT_MULTI' => array(),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array("'", '"'),
+ 'ESCAPE_CHAR' => '',
+ 'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_HEX_PREFIX,
+ 'KEYWORDS' => array(
+ /*CPU*/
+ 1 => array(
+ 'set','add','sub','mul','div','mod','shl','shr','and','bor','xor',
+ 'ife','ifn','ifg','ifb',
+ 'jsr'
+ ),
+ /*registers*/
+ 2 => array(
+ 'a','b','c','x','y','z','i','j',
+ 'pc','sp','o',
+ 'pop','peek','push' //Special cases with DCPU-16
+ ),
+ ),
+ 'SYMBOLS' => array(
+ '[', ']', '+', '-', ','
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false,
+ 1 => false,
+ 2 => false,
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color: #000088; font-weight:bold;',
+ 2 => 'color: #0000ff;'
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #adadad; font-style: italic;',
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #000099; font-weight: bold;'
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #000088;'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #7f007f;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #880000;'
+ ),
+ 'METHODS' => array(
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color: #008000;'
+ ),
+ 'REGEXPS' => array(
+ 2 => 'color: #993333;'
+ ),
+ 'SCRIPT' => array(
+ )
+ ),
+ 'URLS' => array(
+ 1 => 'http://0x10c.com/doc/dcpu-16.txt',
+ 2 => ''
+ ),
+ 'OOLANG' => false,
+ 'OBJECT_SPLITTERS' => array(
+ ),
+ 'REGEXPS' => array(
+ //Hex numbers
+ //0 => '0[0-9a-fA-F]{1,32}[hH]',
+ //Binary numbers
+ //1 => '\%[01]{1,64}|[01]{1,64}[bB]?(?![^<]*>)',
+ //Labels
+ 2 => '^:[_a-zA-Z][_a-zA-Z0-9]?(?=\s|$)'
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ ),
+ 'TAB_WIDTH' => 4,
+ 'PARSER_CONTROL' => array(
+ 'KEYWORDS' => array(
+ 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#\/])",
+ 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\|%\\-])"
+ )
+ )
+);
+
+?> \ No newline at end of file
diff --git a/inc/geshi/dcs.php b/inc/geshi/dcs.php
index bac2beea8..d32cfc5b9 100644
--- a/inc/geshi/dcs.php
+++ b/inc/geshi/dcs.php
@@ -4,7 +4,7 @@
* ---------------------------------
* Author: Stelio Passaris (GeSHi@stelio.net)
* Copyright: (c) 2009 Stelio Passaris (http://stelio.net/stiki/GeSHi)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/01/20
*
* DCS language file for GeSHi.
diff --git a/inc/geshi/delphi.php b/inc/geshi/delphi.php
index d7f19f832..d5596e0cd 100644
--- a/inc/geshi/delphi.php
+++ b/inc/geshi/delphi.php
@@ -4,13 +4,17 @@
* ----------
* Author: J�rja Norbert (jnorbi@vipmail.hu), Benny Baumann (BenBE@omorphia.de)
* Copyright: (c) 2004 J�rja Norbert, Benny Baumann (BenBE@omorphia.de), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/07/26
*
* Delphi (Object Pascal) language file for GeSHi.
*
* CHANGES
* -------
+ * 2012/06/27 (1.0.8.11)
+ * - Added some keywords
+ * - fixed hex numbers and hex char literals (including WideChar)
+ * - Added support for FPC-Style generics
* 2008/05/23 (1.0.7.22)
* - Added description of extra language features (SF#1970248)
* 2005/11/19 (1.0.3)
@@ -51,27 +55,28 @@ $language_data = array (
'COMMENT_MULTI' => array('(*' => '*)', '{' => '}'),
//Compiler directives
'COMMENT_REGEXP' => array(2 => '/\\{\\$.*?}|\\(\\*\\$.*?\\*\\)/U'),
- 'CASE_KEYWORDS' => 0,
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
'QUOTEMARKS' => array("'"),
'ESCAPE_CHAR' => '',
+
'KEYWORDS' => array(
1 => array(
'Abstract', 'And', 'Array', 'As', 'Asm', 'At', 'Begin', 'Case',
- 'Class', 'Const', 'Constructor', 'Contains', 'Destructor',
+ 'Class', 'Const', 'Constructor', 'Contains', 'Default', 'delayed', 'Destructor',
'DispInterface', 'Div', 'Do', 'DownTo', 'Else', 'End', 'Except',
- 'Export', 'Exports', 'External', 'File', 'Finalization', 'Finally',
- 'For', 'Function', 'Goto', 'If', 'Implementation', 'In', 'Inherited',
- 'Initialization', 'Inline', 'Interface', 'Is', 'Label', 'Library',
- 'Mod', 'Not', 'Object', 'Of', 'On', 'Or', 'Overload', 'Override',
+ 'Export', 'Exports', 'External', 'File', 'Finalization', 'Finally', 'For',
+ 'Function', 'Generic', 'Goto', 'If', 'Implementation', 'In', 'Inherited',
+ 'Initialization', 'Inline', 'Interface', 'Is', 'Label', 'Library', 'Message',
+ 'Mod', 'Nil', 'Not', 'Object', 'Of', 'On', 'Or', 'Overload', 'Override',
'Package', 'Packed', 'Private', 'Procedure', 'Program', 'Property',
- 'Protected', 'Public', 'Published', 'Raise', 'Record', 'Register',
- 'Repeat', 'Requires', 'Resourcestring', 'Set', 'Shl', 'Shr', 'Then',
- 'ThreadVar', 'To', 'Try', 'Type', 'Unit', 'Until', 'Uses', 'Var',
- 'Virtual', 'While', 'With', 'Xor', 'assembler', 'far',
+ 'Protected', 'Public', 'Published', 'Read', 'Raise', 'Record', 'Register',
+ 'Repeat', 'Requires', 'Resourcestring', 'Set', 'Shl', 'Shr', 'Specialize', 'Stored',
+ 'Then', 'ThreadVar', 'To', 'Try', 'Type', 'Unit', 'Until', 'Uses', 'Var',
+ 'Virtual', 'While', 'With', 'Write', 'Xor', 'assembler', 'far',
'near', 'pascal', 'cdecl', 'safecall', 'stdcall', 'varargs'
),
2 => array(
- 'nil', 'false', 'self', 'true', 'var', 'type', 'const'
+ 'false', 'self', 'true',
),
3 => array(
'Abs', 'AcquireExceptionObject', 'Addr', 'AnsiToUtf8', 'Append', 'ArcTan',
@@ -250,7 +255,7 @@ $language_data = array (
1 => 'color: #006600;'
),
'REGEXPS' => array(
- 0 => 'color: #9ac;',
+ 0 => 'color: #0000cc;',
1 => 'color: #ff0000;'
),
'SYMBOLS' => array(
@@ -274,16 +279,23 @@ $language_data = array (
),
'REGEXPS' => array(
//Hex numbers
- 0 => '\$[0-9a-fA-F]+',
+ 0 => '(?<!\#)\$[0-9a-fA-F]+(?!\w)',
//Characters
- 1 => '\#(?:\$[0-9a-fA-F]{1,2}|\d{1,3})'
+ 1 => '\#(?:\$[0-9a-fA-F]{1,4}|\d{1,5})'
),
'STRICT_MODE_APPLIES' => GESHI_NEVER,
'SCRIPT_DELIMITERS' => array(
),
'HIGHLIGHT_STRICT_BLOCK' => array(
),
- 'TAB_WIDTH' => 2
+ 'TAB_WIDTH' => 2,
+ 'PARSER_CONTROL' => array(
+ 'KEYWORDS' => array(
+ 3 => array(
+ 'DISALLOWED_AFTER' => '(?=\s*[(;])'
+ )
+ )
+ )
);
-?> \ No newline at end of file
+?>
diff --git a/inc/geshi/diff.php b/inc/geshi/diff.php
index 09cc50873..5b6817178 100644
--- a/inc/geshi/diff.php
+++ b/inc/geshi/diff.php
@@ -4,7 +4,7 @@
* --------
* Author: Conny Brunnkvist (conny@fuchsia.se), W. Tasin (tasin@fhm.edu)
* Copyright: (c) 2004 Fuchsia Open Source Solutions (http://www.fuchsia.se/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/12/29
*
* Diff-output language file for GeSHi.
diff --git a/inc/geshi/div.php b/inc/geshi/div.php
index e8de7a525..aa11795ac 100644
--- a/inc/geshi/div.php
+++ b/inc/geshi/div.php
@@ -4,7 +4,7 @@
* ---------------------------------
* Author: Gabriel Lorenzo (ermakina@gmail.com)
* Copyright: (c) 2005 Gabriel Lorenzo (http://ermakina.gazpachito.net)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/06/19
*
* DIV language file for GeSHi.
diff --git a/inc/geshi/dos.php b/inc/geshi/dos.php
index e84e1550a..36d99836b 100644
--- a/inc/geshi/dos.php
+++ b/inc/geshi/dos.php
@@ -4,7 +4,7 @@
* -------
* Author: Alessandro Staltari (staltari@geocities.com)
* Copyright: (c) 2005 Alessandro Staltari (http://www.geocities.com/SiliconValley/Vista/8155/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/07/05
*
* DOS language file for GeSHi.
@@ -171,7 +171,7 @@ $language_data = array (
/* Variable assignement */
1 => array(
/* GESHI_SEARCH => '(SET[\s]+(?si:\/A[\s]+|\/P[\s]+|))([^=\s\n]+)([\s]*=)',*/
- GESHI_SEARCH => '(SET[\s]+(?si:\/A[\s]+|\/P[\s]+|))([^=\n]+)([\s]*=)',
+ GESHI_SEARCH => '(SET\s+(?si:\\/A\s+|\\/P\s+)?)([^=\n]+)(\s*=)',
GESHI_REPLACE => '\\2',
GESHI_MODIFIERS => 'si',
GESHI_BEFORE => '\\1',
@@ -180,7 +180,7 @@ $language_data = array (
/* Arguments or variable evaluation */
2 => array(
/* GESHI_SEARCH => '(%)([\d*]|[^%\s]*(?=%))((?<!%\d)%|)',*/
- GESHI_SEARCH => '(%(?:%(?=[a-z0-9]))?)([\d*]|(?:~[adfnpstxz]*(?:$\w+:)?)?[a-z0-9](?!\w)|[^%\n]*(?=%))((?<!%\d)%|)',
+ GESHI_SEARCH => '(!(?:!(?=[a-z0-9]))?)([\d*]|(?:~[adfnpstxz]*(?:$\w+:)?)?[a-z0-9](?!\w)|[^!>\n]*(?=!))((?<!%\d)%|)(?!!>)',
GESHI_REPLACE => '\\2',
GESHI_MODIFIERS => 'si',
GESHI_BEFORE => '\\1',
@@ -189,7 +189,7 @@ $language_data = array (
/* Arguments or variable evaluation */
3 => array(
/* GESHI_SEARCH => '(%)([\d*]|[^%\s]*(?=%))((?<!%\d)%|)',*/
- GESHI_SEARCH => '(!(?:!(?=[a-z0-9]))?)([\d*]|(?:~[adfnpstxz]*(?:$\w+:)?)?[a-z0-9](?!\w)|[^!>\n]*(?=!))((?<!%\d)%|)(?!!>)',
+ GESHI_SEARCH => '(%(?:%(?=[a-z0-9]))?)([\d*]|(?:~[adfnpstxz]*(?:$\w+:)?)?[a-z0-9](?!\w)|[^%\n]*(?=%))((?<!%\d)%|)',
GESHI_REPLACE => '\\2',
GESHI_MODIFIERS => 'si',
GESHI_BEFORE => '\\1',
diff --git a/inc/geshi/dot.php b/inc/geshi/dot.php
index 1d5036d36..bdf240a1f 100644
--- a/inc/geshi/dot.php
+++ b/inc/geshi/dot.php
@@ -4,7 +4,7 @@
* ---------------------------------
* Author: Adrien Friggeri (adrien@friggeri.net)
* Copyright: (c) 2007 Adrien Friggeri (http://www.friggeri.net)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/05/30
*
* dot language file for GeSHi.
diff --git a/inc/geshi/e.php b/inc/geshi/e.php
index 9bdbc137b..319bee016 100644
--- a/inc/geshi/e.php
+++ b/inc/geshi/e.php
@@ -4,7 +4,7 @@
* --------
* Author: Kevin Reid (kpreid@switchb.org)
* Copyright: (c) 2010 Kevin Reid (http://switchb.org/kpreid/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/04/16
*
* E language file for GeSHi.
diff --git a/inc/geshi/ecmascript.php b/inc/geshi/ecmascript.php
index e220c839b..69a55c9aa 100644
--- a/inc/geshi/ecmascript.php
+++ b/inc/geshi/ecmascript.php
@@ -4,7 +4,7 @@
* --------------
* Author: Michel Mariani (http://www.tonton-pixel.com/site/)
* Copyright: (c) 2010 Michel Mariani (http://www.tonton-pixel.com/site/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/01/08
*
* ECMAScript language file for GeSHi.
diff --git a/inc/geshi/eiffel.php b/inc/geshi/eiffel.php
index 66427acc7..baa13c319 100644
--- a/inc/geshi/eiffel.php
+++ b/inc/geshi/eiffel.php
@@ -4,7 +4,7 @@
* ----------
* Author: Zoran Simic (zsimic@axarosenberg.com)
* Copyright: (c) 2005 Zoran Simic
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/06/30
*
* Eiffel language file for GeSHi.
diff --git a/inc/geshi/email.php b/inc/geshi/email.php
index 68f875499..8a313d483 100644
--- a/inc/geshi/email.php
+++ b/inc/geshi/email.php
@@ -4,7 +4,7 @@
* ---------------
* Author: Benny Baumann (BenBE@geshi.org)
* Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/10/19
*
* Email (mbox \ eml \ RFC format) language file for GeSHi.
@@ -152,7 +152,19 @@ $language_data = array (
4 => array(
GESHI_SEARCH => "(?<=\s)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=\s)|".
"(?<=\[)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=\])|".
- "(?<==)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=<)",
+ "(?<==)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=<)|".
+
+ "(?<=\s)(?:[a-f\d]{1,4}\:)+(?:[a-f\d]{0,4})?(?:\:[a-f\d]{1,4})+(?=\s)|".
+ "(?<=\[)(?:[a-f\d]{1,4}\:)+(?:[a-f\d]{0,4})?(?:\:[a-f\d]{1,4})+(?=\])|".
+ "(?<==)(?:[a-f\d]{1,4}\:)+(?:[a-f\d]{0,4})?(?:\:[a-f\d]{1,4})+(?=<)|".
+
+ "(?<=\s)\:(?:\:[a-f\d]{1,4})+(?=\s)|".
+ "(?<=\[)\:(?:\:[a-f\d]{1,4})+(?=\])|".
+ "(?<==)\:(?:\:[a-f\d]{1,4})+(?=<)|".
+
+ "(?<=\s)(?:[a-f\d]{1,4}\:)+\:(?=\s)|".
+ "(?<=\[)(?:[a-f\d]{1,4}\:)+\:(?=\])|".
+ "(?<==)(?:[a-f\d]{1,4}\:)+\:(?=<)",
GESHI_REPLACE => "\\0",
GESHI_MODIFIERS => "i",
GESHI_BEFORE => "",
diff --git a/inc/geshi/epc.php b/inc/geshi/epc.php
index 764461fc2..c575c0c63 100644
--- a/inc/geshi/epc.php
+++ b/inc/geshi/epc.php
@@ -4,7 +4,7 @@
* --------
* Author: Thorsten Muehlfelder (muehlfelder@enertex.de)
* Copyright: (c) 2010 Enertex Bayern GmbH
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/08/26
*
* Enerscript language file for GeSHi.
diff --git a/inc/geshi/erlang.php b/inc/geshi/erlang.php
index ede55917c..4b8d406b0 100644
--- a/inc/geshi/erlang.php
+++ b/inc/geshi/erlang.php
@@ -7,7 +7,7 @@
* - Uwe Dauernheim (uwe@dauernheim.net)
* - Dan Forest-Barbier (dan@twisted.in)
* Copyright: (c) 2008 Uwe Dauernheim (http://www.kreisquadratur.de/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008-09-27
*
* Erlang language file for GeSHi.
diff --git a/inc/geshi/euphoria.php b/inc/geshi/euphoria.php
index afd4ad7c4..7bbf88460 100644
--- a/inc/geshi/euphoria.php
+++ b/inc/geshi/euphoria.php
@@ -4,7 +4,7 @@
* ---------------------------------
* Author: Nicholas Koceja (nerketur@hotmail.com)
* Copyright: (c) 2010 Nicholas Koceja
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 11/24/2010
*
* Euphoria language file for GeSHi.
diff --git a/inc/geshi/f1.php b/inc/geshi/f1.php
index 13056b78b..7d7676085 100644
--- a/inc/geshi/f1.php
+++ b/inc/geshi/f1.php
@@ -4,7 +4,7 @@
* -------
* Author: Juro Bystricky (juro@f1compiler.com)
* Copyright: K2 Software Corp.
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/07/06
*
* Formula One language file for GeSHi.
diff --git a/inc/geshi/falcon.php b/inc/geshi/falcon.php
index ce75f2057..2111d9e8e 100644
--- a/inc/geshi/falcon.php
+++ b/inc/geshi/falcon.php
@@ -4,7 +4,7 @@
* ---------------------------------
* Author: billykater (billykater+geshi@gmail.com)
* Copyright: (c) 2010 billykater (http://falconpl.org/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/06/07
*
* Falcon language file for GeSHi.
diff --git a/inc/geshi/fo.php b/inc/geshi/fo.php
index e472f2271..ba4a59244 100644
--- a/inc/geshi/fo.php
+++ b/inc/geshi/fo.php
@@ -4,7 +4,7 @@
* --------
* Author: Tan-Vinh Nguyen (tvnguyen@web.de)
* Copyright: (c) 2009 Tan-Vinh Nguyen
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/03/23
*
* fo language file for GeSHi.
diff --git a/inc/geshi/fortran.php b/inc/geshi/fortran.php
index 247e3e4b4..c21ccd192 100644
--- a/inc/geshi/fortran.php
+++ b/inc/geshi/fortran.php
@@ -4,7 +4,7 @@
* -----------
* Author: Cedric Arrabie (cedric.arrabie@univ-pau.fr)
* Copyright: (C) 2006 Cetric Arrabie
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2006/04/22
*
* Fortran language file for GeSHi.
diff --git a/inc/geshi/freebasic.php b/inc/geshi/freebasic.php
index 8ac2904eb..b23f39bc7 100644
--- a/inc/geshi/freebasic.php
+++ b/inc/geshi/freebasic.php
@@ -4,7 +4,7 @@
* -------------
* Author: Roberto Rossi
* Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/08/19
*
* FreeBasic (http://www.freebasic.net/) language file for GeSHi.
diff --git a/inc/geshi/freeswitch.php b/inc/geshi/freeswitch.php
new file mode 100644
index 000000000..c6fff2767
--- /dev/null
+++ b/inc/geshi/freeswitch.php
@@ -0,0 +1,168 @@
+<?php
+/*************************************************************************************
+ * freeswitch.php
+ * --------
+ * Author: James Rose (james.gs@stubbornroses.com)
+ * Copyright: (c) 2006 Christian Lescuyer http://xtian.goelette.info
+ * Release Version: 1.0.8.11n/a
+ * Date Started: 2011/11/18
+ *
+ * FreeSWITCH language file for GeSHi.
+ *
+ * This file is based on robots.php
+ *
+ * 2011/11/18 (1.0.0)
+ * - First Release
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'FreeSWITCH',
+ 'COMMENT_SINGLE' => array(1 => '#'),
+ 'COMMENT_MULTI' => array(),
+ 'COMMENT_REGEXP' => array(1 => "/^Comment:.*?$/m"),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array(),
+ 'ESCAPE_CHAR' => '',
+ 'KEYWORDS' => array(
+// 1 => array(
+// 'Disallow', 'Request-rate', 'Robot-version',
+// 'Sitemap', 'User-agent', 'Visit-time'
+// )
+ ),
+ 'SYMBOLS' => array(
+// ':'
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false
+ ),
+
+//order is important. regexes will overwrite most things....
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+// 1 => 'color: #FF0000; font-weight: bold;',//red
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #808080; font-style: italic;',
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #000099; font-weight: bold;'
+ ),
+ 'BRACKETS' => array(
+// 0 => 'color: #66cc66;'
+ ),
+ 'STRINGS' => array(
+// 0 => 'color: #ff0000;'
+ ),
+ 'NUMBERS' => array(
+// 0 => 'color: #cc66cc;'
+ ),
+ 'METHODS' => array(
+ ),
+ 'SYMBOLS' => array(
+// 0 => 'color: #66cc66;'
+ ),
+ 'REGEXPS' => array(
+ 0 => 'color: firebrick; font-weight: bold;',
+ 1 => 'color: cornflowerblue; font-weight: bold;',
+ 2 => 'color: goldenrod; font-weight: bold;',
+ 3 => 'color: green; font-weight: bold;',
+ 4 => 'color: dimgrey; font-style: italic;',
+ 5 => 'color: green; font-weight: bold;',
+ 6 => 'color: firebrick; font-weight: bold;',
+ 7 => 'color: indigo; font-weight: italic;'
+ ),
+ 'SCRIPT' => array(
+ )
+ ),
+ 'URLS' => array(
+// 1 => 'http://www.robotstxt.org/wc/norobots.html'
+ ),
+ 'OOLANG' => false,
+ 'OBJECT_SPLITTERS' => array(
+ ),
+ 'REGEXPS' => array(
+ 0 => array(
+ GESHI_SEARCH => '(^.*ERROR.*)',
+ GESHI_REPLACE => '\\1',
+ GESHI_MODIFIERS => 'im',
+ GESHI_BEFORE => '',
+ GESHI_AFTER => ''
+ ),
+ 1 => array(
+ GESHI_SEARCH => '(^.*NOTICE.*)',
+ GESHI_REPLACE => '\\1',
+ GESHI_MODIFIERS => 'im',
+ GESHI_BEFORE => '',
+ GESHI_AFTER => ''
+ ),
+ 2 => array(
+ GESHI_SEARCH => '(^.*DEBUG.*)',
+ GESHI_REPLACE => '\\1',
+ GESHI_MODIFIERS => 'm',
+ GESHI_BEFORE => '',
+ GESHI_AFTER => ''
+ ),
+ 3 => array(
+ GESHI_SEARCH => '(^.*INFO.*|.*info\(.*|^Channel.*|^Caller.*|^variable.*)',
+ GESHI_REPLACE => '\\1',
+ GESHI_MODIFIERS => 'm',
+ GESHI_BEFORE => '',
+ GESHI_AFTER => ''
+ ),
+ 4 => array(
+ GESHI_SEARCH => '(^Dialplan.*)',
+ GESHI_REPLACE => '\\1',
+ GESHI_MODIFIERS => 'im',
+ GESHI_BEFORE => '',
+ GESHI_AFTER => ''
+ ),
+ 5 => array(
+ GESHI_SEARCH => '(Regex\ \(PASS\))',
+ GESHI_REPLACE => '\\1',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '',
+ GESHI_AFTER => ''
+ ),
+ 6 => array(
+ GESHI_SEARCH => '(Regex\ \(FAIL\))',
+ GESHI_REPLACE => '\\1',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '',
+ GESHI_AFTER => ''
+ ),
+ 7 => array(
+ GESHI_SEARCH => '(\d{7,15})',
+ GESHI_REPLACE => '\\1',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '',
+ GESHI_AFTER => ''
+ )
+ ),
+
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ )
+);
+
+?>
diff --git a/inc/geshi/fsharp.php b/inc/geshi/fsharp.php
index a900e4b60..d85a7c757 100644
--- a/inc/geshi/fsharp.php
+++ b/inc/geshi/fsharp.php
@@ -4,7 +4,7 @@
* ----------
* Author: julien ortin (jo_spam-divers@yahoo.fr)
* Copyright: (c) 2009 julien ortin
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/09/20
*
* F# language file for GeSHi.
@@ -44,7 +44,7 @@ $language_data = array(
'LANG_NAME' => 'F#',
'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
'COMMENT_MULTI' => array('/*' => '*/'),
- 'COMMENT_REGEXP' => array(3 => '/\(\*(?!\)).*?\*\)/'),
+ 'COMMENT_REGEXP' => array(3 => '/\(\*(?!\)).*?\*\)/s'),
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
'QUOTEMARKS' => array("'", '"'),
'HARDQUOTE' => array('@"', '"'),
diff --git a/inc/geshi/gambas.php b/inc/geshi/gambas.php
index b89db0382..352830ebb 100644
--- a/inc/geshi/gambas.php
+++ b/inc/geshi/gambas.php
@@ -5,7 +5,7 @@
* Author: Jesus Guardon (jguardon@telefonica.net)
* Copyright: (c) 2009 Jesus Guardon (http://gambas-es.org),
* Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/08/20
*
* GAMBAS language file for GeSHi.
diff --git a/inc/geshi/gdb.php b/inc/geshi/gdb.php
index 284b589a0..0a5e32c30 100644
--- a/inc/geshi/gdb.php
+++ b/inc/geshi/gdb.php
@@ -4,7 +4,7 @@
* --------
* Author: Milian Wolff (mail@milianw.de)
* Copyright: (c) 2009 Milian Wolff
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/06/24
*
* GDB language file for GeSHi.
diff --git a/inc/geshi/genero.php b/inc/geshi/genero.php
index 1d70d752c..e1b20b3e8 100644
--- a/inc/geshi/genero.php
+++ b/inc/geshi/genero.php
@@ -4,7 +4,7 @@
* ----------
* Author: Lars Gersmann (lars.gersmann@gmail.com)
* Copyright: (c) 2007 Lars Gersmann, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/07/01
*
* Genero (FOURJ's Genero 4GL) language file for GeSHi.
diff --git a/inc/geshi/genie.php b/inc/geshi/genie.php
index 898f9ef10..db05ec062 100644
--- a/inc/geshi/genie.php
+++ b/inc/geshi/genie.php
@@ -4,7 +4,7 @@
* ----------
* Author: Nicolas Joseph (nicolas.joseph@valaide.org)
* Copyright: (c) 2009 Nicolas Joseph
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/04/29
*
* Genie language file for GeSHi.
diff --git a/inc/geshi/gettext.php b/inc/geshi/gettext.php
index 1dc8f8d24..80b531c10 100644
--- a/inc/geshi/gettext.php
+++ b/inc/geshi/gettext.php
@@ -4,7 +4,7 @@
* --------
* Author: Milian Wolff (mail@milianw.de)
* Copyright: (c) 2008 Milian Wolff
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/05/25
*
* GNU Gettext .po/.pot language file for GeSHi.
diff --git a/inc/geshi/glsl.php b/inc/geshi/glsl.php
index d810db3f0..3615cfe71 100644
--- a/inc/geshi/glsl.php
+++ b/inc/geshi/glsl.php
@@ -4,7 +4,7 @@
* -----
* Author: Benny Baumann (BenBE@omorphia.de)
* Copyright: (c) 2008 Benny Baumann (BenBE@omorphia.de)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/03/20
*
* glSlang language file for GeSHi.
diff --git a/inc/geshi/gml.php b/inc/geshi/gml.php
index 57c42d4c8..999251b22 100644
--- a/inc/geshi/gml.php
+++ b/inc/geshi/gml.php
@@ -4,7 +4,7 @@
* --------
* Author: Jos� Jorge Enr�quez (jenriquez@users.sourceforge.net)
* Copyright: (c) 2005 Jos� Jorge Enr�quez Rodr�guez (http://www.zonamakers.com)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/06/21
*
* GML language file for GeSHi.
diff --git a/inc/geshi/gnuplot.php b/inc/geshi/gnuplot.php
index 59b343eb1..d8445eabb 100644
--- a/inc/geshi/gnuplot.php
+++ b/inc/geshi/gnuplot.php
@@ -4,7 +4,7 @@
* ----------
* Author: Milian Wolff (mail@milianw.de)
* Copyright: (c) 2008 Milian Wolff (http://milianw.de)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/07/07
*
* Gnuplot script language file for GeSHi.
diff --git a/inc/geshi/go.php b/inc/geshi/go.php
index a71c2515e..5b7a47db6 100644
--- a/inc/geshi/go.php
+++ b/inc/geshi/go.php
@@ -4,7 +4,7 @@
* --------
* Author: Markus Jarderot (mizardx at gmail dot com)
* Copyright: (c) 2010 Markus Jarderot
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/05/20
*
* Go language file for GeSHi.
diff --git a/inc/geshi/groovy.php b/inc/geshi/groovy.php
index 8a250245a..45290d2fc 100644
--- a/inc/geshi/groovy.php
+++ b/inc/geshi/groovy.php
@@ -4,7 +4,7 @@
* ----------
* Author: Ivan F. Villanueva B. (geshi_groovy@artificialidea.com)
* Copyright: (c) 2006 Ivan F. Villanueva B.(http://www.artificialidea.com)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2006/04/29
*
* Groovy language file for GeSHi.
diff --git a/inc/geshi/gwbasic.php b/inc/geshi/gwbasic.php
index e35a322a4..ecc16341d 100644
--- a/inc/geshi/gwbasic.php
+++ b/inc/geshi/gwbasic.php
@@ -4,7 +4,7 @@
* ----------
* Author: José Gabriel Moya Yangüela (josemoya@gmail.com)
* Copyright: (c) 2010 José Gabriel Moya Yangüela (http://doc.apagada.com)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/01/30
*
* GwBasic language file for GeSHi.
diff --git a/inc/geshi/haskell.php b/inc/geshi/haskell.php
index ce1b3bf69..adae11168 100644
--- a/inc/geshi/haskell.php
+++ b/inc/geshi/haskell.php
@@ -4,7 +4,7 @@
* ----------
* Author: Jason Dagit (dagit@codersbase.com) based on ocaml.php by Flaie (fireflaie@gmail.com)
* Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/08/27
*
* Haskell language file for GeSHi.
@@ -46,8 +46,8 @@ $language_data = array (
3 => "/{-(?:(?R)|.)-}/s", //Nested Comments
),
'CASE_KEYWORDS' => 0,
- 'QUOTEMARKS' => array('"'),
- 'ESCAPE_CHAR' => "\\",
+ 'QUOTEMARKS' => array('"',"'"),
+ 'ESCAPE_CHAR' => '\\',
'KEYWORDS' => array(
/* main haskell keywords */
1 => array(
@@ -95,7 +95,7 @@ $language_data = array (
'product', 'concat', 'concatMap', 'maximum',
'minimum', 'scanl', 'scanl1', 'scanr', 'scanr1',
'iterate', 'repeat', 'cycle', 'take', 'drop',
- 'splitAt', 'teakWhile', 'dropWhile', 'span',
+ 'splitAt', 'takeWhile', 'dropWhile', 'span',
'break', 'elem', 'notElem', 'lookup', 'zip',
'zip3', 'zipWith', 'zipWith3', 'unzip', 'unzip3',
'lines', 'words', 'unlines',
diff --git a/inc/geshi/haxe.php b/inc/geshi/haxe.php
new file mode 100644
index 000000000..778637e2b
--- /dev/null
+++ b/inc/geshi/haxe.php
@@ -0,0 +1,161 @@
+<?php
+/*************************************************************************************
+ * haxe.php
+ * --------
+ * Author: Andy Li (andy@onthewings.net)
+ * John Liao (colorhook@gmail.com)
+ * Copyright: (c) 2012 onthewings (http://www.onthewings.net/)
+ * 2010 colorhook (http://colorhook.com/)
+ * Release Version: 1.0.8.11
+ * Date Started: 2010/10/05
+ *
+ * Haxe language file for GeSHi.
+ * Haxe version: 2.10
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'Haxe',
+ 'COMMENT_SINGLE' => array(1 => '//'),
+ 'COMMENT_MULTI' => array('/*' => '*/'),
+ 'COMMENT_REGEXP' => array(
+ //Import and Package directives (Basic Support only)
+ 2 => '/(?:(?<=import[\\n\\s])|(?<=using[\\n\\s])|(?<=package[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*([a-zA-Z0-9_]+|\*)(?=[\n\s;])/i',
+ // Haxe comments
+ 3 => '#/\*\*(?![\*\/]).*\*/#sU',
+ ),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array("'", '"'),
+ 'ESCAPE_CHAR' => '\\',
+ 'KEYWORDS' => array(
+ 1 => array(
+ //http://haxe.org/ref/keywords
+ 'break', 'callback', 'case', 'cast', 'catch', 'class', 'continue', 'default', 'do', 'dynamic',
+ 'else', 'enum', 'extends', 'extern', /*'false',*/ 'for', 'function', 'here', 'if',
+ 'implements', 'import', 'in', 'inline', 'interface', 'never', 'new', /*'null',*/ 'override',
+ 'package', 'private', 'public', 'return', 'static', 'super', 'switch', 'this', 'throw',
+ 'trace', /*'true',*/ 'try', 'typedef', 'untyped', 'using', 'var', 'while',
+ 'macro', '$type',
+ ),
+ 2 => array(
+ //primitive values
+ 'null', 'false', 'true',
+ ),
+ 3 => array(
+ //global types
+ 'Array', 'ArrayAccess', /*'Bool',*/ 'Class', 'Date', 'DateTools', 'Dynamic',
+ 'EReg', 'Enum', 'EnumValue', /*'Float',*/ 'Hash', /*'Int',*/ 'IntHash', 'IntIter',
+ 'Iterable', 'Iterator', 'Lambda', 'List', 'Math', 'Null', 'Reflect', 'Std',
+ /*'String',*/ 'StringBuf', 'StringTools', 'Sys', 'Type', /*'UInt',*/ 'ValueType',
+ /*'Void',*/ 'Xml', 'XmlType',
+ ),
+ 4 => array(
+ //primitive types
+ 'Void', 'Bool', 'Int', 'Float', 'UInt', 'String',
+ ),
+ 5 => array(
+ //compiler switches
+ "#if", "#elseif", "#else", "#end", "#error",
+ ),
+ ),
+ 'SYMBOLS' => array(
+ //http://haxe.org/manual/operators
+ '++', '--',
+ '%',
+ '*', '/',
+ '+', '-',
+ '<<', '>>', '>>>',
+ '|', '&', '^',
+ '==', '!=', '>', '>=', '<', '<=',
+ '...',
+ '&&',
+ '||',
+ '?', ':',
+ '=', '+=', '-=', '/=', '*=', '<<=', '>>=', '>>>=', '|=', '&=', '^=',
+ '(', ')', '[', ']', '{', '}', ';',
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false,
+ 1 => true,
+ 2 => true,
+ 3 => true,
+ 4 => true,
+ 5 => true,
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color: #6699cc; font-weight: bold;',
+ 2 => 'color: #000066; font-weight: bold;',
+ 3 => 'color: #03F; ',
+ 4 => 'color: #000033; font-weight: bold;',
+ 5 => 'color: #330000; font-weight: bold;',
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #666666; font-style: italic;',
+ 2 => 'color: #006699;',
+ 3 => 'color: #008000; font-style: italic; font-weight: bold;',
+ 3 => 'color: #008000; font-style: italic; font-weight: bold;',
+ 'MULTI' => 'color: #666666; font-style: italic;',
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #000099; font-weight: bold;',
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #000000;',
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #FF0000;',
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #cc66cc;',
+ ),
+ 'METHODS' => array(
+ 1 => 'color: #006633;',
+ 2 => 'color: #006633;',
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color: #339933;',
+ ),
+ 'SCRIPT' => array(
+ ),
+ 'REGEXPS' => array(
+ )
+ ),
+ 'URLS' => array(
+ 1 => '',
+ 2 => '',
+ 3 => '',
+ 4 => '',
+ 5 => '',
+ ),
+ 'OOLANG' => true,
+ 'OBJECT_SPLITTERS' => array(
+ 1 => '.',
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ ),
+);
+
+?> \ No newline at end of file
diff --git a/inc/geshi/hicest.php b/inc/geshi/hicest.php
index 67d8d114a..78a2bc206 100644
--- a/inc/geshi/hicest.php
+++ b/inc/geshi/hicest.php
@@ -4,7 +4,7 @@
* --------
* Author: Georg Petrich (spt@hicest.com)
* Copyright: (c) 2010 Georg Petrich (http://www.HicEst.com)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/03/15
*
* HicEst language file for GeSHi.
diff --git a/inc/geshi/hq9plus.php b/inc/geshi/hq9plus.php
index 2cce643df..7ba1a73c1 100644
--- a/inc/geshi/hq9plus.php
+++ b/inc/geshi/hq9plus.php
@@ -4,7 +4,7 @@
* ----------
* Author: Benny Baumann (BenBE@geshi.org)
* Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/10/31
*
* HQ9+ language file for GeSHi.
diff --git a/inc/geshi/html4strict.php b/inc/geshi/html4strict.php
index 68ba72328..97392fa84 100644
--- a/inc/geshi/html4strict.php
+++ b/inc/geshi/html4strict.php
@@ -4,7 +4,7 @@
* ---------------
* Author: Nigel McNie (nigel@geshi.org)
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/07/10
*
* HTML 4.01 strict language file for GeSHi.
@@ -58,7 +58,7 @@ $language_data = array (
'ESCAPE_CHAR' => '',
'KEYWORDS' => array(
2 => array(
- 'a', 'abbr', 'acronym', 'address', 'applet',
+ 'a', 'abbr', 'acronym', 'address', 'applet', 'area',
'base', 'basefont', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'b',
'caption', 'center', 'cite', 'code', 'colgroup', 'col',
'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt',
diff --git a/inc/geshi/html5.php b/inc/geshi/html5.php
index 7ffd4a05d..0d9755945 100644
--- a/inc/geshi/html5.php
+++ b/inc/geshi/html5.php
@@ -4,10 +4,10 @@
* ---------------
* Author: Nigel McNie (nigel@geshi.org)
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/07/10
*
- * HTML 4.01 strict language file for GeSHi.
+ * HTML 5 language file for GeSHi.
*
* CHANGES
* -------
@@ -50,7 +50,7 @@
************************************************************************************/
$language_data = array (
- 'LANG_NAME' => 'HTML',
+ 'LANG_NAME' => 'HTML5',
'COMMENT_SINGLE' => array(),
'COMMENT_MULTI' => array(),
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
@@ -58,7 +58,7 @@ $language_data = array (
'ESCAPE_CHAR' => '',
'KEYWORDS' => array(
2 => array(
- 'a', 'abbr', 'address', 'article', 'aside', 'audio'.
+ 'a', 'abbr', 'address', 'article', 'area', 'aside', 'audio',
'base', 'bdo', 'blockquote', 'body', 'br', 'button', 'b',
diff --git a/inc/geshi/icon.php b/inc/geshi/icon.php
index e68c2f17f..06383ea5d 100644
--- a/inc/geshi/icon.php
+++ b/inc/geshi/icon.php
@@ -4,7 +4,7 @@
* --------
* Author: Matt Oates (mattoates@gmail.com)
* Copyright: (c) 2010 Matt Oates (http://mattoates.co.uk)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/04/24
*
* Icon language file for GeSHi.
diff --git a/inc/geshi/idl.php b/inc/geshi/idl.php
index 84e57f30b..69bd14ff4 100644
--- a/inc/geshi/idl.php
+++ b/inc/geshi/idl.php
@@ -4,7 +4,7 @@
* -------
* Author: Cedric Bosdonnat (cedricbosdo@openoffice.org)
* Copyright: (c) 2006 Cedric Bosdonnat
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2006/08/20
*
* Unoidl language file for GeSHi.
diff --git a/inc/geshi/ini.php b/inc/geshi/ini.php
index 2ca7feb0b..8e6ca76db 100644
--- a/inc/geshi/ini.php
+++ b/inc/geshi/ini.php
@@ -4,7 +4,7 @@
* --------
* Author: deguix (cevo_deguix@yahoo.com.br)
* Copyright: (c) 2005 deguix
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/03/27
*
* INI language file for GeSHi.
diff --git a/inc/geshi/inno.php b/inc/geshi/inno.php
index b0878e298..1e2ee8bef 100644
--- a/inc/geshi/inno.php
+++ b/inc/geshi/inno.php
@@ -4,7 +4,7 @@
* ----------
* Author: Thomas Klingler (hotline@theratech.de) based on delphi.php from J�rja Norbert (jnorbi@vipmail.hu)
* Copyright: (c) 2004 J�rja Norbert, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/07/29
*
* Inno Script language inkl. Delphi (Object Pascal) language file for GeSHi.
diff --git a/inc/geshi/intercal.php b/inc/geshi/intercal.php
index 06fd2b41b..3c81b81cc 100644
--- a/inc/geshi/intercal.php
+++ b/inc/geshi/intercal.php
@@ -4,7 +4,7 @@
* ----------
* Author: Benny Baumann (BenBE@geshi.org)
* Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/10/31
*
* INTERCAL language file for GeSHi.
diff --git a/inc/geshi/io.php b/inc/geshi/io.php
index 3d6341fee..51fad43a7 100644
--- a/inc/geshi/io.php
+++ b/inc/geshi/io.php
@@ -4,7 +4,7 @@
* -------
* Author: Nigel McNie (nigel@geshi.org)
* Copyright: (c) 2006 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2006/09/23
*
* Io language file for GeSHi. Thanks to Johnathan Wright for the suggestion and help
diff --git a/inc/geshi/j.php b/inc/geshi/j.php
index 5d464c922..5565bb499 100644
--- a/inc/geshi/j.php
+++ b/inc/geshi/j.php
@@ -4,7 +4,7 @@
* --------
* Author: Ric Sherlock (tikkanz@gmail.com)
* Copyright: (c) 2009 Ric Sherlock
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/11/10
*
* J language file for GeSHi.
diff --git a/inc/geshi/java.php b/inc/geshi/java.php
index 2f3d9fb96..652b8ddd3 100644
--- a/inc/geshi/java.php
+++ b/inc/geshi/java.php
@@ -4,7 +4,7 @@
* --------
* Author: Nigel McNie (nigel@geshi.org)
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/07/10
*
* Java language file for GeSHi.
@@ -964,7 +964,7 @@ $language_data = array (
'URLS' => array(
1 => '',
2 => '',
- 3 => 'http://www.google.com/search?hl=en&amp;q=allinurl%3A{FNAMEL}+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky',
+ 3 => 'http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+{FNAMEL}',
4 => ''
),
'OOLANG' => true,
diff --git a/inc/geshi/java5.php b/inc/geshi/java5.php
index 6163995f8..af16bd1e6 100644
--- a/inc/geshi/java5.php
+++ b/inc/geshi/java5.php
@@ -4,7 +4,7 @@
* --------
* Author: Nigel McNie (nigel@geshi.org)
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/07/10
*
* Java language file for GeSHi.
@@ -850,169 +850,169 @@ $language_data = array (
2 => '',
3 => '',
4 => '',
- 5 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/applet/{FNAME}.html',
- 6 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/{FNAME}.html',
- 7 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/color/{FNAME}.html',
- 8 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/datatransfer/{FNAME}.html',
- 9 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/dnd/{FNAME}.html',
- 10 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/event/{FNAME}.html',
- 11 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/font/{FNAME}.html',
- 12 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/geom/{FNAME}.html',
- 13 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/im/{FNAME}.html',
- 14 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/im/spi/{FNAME}.html',
- 15 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/image/{FNAME}.html',
- 16 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/image/renderable/{FNAME}.html',
- 17 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/print/{FNAME}.html',
- 18 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/beans/{FNAME}.html',
- 19 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/beans/beancontext/{FNAME}.html',
- 20 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/io/{FNAME}.html',
- 21 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/{FNAME}.html',
- 22 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/annotation/{FNAME}.html',
- 23 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/instrument/{FNAME}.html',
- 24 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/management/{FNAME}.html',
- 25 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/ref/{FNAME}.html',
- 26 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/reflect/{FNAME}.html',
- 27 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/math/{FNAME}.html',
- 28 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/net/{FNAME}.html',
- 29 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/{FNAME}.html',
- 30 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/channels/{FNAME}.html',
- 31 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/channels/spi/{FNAME}.html',
- 32 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/charset/{FNAME}.html',
- 33 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/charset/spi/{FNAME}.html',
- 34 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/{FNAME}.html',
- 35 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/activation/{FNAME}.html',
- 36 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/dgc/{FNAME}.html',
- 37 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/registry/{FNAME}.html',
- 38 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/server/{FNAME}.html',
- 39 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/{FNAME}.html',
- 40 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/acl/{FNAME}.html',
- 41 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/cert/{FNAME}.html',
- 42 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/interfaces/{FNAME}.html',
- 43 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/spec/{FNAME}.html',
- 44 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/sql/{FNAME}.html',
- 45 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/text/{FNAME}.html',
- 46 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/{FNAME}.html',
- 47 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/concurrent/{FNAME}.html',
- 48 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/concurrent/atomic/{FNAME}.html',
- 49 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/concurrent/locks/{FNAME}.html',
- 50 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/jar/{FNAME}.html',
- 51 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/logging/{FNAME}.html',
- 52 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/prefs/{FNAME}.html',
- 53 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/regex/{FNAME}.html',
- 54 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/zip/{FNAME}.html',
- 55 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/accessibility/{FNAME}.html',
- 56 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/activity/{FNAME}.html',
- 57 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/crypto/{FNAME}.html',
- 58 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/crypto/interfaces/{FNAME}.html',
- 59 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/crypto/spec/{FNAME}.html',
- 60 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/{FNAME}.html',
- 61 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/event/{FNAME}.html',
- 62 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/metadata/{FNAME}.html',
- 63 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/plugins/bmp/{FNAME}.html',
- 64 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/plugins/jpeg/{FNAME}.html',
- 65 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/spi/{FNAME}.html',
- 66 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/stream/{FNAME}.html',
- 67 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/{FNAME}.html',
- 68 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/loading/{FNAME}.html',
- 69 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/modelmbean/{FNAME}.html',
- 70 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/monitor/{FNAME}.html',
- 71 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/openmbean/{FNAME}.html',
- 72 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/relation/{FNAME}.html',
- 73 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/remote/{FNAME}.html',
- 74 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/remote/rmi/{FNAME}.html',
- 75 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/timer/{FNAME}.html',
- 76 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/{FNAME}.html',
- 77 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/directory/{FNAME}.html',
- 78 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/event/{FNAME}.html',
- 79 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/ldap/{FNAME}.html',
- 80 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/spi/{FNAME}.html',
- 81 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/net/{FNAME}.html',
- 82 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/net/ssl/{FNAME}.html',
- 83 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/{FNAME}.html',
- 84 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/attribute/{FNAME}.html',
- 85 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/attribute/standard/{FNAME}.html',
- 86 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/event/{FNAME}.html',
- 87 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/rmi/{FNAME}.html',
- 88 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/rmi/CORBA/{FNAME}.html',
- 89 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/rmi/ssl/{FNAME}.html',
- 90 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/{FNAME}.html',
- 91 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/callback/{FNAME}.html',
- 92 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/kerberos/{FNAME}.html',
- 93 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/login/{FNAME}.html',
- 94 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/spi/{FNAME}.html',
- 95 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/x500/{FNAME}.html',
- 96 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/sasl/{FNAME}.html',
- 97 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/midi/{FNAME}.html',
- 98 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/midi/spi/{FNAME}.html',
- 99 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/sampled/{FNAME}.html',
- 100 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/sampled/spi/{FNAME}.html',
- 101 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/{FNAME}.html',
- 102 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/rowset/{FNAME}.html',
- 103 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/rowset/serial/{FNAME}.html',
- 104 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/rowset/spi/{FNAME}.html',
- 105 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/{FNAME}.html',
- 106 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/border/{FNAME}.html',
- 107 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/colorchooser/{FNAME}.html',
- 108 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/event/{FNAME}.html',
- 109 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/filechooser/{FNAME}.html',
- 110 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/{FNAME}.html',
- 111 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/basic/{FNAME}.html',
- 112 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/metal/{FNAME}.html',
- 113 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/multi/{FNAME}.html',
- 114 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/synth/{FNAME}.html',
- 115 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/table/{FNAME}.html',
- 116 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/{FNAME}.html',
- 117 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/html/{FNAME}.html',
- 118 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/html/parser/{FNAME}.html',
- 119 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/rtf/{FNAME}.html',
- 120 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/tree/{FNAME}.html',
- 121 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/undo/{FNAME}.html',
- 122 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/transaction/{FNAME}.html',
- 123 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/transaction/xa/{FNAME}.html',
- 124 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/{FNAME}.html',
- 125 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/datatype/{FNAME}.html',
- 126 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/namespace/{FNAME}.html',
- 127 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/parsers/{FNAME}.html',
- 128 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/{FNAME}.html',
- 129 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/dom/{FNAME}.html',
- 130 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/sax/{FNAME}.html',
- 131 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/stream/{FNAME}.html',
- 132 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/validation/{FNAME}.html',
- 133 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/xpath/{FNAME}.html',
- 134 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/ietf/jgss/{FNAME}.html',
- 135 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/{FNAME}.html',
- 136 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/DynAnyPackage/{FNAME}.html',
- 137 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/TypeCodePackage/{FNAME}.html',
- 138 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/portable/{FNAME}.html',
- 139 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CosNaming/{FNAME}.html',
- 140 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CosNaming/NamingContextExtPackage/{FNAME}.html',
- 141 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CosNaming/NamingContextPackage/{FNAME}.html',
- 142 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/Dynamic/{FNAME}.html',
- 143 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/DynamicAny/{FNAME}.html',
- 144 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/DynamicAny/DynAnyFactoryPackage/{FNAME}.html',
- 145 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/DynamicAny/DynAnyPackage/{FNAME}.html',
- 146 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/IOP/{FNAME}.html',
- 147 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/IOP/CodecFactoryPackage/{FNAME}.html',
- 148 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/IOP/CodecPackage/{FNAME}.html',
- 149 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/Messaging/{FNAME}.html',
- 150 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableInterceptor/{FNAME}.html',
- 151 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableInterceptor/ORBInitInfoPackage/{FNAME}.html',
- 152 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/{FNAME}.html',
- 153 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/CurrentPackage/{FNAME}.html',
- 154 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/POAManagerPackage/{FNAME}.html',
- 155 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/POAPackage/{FNAME}.html',
- 156 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/ServantLocatorPackage/{FNAME}.html',
- 157 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/SendingContext/{FNAME}.html',
- 158 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/stub/java/rmi/{FNAME}.html',
- 159 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/{FNAME}.html',
- 160 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/bootstrap/{FNAME}.html',
- 161 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/events/{FNAME}.html',
- 162 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/ls/{FNAME}.html',
- 163 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/xml/sax/{FNAME}.html',
- 164 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/xml/sax/ext/{FNAME}.html',
- 165 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/xml/sax/helpers/{FNAME}.html',
+ 5 => 'http://docs.oracle.com/javase/7/docs/api/java/applet/{FNAME}.html',
+ 6 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/{FNAME}.html',
+ 7 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/color/{FNAME}.html',
+ 8 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/datatransfer/{FNAME}.html',
+ 9 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/dnd/{FNAME}.html',
+ 10 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/event/{FNAME}.html',
+ 11 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/font/{FNAME}.html',
+ 12 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/geom/{FNAME}.html',
+ 13 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/im/{FNAME}.html',
+ 14 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/im/spi/{FNAME}.html',
+ 15 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/image/{FNAME}.html',
+ 16 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/image/renderable/{FNAME}.html',
+ 17 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/print/{FNAME}.html',
+ 18 => 'http://docs.oracle.com/javase/7/docs/api/java/beans/{FNAME}.html',
+ 19 => 'http://docs.oracle.com/javase/7/docs/api/java/beans/beancontext/{FNAME}.html',
+ 20 => 'http://docs.oracle.com/javase/7/docs/api/java/io/{FNAME}.html',
+ 21 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/{FNAME}.html',
+ 22 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/{FNAME}.html',
+ 23 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/instrument/{FNAME}.html',
+ 24 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/management/{FNAME}.html',
+ 25 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/ref/{FNAME}.html',
+ 26 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/{FNAME}.html',
+ 27 => 'http://docs.oracle.com/javase/7/docs/api/java/math/{FNAME}.html',
+ 28 => 'http://docs.oracle.com/javase/7/docs/api/java/net/{FNAME}.html',
+ 29 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/{FNAME}.html',
+ 30 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/channels/{FNAME}.html',
+ 31 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/channels/spi/{FNAME}.html',
+ 32 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/charset/{FNAME}.html',
+ 33 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/charset/spi/{FNAME}.html',
+ 34 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/{FNAME}.html',
+ 35 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/activation/{FNAME}.html',
+ 36 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/dgc/{FNAME}.html',
+ 37 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/registry/{FNAME}.html',
+ 38 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/server/{FNAME}.html',
+ 39 => 'http://docs.oracle.com/javase/7/docs/api/java/security/{FNAME}.html',
+ 40 => 'http://docs.oracle.com/javase/7/docs/api/java/security/acl/{FNAME}.html',
+ 41 => 'http://docs.oracle.com/javase/7/docs/api/java/security/cert/{FNAME}.html',
+ 42 => 'http://docs.oracle.com/javase/7/docs/api/java/security/interfaces/{FNAME}.html',
+ 43 => 'http://docs.oracle.com/javase/7/docs/api/java/security/spec/{FNAME}.html',
+ 44 => 'http://docs.oracle.com/javase/7/docs/api/java/sql/{FNAME}.html',
+ 45 => 'http://docs.oracle.com/javase/7/docs/api/java/text/{FNAME}.html',
+ 46 => 'http://docs.oracle.com/javase/7/docs/api/java/util/{FNAME}.html',
+ 47 => 'http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/{FNAME}.html',
+ 48 => 'http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/{FNAME}.html',
+ 49 => 'http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/{FNAME}.html',
+ 50 => 'http://docs.oracle.com/javase/7/docs/api/java/util/jar/{FNAME}.html',
+ 51 => 'http://docs.oracle.com/javase/7/docs/api/java/util/logging/{FNAME}.html',
+ 52 => 'http://docs.oracle.com/javase/7/docs/api/java/util/prefs/{FNAME}.html',
+ 53 => 'http://docs.oracle.com/javase/7/docs/api/java/util/regex/{FNAME}.html',
+ 54 => 'http://docs.oracle.com/javase/7/docs/api/java/util/zip/{FNAME}.html',
+ 55 => 'http://docs.oracle.com/javase/7/docs/api/javax/accessibility/{FNAME}.html',
+ 56 => 'http://docs.oracle.com/javase/7/docs/api/javax/activity/{FNAME}.html',
+ 57 => 'http://docs.oracle.com/javase/7/docs/api/javax/crypto/{FNAME}.html',
+ 58 => 'http://docs.oracle.com/javase/7/docs/api/javax/crypto/interfaces/{FNAME}.html',
+ 59 => 'http://docs.oracle.com/javase/7/docs/api/javax/crypto/spec/{FNAME}.html',
+ 60 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/{FNAME}.html',
+ 61 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/event/{FNAME}.html',
+ 62 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/metadata/{FNAME}.html',
+ 63 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/plugins/bmp/{FNAME}.html',
+ 64 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/plugins/jpeg/{FNAME}.html',
+ 65 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/spi/{FNAME}.html',
+ 66 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/stream/{FNAME}.html',
+ 67 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/{FNAME}.html',
+ 68 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/loading/{FNAME}.html',
+ 69 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/modelmbean/{FNAME}.html',
+ 70 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/monitor/{FNAME}.html',
+ 71 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/openmbean/{FNAME}.html',
+ 72 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/relation/{FNAME}.html',
+ 73 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/remote/{FNAME}.html',
+ 74 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/remote/rmi/{FNAME}.html',
+ 75 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/timer/{FNAME}.html',
+ 76 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/{FNAME}.html',
+ 77 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/directory/{FNAME}.html',
+ 78 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/event/{FNAME}.html',
+ 79 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/ldap/{FNAME}.html',
+ 80 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/spi/{FNAME}.html',
+ 81 => 'http://docs.oracle.com/javase/7/docs/api/javax/net/{FNAME}.html',
+ 82 => 'http://docs.oracle.com/javase/7/docs/api/javax/net/ssl/{FNAME}.html',
+ 83 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/{FNAME}.html',
+ 84 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/attribute/{FNAME}.html',
+ 85 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/attribute/standard/{FNAME}.html',
+ 86 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/event/{FNAME}.html',
+ 87 => 'http://docs.oracle.com/javase/7/docs/api/javax/rmi/{FNAME}.html',
+ 88 => 'http://docs.oracle.com/javase/7/docs/api/javax/rmi/CORBA/{FNAME}.html',
+ 89 => 'http://docs.oracle.com/javase/7/docs/api/javax/rmi/ssl/{FNAME}.html',
+ 90 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/{FNAME}.html',
+ 91 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/callback/{FNAME}.html',
+ 92 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/kerberos/{FNAME}.html',
+ 93 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/login/{FNAME}.html',
+ 94 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/spi/{FNAME}.html',
+ 95 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/x500/{FNAME}.html',
+ 96 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/sasl/{FNAME}.html',
+ 97 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/midi/{FNAME}.html',
+ 98 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/midi/spi/{FNAME}.html',
+ 99 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/sampled/{FNAME}.html',
+ 100 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/sampled/spi/{FNAME}.html',
+ 101 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/{FNAME}.html',
+ 102 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/rowset/{FNAME}.html',
+ 103 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/rowset/serial/{FNAME}.html',
+ 104 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/rowset/spi/{FNAME}.html',
+ 105 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/{FNAME}.html',
+ 106 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/border/{FNAME}.html',
+ 107 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/colorchooser/{FNAME}.html',
+ 108 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/event/{FNAME}.html',
+ 109 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/filechooser/{FNAME}.html',
+ 110 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/{FNAME}.html',
+ 111 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/basic/{FNAME}.html',
+ 112 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/metal/{FNAME}.html',
+ 113 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/multi/{FNAME}.html',
+ 114 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/synth/{FNAME}.html',
+ 115 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/table/{FNAME}.html',
+ 116 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/{FNAME}.html',
+ 117 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/html/{FNAME}.html',
+ 118 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/html/parser/{FNAME}.html',
+ 119 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/rtf/{FNAME}.html',
+ 120 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/tree/{FNAME}.html',
+ 121 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/undo/{FNAME}.html',
+ 122 => 'http://docs.oracle.com/javase/7/docs/api/javax/transaction/{FNAME}.html',
+ 123 => 'http://docs.oracle.com/javase/7/docs/api/javax/transaction/xa/{FNAME}.html',
+ 124 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/{FNAME}.html',
+ 125 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/datatype/{FNAME}.html',
+ 126 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/namespace/{FNAME}.html',
+ 127 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/parsers/{FNAME}.html',
+ 128 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/{FNAME}.html',
+ 129 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/dom/{FNAME}.html',
+ 130 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/sax/{FNAME}.html',
+ 131 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/stream/{FNAME}.html',
+ 132 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/validation/{FNAME}.html',
+ 133 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/xpath/{FNAME}.html',
+ 134 => 'http://docs.oracle.com/javase/7/docs/api/org/ietf/jgss/{FNAME}.html',
+ 135 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/{FNAME}.html',
+ 136 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/DynAnyPackage/{FNAME}.html',
+ 137 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/TypeCodePackage/{FNAME}.html',
+ 138 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/portable/{FNAME}.html',
+ 139 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CosNaming/{FNAME}.html',
+ 140 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CosNaming/NamingContextExtPackage/{FNAME}.html',
+ 141 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CosNaming/NamingContextPackage/{FNAME}.html',
+ 142 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/Dynamic/{FNAME}.html',
+ 143 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/DynamicAny/{FNAME}.html',
+ 144 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/DynamicAny/DynAnyFactoryPackage/{FNAME}.html',
+ 145 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/DynamicAny/DynAnyPackage/{FNAME}.html',
+ 146 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/IOP/{FNAME}.html',
+ 147 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/IOP/CodecFactoryPackage/{FNAME}.html',
+ 148 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/IOP/CodecPackage/{FNAME}.html',
+ 149 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/Messaging/{FNAME}.html',
+ 150 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableInterceptor/{FNAME}.html',
+ 151 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableInterceptor/ORBInitInfoPackage/{FNAME}.html',
+ 152 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/{FNAME}.html',
+ 153 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/CurrentPackage/{FNAME}.html',
+ 154 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/POAManagerPackage/{FNAME}.html',
+ 155 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/POAPackage/{FNAME}.html',
+ 156 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/ServantLocatorPackage/{FNAME}.html',
+ 157 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/SendingContext/{FNAME}.html',
+ 158 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/stub/java/rmi/{FNAME}.html',
+ 159 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/{FNAME}.html',
+ 160 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/bootstrap/{FNAME}.html',
+ 161 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/events/{FNAME}.html',
+ 162 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/ls/{FNAME}.html',
+ 163 => 'http://docs.oracle.com/javase/7/docs/api/org/xml/sax/{FNAME}.html',
+ 164 => 'http://docs.oracle.com/javase/7/docs/api/org/xml/sax/ext/{FNAME}.html',
+ 165 => 'http://docs.oracle.com/javase/7/docs/api/org/xml/sax/helpers/{FNAME}.html',
/* ambiguous class names (appear in more than one package) */
- 166 => 'http://www.google.com/search?sitesearch=java.sun.com&amp;q=allinurl%3Aj2se%2F1+5+0%2Fdocs%2Fapi+{FNAME}'
+ 166 => 'http://www.google.com/search?sitesearch=docs.oracle.com&amp;q=allinurl%3Ajavase+docs+api+{FNAME}'
),
'OOLANG' => true,
'OBJECT_SPLITTERS' => array(
@@ -1034,4 +1034,4 @@ $language_data = array (
)
);
-?> \ No newline at end of file
+?>
diff --git a/inc/geshi/javascript.php b/inc/geshi/javascript.php
index 93997a70c..b96d1b5b6 100644
--- a/inc/geshi/javascript.php
+++ b/inc/geshi/javascript.php
@@ -4,13 +4,15 @@
* --------------
* Author: Ben Keen (ben.keen@gmail.com)
* Copyright: (c) 2004 Ben Keen (ben.keen@gmail.com), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/06/20
*
* JavaScript language file for GeSHi.
*
* CHANGES
* -------
+ * 2012/06/27 (1.0.8.11)
+ * - Reordered Keyword Groups to reflect syntactical meaning of keywords
* 2008/05/23 (1.0.7.22)
* - Added description of extra language features (SF#1970248)
* 2004/11/27 (1.0.1)
@@ -54,23 +56,38 @@ $language_data = array (
'ESCAPE_CHAR' => '\\',
'KEYWORDS' => array(
1 => array(
- 'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do',
- 'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item',
- 'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void',
- 'while', 'write', 'with'
+ //reserved/keywords; also some non-reserved keywords
+ 'break','case','catch','const','continue',
+ 'default','delete','do',
+ 'else',
+ 'finally','for','function',
+ 'get','goto',
+ 'if','in','instanceof',
+ 'new',
+ 'prototype',
+ 'return',
+ 'set','static','switch',
+ 'this','throw','try','typeof',
+ 'var','void'
),
2 => array(
- 'class', 'const', 'default', 'debugger', 'export', 'extends', 'false',
- 'function', 'import', 'namespace', 'new', 'null', 'package', 'private',
- 'protected', 'public', 'super', 'true', 'use', 'var'
+ //reserved/non-keywords; metaconstants
+ 'false','null','true','undefined','NaN','Infinity'
),
3 => array(
- // common functions for Window object
- 'alert', 'back', 'blur', 'close', 'confirm', 'focus', 'forward', 'home',
- 'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove',
- 'onresize', 'onunload', 'open', 'print', 'prompt', 'scroll', 'status',
- 'stop',
- )
+ //magic properties/functions
+ '__proto__','__defineGetter__','__defineSetter__','hasOwnProperty','hasProperty'
+ ),
+ 4 => array(
+ //type constructors
+ 'Object', 'Function', 'Date', 'Math', 'String', 'Number', 'Boolean', 'Array'
+ ),
+ 5 => array(
+ //reserved, but invalid in language
+ 'abstract','boolean','byte','char','class','debugger','double','enum','export','extends',
+ 'final','float','implements','import','int','interface','long','native',
+ 'short','super','synchronized','throws','transient','volatile'
+ ),
),
'SYMBOLS' => array(
'(', ')', '[', ']', '{', '}',
@@ -81,15 +98,18 @@ $language_data = array (
),
'CASE_SENSITIVE' => array(
GESHI_COMMENTS => false,
- 1 => false,
- 2 => false,
- 3 => false
+ 1 => true,
+ 2 => true,
+ 3 => true,
+ 4 => true,
+ 5 => true
),
'STYLES' => array(
'KEYWORDS' => array(
1 => 'color: #000066; font-weight: bold;',
2 => 'color: #003366; font-weight: bold;',
- 3 => 'color: #000066;'
+ 3 => 'color: #000066;',
+ 5 => 'color: #FF0000;'
),
'COMMENTS' => array(
1 => 'color: #006600; font-style: italic;',
@@ -126,8 +146,10 @@ $language_data = array (
'URLS' => array(
1 => '',
2 => '',
- 3 => ''
- ),
+ 3 => '',
+ 4 => '',
+ 5 => ''
+ ),
'OOLANG' => true,
'OBJECT_SPLITTERS' => array(
1 => '.'
diff --git a/inc/geshi/jquery.php b/inc/geshi/jquery.php
index 9374ec1ca..a75320d5c 100644
--- a/inc/geshi/jquery.php
+++ b/inc/geshi/jquery.php
@@ -4,7 +4,7 @@
* --------------
* Author: Rob Loach (http://www.robloach.net)
* Copyright: (c) 2009 Rob Loach (http://www.robloach.net)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/07/20
*
* jQuery 1.3 language file for GeSHi.
diff --git a/inc/geshi/kixtart.php b/inc/geshi/kixtart.php
index f3f29e2e3..5b9091989 100644
--- a/inc/geshi/kixtart.php
+++ b/inc/geshi/kixtart.php
@@ -4,7 +4,7 @@
* --------
* Author: Riley McArdle (riley@glyff.net)
* Copyright: (c) 2007 Riley McArdle (http://www.glyff.net/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/08/31
*
* PHP language file for GeSHi.
diff --git a/inc/geshi/klonec.php b/inc/geshi/klonec.php
index 553763d61..5f86e78dc 100644
--- a/inc/geshi/klonec.php
+++ b/inc/geshi/klonec.php
@@ -4,7 +4,7 @@
* --------
* Author: AUGER Mickael
* Copyright: Synchronic
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/04/16
*
* KLone with C language file for GeSHi.
diff --git a/inc/geshi/klonecpp.php b/inc/geshi/klonecpp.php
index 6fe0df1ef..6564c6b7b 100644
--- a/inc/geshi/klonecpp.php
+++ b/inc/geshi/klonecpp.php
@@ -4,7 +4,7 @@
* --------
* Author: AUGER Mickael
* Copyright: Synchronic
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/04/16
*
* KLone with C++ language file for GeSHi.
diff --git a/inc/geshi/latex.php b/inc/geshi/latex.php
index 91c034236..386a0b989 100644
--- a/inc/geshi/latex.php
+++ b/inc/geshi/latex.php
@@ -4,7 +4,7 @@
* -----
* Author: efi, Matthias Pospiech (matthias@pospiech.eu)
* Copyright: (c) 2006 efi, Matthias Pospiech (matthias@pospiech.eu), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2006/09/23
*
* LaTeX language file for GeSHi.
@@ -67,7 +67,7 @@ $language_data = array (
'colorbox','date','dedication','def','definecolor','documentclass',
'edef','else','email','emph','eqref','extratitle','fbox','fi',
'flushleft','flushright','footnote','frac','frontmatter',
- 'graphicspath','hfill','hline','hspace','huge','ifx','include',
+ 'graphicspath','hfil','hfill','hfilll','hline','hspace','huge','ifx','include',
'includegraphics','infty','input','int','item','itemsep',
'KOMAoption','KOMAoptions','label','LaTeX','left','let','limits',
'listfiles','listoffigures','listoftables','lowertitleback',
@@ -81,7 +81,7 @@ $language_data = array (
'table','tableofcontents','textbf','textcolor','textit',
'textnormal','textsuperscript','texttt','textwidth','thanks','title',
'titlehead','today','ttfamily','uppertitleback','urlstyle',
- 'usepackage','vspace'
+ 'usepackage','vfil','vfill','vfilll','vspace'
)
),
'SYMBOLS' => array(
diff --git a/inc/geshi/lb.php b/inc/geshi/lb.php
index 390fe19a9..6c2882894 100644
--- a/inc/geshi/lb.php
+++ b/inc/geshi/lb.php
@@ -4,7 +4,7 @@
* --------
* Author: Chris Iverson (cj.no.one@gmail.com)
* Copyright: (c) 2010 Chris Iverson
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/07/18
*
* Liberty BASIC language file for GeSHi.
diff --git a/inc/geshi/ldif.php b/inc/geshi/ldif.php
new file mode 100644
index 000000000..424818380
--- /dev/null
+++ b/inc/geshi/ldif.php
@@ -0,0 +1,116 @@
+<?php
+/*************************************************************************************
+ * ldif.php
+ * --------
+ * Author: Bruno Harbulot (Bruno.Harbulot@manchester.ac.uk)
+ * Copyright: (c) 2005 deguix, (c) 2010 Bruno Harbulot
+ * Release Version: 1.0.8.11
+ * Date Started: 2010/03/01
+ *
+ * LDIF language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2010/03/01 (1.0.8.11)
+ * - First Release
+ * - Derived from ini.php (INI language), (c) 2005 deguix
+ *
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'LDIF',
+ 'COMMENT_SINGLE' => array(1 => '#'),
+ 'COMMENT_MULTI' => array(),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array(),
+ 'ESCAPE_CHAR' => '',
+ 'KEYWORDS' => array(
+ ),
+ 'SYMBOLS' => array(
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #666666; font-style: italic;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => ''
+ ),
+ 'BRACKETS' => array(
+ 0 => ''
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #933;'
+ ),
+ 'NUMBERS' => array(
+ 0 => ''
+ ),
+ 'METHODS' => array(
+ 0 => ''
+ ),
+ 'SYMBOLS' => array(
+ ),
+ 'REGEXPS' => array(
+ 0 => 'color: #000066; font-weight: bold;',
+ 1 => 'color: #FF0000;'
+ ),
+ 'SCRIPT' => array(
+ 0 => ''
+ )
+ ),
+ 'URLS' => array(
+ ),
+ 'OOLANG' => false,
+ 'OBJECT_SPLITTERS' => array(
+ ),
+ 'REGEXPS' => array(
+ 0 => array(
+ GESHI_SEARCH => '([a-zA-Z0-9_]+):(.+)',
+ GESHI_REPLACE => '\\1',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '',
+ GESHI_AFTER => ':\\2'
+ ),
+ 1 => array(
+ // Evil hackery to get around GeSHi bug: <>" and ; are added so <span>s can be matched
+ // Explicit match on variable names because if a comment is before the first < of the span
+ // gets chewed up...
+ GESHI_SEARCH => '([<>";a-zA-Z0-9_]+):(.+)',
+ GESHI_REPLACE => '\\2',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '\\1:',
+ GESHI_AFTER => ''
+ )
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ )
+);
+
+?> \ No newline at end of file
diff --git a/inc/geshi/lisp.php b/inc/geshi/lisp.php
index 82aa7f69b..be823a405 100644
--- a/inc/geshi/lisp.php
+++ b/inc/geshi/lisp.php
@@ -4,7 +4,7 @@
* --------
* Author: Roberto Rossi (rsoftware@altervista.org)
* Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/08/30
*
* Generic Lisp language file for GeSHi.
diff --git a/inc/geshi/llvm.php b/inc/geshi/llvm.php
index f58be2da8..580099b52 100644
--- a/inc/geshi/llvm.php
+++ b/inc/geshi/llvm.php
@@ -4,7 +4,7 @@
* --------
* Author: Benny Baumann (BenBE@geshi.org), Azriel Fasten (azriel.fasten@gmail.com)
* Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter/), Azriel Fasten (azriel.fasten@gmail.com)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/10/14
*
* LLVM language file for GeSHi.
diff --git a/inc/geshi/locobasic.php b/inc/geshi/locobasic.php
index 55aacc263..61c8a3c83 100644
--- a/inc/geshi/locobasic.php
+++ b/inc/geshi/locobasic.php
@@ -4,7 +4,7 @@
* -------------
* Author: Nacho Cabanes
* Copyright: (c) 2009 Nacho Cabanes (http://www.nachocabanes.com)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/03/22
*
* Locomotive Basic (Amstrad CPC series) language file for GeSHi.
diff --git a/inc/geshi/logtalk.php b/inc/geshi/logtalk.php
index b4eba764c..05734663e 100644
--- a/inc/geshi/logtalk.php
+++ b/inc/geshi/logtalk.php
@@ -5,7 +5,7 @@
*
* Author: Paulo Moura (pmoura@logtalk.org)
* Copyright: (c) 2009-2011 Paulo Moura (http://logtalk.org/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/10/24
*
* Logtalk language file for GeSHi.
diff --git a/inc/geshi/lolcode.php b/inc/geshi/lolcode.php
index bcbad11c6..ab6088b18 100644
--- a/inc/geshi/lolcode.php
+++ b/inc/geshi/lolcode.php
@@ -4,7 +4,7 @@
* ----------
* Author: Benny Baumann (BenBE@geshi.org)
* Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/10/31
*
* LOLcode language file for GeSHi.
diff --git a/inc/geshi/lotusformulas.php b/inc/geshi/lotusformulas.php
index 5b755e55a..12257d748 100644
--- a/inc/geshi/lotusformulas.php
+++ b/inc/geshi/lotusformulas.php
@@ -4,7 +4,7 @@
* ------------------------
* Author: Richard Civil (info@richardcivil.net)
* Copyright: (c) 2008 Richard Civil (info@richardcivil.net), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/04/12
*
* @Formula/@Command language file for GeSHi.
diff --git a/inc/geshi/lotusscript.php b/inc/geshi/lotusscript.php
index c2b2f45f5..b8b65f206 100644
--- a/inc/geshi/lotusscript.php
+++ b/inc/geshi/lotusscript.php
@@ -4,7 +4,7 @@
* ------------------------
* Author: Richard Civil (info@richardcivil.net)
* Copyright: (c) 2008 Richard Civil (info@richardcivil.net), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/04/12
*
* LotusScript language file for GeSHi.
diff --git a/inc/geshi/lscript.php b/inc/geshi/lscript.php
index 51852414b..298af618c 100644
--- a/inc/geshi/lscript.php
+++ b/inc/geshi/lscript.php
@@ -4,7 +4,7 @@
* ---------
* Author: Arendedwinter (admin@arendedwinter.com)
* Copyright: (c) 2008 Beau McGuigan (http://www.arendedwinter.com)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 15/11/2008
*
* Lightwave Script language file for GeSHi.
diff --git a/inc/geshi/lsl2.php b/inc/geshi/lsl2.php
index 828e2b91c..f80cf4f29 100644
--- a/inc/geshi/lsl2.php
+++ b/inc/geshi/lsl2.php
@@ -4,7 +4,7 @@
* --------
* Author: William Fry (william.fry@nyu.edu)
* Copyright: (c) 2009 William Fry
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/02/04
*
* Linden Scripting Language (LSL2) language file for GeSHi.
diff --git a/inc/geshi/lua.php b/inc/geshi/lua.php
index 2ec6c0b88..8a09ba20e 100644
--- a/inc/geshi/lua.php
+++ b/inc/geshi/lua.php
@@ -4,7 +4,7 @@
* -------
* Author: Roberto Rossi (rsoftware@altervista.org)
* Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/07/10
*
* LUA language file for GeSHi.
@@ -46,7 +46,7 @@ $language_data = array (
'LANG_NAME' => 'Lua',
'COMMENT_SINGLE' => array(1 => "--"),
'COMMENT_MULTI' => array('--[[' => ']]'),
- 'COMMENT_REGEXP' => array(2 => "/\[(=*)\[.*?\]\1\]/s"),
+ 'COMMENT_REGEXP' => array(2 => '/\[(=*)\[.*?\]\1\]/s'),
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
'QUOTEMARKS' => array("'", '"'),
'ESCAPE_CHAR' => '',
@@ -174,4 +174,4 @@ $language_data = array (
)
);
-?> \ No newline at end of file
+?>
diff --git a/inc/geshi/m68k.php b/inc/geshi/m68k.php
index 081578158..98321577b 100644
--- a/inc/geshi/m68k.php
+++ b/inc/geshi/m68k.php
@@ -4,7 +4,7 @@
* --------
* Author: Benny Baumann (BenBE@omorphia.de)
* Copyright: (c) 2007 Benny Baumann (http://www.omorphia.de/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/02/06
*
* Motorola 68000 Assembler language file for GeSHi.
diff --git a/inc/geshi/magiksf.php b/inc/geshi/magiksf.php
index b6f431ea8..612e1603e 100644
--- a/inc/geshi/magiksf.php
+++ b/inc/geshi/magiksf.php
@@ -4,7 +4,7 @@
* --------
* Author: Sjoerd van Leent (svanleent@gmail.com)
* Copyright: (c) 2010 Sjoerd van Leent
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/02/15
*
* MagikSF language file for GeSHi.
diff --git a/inc/geshi/make.php b/inc/geshi/make.php
index 2d5d73425..885fa1765 100644
--- a/inc/geshi/make.php
+++ b/inc/geshi/make.php
@@ -4,7 +4,7 @@
* --------
* Author: Neil Bird <phoenix@fnxweb.com>
* Copyright: (c) 2008 Neil Bird
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/08/26
*
* make language file for GeSHi.
diff --git a/inc/geshi/mapbasic.php b/inc/geshi/mapbasic.php
index 7d365263d..8859c4831 100644
--- a/inc/geshi/mapbasic.php
+++ b/inc/geshi/mapbasic.php
@@ -4,7 +4,7 @@
* ------
* Author: Tomasz Berus (t.berus@gisodkuchni.pl)
* Copyright: (c) 2009 Tomasz Berus (http://sourceforge.net/projects/mbsyntax/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/11/25
*
* MapBasic language file for GeSHi.
diff --git a/inc/geshi/matlab.php b/inc/geshi/matlab.php
index 5c64a0d49..7cdd50e5e 100644
--- a/inc/geshi/matlab.php
+++ b/inc/geshi/matlab.php
@@ -4,7 +4,7 @@
* -----------
* Author: Florian Knorn (floz@gmx.de)
* Copyright: (c) 2004 Florian Knorn (http://www.florian-knorn.com)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/02/09
*
* Matlab M-file language file for GeSHi.
diff --git a/inc/geshi/mirc.php b/inc/geshi/mirc.php
index e9e0346e6..fa2f307ee 100644
--- a/inc/geshi/mirc.php
+++ b/inc/geshi/mirc.php
@@ -4,7 +4,7 @@
* -----
* Author: Alberto 'Birckin' de Areba (Birckin@hotmail.com)
* Copyright: (c) 2006 Alberto de Areba
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2006/05/29
*
* mIRC Scripting language file for GeSHi.
diff --git a/inc/geshi/mmix.php b/inc/geshi/mmix.php
index 8e57ad7b9..60b6e28ce 100644
--- a/inc/geshi/mmix.php
+++ b/inc/geshi/mmix.php
@@ -4,7 +4,7 @@
* -------
* Author: Benny Baumann (BenBE@geshi.org)
* Copyright: (c) 2009 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/10/16
*
* MMIX Assembler language file for GeSHi.
@@ -41,13 +41,21 @@
$language_data = array (
'LANG_NAME' => 'MMIX',
- 'COMMENT_SINGLE' => array(1 => ';'),
+ 'COMMENT_SINGLE' => array(1 => ';', 2 => '%'),
'COMMENT_MULTI' => array(),
//Line address prefix suppression
- 'COMMENT_REGEXP' => array(2 => "/^\s*[0-9a-f]{12,16}+(?:\s+[0-9a-f]+(?:\.{3}[0-9a-f]{2,})?)?:/mi"),
+ 'COMMENT_REGEXP' => array(
+ 3 => "/^\s*(?!\s)[^\w].*$/m",
+ 4 => "/^\s*[0-9a-f]{12,16}+(?:\s+[0-9a-f]+(?:\.{3}[0-9a-f]{2,})?)?:/mi"
+ ),
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
'QUOTEMARKS' => array("'", '"'),
'ESCAPE_CHAR' => '',
+ 'NUMBERS' => array(
+ 1 => '(?<![\d\$#\w])[\da-fA-F]+(?!\w)',
+ 2 => '#[\da-fA-F]+',
+ 3 => '\$\d+'
+ ),
'KEYWORDS' => array(
/*CPU*/
1 => array(
@@ -57,54 +65,61 @@ $language_data = array (
'CSP','CSWAP','CSZ','DIV','DIVU','FADD','FCMP','FCMPE','FDIV',
'FEQL','FEQLE','FINT','FIX','FIXU','FLOT','FLOTU','FMUL','FREM',
'FSQRT','FSUB','FUN','FUNE','GET','GETA','GO','INCH','INCL','INCMH',
- 'INCML','JMP','LDB','LDBU','LDHT','LDO','LDOU','LDSF','LDT','LDTU',
- 'LDUNC','LDVTS','LDW','LDWU','MOR','MUL','MULU','MUX','MXOR','NAND',
- 'NEG','NEGU','NOR','NXOR','ODIF','OR','ORH','ORL','ORMH','ORML',
- 'ORN','PBEV','PBN','PBNN','PBNP','PBNZ','PBOD','PBP','PBZ','POP',
- 'PREGO','PRELD','PREST','PUSHGO','PUSHJ','PUT','RESUME','SADD',
+ 'INCML','JMP','LDA','LDB','LDBU','LDHT','LDO','LDOU','LDSF','LDT',
+ 'LDTU','LDUNC','LDVTS','LDW','LDWU','MOR','MUL','MULU','MUX','MXOR',
+ 'NAND','NEG','NEGU','NOR','NXOR','ODIF','OR','ORH','ORL','ORMH',
+ 'ORML','ORN','PBEV','PBN','PBNN','PBNP','PBNZ','PBOD','PBP','PBZ',
+ 'POP','PREGO','PRELD','PREST','PUSHGO','PUSHJ','PUT','RESUME','SADD',
'SAVE','SETH','SETL','SETMH','SETML','SFLOT','SFLOTU','SL','SLU',
'SR','SRU','STB','STBU','STCO','STHT','STO','STOU','STSF','STT',
'STTU','STUNC','STW','STWU','SUB','SUBU','SWYM','SYNC','SYNCD',
'SYNCID','TDIF','TRAP','TRIP','UNSAVE','WDIF','XOR','ZSEV','ZSN',
'ZSNN','ZSNP','ZSNZ','ZSOD','ZSP','ZSZ'
),
+ 2 => array(
+ 'BSPEC','BYTE','ESPEC','GREG','IS','LOC','LOCAL','OCTA',
+ 'PREFIX','SET','TETRA','WYDE'
+ ),
/*registers*/
3 => array(
'rA','rB','rC','rD','rE','rF','rG','rH','rI','rJ','rK','rL','rM',
'rN','rO','rP','rQ','rR','rS','rT','rU','rV','rW','rX','rY','rZ',
'rBB','rTT','rWW','rXX','rYY','rZZ'
),
- /*Directive*/
- 4 => array(
- ),
- /*Operands*/
- 5 => array(
- )
+// /*Directive*/
+// 4 => array(
+// ),
+// /*Operands*/
+// 5 => array(
+// )
),
'SYMBOLS' => array(
'[', ']', '(', ')',
'+', '-', '*', '/', '%',
- '.', ',', ';', ':'
+ '.', ',', ';', ':',
+ '<<','>>'
),
'CASE_SENSITIVE' => array(
GESHI_COMMENTS => false,
1 => true,
2 => false,
3 => true,
- 4 => false,
- 5 => false
+// 4 => false,
+// 5 => false
),
'STYLES' => array(
'KEYWORDS' => array(
1 => 'color: #00007f; font-weight: bold;',
2 => 'color: #0000ff; font-weight: bold;',
3 => 'color: #00007f;',
- 4 => 'color: #000000; font-weight: bold;',
- 5 => 'color: #000000; font-weight: bold;'
+// 4 => 'color: #000000; font-weight: bold;',
+// 5 => 'color: #000000; font-weight: bold;'
),
'COMMENTS' => array(
1 => 'color: #666666; font-style: italic;',
- 2 => 'color: #adadad; font-style: italic;',
+ 2 => 'color: #666666; font-style: italic;',
+ 3 => 'color: #666666; font-style: italic;',
+ 4 => 'color: #adadad; font-style: italic;',
),
'ESCAPE_CHAR' => array(
0 => 'color: #000099; font-weight: bold;'
@@ -116,7 +131,10 @@ $language_data = array (
0 => 'color: #7f007f;'
),
'NUMBERS' => array(
- 0 => 'color: #0000ff;'
+ 0 => 'color: #0000ff;',
+ 1 => 'color: #0000ff;',
+ 2 => 'color: #0000ff;',
+ 3 => 'color: #00007f;'
),
'METHODS' => array(
),
@@ -134,9 +152,10 @@ $language_data = array (
1 => '',
2 => '',
3 => '',
- 4 => '',
- 5 => ''
+// 4 => '',
+// 5 => ''
),
+/*
'NUMBERS' =>
GESHI_NUMBER_BIN_PREFIX_PERCENT |
GESHI_NUMBER_BIN_SUFFIX |
@@ -147,6 +166,7 @@ $language_data = array (
GESHI_NUMBER_FLT_NONSCI |
GESHI_NUMBER_FLT_NONSCI_F |
GESHI_NUMBER_FLT_SCI_ZERO,
+*/
'OOLANG' => false,
'OBJECT_SPLITTERS' => array(
),
diff --git a/inc/geshi/modula2.php b/inc/geshi/modula2.php
index 131543baa..18508340b 100644
--- a/inc/geshi/modula2.php
+++ b/inc/geshi/modula2.php
@@ -4,7 +4,7 @@
* -----------
* Author: Benjamin Kowarsch (benjamin@modula2.net)
* Copyright: (c) 2009 Benjamin Kowarsch (benjamin@modula2.net)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/11/05
*
* Modula-2 language file for GeSHi.
diff --git a/inc/geshi/modula3.php b/inc/geshi/modula3.php
index 21b2e255d..ae08dcf97 100644
--- a/inc/geshi/modula3.php
+++ b/inc/geshi/modula3.php
@@ -4,7 +4,7 @@
* ----------
* Author: mbishop (mbishop@esoteriq.org)
* Copyright: (c) 2009 mbishop (mbishop@esoteriq.org)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/01/21
*
* Modula-3 language file for GeSHi.
@@ -50,7 +50,7 @@ $language_data = array (
'CONST', 'DIV', 'DO', 'ELSE', 'ELSIF', 'END', 'EVAL', 'EXCEPT', 'EXCEPTION',
'EXIT', 'EXPORTS', 'FINALLY', 'FOR', 'FROM', 'GENERIC', 'IF', 'IMPORT', 'IN',
'INTERFACE', 'LOCK', 'LOOP', 'METHODS', 'MOD', 'MODULE', 'NOT', 'OBJECT', 'OF',
- 'OR', 'OVERRIDE', 'PROCEDURE', 'RAISE', 'RAISES', 'READONLY', 'RECORD', 'REF',
+ 'OR', 'OVERRIDES', 'PROCEDURE', 'RAISE', 'RAISES', 'READONLY', 'RECORD', 'REF',
'REPEAT', 'RETURN', 'REVEAL', 'ROOT', 'SET', 'THEN', 'TO', 'TRY', 'TYPE', 'TYPECASE',
'UNSAFE', 'UNTIL', 'UNTRACED', 'VALUE', 'VAR', 'WHILE', 'WITH'
),
diff --git a/inc/geshi/mpasm.php b/inc/geshi/mpasm.php
index 70f12de48..f724a9414 100644
--- a/inc/geshi/mpasm.php
+++ b/inc/geshi/mpasm.php
@@ -4,7 +4,7 @@
* ---------
* Author: Bakalex (bakalex@gmail.com)
* Copyright: (c) 2004 Bakalex, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/12/6
*
* Microchip Assembler language file for GeSHi.
diff --git a/inc/geshi/mxml.php b/inc/geshi/mxml.php
index 72a071aae..0cc8287a2 100644
--- a/inc/geshi/mxml.php
+++ b/inc/geshi/mxml.php
@@ -4,7 +4,7 @@
* -------
* Author: David Spurr
* Copyright: (c) 2007 David Spurr (http://www.defusion.org.uk/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/10/04
*
* MXML language file for GeSHi. Based on the XML file by Nigel McNie
diff --git a/inc/geshi/mysql.php b/inc/geshi/mysql.php
index b85377d1c..507da2d09 100644
--- a/inc/geshi/mysql.php
+++ b/inc/geshi/mysql.php
@@ -4,7 +4,7 @@
* ---------
* Author: Marjolein Katsma (marjolein.is.back@gmail.com)
* Copyright: (c) 2008 Marjolein Katsma (http://blog.marjoleinkatsma.com/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008-12-12
*
* MySQL language file for GeSHi.
@@ -74,9 +74,9 @@ $language_data = array (
// category, or have multiple usage/meanings
'ACTION','ADD','AFTER','ALGORITHM','ALL','ALTER','ANALYZE','ANY',
'ASC','AS','BDB','BEGIN','BERKELEYDB','BINARY','BTREE','CALL',
- 'CASCADED','CASCADE','CHAIN','CHECK','COLUMNS','COLUMN','COMMENT',
- 'COMMIT','COMMITTED','CONSTRAINT','CONTAINS SQL','CONSISTENT',
- 'CONVERT','CREATE','CROSS','DATA','DATABASES',
+ 'CASCADED','CASCADE','CHAIN','CHANGE','CHECK','COLUMNS','COLUMN',
+ 'COMMENT','COMMIT','COMMITTED','CONSTRAINT','CONTAINS SQL',
+ 'CONSISTENT','CONVERT','CREATE','CROSS','DATA','DATABASES',
'DECLARE','DEFINER','DELAYED','DELETE','DESCRIBE','DESC',
'DETERMINISTIC','DISABLE','DISCARD','DISTINCTROW','DISTINCT','DO',
'DROP','DUMPFILE','DUPLICATE KEY','ENABLE','ENCLOSED BY','ENGINE',
@@ -90,10 +90,10 @@ $language_data = array (
'MASTER_SERVER_ID','MATCH','MERGE','MIDDLEINT','MODIFIES SQL DATA',
'MODIFY','MRG_MYISAM','NATURAL','NEXT','NO SQL','NO','ON',
'OPTIMIZE','OPTIONALLY','OPTION','ORDER BY','OUTER','OUTFILE','OUT',
- 'PARTIAL','PREV','PRIMARY KEY','PRIVILEGES','PROCEDURE','PURGE',
- 'QUICK','READS SQL DATA','READ','REFERENCES','RELEASE','RENAME',
- 'REPEATABLE','REQUIRE','RESTRICT','RETURNS','REVOKE',
- 'ROLLBACK','ROUTINE','RTREE','SAVEPOINT','SELECT',
+ 'PARTIAL','PARTITION','PREV','PRIMARY KEY','PRIVILEGES','PROCEDURE',
+ 'PURGE','QUICK','READS SQL DATA','READ','REFERENCES','RELEASE',
+ 'RENAME','REORGANIZE','REPEATABLE','REQUIRE','RESTRICT','RETURNS',
+ 'REVOKE','ROLLBACK','ROUTINE','RTREE','SAVEPOINT','SELECT',
'SERIALIZABLE','SESSION','SET','SHARE MODE','SHOW','SIMPLE',
'SNAPSHOT','SOME','SONAME','SQL SECURITY','SQL_BIG_RESULT',
'SQL_BUFFER_RESULT','SQL_CACHE','SQL_CALC_FOUND_ROWS',
@@ -391,15 +391,15 @@ $language_data = array (
)
),
'URLS' => array(
- 1 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
- 2 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
- 3 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
- 4 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
- 5 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
- 6 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
- 7 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
- 8 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
- 9 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
+ 1 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+ 2 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+ 3 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+ 4 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+ 5 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+ 6 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+ 7 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+ 8 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+ 9 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
10 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html',
11 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html',
diff --git a/inc/geshi/nagios.php b/inc/geshi/nagios.php
new file mode 100644
index 000000000..32cbaef9e
--- /dev/null
+++ b/inc/geshi/nagios.php
@@ -0,0 +1,225 @@
+<?php
+/*************************************************************************************
+ * nagios.php
+ * --------
+ * Author: Albéric de Pertat <alberic@depertat.net>
+ * Copyright: (c) 2012 Albéric de Pertat (https://github.com/adepertat/geshi-nagios)
+ * Release Version: 1.0.8.11
+ * Date Started: 2012/01/19
+ *
+ * Nagios language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2012/01/19 (1.0.0)
+ * - First Release
+ *
+ * TODO (updated 2012/01/19)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array(
+ 'LANG_NAME' => 'Nagios',
+ 'COMMENT_SINGLE' => array(1 => ';', 2 => '#'),
+ 'COMMENT_MULTI' => array(),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'HARDQUOTE' => array("'", "'"),
+ 'QUOTEMARKS' => array("'", '"'),
+ 'ESCAPE_CHAR' => '\'',
+ 'KEYWORDS' => array(
+ 1 => array(
+ 'define'
+ ),
+ 2 => array(
+ 'command', 'contact', 'contactgroup', 'host', 'hostdependency',
+ 'hostescalation', 'hostextinfo', 'hostgroup', 'service',
+ 'servicedependency', 'serviceescalation',
+ 'serviceextinfo', 'servicegroup', 'timeperiod'
+ ),
+ 3 => array(
+ 'active_checks_enabled', 'passive_checks_enabled', 'alias',
+ 'display_name', 'host_name', 'address', 'hostgroups', 'parents',
+ 'hostgroup_members', 'members', 'service_description',
+ 'servicegroups', 'is_volatile', 'servicegroup_name',
+ 'servicegroup_members', 'contact_name', 'contactgroups', 'email',
+ 'pager', 'can_submit_commands', 'contactgroup_name',
+ 'contactgroup_members', 'host_notifications_enabled',
+ 'service_notifications_enabled', 'host_notification_period',
+ 'service_notification_period', 'host_notification_options',
+ 'service_notification_options', 'host_notification_commands',
+ 'service_notification_commands', 'check_command',
+ 'check_freshness', 'check_interval', 'check_period', 'contacts',
+ 'contact_groups', 'event_handler', 'event_handler_enabled',
+ 'flap_detection_enabled', 'flap_detection_options',
+ 'freshness_threshold', 'initial_state', 'low_flap_threshold',
+ 'high_flap_threshold', 'max_check_attempts',
+ 'notification_interval', 'first_notification_delay',
+ 'notification_period', 'notification_options',
+ 'notifications_enabled', 'stalking_options', 'notes', 'notes_url',
+ 'action_url', 'icon_image', 'icon_image_alt', 'vrml_image',
+ 'statusmap_image', '2d_coords', '3d_coords', 'obsess_over_host',
+ 'obsess_over_hostver_service', 'process_perf_data',
+ 'retain_status_information', 'retain_nonstatus_information',
+ 'retry_interval', 'register', 'use', 'name', 'timeperiod_name',
+ 'exclude', 'command_name', 'command_line', 'dependent_host_name',
+ 'dependent_hostgroup_name', 'dependent_service_description',
+ 'inherits_parent', 'execution_failure_criteria',
+ 'notification_failure_criteria', 'dependency_period',
+ 'first_notification', 'last_notification', 'escalation_period',
+ 'escalation_options'
+ ),
+ 4 => array(
+ 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday',
+ 'sunday', 'january', 'february', 'march', 'april', 'may', 'june',
+ 'july', 'august', 'september', 'october', 'november', 'december',
+ 'day'
+ )
+ ),
+ 'SYMBOLS' => array(
+ 0 => array(
+ '{', '}', ',', '+'
+ )
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false,
+ 1 => false,
+ 2 => false,
+ 3 => false,
+ 4 => false,
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'font-weight:bold;color:#FFDCA8;',
+ 2 => 'font-weight:bold;color #FFA858;',
+ 3 => 'font-weight:bold;color:#00C0C0;',
+ 4 => 'font-weight:bold;color:#C0C0FF;'
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'font-weight:bold;color:#000000;'
+ ),
+ 'NUMBERS' => array(
+ 0 => ''
+ ),
+ 'COMMENTS' => array(
+ 0 => 'color: #AAAAAA; font-style: italic;',
+ 1 => 'color: #AAAAAA; font-style: italic;',
+ 2 => 'color: #AAAAAA; font-style: italic;'
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #009900;'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #660066;',
+ 'HARD' => 'color: #660066;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #000099; font-weight: bold;'
+ ),
+ 'METHODS' => array(
+ 1 => 'color: #006600;'
+ ),
+ 'REGEXPS' => array(
+ 0 => 'font-weight:bold;color:#808080;',
+ 1 => 'font-weight:bold;color:#000080;',
+ 2 => 'font-weight:bold;color:red;',
+ 3 => 'font-weight:bold;color:#808000;',
+ 4 => 'font-weight:bold;color:blue;',
+ 5 => 'font-weight:bold;color:#C0FFC0;',
+ ),
+ 'SCRIPT' => array(
+ 0 => '',
+ )
+ ),
+ 'OOLANG' => false,
+ 'OBJECT_SPLITTERS' => array(
+ 1 => '\\'
+ ),
+ 'REGEXPS' => array(
+ // Custom macros
+ 0 => array(
+ GESHI_SEARCH => '(\$[a-zA-Z_]+\$)',
+ GESHI_REPLACE => '\\1',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '',
+ GESHI_AFTER => '',
+ ),
+ // Custom macro definitions
+ 1 => array(
+ GESHI_SEARCH => '(\A|\s)(_[a-zA-Z_]+)',
+ GESHI_REPLACE => '\\2',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '\\1',
+ GESHI_AFTER => '',
+ ),
+ // $USERxx$
+ 2 => array(
+ GESHI_SEARCH => '(\$USER[0-9]+\$)',
+ GESHI_REPLACE => '\\1',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '',
+ GESHI_AFTER => '',
+ ),
+ // $ARGxx$
+ 3 => array(
+ GESHI_SEARCH => '(\$ARG[1-9]\$)',
+ GESHI_REPLACE => '\\1',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '',
+ GESHI_AFTER => '',
+ ),
+ // register 0
+ 4 => array(
+ GESHI_SEARCH => '(\bregister[\\x20\\t]+[01])',
+ GESHI_REPLACE => '\\1',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '',
+ GESHI_AFTER => '',
+ ),
+ // use
+ 5 => array(
+ GESHI_SEARCH => '(use[\\x20\\t]+[^\\x20\\t]+)([\\x20\\t]*[$;#])',
+ GESHI_REPLACE => '\\2',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '\\1',
+ GESHI_AFTER => '',
+ ),
+ ),
+ 'URLS' => array(
+ 1 => '',
+ 2 => '',
+ 3 => '',
+ 4 => ''
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ 0 => false
+ ),
+ 'TAB_WIDTH' => 4,
+ 'PARSER_CONTROL' => array(
+ 'ENABLE_FLAGS' => array(
+ 'NUMBERS' => GESHI_NEVER
+ )
+ )
+);
+
+?>
diff --git a/inc/geshi/netrexx.php b/inc/geshi/netrexx.php
new file mode 100644
index 000000000..14a2d23fd
--- /dev/null
+++ b/inc/geshi/netrexx.php
@@ -0,0 +1,163 @@
+<?php
+/*************************************************************************************
+ * netrexx.php
+ * ---------------------------------
+ * Author: Jon Wolfers (sahananda@windhorse.biz)
+ * Contributors:
+ * - Walter Pachl (pachl@chello.at)
+ * Copyright: (c) 2008 Jon Wolfers, (c) 2012 Walter Pachl
+ * Release Version: 1.0.8.11
+ * Date Started: 2008/01/07
+ *
+ * NetRexx language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2012/07/29 (1.0.0)
+ * - tried to get it syntactically right
+ *
+ * TODO (updated 2012/07/29)
+ * -------------------------
+ * - Get it working on rosettacode.org
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'NetRexx',
+ 'COMMENT_SINGLE' => array(1 => '--'),
+ 'COMMENT_MULTI' => array('/*' => '*/'),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array("'", '"'),
+ 'ESCAPE_CHAR' => '',
+ 'KEYWORDS' => array(
+ 1 => array(
+ 'class', 'do', 'exit', 'if', 'import', 'iterate', 'leave',
+ 'loop', 'nop', 'numeric', 'package', 'parse', 'properties',
+ 'return', 'say', 'select', 'signal', 'trace'
+ ),
+ 2 => array(
+ 'abstract', 'adapter', 'all', 'ask', 'binary', 'case',
+ 'constant', 'dependent', 'deprecated', 'extends', 'final',
+ 'implements', 'inheritable', 'interface', 'label', 'methods',
+ 'native', 'off', 'private', 'protect', 'public', 'results',
+ 'returns', 'shared', 'signals', 'source', 'static',
+ 'transient', 'unused', 'uses', 'version', 'volatile'
+ ),
+ 3 => array(
+ 'catch', 'else', 'end', 'finally', 'otherwise', 'then', 'when'
+ ),
+ 4 => array(
+ 'rc', 'result', 'self', 'sigl', 'super'
+ ),
+ 5 => array(
+ 'placeholderforoorexxdirectives'
+ ),
+ 6 => array(
+ 'abbrev', 'abs', 'b2x', 'c2d', 'c2x', 'center', 'centre',
+ 'changestr', 'compare', 'copies', 'copyindexed', 'countstr',
+ 'd2c', 'd2x', 'datatype', 'delstr', 'delword', 'exists',
+ 'formword', 'hashcode', 'insert', 'lastpos', 'left', 'lower',
+ 'max', 'min', 'noteq', 'noteqs', 'opadd', 'opand', 'opcc',
+ 'opccblank', 'opdiv', 'opdivi', 'opeq', 'opeqs', 'opgt',
+ 'opgteq', 'opgteqs', 'opgts', 'oplt', 'oplteq', 'oplteqs',
+ 'oplts', 'opminus', 'opmult', 'opnot', 'opor', 'opplus',
+ 'oppow', 'oprem', 'opsub', 'opxor', 'overlay', 'pos position',
+ 'reverse', 'right', 'sequence', 'setdigits', 'setform',
+ 'sign', 'space', 'strip', 'substr', 'subword', 'toboolean',
+ 'tobyte', 'tochar', 'todouble', 'tofloat', 'toint', 'tolong',
+ 'toshort', 'tostring', 'translate', 'trunc', 'upper',
+ 'verify', 'word', 'wordindex', 'wordlength', 'wordpos',
+ 'words', 'x2b', 'x2c', 'x2d'
+ )
+ ),
+ 'SYMBOLS' => array(
+ '(', ')', '<', '>', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':',
+ '<', '>'
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => true,
+ 1 => false,
+ 2 => false,
+ 3 => false,
+ 4 => false,
+ 5 => false,
+ 6 => false
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color: #b1b100;',
+ 2 => 'color: #ff0000; font-weight: bold;',
+ 3 => 'color: #00ff00; font-weight: bold;',
+ 4 => 'color: #0000ff; font-weight: bold;',
+ 5 => 'color: #880088; font-weight: bold;',
+ 6 => 'color: #888800; font-weight: bold;'
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #666666;',
+ 'MULTI' => 'color: #808080;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #000099; font-weight: bold;'
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #66cc66;'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #ff0000;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #cc66cc;'
+ ),
+ 'METHODS' => array(
+ 1 => 'color: #202020;',
+ 2 => 'color: #202020;'
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color: #66cc66;'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'SCRIPT' => array(
+ )
+ ),
+ 'URLS' => array(
+ 1 => '',
+ 2 => '',
+ 3 => '',
+ 4 => '',
+ 5 => '',
+ 6 => ''
+ ),
+ 'OOLANG' => true,
+ 'OBJECT_SPLITTERS' => array(
+ 1 => '.'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ ),
+ 'TAB_WIDTH' => 4
+);
+
+?>
diff --git a/inc/geshi/newlisp.php b/inc/geshi/newlisp.php
index 508f116b7..0dc6c1619 100644
--- a/inc/geshi/newlisp.php
+++ b/inc/geshi/newlisp.php
@@ -4,7 +4,7 @@
* ----------
* Author: cormullion (cormullion@mac.com) Sept 2009
* Copyright: (c) 2009 Cormullion (http://unbalanced-parentheses.nfshost.com/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/09/30
*
* newLISP language file for GeSHi.
diff --git a/inc/geshi/nsis.php b/inc/geshi/nsis.php
index ab05ed82b..35df9b4b8 100644
--- a/inc/geshi/nsis.php
+++ b/inc/geshi/nsis.php
@@ -4,7 +4,7 @@
* --------
* Author: deguix (cevo_deguix@yahoo.com.br), Tux (http://tux.a4.cz/)
* Copyright: (c) 2005 deguix, 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/12/03
*
* Nullsoft Scriptable Install System language file for GeSHi.
diff --git a/inc/geshi/oberon2.php b/inc/geshi/oberon2.php
index 33b828df5..b43f81408 100644
--- a/inc/geshi/oberon2.php
+++ b/inc/geshi/oberon2.php
@@ -4,7 +4,7 @@
* ----------
* Author: mbishop (mbishop@esoteriq.org)
* Copyright: (c) 2009 mbishop (mbishop@esoteriq.org)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/02/10
*
* Oberon-2 language file for GeSHi.
diff --git a/inc/geshi/objc.php b/inc/geshi/objc.php
index 3b2c593ef..2f5162d76 100644
--- a/inc/geshi/objc.php
+++ b/inc/geshi/objc.php
@@ -5,7 +5,7 @@
* Author: M. Uli Kusterer (witness.of.teachtext@gmx.net)
* Contributors: Quinn Taylor (quinntaylor@mac.com)
* Copyright: (c) 2008 Quinn Taylor, 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/06/04
*
* Objective-C language file for GeSHi.
diff --git a/inc/geshi/objeck.php b/inc/geshi/objeck.php
index 5ab3642e5..bf9dab564 100644
--- a/inc/geshi/objeck.php
+++ b/inc/geshi/objeck.php
@@ -4,7 +4,7 @@
* --------
* Author: Randy Hollines (objeck@gmail.com)
* Copyright: (c) 2010 Randy Hollines (http://code.google.com/p/objeck-lang/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/07/01
*
* Objeck Programming Language language file for GeSHi.
diff --git a/inc/geshi/ocaml-brief.php b/inc/geshi/ocaml-brief.php
index d988409e8..b518adf87 100644
--- a/inc/geshi/ocaml-brief.php
+++ b/inc/geshi/ocaml-brief.php
@@ -4,7 +4,7 @@
* ----------
* Author: Flaie (fireflaie@gmail.com)
* Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/08/27
*
* OCaml (Objective Caml) language file for GeSHi.
diff --git a/inc/geshi/ocaml.php b/inc/geshi/ocaml.php
index 4e36f3c30..ac6c29bcc 100644
--- a/inc/geshi/ocaml.php
+++ b/inc/geshi/ocaml.php
@@ -4,7 +4,7 @@
* ----------
* Author: Flaie (fireflaie@gmail.com)
* Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/08/27
*
* OCaml (Objective Caml) language file for GeSHi.
diff --git a/inc/geshi/octave.php b/inc/geshi/octave.php
new file mode 100644
index 000000000..ccffcd97a
--- /dev/null
+++ b/inc/geshi/octave.php
@@ -0,0 +1,515 @@
+<?php
+/*************************************************************************************
+ * octave.php
+ * -----------
+ * Author: Carnë Draug (carandraug+dev@gmail.com)
+ * Juan Pablo Carbajal (carbajal@ifi.uzh.ch)
+ * Copyright: (c) 2012 Carnë Draug
+ * (c) 2012 Juan Pablo Carbajal
+ * Release Version: 1.0.8.11
+ * Date Started: 2012/05/22
+ *
+ * GNU Octave M-file language file for GeSHi.
+ *
+ * This file was heavily based on octave.lang from gtksourceview. If bugs are
+ * found and/or fixed on this file, please send them to the gtksourceview
+ * project or e-mail them to this file authors. Thanks in advance
+ *
+ * CHANGES
+ * -------
+ * 2012/05/22 (1.0.8.11)
+ * - First Release
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'GNU Octave',
+ 'COMMENT_SINGLE' => array(1 => '#', 2 => '%'),
+ // we can't use COMMENT_MULTI since start and end of block comments need to
+ // be alone on the line (optionally, with whitespace). See COMMENT_REGEXP
+ 'COMMENT_MULTI' => array(),
+ // we can't use QUOTEMARKS, not even HARDQUOTE, see COMMENT_REGEXP
+ 'QUOTEMARKS' => array(),
+ 'ESCAPE_CHAR' => '',
+ 'COMMENT_REGEXP' => array(
+ // Single quote strings: we can't use QUOTEMARKS here since new
+ // lines will break the string. Plus, single quote strings do not even
+ // allow for continuation markers, only double quote strings allow it.
+ // Also, to do not misdetect the transpose operator ' as the start of a
+ // string we assert to not follow a variable name (letters, digits and
+ // underscores) or a closing bracket (round, square or curly) or a dot
+ // (to form the array transpose operator ".'" ).
+ 3 => "/(?<![0-9a-zA-Z_\)\]}\.])'.*?'/",
+ // Double quote strings: we also can't use QUOTEMARKS here (see single
+ // line quotes). However, with double quote strings both \ and ... can
+ // be used to make multiline strings. Continuation markers can be
+ // followed by whitespace
+ 4 => '/"(.|(\.\.\.|\\\)(\s)*?\n)*?(?<!\\\)"/',
+ // Block comments: the ms modifiers treat strings as multiple lines (to
+ // be able to use ^ and $ instead of newline and thus support block
+ // comments on the first and last line of source) and make . also match
+ // a newline
+ 5 => "/^\s*?[%#]{\s*?$.*?^\s*?[%#]}\s*?$/ms",
+ // Packaging system: comes here so that pkg can also be used in the
+ // function form. The list of pkg commands is optional to the match so
+ // that at least pkg is highlighted if new commands are implemented
+ 6 => "/\bpkg(?!\s*\()\s+((un)?install|update|(un)?load|list|(global|local)_list|describe|prefix|(re)?build)?\b/",
+ // Function handles
+ 7 => "/@([a-z_][a-z1-9_]*)?/i",
+ ),
+ 'NUMBERS' =>
+ GESHI_NUMBER_INT_BASIC |
+ GESHI_NUMBER_OCT_PREFIX |
+ GESHI_NUMBER_HEX_PREFIX |
+ GESHI_NUMBER_FLT_SCI_ZERO,
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'KEYWORDS' => array(
+ // Data types
+ 1 => array(
+ 'cell', 'char', 'double', 'uint8', 'uint16', 'uint32', 'uint64',
+ 'int8','int16', 'int32', 'int64', 'logical', 'single', 'struct'
+ ),
+ // Storage type
+ 2 => array(
+ 'global', 'persistent', 'static'
+ ),
+ // Internal variable
+ 3 => array(
+ 'ans'
+ ),
+ // Reserved words
+ 4 => array(
+ 'break', 'case', 'catch', 'continue', 'do', 'else', 'elseif', 'end',
+ 'end_try_catch', 'end_unwind_protect', 'endfor', 'endfunction',
+ 'endif', 'endparfor', 'endswitch', 'endwhile', 'for', 'function',
+ 'if', 'otherwise', 'parfor', 'return',
+ 'switch', 'try', 'until', 'unwind_protect',
+ 'unwind_protect_cleanup', 'varargin', 'varargout', 'while'
+ ),
+ // Built in
+ 5 => array(
+ 'P_tmpdir', 'abs', 'acos', 'acosh',
+ 'add_input_event_hook', 'addlistener', 'addpath', 'addproperty',
+ 'all', 'allow_noninteger_range_as_index', 'and', 'angle', 'any',
+ 'arg', 'argnames', 'argv', 'asin', 'asinh', 'assignin', 'atan',
+ 'atan2', 'atanh', 'atexit', 'autoload', 'available_graphics_toolkits',
+ 'beep_on_error', 'bitand', 'bitmax', 'bitor', 'bitshift', 'bitxor',
+ 'builtin', 'canonicalize_file_name', 'cat', 'cbrt', 'cd', 'ceil',
+ 'cell2struct', 'cellstr', 'chdir', 'class', 'clc',
+ 'clear', 'columns', 'command_line_path', 'completion_append_char',
+ 'completion_matches', 'complex', 'confirm_recursive_rmdir', 'conj',
+ 'cos', 'cosh', 'cputime', 'crash_dumps_octave_core', 'ctranspose',
+ 'cumprod', 'cumsum', 'dbclear', 'dbcont', 'dbdown', 'dbnext',
+ 'dbquit', 'dbstack', 'dbstatus', 'dbstep', 'dbstop', 'dbtype', 'dbup',
+ 'dbwhere', 'debug_on_error', 'debug_on_interrupt', 'debug_on_warning',
+ 'default_save_options', 'dellistener', 'diag', 'diary', 'diff',
+ 'disp', 'do_braindead_shortcircuit_evaluation', 'do_string_escapes',
+ 'doc_cache_file', 'drawnow', 'dup2', 'echo',
+ 'echo_executing_commands', 'edit_history','eq', 'erf', 'erfc',
+ 'erfcx', 'erfinv', 'errno', 'errno_list', 'error', 'eval', 'evalin',
+ 'exec', 'exist', 'exit', 'exp', 'expm1', 'eye', 'fclear',
+ 'fclose', 'fcntl', 'fdisp', 'feof', 'ferror', 'feval', 'fflush',
+ 'fgetl', 'fgets', 'fieldnames', 'file_in_loadpath', 'file_in_path',
+ 'filemarker', 'filesep', 'find_dir_in_path', 'finite', 'fix',
+ 'fixed_point_format', 'floor', 'fmod', 'fnmatch', 'fopen', 'fork',
+ 'format', 'formula', 'fprintf', 'fputs', 'fread', 'freport',
+ 'frewind', 'fscanf', 'fseek', 'fskipl', 'ftell', 'full', 'func2str',
+ 'functions', 'fwrite', 'gamma', 'gammaln', 'ge', 'genpath', 'get',
+ 'get_help_text', 'get_help_text_from_file', 'getegid', 'getenv',
+ 'geteuid', 'getgid', 'gethostname', 'getpgrp', 'getpid', 'getppid',
+ 'getuid', 'glob', 'gt', 'history', 'history_control', 'history_file',
+ 'history_size', 'history_timestamp_format_string', 'home', 'horzcat',
+ 'hypot', 'ifelse', 'ignore_function_time_stamp', 'imag',
+ 'inferiorto', 'info_file', 'info_program', 'inline', 'input',
+ 'intmax', 'intmin', 'ipermute',
+ 'is_absolute_filename', 'is_dq_string', 'is_function_handle',
+ 'is_rooted_relative_filename', 'is_sq_string', 'isalnum', 'isalpha',
+ 'isargout', 'isascii', 'isbool', 'iscell', 'iscellstr', 'ischar',
+ 'iscntrl', 'iscomplex', 'isdebugmode', 'isdigit', 'isempty',
+ 'isfield', 'isfinite', 'isfloat', 'isglobal', 'isgraph', 'ishandle',
+ 'isieee', 'isindex', 'isinf', 'isinteger', 'iskeyword', 'islogical',
+ 'islower', 'ismatrix', 'ismethod', 'isna', 'isnan', 'isnull',
+ 'isnumeric', 'isobject', 'isprint', 'ispunct', 'isreal', 'issorted',
+ 'isspace', 'issparse', 'isstruct', 'isupper', 'isvarname', 'isxdigit',
+ 'kbhit', 'keyboard', 'kill', 'lasterr', 'lasterror', 'lastwarn',
+ 'ldivide', 'le', 'length', 'lgamma', 'link', 'linspace',
+ 'list_in_columns', 'load', 'loaded_graphics_toolkits', 'log', 'log10',
+ 'log1p', 'log2', 'lower', 'lstat', 'lt',
+ 'make_absolute_filename', 'makeinfo_program', 'max_recursion_depth',
+ 'merge', 'methods', 'mfilename', 'minus', 'mislocked',
+ 'missing_function_hook', 'mkdir', 'mkfifo', 'mkstemp', 'mldivide',
+ 'mlock', 'mod', 'more', 'mpower', 'mrdivide', 'mtimes', 'munlock',
+ 'nargin', 'nargout', 'native_float_format', 'ndims', 'ne',
+ 'nfields', 'nnz', 'norm', 'not', 'nth_element', 'numel', 'nzmax',
+ 'octave_config_info', 'octave_core_file_limit',
+ 'octave_core_file_name', 'octave_core_file_options',
+ 'octave_tmp_file_name', 'onCleanup', 'ones',
+ 'optimize_subsasgn_calls', 'or', 'output_max_field_width',
+ 'output_precision', 'page_output_immediately', 'page_screen_output',
+ 'path', 'pathsep', 'pause', 'pclose', 'permute', 'pipe', 'plus',
+ 'popen', 'popen2', 'power', 'print_empty_dimensions',
+ 'print_struct_array_contents', 'printf', 'prod',
+ 'program_invocation_name', 'program_name', 'putenv', 'puts', 'pwd',
+ 'quit', 'rats', 'rdivide', 're_read_readline_init_file',
+ 'read_readline_init_file', 'readdir', 'readlink', 'real', 'realmax',
+ 'realmin', 'register_graphics_toolkit', 'rehash', 'rem',
+ 'remove_input_event_hook', 'rename', 'repelems', 'reset', 'reshape',
+ 'resize', 'restoredefaultpath', 'rethrow', 'rmdir', 'rmfield',
+ 'rmpath', 'round', 'roundb', 'rows', 'run_history', 'save',
+ 'save_header_format_string', 'save_precision', 'saving_history',
+ 'scanf', 'set', 'setenv', 'sighup_dumps_octave_core', 'sign',
+ 'sigterm_dumps_octave_core', 'silent_functions', 'sin',
+ 'sinh', 'size', 'size_equal', 'sizemax', 'sizeof', 'sleep', 'sort',
+ 'source', 'spalloc', 'sparse', 'sparse_auto_mutate',
+ 'split_long_rows', 'sprintf', 'sqrt', 'squeeze', 'sscanf', 'stat',
+ 'stderr', 'stdin', 'stdout', 'str2func', 'strcmp', 'strcmpi',
+ 'string_fill_char', 'strncmp', 'strncmpi', 'struct2cell',
+ 'struct_levels_to_print', 'strvcat', 'subsasgn', 'subsref', 'sum',
+ 'sumsq', 'superiorto', 'suppress_verbose_help_message', 'symlink',
+ 'system', 'tan', 'tanh', 'terminal_size', 'tic', 'tilde_expand',
+ 'times', 'tmpfile', 'tmpnam', 'toascii', 'toc', 'tolower', 'toupper',
+ 'transpose', 'typeinfo',
+ 'umask', 'uminus', 'uname', 'undo_string_escapes', 'unlink',
+ 'uplus', 'upper', 'usage', 'usleep', 'vec', 'vectorize', 'vertcat',
+ 'waitfor', 'waitpid', 'warning', 'warranty', 'who', 'whos',
+ 'whos_line_format', 'yes_or_no', 'zeros'
+ ),
+ // Octave functions
+ 6 => array(
+ 'accumarray', 'accumdim', 'acosd', 'acot', 'acotd', 'acoth', 'acsc',
+ 'acscd', 'acsch', 'addpref', 'addtodate', 'allchild', 'amd',
+ 'ancestor', 'anova', 'arch_fit', 'arch_rnd', 'arch_test',
+ 'area', 'arma_rnd', 'asctime', 'asec', 'asecd', 'asech', 'asind',
+ 'assert', 'atand', 'autoreg_matrix', 'autumn',
+ 'axes', 'axis', 'balance', 'bar', 'barh', 'bartlett', 'bartlett_test',
+ 'base2dec', 'beep', 'bessel', 'besselj', 'beta', 'betacdf',
+ 'betainc', 'betainv', 'betaln', 'betapdf', 'betarnd', 'bicg',
+ 'bicgstab', 'bicubic', 'bin2dec', 'bincoeff', 'binocdf', 'binoinv',
+ 'binopdf', 'binornd', 'bitcmp', 'bitget', 'bitset', 'blackman',
+ 'blanks', 'blkdiag', 'bone', 'box', 'brighten', 'bsxfun',
+ 'bug_report', 'bunzip2', 'bzip2', 'calendar', 'cart2pol', 'cart2sph',
+ 'cast', 'cauchy_cdf', 'cauchy_inv', 'cauchy_pdf', 'cauchy_rnd',
+ 'caxis', 'ccolamd', 'cell2mat', 'celldisp', 'cellfun',
+ 'center', 'cgs', 'chi2cdf', 'chi2inv', 'chi2pdf', 'chi2rnd',
+ 'chisquare_test_homogeneity', 'chisquare_test_independence', 'chol',
+ 'chop', 'circshift', 'cla', 'clabel', 'clf', 'clock',
+ 'cloglog', 'close', 'closereq', 'colamd', 'colloc', 'colon',
+ 'colorbar', 'colormap', 'colperm', 'colstyle', 'comet', 'comet3',
+ 'comma', 'common_size', 'commutation_matrix', 'compan',
+ 'compare_versions', 'compass', 'computer', 'cond', 'condest',
+ 'contour', 'contour3', 'contourc', 'contourf', 'contrast', 'conv',
+ 'conv2', 'convhull', 'convhulln', 'cool', 'copper', 'copyfile',
+ 'cor_test', 'corr', 'cosd', 'cot', 'cotd', 'coth', 'cov',
+ 'cplxpair', 'cross', 'csc', 'cscd', 'csch', 'cstrcat',
+ 'csvread', 'csvwrite', 'ctime', 'cumtrapz', 'curl', 'cylinder',
+ 'daspect', 'daspk', 'dasrt', 'dassl', 'date', 'datenum', 'datestr',
+ 'datetick', 'datevec', 'dblquad', 'deal', 'deblank', 'debug',
+ 'dec2base', 'dec2bin', 'dec2hex', 'deconv', 'del2', 'delaunay',
+ 'delaunay3', 'delaunayn', 'delete', 'demo', 'det', 'detrend',
+ 'diffpara', 'diffuse', 'dir', 'discrete_cdf', 'discrete_inv',
+ 'discrete_pdf', 'discrete_rnd', 'display', 'divergence',
+ 'dlmread', 'dlmwrite', 'dmperm', 'doc', 'dos', 'dot', 'dsearch',
+ 'dsearchn', 'dump_prefs', 'duplication_matrix', 'durbinlevinson',
+ 'edit', 'eig', 'eigs', 'ellipsoid', 'empirical_cdf', 'empirical_inv',
+ 'empirical_pdf', 'empirical_rnd', 'eomday', 'errorbar',
+ 'etime', 'etreeplot', 'example', 'expcdf', 'expinv', 'expm', 'exppdf',
+ 'exprnd', 'ezcontour', 'ezcontourf', 'ezmesh', 'ezmeshc', 'ezplot',
+ 'ezplot3', 'ezpolar', 'ezsurf', 'ezsurfc', 'f_test_regression',
+ 'fact', 'factor', 'factorial', 'fail', 'fcdf', 'feather', 'fft',
+ 'fft2', 'fftconv', 'fftfilt', 'fftn', 'fftshift', 'fftw', 'figure',
+ 'fileattrib', 'fileparts', 'fileread', 'fill', 'filter', 'filter2',
+ 'find', 'findall', 'findobj', 'findstr', 'finv', 'flag', 'flipdim',
+ 'fliplr', 'flipud', 'fminbnd', 'fminunc', 'fpdf', 'fplot',
+ 'fractdiff', 'freqz', 'freqz_plot', 'frnd', 'fsolve',
+ 'fullfile', 'fzero', 'gamcdf', 'gaminv', 'gammainc',
+ 'gampdf', 'gamrnd', 'gca', 'gcbf', 'gcbo', 'gcd', 'gcf',
+ 'gen_doc_cache', 'genvarname', 'geocdf', 'geoinv', 'geopdf', 'geornd',
+ 'get_first_help_sentence', 'getappdata', 'getfield', 'getgrent',
+ 'getpref', 'getpwent', 'getrusage', 'ginput', 'givens', 'glpk',
+ 'gls', 'gmap40', 'gmres', 'gnuplot_binary', 'gplot',
+ 'gradient', 'graphics_toolkit', 'gray', 'gray2ind', 'grid',
+ 'griddata', 'griddata3', 'griddatan', 'gtext', 'guidata',
+ 'guihandles', 'gunzip', 'gzip', 'hadamard', 'hamming', 'hankel',
+ 'hanning', 'help', 'hess', 'hex2dec', 'hex2num', 'hggroup', 'hidden',
+ 'hilb', 'hist', 'histc', 'hold', 'hot', 'hotelling_test',
+ 'hotelling_test_2', 'housh', 'hsv', 'hsv2rgb', 'hurst', 'hygecdf',
+ 'hygeinv', 'hygepdf', 'hygernd', 'idivide', 'ifftshift', 'image',
+ 'imagesc', 'imfinfo', 'imread', 'imshow', 'imwrite', 'ind2gray',
+ 'ind2rgb', 'index', 'info', 'inpolygon', 'inputname', 'int2str',
+ 'interp1', 'interp1q', 'interp2', 'interp3', 'interpft', 'interpn',
+ 'intersect', 'inv', 'invhilb', 'iqr',
+ 'is_leap_year', 'is_valid_file_id',
+ 'isa', 'isappdata', 'iscolumn', 'isdefinite', 'isdeployed', 'isdir',
+ 'isequal', 'isequalwithequalnans', 'isfigure', 'ishermitian',
+ 'ishghandle', 'ishold', 'isletter', 'ismac', 'ismember', 'isocolors',
+ 'isonormals', 'isosurface', 'ispc', 'ispref', 'isprime', 'isprop',
+ 'isrow', 'isscalar', 'issquare', 'isstrprop', 'issymmetric',
+ 'isunix', 'isvector', 'jet', 'kendall', 'kolmogorov_smirnov_cdf',
+ 'kolmogorov_smirnov_test', 'kolmogorov_smirnov_test_2', 'kron',
+ 'kruskal_wallis_test', 'krylov', 'kurtosis', 'laplace_cdf',
+ 'laplace_inv', 'laplace_pdf', 'laplace_rnd', 'lcm', 'legend',
+ 'legendre', 'license', 'lin2mu', 'line', 'linkprop', 'list_primes',
+ 'loadaudio', 'loadobj', 'logistic_cdf', 'logistic_inv',
+ 'logistic_pdf', 'logistic_regression', 'logistic_rnd', 'logit',
+ 'loglog', 'loglogerr', 'logm', 'logncdf', 'logninv', 'lognpdf',
+ 'lognrnd', 'logspace', 'lookfor', 'lookup', 'ls', 'ls_command',
+ 'lsode', 'lsqnonneg', 'lu', 'luinc', 'magic', 'mahalanobis', 'manova',
+ 'mat2str', 'matlabroot', 'matrix_type', 'max', 'mcnemar_test',
+ 'md5sum', 'mean', 'meansq', 'median', 'menu', 'mesh', 'meshc',
+ 'meshgrid', 'meshz', 'mex', 'mexext', 'mgorth', 'mkoctfile', 'mkpp',
+ 'mode', 'moment', 'movefile', 'mpoles', 'mu2lin', 'namelengthmax',
+ 'nargchk', 'narginchk', 'nargoutchk', 'nbincdf', 'nbininv', 'nbinpdf',
+ 'nbinrnd', 'nchoosek', 'ndgrid', 'newplot', 'news', 'nextpow2',
+ 'nonzeros', 'normcdf', 'normest', 'norminv', 'normpdf', 'normrnd',
+ 'now', 'nproc', 'nthargout', 'nthroot', 'ntsc2rgb', 'null', 'num2str',
+ 'ocean', 'ols', 'onenormest', 'optimget', 'optimset', 'orderfields',
+ 'orient', 'orth', 'pack', 'paren', 'pareto', 'parseparams', 'pascal',
+ 'patch', 'pathdef', 'pbaspect', 'pcg', 'pchip', 'pcolor', 'pcr',
+ 'peaks', 'periodogram', 'perl', 'perms', 'pie', 'pie3',
+ 'pink', 'pinv', 'pkg', 'planerot', 'playaudio', 'plot', 'plot3',
+ 'plotmatrix', 'plotyy', 'poisscdf', 'poissinv', 'poisspdf',
+ 'poissrnd', 'pol2cart', 'polar', 'poly', 'polyaffine', 'polyarea',
+ 'polyder', 'polyfit', 'polygcd', 'polyint', 'polyout',
+ 'polyreduce', 'polyval', 'polyvalm', 'postpad', 'pow2', 'powerset',
+ 'ppder', 'ppint', 'ppjumps', 'ppplot', 'ppval', 'pqpnonneg',
+ 'prctile', 'prepad', 'primes', 'print', 'printAllBuiltins',
+ 'print_usage', 'prism', 'probit', 'profexplore', 'profile',
+ 'profshow', 'prop_test_2', 'python', 'qp', 'qqplot', 'qr', 'quad',
+ 'quadcc', 'quadgk', 'quadl', 'quadv', 'quantile', 'quiver', 'quiver3',
+ 'qz', 'qzhess', 'rainbow', 'rand', 'randi', 'range', 'rank', 'ranks',
+ 'rat', 'rcond', 'reallog', 'realpow', 'realsqrt', 'record',
+ 'rectangle', 'rectint', 'recycle', 'refresh', 'refreshdata', 'regexp',
+ 'regexptranslate', 'repmat', 'residue', 'rgb2hsv',
+ 'rgb2ind', 'rgb2ntsc', 'ribbon', 'rindex', 'rmappdata', 'rmpref',
+ 'roots', 'rose', 'rosser', 'rot90', 'rotdim', 'rref', 'run',
+ 'run_count', 'run_test', 'rundemos', 'runlength', 'runtests',
+ 'saveas', 'saveaudio', 'saveobj', 'savepath', 'scatter',
+ 'scatter3', 'schur', 'sec', 'secd', 'sech', 'semicolon', 'semilogx',
+ 'semilogxerr', 'semilogy', 'semilogyerr', 'setappdata', 'setaudio',
+ 'setdiff', 'setfield', 'setpref', 'setxor', 'shading',
+ 'shg', 'shift', 'shiftdim', 'sign_test', 'sinc', 'sind',
+ 'sinetone', 'sinewave', 'skewness', 'slice', 'sombrero', 'sortrows',
+ 'spaugment', 'spconvert', 'spdiags', 'spearman', 'spectral_adf',
+ 'spectral_xdf', 'specular', 'speed', 'spencer', 'speye', 'spfun',
+ 'sph2cart', 'sphere', 'spinmap', 'spline', 'spones', 'spparms',
+ 'sprand', 'sprandn', 'sprandsym', 'spring', 'spstats', 'spy', 'sqp',
+ 'sqrtm', 'stairs', 'statistics', 'std', 'stdnormal_cdf',
+ 'stdnormal_inv', 'stdnormal_pdf', 'stdnormal_rnd', 'stem', 'stem3',
+ 'stft', 'str2double', 'str2num', 'strcat', 'strchr',
+ 'strfind', 'strjust', 'strmatch', 'strread', 'strsplit', 'strtok',
+ 'strtrim', 'strtrunc', 'structfun', 'sub2ind',
+ 'subplot', 'subsindex', 'subspace', 'substr', 'substruct', 'summer',
+ 'surf', 'surface', 'surfc', 'surfl', 'surfnorm', 'svd', 'svds',
+ 'swapbytes', 'syl', 'symbfact', 'symrcm',
+ 'symvar', 'synthesis', 't_test', 't_test_2', 't_test_regression',
+ 'table', 'tand', 'tar', 'tcdf', 'tempdir', 'tempname', 'test', 'text',
+ 'textread', 'textscan', 'time', 'tinv', 'title', 'toeplitz', 'tpdf',
+ 'trace', 'trapz', 'treelayout', 'treeplot', 'tril', 'trimesh',
+ 'triplequad', 'triplot', 'trisurf', 'trnd', 'tsearch', 'tsearchn',
+ 'type', 'typecast', 'u_test', 'uicontextmenu', 'uicontrol',
+ 'uigetdir', 'uigetfile', 'uimenu', 'uipanel', 'uipushtool',
+ 'uiputfile', 'uiresume', 'uitoggletool', 'uitoolbar', 'uiwait',
+ 'unidcdf', 'unidinv', 'unidpdf', 'unidrnd', 'unifcdf', 'unifinv',
+ 'unifpdf', 'unifrnd', 'unimplemented', 'union', 'unique', 'unix',
+ 'unmkpp', 'unpack', 'untabify', 'untar', 'unwrap', 'unzip',
+ 'urlwrite', 'usejava', 'validatestring', 'vander', 'var',
+ 'var_test', 'vech', 'ver', 'version', 'view', 'voronoi', 'voronoin',
+ 'waitbar', 'waitforbuttonpress', 'warning_ids', 'wavread', 'wavwrite',
+ 'wblcdf', 'wblinv', 'wblpdf', 'wblrnd', 'weekday',
+ 'welch_test', 'what', 'which',
+ 'white', 'whitebg', 'wienrnd', 'wilcoxon_test', 'wilkinson', 'winter',
+ 'xlabel', 'xlim', 'xor', 'ylabel', 'ylim', 'yulewalker', 'z_test',
+ 'z_test_2', 'zip', 'zlabel', 'zlim', 'zscore', 'airy', 'arrayfun',
+ 'besselh', 'besseli', 'besselk', 'bessely', 'bitpack', 'bitunpack',
+ 'blkmm', 'cellindexmat', 'cellslices', 'chol2inv', 'choldelete',
+ 'cholinsert', 'cholinv', 'cholshift', 'cholupdate', 'convn',
+ 'csymamd', 'cummax', 'cummin', 'daspk_options', 'dasrt_options',
+ 'dassl_options', 'endgrent', 'endpwent', 'etree', 'getgrgid',
+ 'getgrnam', 'getpwnam', 'getpwuid', 'gmtime', 'gui_mode', 'ifft',
+ 'ifft2', 'ifftn', 'ind2sub', 'inverse', 'localtime', 'lsode_options',
+ 'luupdate', 'mat2cell', 'min', 'mktime', 'mouse_wheel_zoom',
+ 'num2cell', 'num2hex', 'qrdelete', 'qrinsert', 'qrshift', 'qrupdate',
+ 'quad_options', 'rande', 'randg', 'randn', 'randp', 'randperm',
+ 'regexpi', 'regexprep', 'rsf2csf', 'setgrent', 'setpwent', 'sprank',
+ 'strftime', 'strptime', 'strrep', 'svd_driver', 'symamd', 'triu',
+ 'urlread'
+ ),
+ // Private builtin
+ 7 => array(
+ '__accumarray_max__', '__accumarray_min__', '__accumarray_sum__',
+ '__accumdim_sum__', '__builtins__', '__calc_dimensions__',
+ '__current_scope__', '__display_tokens__', '__dump_symtab_info__',
+ '__end__', '__get__', '__go_axes__', '__go_axes_init__',
+ '__go_delete__', '__go_execute_callback__', '__go_figure__',
+ '__go_figure_handles__', '__go_handles__', '__go_hggroup__',
+ '__go_image__', '__go_line__', '__go_patch__', '__go_surface__',
+ '__go_text__', '__go_uicontextmenu__', '__go_uicontrol__',
+ '__go_uimenu__', '__go_uipanel__', '__go_uipushtool__',
+ '__go_uitoggletool__', '__go_uitoolbar__', '__gud_mode__',
+ '__image_pixel_size__', '__is_handle_visible__', '__isa_parent__',
+ '__keywords__', '__lexer_debug_flag__', '__list_functions__',
+ '__operators__', '__parent_classes__', '__parser_debug_flag__',
+ '__pathorig__', '__profiler_data__', '__profiler_enable__',
+ '__profiler_reset__', '__request_drawnow__', '__sort_rows_idx__',
+ '__token_count__', '__varval__', '__version_info__', '__which__'
+ ),
+ // Private Octave functions
+ 8 => array(
+ '__all_opts__', '__contourc__', '__delaunayn__', '__dispatch__',
+ '__dsearchn__', '__finish__', '__fltk_uigetfile__',
+ '__glpk__', '__gnuplot_drawnow__', '__init_fltk__',
+ '__init_gnuplot__', '__lin_interpn__', '__magick_read__',
+ '__makeinfo__', '__pchip_deriv__', '__plt_get_axis_arg__', '__qp__',
+ '__voronoi__', '__fltk_maxtime__', '__fltk_redraw__', '__ftp__',
+ '__ftp_ascii__', '__ftp_binary__', '__ftp_close__', '__ftp_cwd__',
+ '__ftp_delete__', '__ftp_dir__', '__ftp_mget__', '__ftp_mkdir__',
+ '__ftp_mode__', '__ftp_mput__', '__ftp_pwd__', '__ftp_rename__',
+ '__ftp_rmdir__', '__magick_finfo__', '__magick_format_list__',
+ '__magick_write__'
+ ),
+ // Builtin Global Variables
+ 9 => array(
+ 'EDITOR', 'EXEC_PATH', 'F_DUPFD', 'F_GETFD', 'F_GETFL', 'F_SETFD',
+ 'F_SETFL', 'IMAGE_PATH', 'OCTAVE_HOME',
+ 'OCTAVE_VERSION', 'O_APPEND', 'O_ASYNC', 'O_CREAT', 'O_EXCL',
+ 'O_NONBLOCK', 'O_RDONLY', 'O_RDWR', 'O_SYNC', 'O_TRUNC', 'O_WRONLY',
+ 'PAGER', 'PAGER_FLAGS', 'PS1', 'PS2', 'PS4', 'SEEK_CUR', 'SEEK_END',
+ 'SEEK_SET', 'SIG', 'S_ISBLK', 'S_ISCHR', 'S_ISDIR', 'S_ISFIFO',
+ 'S_ISLNK', 'S_ISREG', 'S_ISSOCK', 'WCONTINUE', 'WCOREDUMP',
+ 'WEXITSTATUS', 'WIFCONTINUED', 'WIFEXITED', 'WIFSIGNALED',
+ 'WIFSTOPPED', 'WNOHANG', 'WSTOPSIG', 'WTERMSIG', 'WUNTRACED'
+ ),
+ // Constant functions
+ 10 => array (
+ 'e', 'eps', 'inf', 'Inf', 'nan', 'NaN', 'NA', 'pi', 'i', 'I', 'j',
+ 'J', 'true', 'false'
+ ),
+ ),
+ 'SYMBOLS' => array(
+ // Comparison & logical
+ 0 => array(
+ '!', '!=', '&', '&&','|', '||', '~', '~=',
+ '<', '<=', '==', '>', '>='
+ ),
+ // Aritmethical
+ 1 => array(
+ '*', '**', '+', '++', '-', '--', '/', "\\","'"
+ ),
+ // Elementwise arithmetical
+ 2 => array(
+ '.*', '.**','./', '.^', '^',".\\",".'"
+ ),
+ // Arithmetical & assignation
+ 3 => array(
+ '*=','+=','-=','/=','\=','**=','^=',
+ '.*=','.+=','.-=','./=','.\=','.**=','.^=','='
+ ),
+ // Indexer
+ 4 => array(
+ ':'
+ ),
+ // Delimiters
+ 5 => array(
+ ',', '...', ';'
+ ),
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => true,
+ 1 => true,
+ 2 => true,
+ 3 => true,
+ 4 => true,
+ 5 => true,
+ 6 => true,
+ 7 => true,
+ 8 => true,
+ 9 => true,
+ 10 => true,
+ ),
+ 'URLS' => array(
+ 1 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
+ 2 => '',
+ 3 => '',
+ 4 => '',
+ 5 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
+ 6 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
+ 7 => '',
+ 8 => '',
+ 9 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
+ 10 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
+ ),
+ 'OOLANG' => true,
+ 'OBJECT_SPLITTERS' => array(
+ 1 => '.',
+ ),
+ 'REGEXPS' => array(),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(),
+ 'STYLES' => array(
+ 'COMMENTS' => array(
+ 1 => 'color: #0000FF; font-style: italic;', // single quote strings
+ 2 => 'color: #0000FF; font-style: italic;', // double quote strings
+ 3 => 'color: #FF00FF; font-style: italic;', // single quote strings
+ 4 => 'color: #FF00FF; font-style: italic;', // double quote strings
+ 5 => 'color: #0000FF; font-style: italic;', // block comments
+ 6 => 'color: #996600; font-weight:bold;', // packaging system
+ 7 => 'color: #006600; font-weight:bold;', // function handles
+ 'MULTI' => 'color: #0000FF; font-style: italic;',
+ ),
+ 'KEYWORDS' => array(
+ 1 => 'color: #2E8B57; font-weight:bold;', // Data types
+ 2 => 'color: #2E8B57;', // Storage type
+ 3 => 'color: #0000FF; font-weight:bold;', // Internal variable
+ 4 => 'color: #990000; font-weight:bold;', // Reserved words
+ 5 => 'color: #008A8C; font-weight:bold;', // Built-in
+ 6 => 'color: #008A8C;', // Octave functions
+ 9 => 'color: #000000; font-weight:bold;', // Builtin Global Variables
+ 10 => 'color: #008A8C; font-weight:bold;', // Constant functions
+ ),
+ 'ESCAPE_CHAR' => array(),
+ 'BRACKETS' => array(
+ 0 => 'color: #080;',
+ ),
+ 'STRINGS' => array(
+ // strings were specified on the COMMENT_REGEXP section
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #cc66cc;',
+ GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
+ GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
+ GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
+ ),
+ 'METHODS' => array(),
+ 'SYMBOLS' => array(
+ 0 => 'color: #FF9696; font-weight:bold;', // Comparison & logical
+ 1 => 'color: #CC0000; font-weight:bold;', // Aritmethical
+ 2 => 'color: #993333; font-weight:bold;', // Elementwise arithmetical
+ 3 => 'color: #FF0000; font-weight:bold;', // Arithmetical & assignation
+ 4 => 'color: #33F;', // Indexer
+ 5 => 'color: #33F;', // Delimiters
+ ),
+ 'REGEXPS' => array(),
+ 'SCRIPT' => array(),
+ )
+);
+
+?>
diff --git a/inc/geshi/oobas.php b/inc/geshi/oobas.php
index f4e15893a..ff75af65f 100644
--- a/inc/geshi/oobas.php
+++ b/inc/geshi/oobas.php
@@ -4,7 +4,7 @@
* ---------
* Author: Roberto Rossi (rsoftware@altervista.org)
* Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/08/30
*
* OpenOffice.org Basic language file for GeSHi.
diff --git a/inc/geshi/oorexx.php b/inc/geshi/oorexx.php
new file mode 100644
index 000000000..62c6cc463
--- /dev/null
+++ b/inc/geshi/oorexx.php
@@ -0,0 +1,171 @@
+<?php
+/*************************************************************************************
+ * oorexx.php
+ * ---------------------------------
+ * Author: Jon Wolfers (sahananda@windhorse.biz)
+ * Contributors:
+ * - Walter Pachl (pachl@chello.at)
+ * Copyright: (c) 2008 Jon Wolfers, (c) 2012 Walter Pachl
+ * Release Version: 1.0.8.11
+ * Date Started: 2008/01/07
+ *
+ * ooRexx language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2012/07/29 (1.0.0)
+ * - tried to get it syntactically right
+ *
+ * TODO (updated 2012/07/29)
+ * -------------------------
+ * - Get it working on rosettacode.org
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'ooRexx',
+ 'COMMENT_SINGLE' => array(1 => '--'),
+ 'COMMENT_MULTI' => array('/*' => '*/'),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array("'", '"'),
+ 'ESCAPE_CHAR' => '',
+ 'KEYWORDS' => array(
+ 1 => array(
+ 'address', 'arg', 'attribute', 'call', 'constant', 'do',
+ 'drop', 'exit', 'if',
+ 'interpret', 'iterate', 'leave', 'loop', 'nop', 'numeric',
+ 'parse', 'procedure', 'pull', 'push', 'queue',
+ 'raise', 'reply', 'return', 'say', 'select', 'signal',
+ 'use'
+ ),
+ 2 => array(
+ 'abstract', 'any', 'arguments', 'array', 'by',
+ 'continue', 'digits', 'engineering', 'error',
+ 'expose', 'external', 'failure', 'for', 'forever',
+ 'forward', 'get', 'guard', 'guarded', 'halt',
+ 'inherit', 'library', 'lostdigits', 'message',
+ 'metaclass', 'mixinclass', 'name', 'nomethod', 'nostring',
+ 'notready', 'novalue', 'off', 'on', 'options', 'over',
+ 'private', 'protected', 'public', 'scientific', 'set',
+ 'source', 'subclass', 'syntax', 'to', 'unguarded',
+ 'unprotected', 'until', 'user',
+ 'version', 'while', 'with'
+ ),
+ 3 => array(
+ 'else', 'end', 'otherwise', 'then', 'when'
+ ),
+ 4 => array(
+ 'rc', 'result', 'self', 'sigl', 'super'
+ ),
+ 5 => array(
+ '::attribute', '::class', '::constant', '::method',
+ '::optins', '::requires', '::routine'
+ ),
+ 6 => array(
+ 'abbrev', 'abs', 'beep', 'bitand', 'bitor',
+ 'bitxor', 'b2x', 'center', 'centre', 'changestr', 'charin',
+ 'charout', 'chars', 'compare', 'condition', 'copies',
+ 'countstr', 'c2d', 'c2x', 'datatype', 'date', 'delstr',
+ 'delword', 'directory', 'd2c', 'd2x', 'endlocal',
+ 'errortext', 'filespec', 'form', 'format', 'fuzz', 'insert',
+ 'lastpos', 'left', 'length', 'linein', 'lineout', 'lines',
+ 'lower', 'max', 'min', 'overlay', 'pos', 'qualify', 'queued',
+ 'random', 'reverse', 'right', 'rxfuncadd', 'rxfuncdrop',
+ 'rxfuncquery', 'rxqueue', 'setlocal', 'sign', 'sourceline',
+ 'space', 'stream', 'strip', 'substr', 'subword', 'symbol',
+ 'time', 'trace', 'translate', 'trunc', 'upper', 'userid',
+ 'value', 'var', 'verify', 'word', 'wordindex', 'wordlength',
+ 'wordpos', 'words', 'xrange', 'x2b', 'x2c', 'x2d'
+ )
+ ),
+ 'SYMBOLS' => array(
+ '(', ')', '<', '>', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':',
+ '<', '>'
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => true,
+ 1 => false,
+ 2 => false,
+ 3 => false,
+ 4 => false,
+ 5 => false,
+ 6 => false
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color: #b1b100;',
+ 2 => 'color: #ff0000; font-weight: bold;',
+ 3 => 'color: #00ff00; font-weight: bold;',
+ 4 => 'color: #0000ff; font-weight: bold;',
+ 5 => 'color: #880088; font-weight: bold;',
+ 6 => 'color: #888800; font-weight: bold;'
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #666666;',
+ 'MULTI' => 'color: #808080;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #000099; font-weight: bold;'
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #66cc66;'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #ff0000;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #cc66cc;'
+ ),
+ 'METHODS' => array(
+ 1 => 'color: #202020;',
+ 2 => 'color: #202020;'
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color: #66cc66;'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'SCRIPT' => array(
+ )
+ ),
+ 'URLS' => array(
+ 1 => '',
+ 2 => '',
+ 3 => '',
+ 4 => '',
+ 5 => '',
+ 6 => ''
+ ),
+ 'OOLANG' => true,
+ 'OBJECT_SPLITTERS' => array(
+ 1 => '.'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ ),
+ 'TAB_WIDTH' => 4
+);
+
+?>
diff --git a/inc/geshi/oracle11.php b/inc/geshi/oracle11.php
index bd3d30501..16259e695 100644
--- a/inc/geshi/oracle11.php
+++ b/inc/geshi/oracle11.php
@@ -6,7 +6,7 @@
* Contributions:
* - Updated for 11i by Simon Redhead
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/06/04
*
* Oracle 11i language file for GeSHi.
diff --git a/inc/geshi/oracle8.php b/inc/geshi/oracle8.php
index bc80735c4..145bda407 100644
--- a/inc/geshi/oracle8.php
+++ b/inc/geshi/oracle8.php
@@ -4,7 +4,7 @@
* -----------
* Author: Guy Wicks (Guy.Wicks@rbs.co.uk)
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/06/04
*
* Oracle 8 language file for GeSHi.
diff --git a/inc/geshi/oxygene.php b/inc/geshi/oxygene.php
index cfab3d34f..bc2ee6563 100644
--- a/inc/geshi/oxygene.php
+++ b/inc/geshi/oxygene.php
@@ -4,7 +4,7 @@
* ----------
* Author: Carlo Kok (ck@remobjects.com), J�rja Norbert (jnorbi@vipmail.hu), Benny Baumann (BenBE@omorphia.de)
* Copyright: (c) 2004 J�rja Norbert, Benny Baumann (BenBE@omorphia.de), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/01/11
*
* Delphi Prism (Oxygene) language file for GeSHi.
@@ -12,6 +12,8 @@
*
* CHANGES
* -------
+ * 2012/06/28 (1.0.8.11)
+ * - Added "write" keyword for properties
* 2010/01/11 (1.0.0)
* - First Release
*
@@ -66,7 +68,7 @@ $language_data = array (
'Implies', 'Select', 'Order', 'By', 'Desc', 'Asc', 'Group', 'Join', 'Take',
'Skip', 'Concat', 'Union', 'Reverse', 'Distinct', 'Into', 'Equals', 'params',
'sequence', 'index', 'notify', 'Parallel', 'create', 'array', 'Queryable', 'Aspect',
- 'volatile'
+ 'volatile', 'write'
),
3 => array(
'chr', 'ord', 'inc', 'dec', 'assert', 'iff', 'assigned','futureAssigned', 'length', 'low', 'high', 'typeOf', 'sizeOf', 'disposeAndNil', 'Coalesce', 'unquote'
diff --git a/inc/geshi/oz.php b/inc/geshi/oz.php
index f371a6457..d24561bf0 100644
--- a/inc/geshi/oz.php
+++ b/inc/geshi/oz.php
@@ -4,7 +4,7 @@
* --------
* Author: Wolfgang Meyer (Wolfgang.Meyer@gmx.net)
* Copyright: (c) 2010 Wolfgang Meyer
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/01/03
*
* Oz language file for GeSHi.
diff --git a/inc/geshi/parasail.php b/inc/geshi/parasail.php
new file mode 100644
index 000000000..864eba1e9
--- /dev/null
+++ b/inc/geshi/parasail.php
@@ -0,0 +1,133 @@
+<?php
+/*************************************************************************************
+ * parasail.php
+ * -------
+ * Author: T. Taft (taft@adacore.com)
+ * Copyright: (c) 2012 AdaCore (http://adacore.com/)
+ * Release Version: 1.0.8.11
+ * Date Started: 2012/08/02
+ *
+ * ParaSail language file for GeSHi.
+ *
+ * Words are from SciTe configuration file
+ *
+ * CHANGES
+ * -------
+ * 2012/08/02 (1.0.0)
+ * - First Release
+ *
+ * TODO (updated 2012/08/02)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'ParaSail',
+ 'COMMENT_SINGLE' => array(1 => '//'),
+ 'COMMENT_MULTI' => array('{' => '}'),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array('"'),
+ 'ESCAPE_CHAR' => '\\',
+ 'KEYWORDS' => array(
+ 1 => array(
+ 'all', 'block', 'case', 'continue', 'each',
+ 'else', 'elsif', 'exit', 'for',
+ 'forward', 'if', 'loop', 'return', 'reverse', 'some',
+ 'then', 'until', 'while', 'with'
+ ),
+ 2 => array(
+ 'abs', 'and','in', 'mod', 'not', 'null', 'or', 'rem', 'xor'
+ ),
+ 3 => array(
+ 'abstract', 'class',
+ 'concurrent', 'const',
+ 'end', 'extends', 'exports',
+ 'func', 'global', 'implements', 'import',
+ 'interface', 'is', 'lambda', 'locked',
+ 'new', 'of', 'op', 'optional',
+ 'private', 'queued', 'ref',
+ 'separate', 'type', 'var',
+ )
+ ),
+ 'SYMBOLS' => array(
+ '(', ')', '[', ']', '<', '>'
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false,
+ 1 => false,
+ 2 => false,
+ 3 => false,
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color: #00007f;',
+ 2 => 'color: #0000ff;',
+ 3 => 'color: #46aa03; font-weight:bold;',
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #66cc66;'
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #adadad; font-style: italic;',
+ 'MULTI' => 'color: #808080; font-style: italic;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #000099; font-weight: bold;'
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #66cc66;'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #7f007f;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #ff0000;'
+ ),
+ 'METHODS' => array(
+ 1 => 'color: #202020;'
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color: #66cc66;'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'SCRIPT' => array(
+ )
+ ),
+ 'URLS' => array(
+ 1 => '',
+ 2 => '',
+ 3 => ''
+ ),
+ 'OOLANG' => true,
+ 'OBJECT_SPLITTERS' => array(
+ 1 => '.'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ )
+);
+
+?> \ No newline at end of file
diff --git a/inc/geshi/parigp.php b/inc/geshi/parigp.php
new file mode 100644
index 000000000..c9c73095b
--- /dev/null
+++ b/inc/geshi/parigp.php
@@ -0,0 +1,277 @@
+<?php
+/*************************************************************************************
+ * parigp.php
+ * --------
+ * Author: Charles R Greathouse IV (charles@crg4.com)
+ * Copyright: 2011 Charles R Greathouse IV (http://math.crg4.com/)
+ * Release Version: 1.0.8.11
+ * Date Started: 2011/05/11
+ *
+ * PARI/GP language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2011/07/09 (1.0.8.11)
+ * - First Release
+ *
+ * TODO (updated 2011/07/09)
+ * -------------------------
+ *
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array(
+ 'LANG_NAME' => 'PARI/GP',
+ 'COMMENT_SINGLE' => array(1 => '\\\\'),
+ 'COMMENT_MULTI' => array('/*' => '*/'),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array('"'),
+ 'ESCAPE_CHAR' => '\\',
+ 'NUMBERS' => array(
+ # Integers
+ 1 => GESHI_NUMBER_INT_BASIC,
+ # Reals
+ 2 => GESHI_NUMBER_FLT_SCI_ZERO
+ ),
+ 'KEYWORDS' => array(
+ 1 => array(
+ 'addprimes','bestappr','bezout','bezoutres','bigomega','binomial',
+ 'chinese','content','contfrac','contfracpnqn','core','coredisc',
+ 'dirdiv','direuler','dirmul','divisors','eulerphi','factor',
+ 'factorback','factorcantor','factorff','factorial','factorint',
+ 'factormod','ffgen','ffinit','fflog','fforder','ffprimroot',
+ 'fibonacci','gcd','hilbert','isfundamental','ispower','isprime',
+ 'ispseudoprime','issquare','issquarefree','kronecker','lcm',
+ 'moebius','nextprime','numbpart','numdiv','omega','partitions',
+ 'polrootsff','precprime','prime','primepi','primes','qfbclassno',
+ 'qfbcompraw','qfbhclassno','qfbnucomp','qfbnupow','qfbpowraw',
+ 'qfbprimeform','qfbred','qfbsolve','quadclassunit','quaddisc',
+ 'quadgen','quadhilbert','quadpoly','quadray','quadregulator',
+ 'quadunit','removeprimes','sigma','sqrtint','stirling',
+ 'sumdedekind','zncoppersmith','znlog','znorder','znprimroot',
+ 'znstar','Col','List','Mat','Mod','Pol','Polrev','Qfb','Ser','Set',
+ 'Str','Strchr','Strexpand','Strtex','Vec','Vecrev','Vecsmall',
+ 'binary','bitand','bitneg','bitnegimply','bitor','bittest','bitxor',
+ 'ceil','centerlift','component','conj','conjvec','denominator',
+ 'floor','frac','imag','length','lift','norm','norml2','numerator',
+ 'numtoperm','padicprec','permtonum','precision','random','real',
+ 'round','simplify','sizebyte','sizedigit','truncate','valuation',
+ 'variable','ellL1','elladd','ellak','ellan','ellanalyticrank',
+ 'ellap','ellbil','ellchangecurve','ellchangepoint','ellconvertname',
+ 'elldivpol','elleisnum','elleta','ellgenerators','ellglobalred',
+ 'ellgroup','ellheight','ellheightmatrix','ellidentify','ellinit',
+ 'ellisoncurve','ellj','elllocalred','elllog','elllseries',
+ 'ellminimalmodel','ellmodulareqn','ellorder','ellordinate',
+ 'ellpointtoz','ellpow','ellrootno','ellsearch','ellsigma','ellsub',
+ 'elltaniyama','elltatepairing','elltors','ellweilpairing','ellwp',
+ 'ellzeta','ellztopoint','bnfcertify','bnfcompress',
+ 'bnfdecodemodule','bnfinit','bnfisintnorm','bnfisnorm',
+ 'bnfisprincipal','bnfissunit','bnfisunit','bnfnarrow','bnfsignunit',
+ 'bnfsunit','bnrL1','bnrclassno','bnrclassnolist','bnrconductor',
+ 'bnrconductorofchar','bnrdisc','bnrdisclist','bnrinit',
+ 'bnrisconductor','bnrisprincipal','bnrrootnumber','bnrstark',
+ 'dirzetak','factornf','galoisexport','galoisfixedfield',
+ 'galoisgetpol','galoisidentify','galoisinit','galoisisabelian',
+ 'galoisisnormal','galoispermtopol','galoissubcyclo',
+ 'galoissubfields','galoissubgroups','idealadd','idealaddtoone',
+ 'idealappr','idealchinese','idealcoprime','idealdiv','idealfactor',
+ 'idealfactorback','idealfrobenius','idealhnf','idealintersect',
+ 'idealinv','ideallist','ideallistarch','ideallog','idealmin',
+ 'idealmul','idealnorm','idealpow','idealprimedec','idealramgroups',
+ 'idealred','idealstar','idealtwoelt','idealval','matalgtobasis',
+ 'matbasistoalg','modreverse','newtonpoly','nfalgtobasis','nfbasis',
+ 'nfbasistoalg','nfdetint','nfdisc','nfeltadd','nfeltdiv',
+ 'nfeltdiveuc','nfeltdivmodpr','nfeltdivrem','nfeltmod','nfeltmul',
+ 'nfeltmulmodpr','nfeltnorm','nfeltpow','nfeltpowmodpr',
+ 'nfeltreduce','nfeltreducemodpr','nfelttrace','nfeltval','nffactor',
+ 'nffactorback','nffactormod','nfgaloisapply','nfgaloisconj',
+ 'nfhilbert','nfhnf','nfhnfmod','nfinit','nfisideal','nfisincl',
+ 'nfisisom','nfkermodpr','nfmodprinit','nfnewprec','nfroots',
+ 'nfrootsof1','nfsnf','nfsolvemodpr','nfsubfields','polcompositum',
+ 'polgalois','polred','polredabs','polredord','poltschirnhaus',
+ 'rnfalgtobasis','rnfbasis','rnfbasistoalg','rnfcharpoly',
+ 'rnfconductor','rnfdedekind','rnfdet','rnfdisc','rnfeltabstorel',
+ 'rnfeltdown','rnfeltreltoabs','rnfeltup','rnfequation',
+ 'rnfhnfbasis','rnfidealabstorel','rnfidealdown','rnfidealhnf',
+ 'rnfidealmul','rnfidealnormabs','rnfidealnormrel',
+ 'rnfidealreltoabs','rnfidealtwoelt','rnfidealup','rnfinit',
+ 'rnfisabelian','rnfisfree','rnfisnorm','rnfisnorminit','rnfkummer',
+ 'rnflllgram','rnfnormgroup','rnfpolred','rnfpolredabs',
+ 'rnfpseudobasis','rnfsteinitz','subgrouplist','zetak','zetakinit',
+ 'plot','plotbox','plotclip','plotcolor','plotcopy','plotcursor',
+ 'plotdraw','ploth','plothraw','plothsizes','plotinit','plotkill',
+ 'plotlines','plotlinetype','plotmove','plotpoints','plotpointsize',
+ 'plotpointtype','plotrbox','plotrecth','plotrecthraw','plotrline',
+ 'plotrmove','plotrpoint','plotscale','plotstring','psdraw',
+ 'psploth','psplothraw','O','deriv','diffop','eval','factorpadic',
+ 'intformal','padicappr','padicfields','polchebyshev','polcoeff',
+ 'polcyclo','poldegree','poldisc','poldiscreduced','polhensellift',
+ 'polhermite','polinterpolate','polisirreducible','pollead',
+ 'pollegendre','polrecip','polresultant','polroots','polrootsmod',
+ 'polrootspadic','polsturm','polsubcyclo','polsylvestermatrix',
+ 'polsym','poltchebi','polzagier','serconvol','serlaplace',
+ 'serreverse','subst','substpol','substvec','taylor','thue',
+ 'thueinit','break','for','fordiv','forell','forprime','forstep',
+ 'forsubgroup','forvec','if','next','return','until','while',
+ 'Strprintf','addhelp','alarm','alias','allocatemem','apply',
+ 'default','error','extern','externstr','getheap','getrand',
+ 'getstack','gettime','global','input','install','kill','print1',
+ 'print','printf','printtex','quit','read','readvec','select',
+ 'setrand','system','trap','type','version','warning','whatnow',
+ 'write1','write','writebin','writetex','divrem','lex','max','min',
+ 'shift','shiftmul','sign','vecmax','vecmin','derivnum','intcirc',
+ 'intfouriercos','intfourierexp','intfouriersin','intfuncinit',
+ 'intlaplaceinv','intmellininv','intmellininvshort','intnum',
+ 'intnuminit','intnuminitgen','intnumromb','intnumstep','prod',
+ 'prodeuler','prodinf','solve','sum','sumalt','sumdiv','suminf',
+ 'sumnum','sumnumalt','sumnuminit','sumpos','Euler','I','Pi','abs',
+ 'acos','acosh','agm','arg','asin','asinh','atan','atanh','bernfrac',
+ 'bernreal','bernvec','besselh1','besselh2','besseli','besselj',
+ 'besseljh','besselk','besseln','cos','cosh','cotan','dilog','eint1',
+ 'erfc','eta','exp','gamma','gammah','hyperu','incgam','incgamc',
+ 'lngamma','log','polylog','psi','sin','sinh','sqr','sqrt','sqrtn',
+ 'tan','tanh','teichmuller','theta','thetanullk','weber','zeta',
+ 'algdep','charpoly','concat','lindep','listcreate','listinsert',
+ 'listkill','listpop','listput','listsort','matadjoint',
+ 'matcompanion','matdet','matdetint','matdiagonal','mateigen',
+ 'matfrobenius','mathess','mathilbert','mathnf','mathnfmod',
+ 'mathnfmodid','matid','matimage','matimagecompl','matindexrank',
+ 'matintersect','matinverseimage','matisdiagonal','matker',
+ 'matkerint','matmuldiagonal','matmultodiagonal','matpascal',
+ 'matrank','matrix','matrixqz','matsize','matsnf','matsolve',
+ 'matsolvemod','matsupplement','mattranspose','minpoly','qfgaussred',
+ 'qfjacobi','qflll','qflllgram','qfminim','qfperfection','qfrep',
+ 'qfsign','setintersect','setisset','setminus','setsearch','cmp',
+ 'setunion','trace','vecextract','vecsort','vector','vectorsmall',
+ 'vectorv','ellheegner'
+ ),
+
+ 2 => array(
+ 'void','bool','negbool','small','int',/*'real',*/'mp','var','lg','pol',
+ 'vecsmall','vec','list','str','genstr','gen','typ'
+ ),
+
+ 3 => array(
+ 'TeXstyle','breakloop','colors','compatible','datadir','debug',
+ 'debugfiles','debugmem','echo','factor_add_primes','factor_proven',
+ 'format','graphcolormap','graphcolors','help','histfile','histsize',
+ 'lines','linewrap',/*'log',*/'logfile','new_galois_format','output',
+ 'parisize','path','prettyprinter','primelimit','prompt_cont',
+ 'prompt','psfile','readline','realprecision','recover','secure',
+ 'seriesprecision',/*'simplify',*/'strictmatch','timer'
+ ),
+
+ 4 => array(
+ 'alarmer','archer','errpile','gdiver','impl','syntaxer','invmoder',
+ 'overflower','talker','typeer','user'
+ )
+ ),
+ 'SYMBOLS' => array(
+ 1 => array(
+ '(',')','{','}','[',']','+','-','*','/','%','=','<','>','!','^','&','|','?',';',':',',','\\','\''
+ )
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false,
+ 1 => true,
+ 2 => true,
+ 3 => true,
+ 4 => true
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color: #0000ff;',
+ 2 => 'color: #e07022;',
+ 3 => 'color: #00d2d2;',
+ 4 => 'color: #00d2d2;'
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #008000;',
+ 'MULTI' => 'color: #008000;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #111111; font-weight: bold;'
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #002222;'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #800080;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #666666;',
+ 1 => 'color: #666666;',
+ 2 => 'color: #666666;'
+ ),
+ 'METHODS' => array(
+ 0 => 'color: #004000;'
+ ),
+ 'SYMBOLS' => array(
+ 1 => 'color: #339933;'
+ ),
+ 'REGEXPS' => array(
+ 0 => 'color: #e07022', # Should be the same as keyword group 2
+ 1 => 'color: #555555'
+ ),
+ 'SCRIPT' => array()
+ ),
+ 'URLS' => array(
+ 1 => '',
+ 2 => '',
+ 3 => '',
+ 4 => ''
+ ),
+ 'OOLANG' => true,
+ 'OBJECT_SPLITTERS' => array(
+ 1 => '.'
+ ),
+ 'REGEXPS' => array(
+ 0 => array( # types marked on variables
+ GESHI_SEARCH => '(?<!\\\\ )"(t_(?:INT|REAL|INTMOD|FRAC|FFELT|COMPLEX|PADIC|QUAD|POLMOD|POL|SER|RFRAC|QFR|QFI|VEC|COL|MAT|LIST|STR|VECSMALL|CLOSURE))"',
+ GESHI_REPLACE => '\\1',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '"',
+ GESHI_AFTER => '"'
+ ),
+ 1 => array( # literal variables
+ GESHI_SEARCH => '(?<!\\\\)(\'[a-zA-Z][a-zA-Z0-9_]*)',
+ GESHI_REPLACE => '\\1',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '',
+ GESHI_AFTER => ''
+ )
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(
+ 2 => array(
+ '[a-zA-Z][a-zA-Z0-9_]*:' => ''
+ ),
+ 3 => array(
+ 'default(' => ''
+ ),
+ 4 => array(
+ 'trap(' => ''
+ ),
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array()
+);
+
+?>
diff --git a/inc/geshi/pascal.php b/inc/geshi/pascal.php
index 2252a11de..de5ca8717 100644
--- a/inc/geshi/pascal.php
+++ b/inc/geshi/pascal.php
@@ -4,7 +4,7 @@
* ----------
* Author: Tux (tux@inamil.cz)
* Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/07/26
*
* Pascal language file for GeSHi.
@@ -50,12 +50,13 @@
$language_data = array (
'LANG_NAME' => 'Pascal',
'COMMENT_SINGLE' => array(1 => '//'),
- 'COMMENT_MULTI' => array('{' => '}','(*' => '*)'),
+ 'COMMENT_MULTI' => array('(*' => '*)', '{' => '}'),
+ //Compiler directives
+ 'COMMENT_REGEXP' => array(2 => '/\\{\\$.*?}|\\(\\*\\$.*?\\*\\)/U'),
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
- 'QUOTEMARKS' => array('"'),
- 'HARDQUOTE' => array("'", "'"),
- 'HARDESCAPE' => array("''"),
- 'ESCAPE_CHAR' => '\\',
+ 'QUOTEMARKS' => array("'"),
+ 'ESCAPE_CHAR' => '',
+
'KEYWORDS' => array(
1 => array(
'absolute','asm','assembler','begin','break','case','catch','cdecl',
@@ -67,7 +68,7 @@ $language_data = array (
'or','overload','override','private','procedure','program',
'property','protected','public','published','raise','repeat',
'resourcestring','shl','shr','stdcall','stored','switch','then',
- 'to','try','type','unit','until','uses','var','while','xor'
+ 'to','try','type','unit','until','uses','var','while','with','xor'
),
2 => array(
'nil', 'false', 'true',
@@ -83,9 +84,6 @@ $language_data = array (
'record','set','shortint','smallint','string','union','word'
),
),
- 'SYMBOLS' => array(
- ',', ':', '=', '+', '-', '*', '/'
- ),
'CASE_SENSITIVE' => array(
GESHI_COMMENTS => false,
1 => false,
@@ -93,6 +91,12 @@ $language_data = array (
3 => false,
4 => false,
),
+ 'SYMBOLS' => array(
+ 0 => array('(', ')', '[', ']'),
+ 1 => array('.', ',', ':', ';'),
+ 2 => array('@', '^'),
+ 3 => array('=', '+', '-', '*', '/')
+ ),
'STYLES' => array(
'KEYWORDS' => array(
1 => 'color: #000000; font-weight: bold;',
@@ -101,30 +105,35 @@ $language_data = array (
4 => 'color: #000066; font-weight: bold;'
),
'COMMENTS' => array(
- 1 => 'color: #666666; font-style: italic;',
- 'MULTI' => 'color: #666666; font-style: italic;'
+ 1 => 'color: #808080; font-style: italic;',
+ 2 => 'color: #008000; font-style: italic;',
+ 'MULTI' => 'color: #808080; font-style: italic;'
),
'ESCAPE_CHAR' => array(
- 0 => 'color: #000099; font-weight: bold;',
- 'HARD' => 'color: #000099; font-weight: bold;'
+ 0 => 'color: #ff0000; font-weight: bold;'
),
'BRACKETS' => array(
0 => 'color: #009900;'
),
'STRINGS' => array(
0 => 'color: #ff0000;',
- 'HARD' => 'color: #ff0000;'
+ //'HARD' => 'color: #ff0000;'
),
'NUMBERS' => array(
0 => 'color: #cc66cc;'
),
'METHODS' => array(
- 1 => 'color: #0066ee;'
- ),
- 'SYMBOLS' => array(
- 0 => 'color: #339933;'
+ 1 => 'color: #006600;'
),
'REGEXPS' => array(
+ 0 => 'color: #0000cc;',
+ 1 => 'color: #ff0000;'
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color: #000066;',
+ 1 => 'color: #000066;',
+ 2 => 'color: #000066;',
+ 3 => 'color: #000066;'
),
'SCRIPT' => array(
)
@@ -140,6 +149,10 @@ $language_data = array (
1 => '.'
),
'REGEXPS' => array(
+ //Hex numbers
+ 0 => '\$[0-9a-fA-F]+',
+ //Characters
+ 1 => '\#(?:\$[0-9a-fA-F]{1,2}|\d{1,3})'
),
'STRICT_MODE_APPLIES' => GESHI_NEVER,
'SCRIPT_DELIMITERS' => array(
@@ -149,4 +162,4 @@ $language_data = array (
'TAB_WIDTH' => 4
);
-?>
+?> \ No newline at end of file
diff --git a/inc/geshi/pcre.php b/inc/geshi/pcre.php
index 1944bfdb3..13a2e024d 100644
--- a/inc/geshi/pcre.php
+++ b/inc/geshi/pcre.php
@@ -4,7 +4,7 @@
* --------
* Author: Benny Baumann (BenBE@geshi.org)
* Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/05/22
*
* PCRE language file for GeSHi.
diff --git a/inc/geshi/per.php b/inc/geshi/per.php
index 9819c03f5..c42ddb58a 100644
--- a/inc/geshi/per.php
+++ b/inc/geshi/per.php
@@ -4,7 +4,7 @@
* --------
* Author: Lars Gersmann (lars.gersmann@gmail.com)
* Copyright: (c) 2007 Lars Gersmann
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/06/03
*
* Per (forms) (FOURJ's Genero 4GL) language file for GeSHi.
diff --git a/inc/geshi/perl.php b/inc/geshi/perl.php
index 487fd0515..309ebd861 100644
--- a/inc/geshi/perl.php
+++ b/inc/geshi/perl.php
@@ -4,7 +4,7 @@
* --------
* Author: Andreas Gohr (andi@splitbrain.org), Ben Keen (ben.keen@gmail.com)
* Copyright: (c) 2004 Andreas Gohr, Ben Keen (http://www.benjaminkeen.org/), Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/08/20
*
* Perl language file for GeSHi.
diff --git a/inc/geshi/perl6.php b/inc/geshi/perl6.php
index 701e0b59c..706eabcb5 100644
--- a/inc/geshi/perl6.php
+++ b/inc/geshi/perl6.php
@@ -4,7 +4,7 @@
* ---------
* Author: Kodi Arfer (kodiarfer {at} warpmail {period} net); forked from perl.php 1.0.8 by Andreas Gohr (andi@splitbrain.org), Ben Keen (ben.keen@gmail.com)
* Copyright: (c) 2009 Kodi Arfer, (c) 2004 Andreas Gohr, Ben Keen (http://www.benjaminkeen.org/), Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/11/07
*
* Perl 6 language file for GeSHi.
diff --git a/inc/geshi/pf.php b/inc/geshi/pf.php
index a89e97ff0..818e11bcb 100644
--- a/inc/geshi/pf.php
+++ b/inc/geshi/pf.php
@@ -4,7 +4,7 @@
* --------
* Author: David Berard (david@nfrance.com)
* Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/10/16
* Based on bash.php
*
diff --git a/inc/geshi/php-brief.php b/inc/geshi/php-brief.php
index d47737883..a4804b4da 100644
--- a/inc/geshi/php-brief.php
+++ b/inc/geshi/php-brief.php
@@ -4,7 +4,7 @@
* -------------
* Author: Nigel McNie (nigel@geshi.org)
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/06/02
*
* PHP (brief version) language file for GeSHi.
@@ -169,7 +169,7 @@ $language_data = array (
),
'REGEXPS' => array(
//Variables
- 0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*"
+ 0 => "[\\$]+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"
),
'STRICT_MODE_APPLIES' => GESHI_MAYBE,
'SCRIPT_DELIMITERS' => array(
diff --git a/inc/geshi/php.php b/inc/geshi/php.php
index b36544213..2827457b1 100644
--- a/inc/geshi/php.php
+++ b/inc/geshi/php.php
@@ -4,7 +4,7 @@
* --------
* Author: Nigel McNie (nigel@geshi.org)
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/06/20
*
* PHP language file for GeSHi.
@@ -96,8 +96,9 @@ $language_data = array(
),
2 => array(
'&amp;new','&lt;/script&gt;','&lt;?php','&lt;script language',
- 'class','const','declare','extends','function','global','interface',
- 'namespace','new','private','protected','public','self','use','var'
+ 'abstract','class','const','declare','extends','function','global',
+ 'interface','namespace','new','private','protected','public','self',
+ 'use','var'
),
3 => array(
'abs','acos','acosh','addcslashes','addslashes','aggregate',
@@ -1061,7 +1062,7 @@ $language_data = array(
),
'REGEXPS' => array(
//Variables
- 0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*"
+ 0 => "[\\$]+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"
),
'STRICT_MODE_APPLIES' => GESHI_MAYBE,
'SCRIPT_DELIMITERS' => array(
@@ -1083,22 +1084,24 @@ $language_data = array(
"(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|".
"(?>\"(?>[^\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
"(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
- "\\/\\/(?>.*?$)|".
+ "\\/\\/(?>.*?(?:\\?>|$))|".
+ "#(?>.*?(?:\\?>|$))|".
"\\/(?=[^*\\/])|".
"<(?!<<)|".
"<<<(?P<phpdoc>\w+)\s.*?\s\k<phpdoc>".
- ")*(?P<end>\\?>|\Z)/sm",
+ ")*?(?P<end>\\?>|\Z)/sm",
5 => "/(?P<start><%)(?:".
"(?>[^\"'%\\/<]+)|".
"%(?!>)|".
"(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|".
"(?>\"(?>[^\\\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
"(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
- "\\/\\/(?>.*?$)|".
+ "\\/\\/(?>.*?(?:%>|$))|".
+ "#(?>.*?(?:%>|$))|".
"\\/(?=[^*\\/])|".
"<(?!<<)|".
"<<<(?P<phpdoc>\w+)\s.*?\s\k<phpdoc>".
- ")*(?P<end>%>)/sm",
+ ")*?(?P<end>%>|\Z)/sm",
),
'HIGHLIGHT_STRICT_BLOCK' => array(
0 => true,
@@ -1111,4 +1114,4 @@ $language_data = array(
'TAB_WIDTH' => 4
);
-?> \ No newline at end of file
+?>
diff --git a/inc/geshi/pic16.php b/inc/geshi/pic16.php
index 94e098293..46d7ac94d 100644
--- a/inc/geshi/pic16.php
+++ b/inc/geshi/pic16.php
@@ -4,7 +4,7 @@
* -------
* Author: Phil Mattison (mattison@ohmikron.com)
* Copyright: (c) 2008 Ohmikron Corp. (http://www.ohmikron.com/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/07/30
*
* PIC16 Assembler language file for GeSHi.
diff --git a/inc/geshi/pike.php b/inc/geshi/pike.php
index a3de9082e..743f711b1 100644
--- a/inc/geshi/pike.php
+++ b/inc/geshi/pike.php
@@ -4,7 +4,7 @@
* --------
* Author: Rick E. (codeblock@eighthbit.net)
* Copyright: (c) 2009 Rick E.
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/12/10
*
* Pike language file for GeSHi.
diff --git a/inc/geshi/pixelbender.php b/inc/geshi/pixelbender.php
index b9fe1aff2..7b29ee6c3 100644
--- a/inc/geshi/pixelbender.php
+++ b/inc/geshi/pixelbender.php
@@ -4,7 +4,7 @@
* ----------------
* Author: Richard Olsson (r@richardolsson.se)
* Copyright: (c) 2008 Richard Olsson (richardolsson.se)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/11/16
*
* Pixel Bender 1.0 language file for GeSHi.
diff --git a/inc/geshi/pli.php b/inc/geshi/pli.php
index 1d6eefd9b..c29985140 100644
--- a/inc/geshi/pli.php
+++ b/inc/geshi/pli.php
@@ -4,7 +4,7 @@
* --------
* Author: Robert AH Prins (robert@prino.org)
* Copyright: (c) 2011 Robert AH Prins (http://hitchwiki.org/en/User:Prino)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2011/02/09
*
* PL/I language file for GeSHi.
diff --git a/inc/geshi/plsql.php b/inc/geshi/plsql.php
index 8428ff4b6..09f90a225 100644
--- a/inc/geshi/plsql.php
+++ b/inc/geshi/plsql.php
@@ -4,7 +4,7 @@
* -------
* Author: Victor Engmark <victor.engmark@gmail.com>
* Copyright: (c) 2006 Victor Engmark (http://l0b0.net/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2006/10/26
*
* Oracle 9.2 PL/SQL language file for GeSHi.
diff --git a/inc/geshi/postgresql.php b/inc/geshi/postgresql.php
index 0245b33ad..662fdd760 100644
--- a/inc/geshi/postgresql.php
+++ b/inc/geshi/postgresql.php
@@ -5,7 +5,7 @@
* Author: Christophe Chauvet (christophe_at_kryskool_dot_org)
* Contributors: Leif Biberg Kristensen <leif_at_solumslekt_dot_org> 2010-05-03
* Copyright: (c) 2007 Christophe Chauvet (http://kryskool.org/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/07/20
*
* PostgreSQL language file for GeSHi.
diff --git a/inc/geshi/povray.php b/inc/geshi/povray.php
index eeda49f49..c0ce35ca1 100644
--- a/inc/geshi/povray.php
+++ b/inc/geshi/povray.php
@@ -4,7 +4,7 @@
* --------
* Author: Carl Fürstenberg (azatoth@gmail.com)
* Copyright: © 2007 Carl Fürstenberg
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/07/11
*
* Povray language file for GeSHi.
diff --git a/inc/geshi/powerbuilder.php b/inc/geshi/powerbuilder.php
index f978f3f5b..d3fcf615f 100644
--- a/inc/geshi/powerbuilder.php
+++ b/inc/geshi/powerbuilder.php
@@ -4,7 +4,7 @@
* ------
* Author: Doug Porter (powerbuilder.geshi@gmail.com)
* Copyright: (c) 2009 Doug Porter
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/07/13
*
* PowerBuilder (PowerScript) language file for GeSHi.
diff --git a/inc/geshi/powershell.php b/inc/geshi/powershell.php
index 1d9003030..bd78d7392 100644
--- a/inc/geshi/powershell.php
+++ b/inc/geshi/powershell.php
@@ -4,7 +4,7 @@
* ---------------------------------
* Author: Frode Aarebrot (frode@aarebrot.net)
* Copyright: (c) 2008 Frode Aarebrot (http://www.aarebrot.net)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/06/20
*
* PowerShell language file for GeSHi.
diff --git a/inc/geshi/proftpd.php b/inc/geshi/proftpd.php
index dd57d9b0a..330db4b27 100644
--- a/inc/geshi/proftpd.php
+++ b/inc/geshi/proftpd.php
@@ -4,7 +4,7 @@
* ----------
* Author: Benny Baumann (BenBE@geshi.org)
* Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2011/01/25
*
* ProFTPd language file for GeSHi.
diff --git a/inc/geshi/progress.php b/inc/geshi/progress.php
index affb62000..79900261b 100644
--- a/inc/geshi/progress.php
+++ b/inc/geshi/progress.php
@@ -4,7 +4,7 @@
* --------
* Author: Marco Aurelio de Pasqual (marcop@hdi.com.br)
* Copyright: (c) 2008 Marco Aurelio de Pasqual, Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/07/11
*
* Progress language file for GeSHi.
diff --git a/inc/geshi/prolog.php b/inc/geshi/prolog.php
index 74d03374c..a106a4e4e 100644
--- a/inc/geshi/prolog.php
+++ b/inc/geshi/prolog.php
@@ -4,7 +4,7 @@
* --------
* Author: Benny Baumann (BenBE@geshi.org)
* Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/10/02
*
* Prolog language file for GeSHi.
diff --git a/inc/geshi/properties.php b/inc/geshi/properties.php
index 08ba9a419..e1317b227 100644
--- a/inc/geshi/properties.php
+++ b/inc/geshi/properties.php
@@ -4,7 +4,7 @@
* --------
* Author: Edy Hinzen
* Copyright: (c) 2009 Edy Hinzen
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/04/03
*
* Property language file for GeSHi.
diff --git a/inc/geshi/providex.php b/inc/geshi/providex.php
index b7232873a..1e735bd0f 100644
--- a/inc/geshi/providex.php
+++ b/inc/geshi/providex.php
@@ -4,7 +4,7 @@
* ----------
* Author: Jeff Wilder (jeff@coastallogix.com)
* Copyright: (c) 2008 Coastal Logix (http://www.coastallogix.com)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/10/18
*
* ProvideX language file for GeSHi.
diff --git a/inc/geshi/purebasic.php b/inc/geshi/purebasic.php
index 213868d74..d78ffe97b 100644
--- a/inc/geshi/purebasic.php
+++ b/inc/geshi/purebasic.php
@@ -4,7 +4,7 @@
* -------
* Author: GuShH
* Copyright: (c) 2009 Gustavo Julio Fiorenza
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 13/06/2009
*
* PureBasic language file for GeSHi.
diff --git a/inc/geshi/pycon.php b/inc/geshi/pycon.php
index 141d521f9..ac2b34d07 100644
--- a/inc/geshi/pycon.php
+++ b/inc/geshi/pycon.php
@@ -4,7 +4,7 @@
* ----------
* Author: Roberto Rossi (rsoftware@altervista.org)
* Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/08/30
*
* Python language file for GeSHi.
diff --git a/inc/geshi/pys60.php b/inc/geshi/pys60.php
new file mode 100644
index 000000000..59c67fac7
--- /dev/null
+++ b/inc/geshi/pys60.php
@@ -0,0 +1,273 @@
+<?php
+/**************************************************************************************
+ * pys60.php
+ * ----------
+ * Author: Sohan Basak (ronnie.basak96 @gmail.com)
+ * Copyright: (c) 2012 Sohan Basak (http://tothepower.tk), Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
+ * Release Version: 1.0.8.11
+ * Date Started: 2012/05/03
+ *
+ * Python for S60 language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * No Changes Till Date
+ *
+ * The python.php file is extended to pys60.php with required modifications
+ *
+ * NOTES
+ *
+ * -I have kept the ":" in Reserved chars, so that it gets highlighted differently than brackets and/or symbols
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'Python for S60',
+ 'COMMENT_SINGLE' => array(1 => '#'),
+ 'COMMENT_MULTI' => array(),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array('"', "'", '"""',"'''",'""','""'),
+ 'ESCAPE_CHAR' => '\\',
+ 'KEYWORDS' => array(
+
+ /*
+ ** Set 1: reserved words
+ ** http://python.org/doc/current/ref/keywords.html
+ */
+ 1 => array(
+ 'and', 'del', 'for', 'is', 'raise', 'assert', 'elif', 'from', 'lambda', 'return', 'break',
+ 'else', 'global', 'not', 'try', 'class', 'except', 'if', 'or', 'while', 'continue', 'exec',
+ 'import', 'pass', 'yield', 'def', 'finally', 'in', 'print', "<<", ">>", "as"
+ ),
+
+ /*
+ ** Set 2: builtins
+ ** http://python.org/doc/current/lib/built-in-funcs.html
+ */
+ 2 => array(
+ '__import__', 'abs', 'basestring', 'bool', 'callable', 'chr', 'classmethod', 'cmp',
+ 'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile',
+ 'file', 'filter', 'float', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help',
+ 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'list', 'locals',
+ 'long', 'map', 'max', 'min', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'range',
+ 'raw_input', 'reduce', 'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',
+ 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode',
+ 'vars', 'xrange', 'zip',
+ // Built-in constants: http://python.org/doc/current/lib/node35.html
+ 'False', 'True', 'None', 'NotImplemented', 'Ellipsis',
+ // Built-in Exceptions: http://python.org/doc/current/lib/module-exceptions.html
+ 'Exception', 'StandardError', 'ArithmeticError', 'LookupError', 'EnvironmentError',
+ 'AssertionError', 'AttributeError', 'EOFError', 'FloatingPointError', 'IOError',
+ 'ImportError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'MemoryError', 'NameError',
+ 'NotImplementedError', 'OSError', 'OverflowError', 'ReferenceError', 'RuntimeError',
+ 'StopIteration', 'SyntaxError', 'SystemError', 'SystemExit', 'TypeError',
+ 'UnboundlocalError', 'UnicodeError', 'UnicodeEncodeError', 'UnicodeDecodeError',
+ 'UnicodeTranslateError', 'ValueError', 'WindowsError', 'ZeroDivisionError', 'Warning',
+ 'UserWarning', 'DeprecationWarning', 'PendingDeprecationWarning', 'SyntaxWarning',
+ 'RuntimeWarning', 'FutureWarning',
+ //Symbian Errors
+ "SymbianError", "KernelError",
+ // self: this is a common python convention (but not a reserved word)
+ 'self'
+ ),
+
+ /*
+ ** Set 3: standard library
+ ** http://python.org/doc/current/lib/modindex.html
+ */
+ 3 => array(
+ '__builtin__', '__future__', '__main__', '_winreg', 'aifc', 'AL', 'al', 'anydbm',
+ 'array', 'asynchat', 'asyncore', 'atexit', 'audioop', 'base64', 'BaseHTTPServer',
+ 'Bastion', 'binascii', 'binhex', 'bisect', 'bsddb', 'bz2', 'calendar', 'cd', 'cgi',
+ 'CGIHTTPServer', 'cgitb', 'chunk', 'cmath', 'cmd', 'code', 'codecs', 'codeop',
+ 'collections', 'colorsys', 'commands', 'compileall', 'compiler',
+ 'ConfigParser', 'Cookie', 'cookielib', 'copy', 'copy_reg', 'cPickle', 'crypt',
+ 'cStringIO', 'csv', 'curses', 'datetime', 'dbhash', 'dbm', 'decimal', 'DEVICE',
+ 'difflib', 'dircache', 'dis', 'distutils', 'dl', 'doctest', 'DocXMLRPCServer', 'dumbdbm',
+ 'dummy_thread', 'dummy_threading', 'email', 'encodings', 'errno', 'exceptions', 'fcntl',
+ 'filecmp', 'fileinput', 'FL', 'fl', 'flp', 'fm', 'fnmatch', 'formatter', 'fpectl',
+ 'fpformat', 'ftplib', 'gc', 'gdbm', 'getopt', 'getpass', 'gettext', 'GL', 'gl', 'glob',
+ 'gopherlib', 'grp', 'gzip', 'heapq', 'hmac', 'hotshot', 'htmlentitydefs', 'htmllib',
+ 'HTMLParser', 'httplib', 'imageop', 'imaplib', 'imgfile', 'imghdr', 'imp', 'inspect',
+ 'itertools', 'jpeg', 'keyword', 'linecache', 'locale', 'logging', 'mailbox', 'mailcap',
+ 'marshal', 'math', 'md5', 'mhlib', 'mimetools', 'mimetypes', 'MimeWriter', 'mimify',
+ 'mmap', 'msvcrt', 'multifile', 'mutex', 'netrc', 'new', 'nis', 'nntplib', 'operator',
+ 'optparse', 'os', 'ossaudiodev', 'parser', 'pdb', 'pickle', 'pickletools', 'pipes',
+ 'pkgutil', 'platform', 'popen2', 'poplib', 'posix', 'posixfile', 'pprint', 'profile',
+ 'pstats', 'pty', 'pwd', 'py_compile', 'pyclbr', 'pydoc', 'Queue', 'quopri', 'random',
+ 're', 'readline', 'resource', 'rexec', 'rgbimg', 'rlcompleter',
+ 'robotparser', 'sched', 'ScrolledText', 'select', 'sets', 'sgmllib', 'sha', 'shelve',
+ 'shlex', 'shutil', 'signal', 'SimpleHTTPServer', 'SimpleXMLRPCServer', 'site', 'smtpd',
+ 'smtplib', 'sndhdr', 'socket', 'SocketServer', 'stat', 'statcache', 'statvfs', 'string',
+ 'StringIO', 'stringprep', 'struct', 'subprocess', 'sunau', 'SUNAUDIODEV', 'sunaudiodev',
+ 'symbol', 'sys', 'syslog', 'tabnanny', 'tarfile', 'telnetlib', 'tempfile', 'termios',
+ 'test', 'textwrap', 'thread', 'threading', 'time', 'timeit', 'Tix', 'Tkinter', 'token',
+ 'tokenize', 'traceback', 'tty', 'turtle', 'types', 'unicodedata', 'unittest', 'urllib2',
+ 'urllib', 'urlparse', 'user', 'UserDict', 'UserList', 'UserString', 'uu', 'warnings',
+ 'wave', 'weakref', 'webbrowser', 'whichdb', 'whrandom', 'winsound', 'xdrlib', 'xml',
+ 'xmllib', 'xmlrpclib', 'zipfile', 'zipimport', 'zlib', "os.path", "sys.path",
+
+ //PythonS60 Standard Library
+ //http://pys60.garage.maemo.org/doc/s60/
+ //These are the standard modules in the archive
+
+ "appuifw", "globalui","e32", "telephone", "aosocket", "btsocket",
+ "sysinfo","camera","graphics","keycapture","key_codes","topwindow", "gles",
+ "glcanvas","sensor", "audio","messaging", "inbox","location","positioning",
+ "contacts", "e32calendar", "e32db","e32dbm","logs","scriptext",
+ "series60_console",
+
+ //These are external but very often usable modules
+
+ "appuifw2","ArchetypeUI","elementtree","lightblue",
+ "activaprofile","Adjustor","akntextutils","aosocketnativenew",
+ "appreciation","applicationmanager","appswitch","atextit","bt_teror","btconsole",
+ "btswitch","cElementTree","cenrep","cerealizer","cl_gui","clipboard",
+ "clipboard_CHN","debugger","decompile2",
+ "dir_iter","download","easydb","ECenrep","Edit_find","efeature","elocation","envy",
+ "EProfile","erestart","error","esyagent","Execwap","exprofile","fastcamera",
+ "feature","fgimage","filebrowser","firmware","fold","fonts","fraction","FTP",
+ "ftplibnew","fy_manager","fy_menu","gles_utils","gps_location","hack",
+ "HTML2TXT","iapconnect","icon_image","image_decoder",
+ "ini","interactive_console","inting","key_modifiers","key_tricks","keypress",
+ "landmarks","lite_fm","locationacq","locationrequestor",
+ "logo","markupbase","mbm","mbm2","minidb","miniinfo","MISC",
+ "misty","Msg","ntpath","odict","Paintbox","pathinfo","pexif","pickcolor",
+ "powlite_fm","powlite_fm2","powlite_fm3","powlite_fme","prgbar","prodb",
+ "profileengine","progressbar","progressbartw","progressnotes",
+ "ProgressBarTW2","proshivka","py_upload","pyConnection","PyFileMan",
+ "pykeylock","PyPyc","pyqq","pys60crypto","pys60usb","rfc822",
+ "RUSOS","scmk","scrollpage","SISFIELDS","SISFIELD","sisfile",
+ "SISINFO","sisreader","Sistools","smidi","smsreject","speechy","sre_compile",
+ "sre_constants","sre_parse","sre","sysagent","syslang","TextMan",
+ "textrenderer","TextWrap","topwind","tsocket","uikludge","uikludges","uitricks",
+ "walkfile","wallpaper","wfm_lite",
+ "wif_keys","wif","window","wlanmgmt","wlantools","wt_color","wt_requesters",
+ "zhkey",
+
+ //These are recent additions
+ "miffile"
+ ),
+
+ /*
+ ** Set 4: special methods
+ ** http://python.org/doc/current/ref/specialnames.html
+ */
+ 4 => array(
+ ///*
+ //// Iterator types: http://python.org/doc/current/lib/typeiter.html
+ //'__iter__', 'next',
+ //// String types: http://python.org/doc/current/lib/string-methods.html
+ //'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs',
+ //'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle',
+ //'isupper', 'join', 'ljust', 'lower', 'lstrip', 'replace', 'rfind', 'rindex', 'rjust',
+ //'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title',
+ //'translate', 'upper', 'zfill',
+ // */
+
+ // Basic customization: http://python.org/doc/current/ref/customization.html
+ '__new__', '__init__', '__del__', '__repr__', '__str__',
+ '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__cmp__', '__rcmp__',
+ '__hash__', '__nonzero__', '__unicode__', '__dict__',
+ // Attribute access: http://python.org/doc/current/ref/attribute-access.html
+ '__setattr__', '__delattr__', '__getattr__', '__getattribute__', '__get__', '__set__',
+ '__delete__', '__slots__',
+ // Class creation, callable objects
+ '__metaclass__', '__call__',
+ // Container types: http://python.org/doc/current/ref/sequence-types.html
+ '__len__', '__getitem__', '__setitem__', '__delitem__', '__iter__', '__contains__',
+ '__getslice__', '__setslice__', '__delslice__',
+ // Numeric types: http://python.org/doc/current/ref/numeric-types.html
+ '__abs__','__add__','__and__','__coerce__','__div__','__divmod__','__float__',
+ '__hex__','__iadd__','__isub__','__imod__','__idiv__','__ipow__','__iand__',
+ '__ior__','__ixor__', '__ilshift__','__irshift__','__invert__','__int__',
+ '__long__','__lshift__',
+ '__mod__','__mul__','__neg__','__oct__','__or__','__pos__','__pow__',
+ '__radd__','__rdiv__','__rdivmod__','__rmod__','__rpow__','__rlshift__','__rrshift__',
+ '__rshift__','__rsub__','__rmul__','__rand__','__rxor__','__ror__',
+ '__sub__','__xor__'
+ )
+
+ ),
+ 'SYMBOLS' => array(
+ '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?', '`'
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => true,
+ 1 => true,
+ 2 => true,
+ 3 => true,
+ 4 => true
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color: #006000;font-weight:bold;', // Reserved
+ 2 => 'color: #800950;font-size:105%', // Built-ins + self
+ 3 => 'color: #003399;font-size:106%', // Standard lib
+ 4 => 'color: #0000cd;' // Special methods
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #808080; font-style:italic;font-size:92%',
+ 'MULTI' => 'color: #808080; font-style: italic;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #930; font-weight: bold;font-size:105%'
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: maroon;font-size:102%;padding:2px'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #666;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #2356F8;'
+ ),
+ 'METHODS' => array(
+ 1 => 'color: navy;'
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color: #66ccFF;'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'SCRIPT' => array(
+ )
+ ),
+ 'URLS' => array(
+ 1 => '',
+ 2 => '',
+ 3 => '',
+ 4 => ''
+ ),
+ 'OOLANG' => true,
+ 'OBJECT_SPLITTERS' => array(
+ 1 => '.'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ )
+);
+
+?>
diff --git a/inc/geshi/python.php b/inc/geshi/python.php
index 38d9a0b02..ec9b17e6f 100644
--- a/inc/geshi/python.php
+++ b/inc/geshi/python.php
@@ -4,7 +4,7 @@
* ----------
* Author: Roberto Rossi (rsoftware@altervista.org)
* Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/08/30
*
* Python language file for GeSHi.
diff --git a/inc/geshi/q.php b/inc/geshi/q.php
index e4bb92da8..ade9928d0 100644
--- a/inc/geshi/q.php
+++ b/inc/geshi/q.php
@@ -4,7 +4,7 @@
* -----
* Author: Ian Roddis (ian.roddis@proteanmind.net)
* Copyright: (c) 2008 Ian Roddis (http://proteanmind.net)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/01/21
*
* q/kdb+ language file for GeSHi.
diff --git a/inc/geshi/qbasic.php b/inc/geshi/qbasic.php
index ff61449d0..3345e3c69 100644
--- a/inc/geshi/qbasic.php
+++ b/inc/geshi/qbasic.php
@@ -4,7 +4,7 @@
* ----------
* Author: Nigel McNie (nigel@geshi.org)
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/06/20
*
* QBasic/QuickBASIC language file for GeSHi.
@@ -62,6 +62,10 @@ $language_data = array (
'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
'QUOTEMARKS' => array('"'),
'ESCAPE_CHAR' => '',
+ 'NUMBERS' =>
+ GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_NONSCI |
+ GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT |
+ GESHI_NUMBER_FLT_SCI_ZERO,
'KEYWORDS' => array(
1 => array(
'DO', 'LOOP', 'WHILE', 'WEND', 'THEN', 'ELSE', 'ELSEIF', 'IF',
diff --git a/inc/geshi/rails.php b/inc/geshi/rails.php
index 0e825040e..65ddee884 100644
--- a/inc/geshi/rails.php
+++ b/inc/geshi/rails.php
@@ -4,7 +4,7 @@
* ---------
* Author: Moises Deniz
* Copyright: (c) 2005 Moises Deniz
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/03/21
*
* Ruby (with Ruby on Rails Framework) language file for GeSHi.
diff --git a/inc/geshi/rebol.php b/inc/geshi/rebol.php
index 1e5dff626..ea86c21cd 100644
--- a/inc/geshi/rebol.php
+++ b/inc/geshi/rebol.php
@@ -4,7 +4,7 @@
* --------
* Author: Lecanu Guillaume (Guillaume@LyA.fr)
* Copyright: (c) 2004-2005 Lecanu Guillaume (Guillaume@LyA.fr)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/12/22
*
* Rebol language file for GeSHi.
diff --git a/inc/geshi/reg.php b/inc/geshi/reg.php
index 9878f42f6..157b2bd24 100644
--- a/inc/geshi/reg.php
+++ b/inc/geshi/reg.php
@@ -4,7 +4,7 @@
* -------
* Author: Sean Hanna (smokingrope@gmail.com)
* Copyright: (c) 2006 Sean Hanna
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 03/15/2006
*
* Microsoft Registry Editor language file for GeSHi.
diff --git a/inc/geshi/rexx.php b/inc/geshi/rexx.php
new file mode 100644
index 000000000..b3cb93229
--- /dev/null
+++ b/inc/geshi/rexx.php
@@ -0,0 +1,162 @@
+<?php
+/*************************************************************************************
+ * rexx.php
+ * ---------------------------------
+ * Author: Jon Wolfers (sahananda@windhorse.biz)
+ * Contributors:
+ * - Walter Pachl (pachl@chello.at)
+ * Copyright: (c) 2008 Jon Wolfers, (c) 2012 Walter Pachl
+ * Release Version: 1.0.8.11
+ * Date Started: 2008/01/07
+ *
+ * Rexx language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2012/07/29 (1.0.0)
+ * - tried to get it syntactically right
+ *
+ * TODO (updated 2012/07/29)
+ * -------------------------
+ * - Get it working on rosettacode.org
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'rexx',
+ 'COMMENT_SINGLE' => array(1 => '--'),
+ 'COMMENT_MULTI' => array('/*' => '*/'),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array("'", '"'),
+ 'ESCAPE_CHAR' => '',
+ 'KEYWORDS' => array(
+ 1 => array(
+ 'address', 'arg', 'attribute', 'call', 'constant', 'do',
+ 'drop', 'exit', 'forward', 'if',
+ 'interpret', 'iterate', 'leave', 'loop', 'nop', 'numeric',
+ 'options', 'parse', 'procedure', 'pull', 'push', 'queue',
+ 'raise', 'return', 'say', 'select', 'signal', 'trace'
+ ),
+ 2 => array(
+ 'by', 'digits', 'engineering', 'error', 'expose',
+ 'failure', 'for', 'forever', 'form', 'fuzz', 'halt',
+ 'name', 'novalue', 'off', 'on', 'over', 'scientific', 'source',
+ 'syntax', 'to', 'until', 'upper', 'version',
+ 'while', 'with'
+ ),
+ 3 => array(
+ 'else', 'end', 'otherwise', 'then', 'when'
+ ),
+ 4 => array(
+ 'rc', 'result', 'sigl'
+ ),
+ 5 => array(
+ 'placeholderforoorexxdirectives'
+ ),
+ 6 => array(
+ 'abbrev', 'abs', 'beep', 'bitand', 'bitor',
+ 'bitxor', 'b2x', 'center', 'centre', 'changestr', 'charin',
+ 'charout', 'chars', 'compare', 'condition', 'copies',
+ 'countstr', 'c2d', 'c2x', 'datatype', 'date', 'delstr',
+ 'delword', 'directory', 'd2c', 'd2x', 'endlocal',
+ 'errortext', 'filespec', 'format', 'insert',
+ 'lastpos', 'left', 'length', 'linein', 'lineout', 'lines',
+ 'lower', 'max', 'min', 'overlay', 'pos', 'queued', 'random',
+ 'reverse', 'right', 'rxfuncadd', 'rxfuncdrop', 'rxfuncquery',
+ 'rxqueue', 'setlocal', 'sign', 'sourceline', 'space',
+ 'stream', 'strip', 'substr', 'subword', 'symbol', 'time',
+ 'translate', 'trunc', 'userid', 'value',
+ 'var', 'verify', 'word', 'wordindex', 'wordlength', 'wordpos',
+ 'words', 'xrange', 'x2b', 'x2c', 'x2d'
+ )
+ ),
+ 'SYMBOLS' => array(
+ '(', ')', '<', '>', '=', '+', '-', '*', '**', '/', '|', '%', '^', '&', ':'
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => true,
+ 1 => false,
+ 2 => false,
+ 3 => false,
+ 4 => false,
+ 5 => false,
+ 6 => false
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color: #b1b100;',
+ 2 => 'color: #ff0000; font-weight: bold;',
+ 3 => 'color: #00ff00; font-weight: bold;',
+ 4 => 'color: #0000ff; font-weight: bold;',
+ 5 => 'color: #880088; font-weight: bold;',
+ 6 => 'color: #888800; font-weight: bold;'
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #666666;',
+ 'MULTI' => 'color: #808080;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #000099; font-weight: bold;'
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #66cc66;'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #ff0000;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #cc66cc;'
+ ),
+ 'METHODS' => array(
+ 1 => 'color: #202020;',
+ 2 => 'color: #202020;'
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color: #66cc66;'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'SCRIPT' => array(
+ )
+ ),
+ 'URLS' => array(
+ 1 => '',
+ 2 => '',
+ 3 => '',
+ 4 => '',
+ 5 => '',
+ 6 => ''
+ ),
+ 'OOLANG' => false,
+ 'OBJECT_SPLITTERS' => array(
+ 1 => '.'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ ),
+ 'TAB_WIDTH' => 4
+);
+
+?>
diff --git a/inc/geshi/robots.php b/inc/geshi/robots.php
index c0713a64c..0b75f7111 100644
--- a/inc/geshi/robots.php
+++ b/inc/geshi/robots.php
@@ -4,7 +4,7 @@
* --------
* Author: Christian Lescuyer (cl@goelette.net)
* Copyright: (c) 2006 Christian Lescuyer http://xtian.goelette.info
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2006/02/17
*
* robots.txt language file for GeSHi.
diff --git a/inc/geshi/rpmspec.php b/inc/geshi/rpmspec.php
index 243df94c7..fd6a561f8 100644
--- a/inc/geshi/rpmspec.php
+++ b/inc/geshi/rpmspec.php
@@ -4,7 +4,7 @@
* ---------------------------------
* Author: Paul Grinberg (gri6507 TA unity-linux TOD org)
* Copyright: (c) 2010 Paul Grinberg
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/04/27
*
* RPM Spec language file for GeSHi.
diff --git a/inc/geshi/rsplus.php b/inc/geshi/rsplus.php
index 41cdd158b..e8a4e722b 100644
--- a/inc/geshi/rsplus.php
+++ b/inc/geshi/rsplus.php
@@ -5,8 +5,9 @@
* Author: Ron Fredericks (ronf@LectureMaker.com)
* Contributors:
* - Benilton Carvalho (beniltoncarvalho@gmail.com)
+ * - Fernando Henrique Ferraz Pereira da Rosa (mentus@gmail.com)
* Copyright: (c) 2009 Ron Fredericks (http://www.LectureMaker.com)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/03/28
*
* R language file for GeSHi.
@@ -440,18 +441,17 @@ $language_data = array (
0 => 'color:#A020F0;'
),
'SCRIPT' => array(
- 0 => ''
- )
+ 0 => '' )
),
'URLS' => array(
1 => '',
- 2 => 'http://astrostatistics.psu.edu/su07/R/html/graphics/html/{FNAME}.html', // http://sekhon.berkeley.edu/library/graphics/html/{FNAME}.html
- 3 => 'http://astrostatistics.psu.edu/su07/R/html/stats/html/Normal.html', // http://sekhon.berkeley.edu/library/stats/html/Normal.html
- 4 => 'http://astrostatistics.psu.edu/su07/R/html/stats/html/{FNAME}.html', // http://sekhon.berkeley.edu/library/stats/html/{FNAME}.html
- 5 => 'http://astrostatistics.psu.edu/su07/R/html/stats/html/summary.lm.html', // http://sekhon.berkeley.edu/library/stats/html/summary.lm.html
- 6 => 'http://astrostatistics.psu.edu/su07/R/html/base/html/Log.html', // http://sekhon.berkeley.edu/library/base/html/Log.html
- 7 => '',
- 8 => ''
+ 2 => 'http://stat.ethz.ch/R-manual/R-devel/library/base/html/{FNAME}.html', // Base Package
+ 3 => 'http://stat.ethz.ch/R-manual/R-devel/library/datasets/html/{FNAME}.html', // Datasets
+ 4 => 'http://stat.ethz.ch/R-manual/R-devel/library/graphics/html/{FNAME}.html', // Graphics Package
+ 5 => 'http://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/{FNAME}.html', // grDevices
+ 6 => 'http://stat.ethz.ch/R-manual/R-devel/library/methods/html/{FNAME}.html', // methods
+ 7 => 'http://stat.ethz.ch/R-manual/R-devel/library/stats/html/{FNAME}.html', // stats
+ 8 => 'http://stat.ethz.ch/R-manual/R-devel/library/utils/html/{FNAME}.html' // utils
),
'OOLANG' => true,
'OBJECT_SPLITTERS' => array(
diff --git a/inc/geshi/ruby.php b/inc/geshi/ruby.php
index c38d5a218..f6eb1b1e3 100644
--- a/inc/geshi/ruby.php
+++ b/inc/geshi/ruby.php
@@ -4,7 +4,7 @@
* --------
* Author: Moises Deniz
* Copyright: (c) 2007 Moises Deniz
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/03/21
*
* Ruby language file for GeSHi.
diff --git a/inc/geshi/sas.php b/inc/geshi/sas.php
index 6f4ce285e..dbf95a14e 100644
--- a/inc/geshi/sas.php
+++ b/inc/geshi/sas.php
@@ -4,7 +4,7 @@
* -------
* Author: Galen Johnson (solitaryr@gmail.com)
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/12/27
*
* SAS language file for GeSHi. Based on the sas vim file.
diff --git a/inc/geshi/scala.php b/inc/geshi/scala.php
index 12462cf3b..405f59de0 100644
--- a/inc/geshi/scala.php
+++ b/inc/geshi/scala.php
@@ -4,7 +4,7 @@
* ----------
* Author: Franco Lombardo (franco@francolombardo.net)
* Copyright: (c) 2008 Franco Lombardo, Benny Baumann
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/02/08
*
* Scala language file for GeSHi.
@@ -41,9 +41,20 @@ $language_data = array (
'LANG_NAME' => 'Scala',
'COMMENT_SINGLE' => array(1 => '//'),
'COMMENT_MULTI' => array('/*' => '*/'),
+ 'COMMENT_REGEXP' => array(2 => "/\\'(?!\w\\'|\\\\)\w+(?=\s)/"),
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
- 'QUOTEMARKS' => array("'", '"'),
+ 'QUOTEMARKS' => array("'",'"'),
'ESCAPE_CHAR' => '\\',
+ 'ESCAPE_REGEXP' => array(
+ //Simple Single Char Escapes
+ 1 => "#\\\\[nfrtv\$\"\n\\\\]#i",
+ //Hexadecimal Char Specs
+ 2 => "#\\\\x[\da-fA-F]{1,2}#i",
+ //Hexadecimal Char Specs (unicode)
+ 3 => "#\\\\u[\da-fA-F]{1,4}#",
+ //Hexadecimal Char Specs (Extended Unicode)
+ 4 => "#\\\\U[\da-fA-F]{1,8}#",
+ ),
'KEYWORDS' => array(
1 => array(
'abstract', 'case', 'catch', 'class', 'def',
@@ -75,11 +86,16 @@ $language_data = array (
2 => 'color: #9999cc; font-weight: bold;',
),
'COMMENTS' => array(
- 1=> 'color: #008000; font-style: italic;',
+ 1 => 'color: #008000; font-style: italic;',
+ 2 => 'color: #CC66FF;',
'MULTI' => 'color: #00ff00; font-style: italic;'
),
'ESCAPE_CHAR' => array(
- 0 => 'color: #0000ff; font-weight: bold;'
+ 0 => 'color: #6666ff; font-weight: bold;',
+ 1 => 'color: #6666ff; font-weight: bold;',
+ 2 => 'color: #5555ff; font-weight: bold;',
+ 3 => 'color: #4444ff; font-weight: bold;',
+ 4 => 'color: #3333ff; font-weight: bold;'
),
'BRACKETS' => array(
0 => 'color: #F78811;'
@@ -119,4 +135,4 @@ $language_data = array (
)
);
-?>
+?> \ No newline at end of file
diff --git a/inc/geshi/scheme.php b/inc/geshi/scheme.php
index f687e79a7..a84b90809 100644
--- a/inc/geshi/scheme.php
+++ b/inc/geshi/scheme.php
@@ -4,7 +4,7 @@
* ----------
* Author: Jon Raphaelson (jonraphaelson@gmail.com)
* Copyright: (c) 2005 Jon Raphaelson, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/08/30
*
* Scheme language file for GeSHi.
diff --git a/inc/geshi/scilab.php b/inc/geshi/scilab.php
index cd1ca70f1..f011497dd 100644
--- a/inc/geshi/scilab.php
+++ b/inc/geshi/scilab.php
@@ -4,7 +4,7 @@
* --------
* Author: Christophe David (geshi@christophedavid.org)
* Copyright: (c) 2008 Christophe David (geshi@christophedavid.org)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/08/04
*
* SciLab language file for GeSHi.
diff --git a/inc/geshi/sdlbasic.php b/inc/geshi/sdlbasic.php
index 27aaf522b..381161fdf 100644
--- a/inc/geshi/sdlbasic.php
+++ b/inc/geshi/sdlbasic.php
@@ -4,7 +4,7 @@
* ------------
* Author: Roberto Rossi
* Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/08/19
*
* sdlBasic (http://sdlbasic.sf.net) language file for GeSHi.
diff --git a/inc/geshi/smalltalk.php b/inc/geshi/smalltalk.php
index 008bfcd1d..5b61badaf 100644
--- a/inc/geshi/smalltalk.php
+++ b/inc/geshi/smalltalk.php
@@ -4,7 +4,7 @@
* --------
* Author: Bananeweizen (Bananeweizen@gmx.de)
* Copyright: (c) 2005 Bananeweizen (www.bananeweizen.de)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/03/27
*
* Smalltalk language file for GeSHi.
diff --git a/inc/geshi/smarty.php b/inc/geshi/smarty.php
index 1d8199936..86e9d44c0 100644
--- a/inc/geshi/smarty.php
+++ b/inc/geshi/smarty.php
@@ -4,7 +4,7 @@
* ----------
* Author: Alan Juden (alan@judenware.org)
* Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/07/10
*
* Smarty template language file for GeSHi.
diff --git a/inc/geshi/spark.php b/inc/geshi/spark.php
new file mode 100644
index 000000000..0284a1a47
--- /dev/null
+++ b/inc/geshi/spark.php
@@ -0,0 +1,132 @@
+<?php
+/*************************************************************************************
+ * ada.php
+ * -------
+ * Author: Phil Thornley (tux@inmail.cz)
+ * Copyright: (c) 2004 Phil Thornley (http://www.sparksure.com)
+ * Release Version: 1.0.8.11
+ * Date Started: 2010/08/22
+ *
+ * SPARK language file for GeSHi.
+ *
+ * Created by modifying Ada file version 1.0.2
+ * Words are from SciTe configuration file
+ *
+ * CHANGES
+ * -------
+ * 2010/08/28 (1.0.0)
+ * - First Release
+ *
+ * TODO (updated 2010/08/22)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'SPARK',
+ 'COMMENT_SINGLE' => array(1 => '--', 2 => '--#'),
+ 'COMMENT_MULTI' => array('/*' => '*/'),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array('"'),
+ 'ESCAPE_CHAR' => '\\',
+ 'KEYWORDS' => array(
+ 1 => array(
+ 'begin', 'declare', 'do', 'else', 'elsif', 'exception', 'for', 'if',
+ 'is', 'loop', 'while', 'then', 'end', 'select', 'case', 'until',
+ 'goto', 'return'
+ ),
+ 2 => array(
+ 'abs', 'and', 'at', 'mod', 'not', 'or', 'rem', 'xor'
+ ),
+ 3 => array(
+ 'abort', 'abstract', 'accept', 'access', 'aliased', 'all', 'array',
+ 'body', 'constant', 'delay', 'delta', 'digits', 'entry', 'exit',
+ 'function', 'generic', 'in', 'interface', 'limited', 'new', 'null',
+ 'of', 'others', 'out', 'overriding', 'package', 'pragma', 'private',
+ 'procedure', 'protected', 'raise', 'range', 'record', 'renames',
+ 'requeue', 'reverse', 'separate', 'subtype', 'synchronized',
+ 'tagged', 'task', 'terminate', 'type', 'use', 'when', 'with'
+ )
+ ),
+ 'SYMBOLS' => array(
+ '(', ')'
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false,
+ 1 => false,
+ 2 => false,
+ 3 => false,
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color: #00007f;',
+ 2 => 'color: #0000ff;',
+ 3 => 'color: #46aa03; font-weight:bold;',
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #66cc66;'
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #adadad; font-style: italic;',
+ 2 => 'color: #adadad; font-style: italic; font-weight: bold;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #000099; font-weight: bold;'
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #66cc66;'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #7f007f;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #ff0000;'
+ ),
+ 'METHODS' => array(
+ 1 => 'color: #202020;'
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color: #66cc66;'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'SCRIPT' => array(
+ )
+ ),
+ 'URLS' => array(
+ 1 => '',
+ 2 => '',
+ 3 => ''
+ ),
+ 'OOLANG' => true,
+ 'OBJECT_SPLITTERS' => array(
+ 1 => '.'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ )
+);
+
+?> \ No newline at end of file
diff --git a/inc/geshi/sparql.php b/inc/geshi/sparql.php
new file mode 100644
index 000000000..282165a01
--- /dev/null
+++ b/inc/geshi/sparql.php
@@ -0,0 +1,155 @@
+<?php
+/*************************************************************************************
+ * sparql.php
+ * -------
+ * Author: Karima Rafes (karima.rafes@bordercloud.com)
+ * Copyright: (c) 2011 Bourdercloud.com
+ * Release Version: 1.0.8.11
+ * Date Started: 2011/11/05
+ *
+ * SPARQL language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2011/11/05 (1.0.0)
+ * - First Release
+ *
+ * TODO
+ * ----
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'SPARQL',
+ 'COMMENT_SINGLE' => array('#'),
+ 'COMMENT_MULTI' => array('/*' => '*/' ),
+ 'COMMENT_REGEXP' => array(
+ //IRI (it's not a comment ;)
+ 1 => "/<[^> ]*>/i"
+ ),
+ 'CASE_KEYWORDS' => 1,
+ 'QUOTEMARKS' => array("'", '"', '`'),
+ 'ESCAPE_CHAR' => '\\',
+ 'KEYWORDS' => array(
+ 1 => array(
+ 'BASE','PREFIX','SELECT','DISTINCT','REDUCED','CONSTRUCT','DESCRIBE','ASK','FROM',
+ 'NAMED','WHERE','ORDER','BY','ASC','DESC','LIMIT','OFFSET','OPTIONAL','GRAPH',
+ 'UNION','FILTER','STR','LANG','LANGMATCHES','DATATYPE','BOUND','SAMETERM',
+ 'ISIRI','ISURI','ISBLANK',
+ 'ISLITERAL','REGEX','SUBSTR','TRUE',
+ 'FALSE','LOAD','CLEAR',
+ 'DROP','ADD','MOVE','COPY',
+ 'CREATE','DELETE','INSERT',
+ 'USING','SILENT','DEFAULT','ALL',
+ 'DATA','WITH','INTO','TO',
+ 'AS','GROUP','HAVING','UNDEF',
+ 'BINDINGS','SERVICE','BIND','MINUS_KEYWORD',
+ 'IRI','URI', 'BNODE',
+ 'RAND','ABS','CEIL','FLOOR','ROUND',
+ 'CONCAT','STRLEN',
+ 'UCASE','LCASE','ENCODE_FOR_URI',
+ 'CONTAINS','STRSTARTS',
+ 'STRENDS','STRBEFORE',
+ 'STRAFTER','REPLACE',
+ 'YEAR','MONTH',
+ 'DAY','HOURS',
+ 'MINUTES','SECONDS',
+ 'TIMEZONE','TZ',
+ 'NOW','MD5',
+ 'SHA1','SHA224',
+ 'SHA256','SHA384',
+ 'SHA512','COALESCE',
+ 'IF','STRLANG','STRDT',
+ 'ISNUMERIC','COUNT',
+ 'SUM','MIN',
+ 'MAX','AVG','SAMPLE',
+ 'GROUP_CONCAT ','NOT',
+ 'IN','EXISTS','SEPARATOR'
+ )
+ ),
+ 'REGEXPS' => array(
+ //Variables without braces
+ 1 => "\\?[a-zA-Z_][a-zA-Z0-9_]*",
+ //prefix
+ 2 => "[a-zA-Z_.\\-0-9]*:",
+ //tag lang
+ 3 => "@[^ .)}]*",
+ ),
+ 'SYMBOLS' => array(
+ 0 => array(
+ '{', '}' , '.', ';'
+ ),
+ 1 => array(
+ '^^',
+ '<=','>=','!=','=','<','>','|',
+ '&&','||',
+ '(',')','[', ']',
+ '+','-','*','!','/'
+ ),
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false,
+ 1 => false
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color: #993333; font-weight: bold;'
+ ),
+ 'COMMENTS' => array(
+ 0 => 'color: #808080; font-style: italic;',
+ 1 => 'color: #000078;',
+ //2 => 'color: #808080; font-style: italic;',
+ 'MULTI' => 'color: #808080; font-style: italic;',
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #000099; font-weight: bold;'
+ ),
+ 'BRACKETS' => array(),
+ 'STRINGS' => array(
+ 0 => 'color: #ff0000;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #FF63C3;'
+ ),
+ 'METHODS' => array(
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color: #0000FF;',
+ 1 => 'color: #FF8000; font-weight: bold;'
+ ),
+ 'SCRIPT' => array(),
+ 'REGEXPS' => array(
+ 1 => 'color: #007800;',
+ 2 => 'color: #780078;',
+ 3 => 'color: #005078;'
+ )
+ ),
+ 'URLS' => array(
+ 1 => ''
+ ),
+ 'OOLANG' => false,
+ 'OBJECT_SPLITTERS' => array(),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(),
+ 'HIGHLIGHT_STRICT_BLOCK' => array()
+);
+
+?> \ No newline at end of file
diff --git a/inc/geshi/sql.php b/inc/geshi/sql.php
index 6f7870196..4d08a51fe 100644
--- a/inc/geshi/sql.php
+++ b/inc/geshi/sql.php
@@ -6,7 +6,7 @@
* Contributors:
* - Jürgen Thomas (Juergen.Thomas@vs-polis.de)
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/06/04
*
* SQL language file for GeSHi.
diff --git a/inc/geshi/stonescript.php b/inc/geshi/stonescript.php
new file mode 100644
index 000000000..2844e885e
--- /dev/null
+++ b/inc/geshi/stonescript.php
@@ -0,0 +1,307 @@
+<?php
+/*************************************************************************************
+ * stonescript.php
+ * --------
+ * Author: Archimmersion ( based on ruby.php by Moises Deniz )
+ * Copyright: (c) 2011 Archimmersion ( http://www.archimmersion.com )
+ * Release Version: 1.0.8.11
+ * Date Started: 2011/03/30
+ *
+ * StoneScript language file for GeSHi.
+ *
+ * StonesCript is a Lua based script language for the ShiVa3D game engine ( http://www.stonetrip.com )
+ *
+ * More information can be found at http://www.stonetrip.com/developer/doc/api/introduction
+ *
+ * CHANGES
+ * -------
+ * 2011/04/18 (1.0.8.11)
+ * - Initial release
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'StoneScript',
+ 'COMMENT_SINGLE' => array(1 => "--"),
+ 'COMMENT_MULTI' => array("--[[" => "]]"),
+ 'COMMENT_REGEXP' => array(
+ 4 => '/<<\s*?(\w+)\\n.*?\\n\\1(?![a-zA-Z0-9])/si',
+ ),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array('"', '`','\''),
+ 'ESCAPE_CHAR' => '\\',
+ 'KEYWORDS' => array(
+ // Blue - General Keywords
+ 1 => array(
+ 'and', 'begin', 'break', 'do', 'else', 'elseif', 'end',
+ 'for', 'if', 'in', 'while', 'next', 'not', 'or', 'redo',
+ 'then', 'unless', 'until', 'when', 'false', 'nil', 'self',
+ 'true', 'local', 'this', 'return',
+ ),
+ // Dark Blue - Main API names
+ 2 => array(
+ 'animation', 'application', 'cache', 'camera', 'debug',
+ 'dynamics', 'group', 'hashtable', 'hud', 'input', 'light',
+ 'log', 'math', 'mesh', 'microphone', 'music', 'navigation',
+ 'network', 'object', 'pixelmap', 'projector', 'scene',
+ 'sensor', 'server', 'session', 'sfx', 'shape', 'sound',
+ 'string', 'system', 'table', 'user', 'video', 'xml',
+ // Plugin API names
+ 'plasma', 'watersim',
+ 'winDirectories',
+ 'ActionSheet', 'Alert', 'Mail', 'Picker', 'StatusBar',
+ ),
+ // Constants
+ // Can be commented out if performance is crucial -> then these keywords will appear in a slightly lighter color
+ 3 => array(
+ //Animation
+ 'kPlaybackModeLoop', 'kPlaybackModeLoopMirrored', 'kPlaybackModeLoopReversed',
+ 'kPlaybackModeOnce', 'kPlaybackModeOnceReversed',
+ //Application - Environment
+ 'kStatusLoading', 'kStatusReady', 'kStatusSaving', // 'kStatusNone'
+ //Application - Options
+ 'kOptionAudioMasterVolume', 'kOptionAutomaticVirtualKeyboard', 'kOptionDynamicShadowsBufferCount',
+ 'kOptionDynamicShadowsBufferSize', 'kOptionDynamicShadowsConstantSampling', 'kOptionDynamicShadowsPCFSampleCount',
+ 'kOptionDynamicShadowsQuality', 'kOptionDynamicShadowsScreenSpaceBlur', 'kOptionFullscreen',
+ 'kOptionFullscreenHeight', 'kOptionFullscreenWidth', 'kOptionHardwareOcclusion',
+ 'kOptionMaxEventBouncesPerFrame', 'kOptionNetworkStreams', 'kOptionNetworkStreamsUseBrowser',
+ 'kOptionPrioritizeEventBounces', 'kOptionRenderingEnabled', 'kOptionShadersQuality',
+ 'kOptionSwapInterval', 'kOptionTerrainsQuality', 'kOptionTexturesAnisotropyLevel',
+ 'kOptionTexturesMipmapBias', 'kOptionTexturesQuality', 'kOptionViewportRotation',
+ //Application - Resource Types
+ 'kResourceTypeAnimBank', 'kResourceTypeFont', 'kResourceTypeHUD',
+ 'kResourceTypeMaterial', 'kResourceTypeMesh', 'kResourceTypeParticle',
+ 'kResourceTypePixelMap', 'kResourceTypeSoundBank', 'kResourceTypeTexture',
+ 'kResourceTypeTextureClip', 'kResourceTypeTrail',
+ //Cache
+ 'kPropertyHeight', 'kPropertySize', 'kPropertyWidth',
+ //Dynamics
+ 'kAxisX', 'kAxisY', 'kAxisZ',
+ 'kTypeBox', 'kTypeCapsule', 'kTypeSphere',
+ //HUD
+ 'kAddressingModeClamp', 'kAddressingModeRepeat', 'kAlignCenter', 'kAlignJustify','kAlignLeft', 'kAlignRight',
+ 'kAlignTop', 'kBlendModeAdd', 'kBlendModeDefault', 'kBlendModeModulate', 'kCaseFixed', 'kCaseVariable',
+ 'kCommandTypeCallAction', 'kCommandTypeCopyCheckStateToRegister', 'kCommandTypeCopyEditTextToRegister',
+ 'kCommandTypeCopyListItemTextToRegister', 'kCommandTypeCopyListLastSelectedItemToRegister',
+ 'kCommandTypeCopyProgressValueToRegister', 'kCommandTypeCopySliderValueToRegister', 'kCommandTypeCopyTagToRegister',
+ 'kCommandTypeEnterModalMode', 'kCommandTypeInterpolateBackgroundColor', 'kCommandTypeInterpolateBorderColor',
+ 'kCommandTypeInterpolateForegroundColor', 'kCommandTypeInterpolateHeight', 'kCommandTypeInterpolateOpacity',
+ 'kCommandTypeInterpolatePosition', 'kCommandTypeInterpolateProgressValue', 'kCommandTypeInterpolateRotation',
+ 'kCommandTypeInterpolateSize', 'kCommandTypeInterpolateWidth', 'kCommandTypeLeaveModalMode',
+ 'kCommandTypeMatchScreenSpaceBottomLeftCorner', 'kCommandTypeMatchScreenSpaceBottomRightCorner',
+ 'kCommandTypeMatchScreenSpaceCenter', 'kCommandTypeMatchScreenSpaceHeight', 'kCommandTypeMatchScreenSpaceTopLeftCorner',
+ 'kCommandTypeMatchScreenSpaceTopRightCorner', 'kCommandTypeMatchScreenSpaceWidth', 'kCommandTypePauseMovie',
+ 'kCommandTypePauseSound', 'kCommandTypePauseTimer', 'kCommandTypePlayMovie', 'kCommandTypePlaySound',
+ 'kCommandTypePlaySoundLoop', 'kCommandTypeResumeSound', 'kCommandTypeSendEventToUser', 'kCommandTypeSetActive',
+ 'kCommandTypeSetBackgroundColor', 'kCommandTypeSetBackgroundImage', 'kCommandTypeSetBackgroundImageUVOffset',
+ 'kCommandTypeSetBackgroundImageUVScale', 'kCommandTypeSetBorderColor', 'kCommandTypeSetButtonText',
+ 'kCommandTypeSetCheckState', 'kCommandTypeSetCheckText', 'kCommandTypeSetCursorPosition', 'kCommandTypeSetCursorVisible',
+ 'kCommandTypeSetEditText', 'kCommandTypeSetFocus', 'kCommandTypeSetForegroundColor', 'kCommandTypeSetHeight',
+ 'kCommandTypeSetLabelText', 'kCommandTypeSetOpacity', 'kCommandTypeSetPosition', 'kCommandTypeSetRotation',
+ 'kCommandTypeSetSize', 'kCommandTypeSetVisible', 'kCommandTypeSetWidth', 'kCommandTypeSleep', 'kCommandTypeStartTimer',
+ 'kCommandTypeStopAction', 'kCommandTypeStopMovie', 'kCommandTypeStopSound', 'kCommandTypeStopTimer',
+ 'kComponentTypeButton', 'kComponentTypeCheck', 'kComponentTypeContainer', 'kComponentTypeEdit', 'kComponentTypeLabel',
+ 'kComponentTypeList', 'kComponentTypeMovie', 'kComponentTypePicture', 'kComponentTypePixelMap', 'kComponentTypeProgress',
+ 'kComponentTypeRenderMap', 'kComponentTypeSlider', 'kCursorShapeCross', 'kCursorShapeDefault', 'kCursorShapeHandPointing',
+ 'kCursorShapeIBeam', 'kCursorShapeNone', 'kCursorShapeWaiting', 'kDirectionLeftToRight', 'kDirectionRightToLeft',
+ 'kEncodingASCII', 'kEncodingUTF8', 'kEventTypeGainFocus', 'kEventTypeLooseFocus', 'kEventTypeMouseEnter',
+ 'kEventTypeMouseLeave', 'kFillModeSolid', 'kInterpolatorTypeLinear', 'kInterpolatorTypePower2', 'kInterpolatorTypePower3',
+ 'kInterpolatorTypePower4', 'kInterpolatorTypeRoot2', 'kInterpolatorTypeRoot3', 'kInterpolatorTypeRoot4',
+ 'kInterpolatorTypeSpring1', 'kInterpolatorTypeSpring2', 'kInterpolatorTypeSpring3', 'kInterpolatorTypeSpring4',
+ 'kInterpolatorTypeSpring5', 'kInterpolatorTypeSpring6',
+ 'kOriginBottom', 'kOriginBottomLeft', 'kOriginBottomRight', 'kOriginCenter', 'kOriginLeft', 'kOriginRight',
+ 'kOriginTop', 'kOriginTopLeft', 'kOriginTopRight', 'kProgressTypeBottomToTop', 'kProgressTypeLeftToRight',
+ 'kProgressTypeRightToLeft', 'kProgressTypeTopToBottom', 'kRuntimeValueCallArgument0', 'kRuntimeValueCallArgument1',
+ 'kRuntimeValueCallArgument2', 'kRuntimeValueCallArgument3', 'kRuntimeValueCurrentUser', 'kRuntimeValueCurrentUserMainCamera',
+ 'kRuntimeValueRegister0', 'kRuntimeValueRegister1', 'kRuntimeValueRegister2', 'kRuntimeValueRegister3',
+ 'kShapeTypeEllipsoid', 'kShapeTypeRectangle', 'kShapeTypeRoundRectangle', 'kSliderTypeBottomToTop',
+ 'kSliderTypeLeftToRight', 'kSliderTypeRightToLeft', 'kSliderTypeTopToBottom', 'kWaveTypeConstant',
+ 'kWaveTypeSawtooth', 'kWaveTypeSawtoothInv', 'kWaveTypeSinus', 'kWaveTypeSinusNoise', 'kWaveTypeSquare', 'kWaveTypeTriangle',
+ //Input
+ 'kJoypadTypeIPhone', 'kJoypadTypeNone', 'kJoypadTypePhone', 'kJoypadTypeStandard', 'kJoypadTypeWiimote',
+ 'kKey0', 'kKey1', 'kKey2', 'kKey3', 'kKey4', 'kKey5', 'kKey6', 'kKey7', 'kKey8', 'kKey9', 'kKeyA', 'kKeyB',
+ 'kKeyBackspace', 'kKeyC', 'kKeyD', 'kKeyDelete', 'kKeyDown', 'kKeyE', 'kKeyEnd', 'kKeyEscape', 'kKeyF',
+ 'kKeyF1', 'kKeyF10', 'kKeyF11', 'kKeyF12', 'kKeyF2', 'kKeyF3', 'kKeyF4', 'kKeyF5', 'kKeyF6', 'kKeyF7',
+ 'kKeyF8', 'kKeyF9', 'kKeyG', 'kKeyH', 'kKeyHome', 'kKeyI', 'kKeyInsert', 'kKeyJ', 'kKeyK', 'kKeyL',
+ 'kKeyLAlt', 'kKeyLControl', 'kKeyLeft', 'kKeyLShift', 'kKeyM', 'kKeyN', 'kKeyO', 'kKeyP', 'kKeyPageDown',
+ 'kKeyPageUp', 'kKeyQ', 'kKeyR', 'kKeyRAlt', 'kKeyRControl', 'kKeyReturn', 'kKeyRight', 'kKeyRShift',
+ 'kKeyS', 'kKeySpace', 'kKeyT', 'kKeyTab', 'kKeyU', 'kKeyUp', 'kKeyV', 'kKeyW', 'kKeyX', 'kKeyY',
+ 'kKeyZ', 'kJoypadButtonPSPCircle', 'kJoypadButtonPSPCross', 'kJoypadButtonPSPDown', 'kJoypadButtonPSPL',
+ 'kJoypadButtonPSPLeft', 'kJoypadButtonPSPR', 'kJoypadButtonPSPRight', 'kJoypadButtonPSPSelect',
+ 'kJoypadButtonPSPSquare', 'kJoypadButtonPSPStart', 'kJoypadButtonPSPTriangle', 'kJoypadButtonPSPUp',
+ 'kJoypadTypePSP', 'kJoypadButtonWiimoteA', 'kJoypadButtonWiimoteB', 'kJoypadButtonWiimoteC',
+ 'kJoypadButtonWiimoteDown', 'kJoypadButtonWiimoteHome', 'kJoypadButtonWiimoteLeft',
+ 'kJoypadButtonWiimoteMinus', 'kJoypadButtonWiimoteOne', 'kJoypadButtonWiimotePlus',
+ 'kJoypadButtonWiimoteRight', 'kJoypadButtonWiimoteTwo', 'kJoypadButtonWiimoteUp', 'kJoypadButtonWiimoteZ',
+ //Light
+ 'kTypeDirectional', 'kTypePoint',
+ //Math
+ 'kEpsilon', 'kInfinity', 'kPi',
+ //Mesh
+ 'kLockModeRead', 'kLockModeWrite', 'kLockReadWrite',
+ //Network
+ 'kBluetoothServerPort', 'kDefaultServerPort', 'kStatusAuthenticated', 'kStatusSearchFinished', // 'kStatusNone', 'kStatusPending',
+ //Object
+ 'kControllerTypeAI', 'kControllerTypeAnimation', 'kControllerTypeAny', 'kControllerTypeDynamics',
+ 'kControllerTypeNavigation', 'kControllerTypeSound', 'kGlobalSpace', 'kLocalSpace', 'kParentSpace',
+ 'kTransformOptionInheritsParentRotation', 'kTransformOptionInheritsParentScale', 'kTransformOptionInheritsParentTranslation',
+ 'kTransformOptionTranslationAffectedByParentRotation', 'kTransformOptionTranslationAffectedByParentScale', 'kTypeCamera',
+ 'kTypeCollider', 'kTypeDummy', 'kTypeGroup', 'kTypeLight', 'kTypeOccluder', 'kTypeProjector', 'kTypeReflector',
+ 'kTypeSensor', 'kTypeSfx', 'kTypeShape',
+ //Pixelmap
+ 'kBlendModeDecal', 'kBlendModeReplace', 'kFillModeBrush', 'kFillModeNone', 'kPenModeBrush', // 'kFillModeSolid',
+ 'kPenModeNone', 'kPenModeSolid',
+ //Projector
+ 'kMapTypeMovie', 'kMapTypePixelMap', 'kMapTypeRenderMap', 'kMapTypeTexture', 'kMapTypeTextureClip',
+ //Scene
+ 'kFilteringModeBilinear', 'kFilteringModeNearest', 'kFilteringModeTrilinear', // 'kAddressingModeClamp', 'kAddressingModeRepeat',
+ 'kSkyBoxFaceBack', 'kSkyBoxFaceBottom', 'kSkyBoxFaceFront', 'kSkyBoxFaceLeft', 'kSkyBoxFaceRight', 'kSkyBoxFaceTop',
+ //Sensor
+ 'kShapeTypeBox', 'kShapeTypeSphere',
+ //Server
+ 'kStatusConnected', 'kStatusNone', 'kStatusPending',
+ //Session - duplicate keywords
+ //'kStatusConnected', 'kStatusNone', 'kStatusPending',
+ //Shape
+ 'kMapTypeUnknown', 'kCurveTypeBezier', 'kCurveTypeBSpline', 'kCurveTypeCatmullRom', 'kCurveTypePolyLine',
+ // 'kMapTypeMovie', 'kMapTypePixelMap', 'kMapTypeRenderMap', 'kMapTypeTexture', 'kMapTypeTextureClip',
+
+ //System
+ 'kOSType3DS', 'kOSTypeBada', 'kOSTypeBrew', 'kOSTypePalm', 'kOSTypePS3',
+ 'kClientTypeEditor', 'kClientTypeEmbedded', 'kClientTypeStandalone',
+ 'kGPUCapabilityBloomFilterSupport', 'kGPUCapabilityContrastFilterSupport', 'kGPUCapabilityDepthBlurFilterSupport',
+ 'kGPUCapabilityDistortionFilterSupport', 'kGPUCapabilityDynamicShadowsSupport', 'kGPUCapabilityHardwareOcclusionSupport',
+ 'kGPUCapabilityHardwareRenderingSupport', 'kGPUCapabilityMonochromeFilterSupport', 'kGPUCapabilityMotionBlurFilterSupport',
+ 'kGPUCapabilityPixelShaderSupport', 'kGPUCapabilityVelocityBlurFilterSupport', 'kGPUCapabilityVertexShaderSupport',
+ 'kLanguageAlbanian', 'kLanguageArabic', 'kLanguageBulgarian', 'kLanguageCatalan', 'kLanguageCzech', 'kLanguageDanish',
+ 'kLanguageDutch', 'kLanguageEnglish', 'kLanguageFinnish', 'kLanguageFrench', 'kLanguageGerman', 'kLanguageGreek',
+ 'kLanguageHebrew', 'kLanguageHungarian', 'kLanguageIcelandic', 'kLanguageItalian', 'kLanguageJapanese', 'kLanguageKorean',
+ 'kLanguageNorwegian', 'kLanguagePolish', 'kLanguagePortuguese', 'kLanguageRomanian', 'kLanguageRussian',
+ 'kLanguageSerboCroatian', 'kLanguageSlovak', 'kLanguageSpanish', 'kLanguageSwedish', 'kLanguageThai',
+ 'kLanguageTurkish', 'kLanguageUnknown', 'kLanguageUrdu', 'kOSTypeAndroid', 'kOSTypeAngstrom', 'kOSTypeIPhone',
+ 'kOSTypeLinux', 'kOSTypeMac', 'kOSTypePSP', 'kOSTypeSymbian', 'kOSTypeWii', 'kOSTypeWindows', 'kOSTypeWindowsCE',
+ ),
+ // Not used yet
+ 4 => array(
+ 'dummycommand',
+ ),
+ ),
+ 'SYMBOLS' => array(
+ '(', ')', '[', ']', '{', '}', '%', '&', '*', '|', '/', '<', '>',
+ '+', '-', '=>', '<<'
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false,
+ 1 => false,
+ 2 => false,
+ 3 => false,
+ 4 => true,
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color:#0000FF; font-weight:bold;',
+ 2 => 'color:#000088; font-weight:bold;',
+ 3 => 'color:#C088C0; font-weight:bold;',
+ 4 => 'color:#00FEFE; font-weight:bold;',
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color:#008000; font-style:italic;',
+ 4 => 'color: #cc0000; font-style: italic;',
+ 'MULTI' => 'color:#008000; font-style:italic;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color:#000099;'
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color:#000000; font-weight:bold;'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color:#888800;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color:#AA0000;'
+ ),
+ // names after "."
+ 'METHODS' => array(
+ 1 => 'color:#FF00FF; font-weight:bold;'
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color:#000000; font-weight:bold;'
+ ),
+ 'REGEXPS' => array(
+ 0 => 'color:#ff6633; font-weight:bold;',
+ 1 => 'color:#0066ff; font-weight:bold;',
+ 2 => 'color:#6666ff; font-weight:bold;',
+ 3 => 'color:#ff3333; font-weight:bold;'
+ ),
+ 'SCRIPT' => array(
+ 0 => '',
+ 1 => '',
+ 2 => '',
+ )
+ ),
+ 'URLS' => array(
+ 1 => '',
+ 2 => '',
+ 3 => '',
+ 4 => ''
+ ),
+ 'OOLANG' => true,
+ 'OBJECT_SPLITTERS' => array(
+ 1 => '.'
+ ),
+ 'REGEXPS' => array(
+ 0 => array(//Variables
+ GESHI_SEARCH => "([[:space:]])(\\$[a-zA-Z_][a-zA-Z0-9_]*)",
+ GESHI_REPLACE => '\\2',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '\\1',
+ GESHI_AFTER => ''
+ ),
+ 1 => array(//Arrays
+ GESHI_SEARCH => "([[:space:]])(@[a-zA-Z_][a-zA-Z0-9_]*)",
+ GESHI_REPLACE => '\\2',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '\\1',
+ GESHI_AFTER => ''
+ ),
+ 2 => "([A-Z][a-zA-Z0-9_]*::)+[A-Z][a-zA-Z0-9_]*",//Static OOP symbols
+ 3 => array(
+ GESHI_SEARCH => "([[:space:]]|\[|\()(:[a-zA-Z_][a-zA-Z0-9_]*)",
+ GESHI_REPLACE => '\\2',
+ GESHI_MODIFIERS => '',
+ GESHI_BEFORE => '\\1',
+ GESHI_AFTER => ''
+ )
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_MAYBE,
+ 'SCRIPT_DELIMITERS' => array(
+ 0 => array(
+ '<%' => '%>'
+ )
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ 0 => true,
+ ),
+ 'TAB_WIDTH' => 2
+);
+
+?> \ No newline at end of file
diff --git a/inc/geshi/systemverilog.php b/inc/geshi/systemverilog.php
index 142fd117b..f2ba92b19 100644
--- a/inc/geshi/systemverilog.php
+++ b/inc/geshi/systemverilog.php
@@ -4,7 +4,7 @@
* -------
* Author: Sean O'Boyle
* Copyright: (C) 2008 IntelligentDV
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/06/25
*
* SystemVerilog IEEE 1800-2009(draft8) language file for GeSHi.
@@ -53,8 +53,8 @@
*
* File: systemverilog.php
* $LastChangedBy: benbe $
- * $LastChangedDate: 2011-02-11 20:31:50 +0100 (Fr, 11. Feb 2011) $
- * $LastChangedRevision: 2430 $
+ * $LastChangedDate: 2012-08-18 01:56:20 +0200 (Sa, 18. Aug 2012) $
+ * $LastChangedRevision: 2542 $
*
************************************************************************/
diff --git a/inc/geshi/tcl.php b/inc/geshi/tcl.php
index c948ff261..4dd7be87b 100644
--- a/inc/geshi/tcl.php
+++ b/inc/geshi/tcl.php
@@ -4,7 +4,7 @@
* ---------------------------------
* Author: Reid van Melle (rvanmelle@gmail.com)
* Copyright: (c) 2004 Reid van Melle (sorry@nowhere)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2006/05/05
*
* TCL/iTCL language file for GeSHi.
diff --git a/inc/geshi/teraterm.php b/inc/geshi/teraterm.php
index 510ad04c4..f125642d5 100644
--- a/inc/geshi/teraterm.php
+++ b/inc/geshi/teraterm.php
@@ -4,7 +4,7 @@
* --------
* Author: Boris Maisuradze (boris at logmett.com)
* Copyright: (c) 2008 Boris Maisuradze (http://logmett.com)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/09/26
*
* Tera Term Macro language file for GeSHi.
diff --git a/inc/geshi/text.php b/inc/geshi/text.php
index dd219f599..87fb7110c 100644
--- a/inc/geshi/text.php
+++ b/inc/geshi/text.php
@@ -4,7 +4,7 @@
* --------
* Author: Sean Hanna (smokingrope@gmail.com)
* Copyright: (c) 2006 Sean Hanna
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 04/23/2006
*
* Standard Text File (No Syntax Highlighting).
diff --git a/inc/geshi/thinbasic.php b/inc/geshi/thinbasic.php
index c496cea6f..f54959e16 100644
--- a/inc/geshi/thinbasic.php
+++ b/inc/geshi/thinbasic.php
@@ -4,7 +4,7 @@
* ------
* Author: Eros Olmi (eros.olmi@thinbasic.com)
* Copyright: (c) 2006 Eros Olmi (http://www.thinbasic.com), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2006/05/12
*
* thinBasic language file for GeSHi.
diff --git a/inc/geshi/tsql.php b/inc/geshi/tsql.php
index dddf51934..b4bf6bdad 100644
--- a/inc/geshi/tsql.php
+++ b/inc/geshi/tsql.php
@@ -4,7 +4,7 @@
* --------
* Author: Duncan Lock (dunc@dflock.co.uk)
* Copyright: (c) 2006 Duncan Lock (http://dflock.co.uk/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/11/22
*
* T-SQL language file for GeSHi.
@@ -55,7 +55,7 @@ $language_data = array (
// Keywords
'ABSOLUTE', 'ACTION', 'ADD', 'ADMIN', 'AFTER', 'AGGREGATE', 'ALIAS', 'ALLOCATE', 'ALTER', 'ARE', 'ARRAY', 'AS',
'ASC', 'ASSERTION', 'AT', 'AUTHORIZATION', 'BACKUP', 'BEFORE', 'BEGIN', 'BINARY', 'BIT', 'BLOB', 'BOOLEAN', 'BOTH', 'BREADTH',
- 'BREAK', 'BROWSE', 'BULK', 'BY', 'CALL', 'CASCADE', 'CASCADED', 'CASE', 'CAST', 'CATALOG', 'CHAR', 'CHARACTER', 'CHECK', 'CHECKPOINT',
+ 'BREAK', 'BROWSE', 'BULK', 'BY', 'CALL', 'CASCADE', 'CASCADED', 'CASE', 'CAST', 'CATALOG', 'CATCH', 'CHAR', 'CHARACTER', 'CHECK', 'CHECKPOINT',
'CLASS', 'CLOB', 'CLOSE', 'CLUSTERED', 'COALESCE', 'COLLATE', 'COLLATION', 'COLUMN', 'COMMIT', 'COMPLETION', 'COMPUTE', 'CONNECT',
'CONNECTION', 'CONSTRAINT', 'CONSTRAINTS', 'CONSTRUCTOR', 'CONTAINS', 'CONTAINSTABLE', 'CONTINUE', 'CONVERT', 'CORRESPONDING', 'CREATE',
'CUBE', 'CURRENT', 'CURRENT_DATE', 'CURRENT_PATH', 'CURRENT_ROLE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER',
@@ -79,7 +79,7 @@ $language_data = array (
'SEQUENCE', 'SESSION', 'SESSION_USER', 'SET', 'SETS', 'SETUSER', 'SHUTDOWN', 'SIZE', 'SMALLINT', 'SPACE', 'SPECIFIC',
'SPECIFICTYPE', 'SQL', 'SQLEXCEPTION', 'SQLSTATE', 'SQLWARNING', 'START', 'STATE', 'STATEMENT', 'STATIC', 'STATISTICS', 'STRUCTURE',
'SYSTEM_USER', 'TABLE', 'TEMPORARY', 'TERMINATE', 'TEXTSIZE', 'THAN', 'THEN', 'TIME', 'TIMESTAMP', 'TIMEZONE_HOUR', 'TIMEZONE_MINUTE',
- 'TO', 'TOP', 'TRAILING', 'TRAN', 'TRANSACTION', 'TRANSLATION', 'TREAT', 'TRIGGER', 'TRUE', 'TRUNCATE', 'TSEQUAL', 'UNDER', 'UNION',
+ 'TO', 'TOP', 'TRAILING', 'TRAN', 'TRANSACTION', 'TRANSLATION', 'TREAT', 'TRIGGER', 'TRUE', 'TRUNCATE', 'TRY', 'TSEQUAL', 'UNDER', 'UNION',
'UNIQUE', 'UNKNOWN', 'UNNEST', 'UPDATE', 'UPDATETEXT', 'USAGE', 'USE', 'USER', 'USING', 'VALUE', 'VALUES', 'VARCHAR', 'VARIABLE',
'VARYING', 'VIEW', 'WAITFOR', 'WHEN', 'WHENEVER', 'WHERE', 'WHILE', 'WITH', 'WITHOUT', 'WORK', 'WRITE', 'WRITETEXT', 'YEAR', 'ZONE',
'UNCOMMITTED', 'NOCOUNT',
diff --git a/inc/geshi/typoscript.php b/inc/geshi/typoscript.php
index c1e380689..6751aaa8d 100644
--- a/inc/geshi/typoscript.php
+++ b/inc/geshi/typoscript.php
@@ -4,7 +4,7 @@
* --------
* Author: Jan-Philipp Halle (typo3@jphalle.de)
* Copyright: (c) 2005 Jan-Philipp Halle (http://www.jphalle.de/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
* Date Started: 2005/07/29
*
* TypoScript language file for GeSHi.
@@ -218,6 +218,15 @@ $language_data = array (
'OBJECT_SPLITTERS' => array(
),
'REGEXPS' => array(
+ // xhtml tag
+ 2 => array(
+ GESHI_SEARCH => '(&lt;)([a-zA-Z\\/][^\\/\\|]*?)(&gt;)',
+ GESHI_REPLACE => '\\2',
+ GESHI_MODIFIERS => 's',
+ GESHI_BEFORE => '\\1',
+ GESHI_AFTER => '\\3'
+ ),
+
// Constant
0 => array(
GESHI_SEARCH => '(\{)(\$[a-zA-Z_\.]+[a-zA-Z0-9_\.]*)(\})',
@@ -236,15 +245,6 @@ $language_data = array (
GESHI_AFTER => '\\2'
),
- // xhtml tag
- 2 => array(
- GESHI_SEARCH => '(&lt;[a-zA-Z\!\/].*?&gt;)',
- GESHI_REPLACE => '\\1',
- GESHI_MODIFIERS => 's',
- GESHI_BEFORE => '',
- GESHI_AFTER => ''
- ),
-
// extension keys / tables: (static|user|ttx|tx|tt|fe)_something[_something]
3 => array(
GESHI_SEARCH => '(plugin\.|[^\.]\b)((?:static|user|ttx|tx|tt|fe)(?:_[0-9A-Za-z_]+?)\b)',
diff --git a/inc/geshi/unicon.php b/inc/geshi/unicon.php
index 42fffc886..6fe62d0fb 100644
--- a/inc/geshi/unicon.php
+++ b/inc/geshi/unicon.php
@@ -4,7 +4,7 @@
* --------
* Author: Matt Oates (mattoates@gmail.com)
* Copyright: (c) 2010 Matt Oates (http://mattoates.co.uk)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/04/20
*
* Unicon the Unified Extended Dialect of Icon language file for GeSHi.
diff --git a/inc/geshi/upc.php b/inc/geshi/upc.php
new file mode 100644
index 000000000..e05303228
--- /dev/null
+++ b/inc/geshi/upc.php
@@ -0,0 +1,270 @@
+<?php
+/*************************************************************************************
+ * upc.php
+ * -----
+ * Author: Viraj Sinha (viraj@indent.com)
+ * Contributors:
+ * - Nigel McNie (nigel@geshi.org)
+ * - Jack Lloyd (lloyd@randombit.net)
+ * - Michael Mol (mikemol@gmail.com)
+ * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
+ * Release Version: 1.0.8.11
+ * Date Started: 2004/06/04
+ *
+ * UPC language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2011/06/14 (1.0.8.11)
+ * - This file is a revision of c.php with UPC keywords added
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'UPC',
+ 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
+ 'COMMENT_MULTI' => array('/*' => '*/'),
+ 'COMMENT_REGEXP' => array(
+ //Multiline-continued single-line comments
+ 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
+ //Multiline-continued preprocessor define
+ 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
+ ),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array("'", '"'),
+ 'ESCAPE_CHAR' => '',
+ 'ESCAPE_REGEXP' => array(
+ //Simple Single Char Escapes
+ 1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
+ //Hexadecimal Char Specs
+ 2 => "#\\\\x[\da-fA-F]{2}#",
+ //Hexadecimal Char Specs
+ 3 => "#\\\\u[\da-fA-F]{4}#",
+ //Hexadecimal Char Specs
+ 4 => "#\\\\U[\da-fA-F]{8}#",
+ //Octal Char Specs
+ 5 => "#\\\\[0-7]{1,3}#"
+ ),
+ 'NUMBERS' =>
+ GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
+ GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
+ GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
+ 'KEYWORDS' => array(
+ 1 => array(
+ 'if', 'return', 'while', 'case', 'continue', 'default',
+ 'do', 'else', 'for', 'switch', 'goto',
+
+ 'upc_forall', 'upc_barrier', 'upc_notify', 'upc_wait', 'upc_fence'
+ ),
+ 2 => array(
+ 'null', 'false', 'break', 'true', 'function', 'enum', 'extern', 'inline'
+ ),
+ 3 => array(
+ // assert.h
+ 'assert',
+
+ //complex.h
+ 'cabs', 'cacos', 'cacosh', 'carg', 'casin', 'casinh', 'catan',
+ 'catanh', 'ccos', 'ccosh', 'cexp', 'cimag', 'cis', 'clog', 'conj',
+ 'cpow', 'cproj', 'creal', 'csin', 'csinh', 'csqrt', 'ctan', 'ctanh',
+
+ //ctype.h
+ 'digittoint', 'isalnum', 'isalpha', 'isascii', 'isblank', 'iscntrl',
+ 'isdigit', 'isgraph', 'islower', 'isprint', 'ispunct', 'isspace',
+ 'isupper', 'isxdigit', 'toascii', 'tolower', 'toupper',
+
+ //inttypes.h
+ 'imaxabs', 'imaxdiv', 'strtoimax', 'strtoumax', 'wcstoimax',
+ 'wcstoumax',
+
+ //locale.h
+ 'localeconv', 'setlocale',
+
+ //math.h
+ 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'exp',
+ 'fabs', 'floor', 'frexp', 'ldexp', 'log', 'log10', 'modf', 'pow',
+ 'sin', 'sinh', 'sqrt', 'tan', 'tanh',
+
+ //setjmp.h
+ 'longjmp', 'setjmp',
+
+ //signal.h
+ 'raise',
+
+ //stdarg.h
+ 'va_arg', 'va_copy', 'va_end', 'va_start',
+
+ //stddef.h
+ 'offsetof',
+
+ //stdio.h
+ 'clearerr', 'fclose', 'fdopen', 'feof', 'ferror', 'fflush', 'fgetc',
+ 'fgetpos', 'fgets', 'fopen', 'fprintf', 'fputc', 'fputchar',
+ 'fputs', 'fread', 'freopen', 'fscanf', 'fseek', 'fsetpos', 'ftell',
+ 'fwrite', 'getc', 'getch', 'getchar', 'gets', 'perror', 'printf',
+ 'putc', 'putchar', 'puts', 'remove', 'rename', 'rewind', 'scanf',
+ 'setbuf', 'setvbuf', 'snprintf', 'sprintf', 'sscanf', 'tmpfile',
+ 'tmpnam', 'ungetc', 'vfprintf', 'vfscanf', 'vprintf', 'vscanf',
+ 'vsprintf', 'vsscanf',
+
+ //stdlib.h
+ 'abort', 'abs', 'atexit', 'atof', 'atoi', 'atol', 'bsearch',
+ 'calloc', 'div', 'exit', 'free', 'getenv', 'itoa', 'labs', 'ldiv',
+ 'ltoa', 'malloc', 'qsort', 'rand', 'realloc', 'srand', 'strtod',
+ 'strtol', 'strtoul', 'system',
+
+ //string.h
+ 'memchr', 'memcmp', 'memcpy', 'memmove', 'memset', 'strcat',
+ 'strchr', 'strcmp', 'strcoll', 'strcpy', 'strcspn', 'strerror',
+ 'strlen', 'strncat', 'strncmp', 'strncpy', 'strpbrk', 'strrchr',
+ 'strspn', 'strstr', 'strtok', 'strxfrm',
+
+ //time.h
+ 'asctime', 'clock', 'ctime', 'difftime', 'gmtime', 'localtime',
+ 'mktime', 'strftime', 'time',
+
+ //wchar.h
+ 'btowc', 'fgetwc', 'fgetws', 'fputwc', 'fputws', 'fwide',
+ 'fwprintf', 'fwscanf', 'getwc', 'getwchar', 'mbrlen', 'mbrtowc',
+ 'mbsinit', 'mbsrtowcs', 'putwc', 'putwchar', 'swprintf', 'swscanf',
+ 'ungetwc', 'vfwprintf', 'vswprintf', 'vwprintf', 'wcrtomb',
+ 'wcscat', 'wcschr', 'wcscmp', 'wcscoll', 'wcscpy', 'wcscspn',
+ 'wcsftime', 'wcslen', 'wcsncat', 'wcsncmp', 'wcsncpy', 'wcspbrk',
+ 'wcsrchr', 'wcsrtombs', 'wcsspn', 'wcsstr', 'wcstod', 'wcstok',
+ 'wcstol', 'wcstoul', 'wcsxfrm', 'wctob', 'wmemchr', 'wmemcmp',
+ 'wmemcpy', 'wmemmove', 'wmemset', 'wprintf', 'wscanf',
+
+ //wctype.h
+ 'iswalnum', 'iswalpha', 'iswcntrl', 'iswctype', 'iswdigit',
+ 'iswgraph', 'iswlower', 'iswprint', 'iswpunct', 'iswspace',
+ 'iswupper', 'iswxdigit', 'towctrans', 'towlower', 'towupper',
+ 'wctrans', 'wctype'
+ ),
+ 4 => array(
+ 'auto', 'char', 'const', 'double', 'float', 'int', 'long',
+ 'register', 'short', 'signed', 'sizeof', 'static', 'struct',
+ 'typedef', 'union', 'unsigned', 'void', 'volatile', 'wchar_t',
+
+ 'int8', 'int16', 'int32', 'int64',
+ 'uint8', 'uint16', 'uint32', 'uint64',
+
+ 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t',
+ 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
+
+ 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t',
+ 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t',
+
+ 'int8_t', 'int16_t', 'int32_t', 'int64_t',
+ 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t',
+
+ 'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t',
+ 'size_t', 'off_t',
+
+ 'upc_lock_t', 'shared', 'strict', 'relaxed', 'upc_blocksizeof',
+ 'upc_localsizeof', 'upc_elemsizeof'
+ ),
+ ),
+ 'SYMBOLS' => array(
+ '(', ')', '{', '}', '[', ']',
+ '+', '-', '*', '/', '%',
+ '=', '<', '>',
+ '!', '^', '&', '|',
+ '?', ':',
+ ';', ','
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false,
+ 1 => true,
+ 2 => true,
+ 3 => true,
+ 4 => true,
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color: #b1b100;',
+ 2 => 'color: #000000; font-weight: bold;',
+ 3 => 'color: #000066;',
+ 4 => 'color: #993333;'
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #666666; font-style: italic;',
+ 2 => 'color: #339933;',
+ 'MULTI' => 'color: #808080; font-style: italic;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #000099; font-weight: bold;',
+ 1 => 'color: #000099; font-weight: bold;',
+ 2 => 'color: #660099; font-weight: bold;',
+ 3 => 'color: #660099; font-weight: bold;',
+ 4 => 'color: #660099; font-weight: bold;',
+ 5 => 'color: #006699; font-weight: bold;',
+ 'HARD' => '',
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #009900;'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #ff0000;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #0000dd;',
+ GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
+ GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
+ GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
+ GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
+ GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
+ GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
+ GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
+ ),
+ 'METHODS' => array(
+ 1 => 'color: #202020;',
+ 2 => 'color: #202020;'
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color: #339933;'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'SCRIPT' => array(
+ )
+ ),
+ 'URLS' => array(
+ 1 => '',
+ 2 => '',
+ 3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAMEL}.html',
+ 4 => ''
+ ),
+ 'OOLANG' => true,
+ 'OBJECT_SPLITTERS' => array(
+ 1 => '.',
+ 2 => '::'
+ ),
+ 'REGEXPS' => array(
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ ),
+ 'TAB_WIDTH' => 4
+);
+
+?> \ No newline at end of file
diff --git a/inc/geshi/urbi.php b/inc/geshi/urbi.php
new file mode 100644
index 000000000..a7353ea8b
--- /dev/null
+++ b/inc/geshi/urbi.php
@@ -0,0 +1,200 @@
+<?php
+/*************************************************************************************
+ * urbi.php
+ * -------
+ * Author: Alexandre Morgand (morgand.alexandre@gmail.com)
+ * Copyright: (c) 2011 Morgand (http://gostai.com)
+ * Release Version: 1.0.8.11
+ * Date Started: 2011/09/10
+ *
+ * Urbi language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+ 'LANG_NAME' => 'Urbi',
+ 'COMMENT_SINGLE' => array(1 => '//'),
+ 'COMMENT_MULTI' => array('/*' => '*/'),
+ 'COMMENT_REGEXP' => array(
+ //Multiline-continued single-line comments
+ 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
+ //Multiline-continued preprocessor define
+ 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m',
+ // Urbi warning.
+ 3 => "#\[[0-9a-f]{8}:warning\].*#",
+ // Urbi message from echo.
+ 4 => '#\[[0-9a-f]{8}\] \*\*\*.*#',
+ // Urbi error message.
+ 6 => '#\[[0-9a-f]{8}:error\].*#',
+ // Urbi system message.
+ 5 => '#\[00.*\].*#',
+ // Nested comment. Max depth 4.
+ 7 => '#\/\*(.|\n)*\/\*(.|\n)*\*\/(.|\n)*\*\/#',
+ ),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array(
+ 0 => '"',
+ 1 => '\'',
+ ),
+ // For Urbi, disable escape char is better.
+ 'ESCAPE_CHAR' => '\\',
+ 'ESCAPE_REGEXP' => array(
+ //Simple Single Char Escapes
+ 1 => "#\\\\[abfnrtv\\\'\"?\n]#",
+ //Hexadecimal Char Specs
+ 2 => "#\\\\x[\da-fA-F]{2}#",
+ //Hexadecimal Char Specs
+ 3 => "#\\\\u[\da-fA-F]{4}#",
+ //Hexadecimal Char Specs
+ 4 => "#\\\\U[\da-fA-F]{8}#",
+ //Octal Char Specs
+ 5 => "#\\\\[0-7]{1,3}#",
+ ),
+ 'NUMBERS' =>
+ GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
+ GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
+ GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
+ 'KEYWORDS' => array(
+ // Condition keywords.
+ 1 => array(
+ 'at', 'at;', 'at|', 'at&', 'at,', 'break', 'call', 'case', 'catch', 'continue',
+ 'do', 'else', 'every', 'every&', 'every,', 'every;', 'every|', 'for', 'for&',
+ 'for,', 'for;', 'foreach', 'for|', 'freezeif', 'goto', 'if', 'in', 'loop',
+ 'loop&', 'loop,', 'loop;', 'loop|', 'or_eq', 'stopif', 'switch', 'try',
+ 'waituntil', 'when', 'whenever', 'while', 'while&', 'while,', 'while;',
+ 'while|', 'throw', 'onleave', 'watch', 'return', 'and_eq', 'default', 'finally',
+ 'timeout', 'xor_eq'
+ ),
+ // Type.
+ 2 => array(
+ 'virtual', 'using', 'namespace', 'inline', 'protected', 'private', 'public',
+ 'typename', 'typeid', 'class', 'const_cast', 'dynamic_cast', 'friend',
+ 'template', 'enum', 'static_cast', 'reinterpret_cast', 'mutable', 'explicit'
+ ),
+ // Standard function.
+ 3 => array(
+ 'this', 'sizeof', 'delete', 'assert', 'isdef', 'compl', 'detach',
+ 'disown', '__HERE__', 'asm'
+ ),
+ // Type.
+ 4 => array(
+ 'char', 'const', 'double', 'int', 'long', 'typedef', 'union',
+ 'unsigned', 'var', 'short', 'wchar_t', 'volatile', 'signed', 'bool',
+ 'float', 'struct', 'auto', 'register', 'static', 'extern', 'function',
+ 'export', 'external', 'internal', 'closure', 'BIN'
+ ),
+ ),
+ 'SYMBOLS' => array(
+ 0 => array('(', ')', '{', '}', '[', ']'),
+ 1 => array('<', '>','=', '!=', '==', '==='),
+ 2 => array('+', '-', '*', '/', '%', 'bitand', 'bitor', 'xor'),
+ 3 => array('!', '^', '&', '|'),
+ 4 => array('?', ':', ';')
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false,
+ 1 => true,
+ 2 => true,
+ 3 => true,
+ 4 => true,
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color: #0000ff;',
+ 2 => 'color: #0000ff;',
+ 3 => 'color: #0000dd;',
+ 4 => 'color: #0000ff;'
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #666666;',
+ 2 => 'color: #339900;',
+ 3 => 'color: #d46b0f;',
+ 4 => 'color: #20b537;',
+ 5 => 'color: #73776f;',
+ 6 => 'color: #a71616;',
+ 7 => 'color: #666666;',
+ 'MULTI' => 'color: #666666; font-style: italic;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #ff0000;',
+ 1 => 'color: #ff0000;',
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #7a0874; font-weight: bold;'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #ff0000;',
+ 1 => 'color: #007788;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #0000dd;'
+ ),
+ 'METHODS' => array(
+ 1 => 'color: #007788;',
+ 2 => 'color: #007788;'
+ ),
+ 'SYMBOLS' => array(
+ 0 => 'color: #008000;',
+ 1 => 'color: #0000f8;',
+ 2 => 'color: #000040;',
+ 3 => 'color: #000040; font-weight: bold;',
+ 4 => 'color: #008080;'
+ ),
+ 'REGEXPS' => array(
+ 0 => 'color: #0000dd',
+ 1 => 'color: #0000dd;',
+ 2 => 'color: #0000dd;',
+ 3 => 'color: #0000dd;',
+ ),
+ 'SCRIPT' => array(
+ )
+ ),
+ 'URLS' => array(
+ 1 => '',
+ 2 => '',
+ 3 => '',
+ 4 => ''
+ ),
+ 'OOLANG' => true,
+ 'OBJECT_SPLITTERS' => array(
+ 1 => '.',
+ 2 => '::',
+ // FIXME: add -> splitter.
+ ),
+ 'REGEXPS' => array(
+ 0 => '0x[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])*',
+ 1 => '[0-9]([0-9_]*[0-9])*(e|E)(-|\+)?[0-9]([0-9_]*[0-9])*',
+ 2 => '[0-9]([0-9_]*[0-9])*(min|s|ms|h|d)',
+ 3 => '[0-9]+_([0-9_])*[0-9]',
+ ),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(
+ ),
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
+ ),
+ 'TAB_WIDTH' => 4,
+);
+
+?>
diff --git a/inc/geshi/uscript.php b/inc/geshi/uscript.php
index e06aa8ca7..58cdb8d9e 100644
--- a/inc/geshi/uscript.php
+++ b/inc/geshi/uscript.php
@@ -4,7 +4,7 @@
* ---------------------------------
* Author: pospi (pospi@spadgos.com)
* Copyright: (c) 2007 pospi (http://pospi.spadgos.com)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/05/21
*
* UnrealScript language file for GeSHi.
diff --git a/inc/geshi/vala.php b/inc/geshi/vala.php
index a9d6b0745..acac57e2a 100644
--- a/inc/geshi/vala.php
+++ b/inc/geshi/vala.php
@@ -4,7 +4,7 @@
* ----------
* Author: Nicolas Joseph (nicolas.joseph@valaide.org)
* Copyright: (c) 2009 Nicolas Joseph
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/04/29
*
* Vala language file for GeSHi.
diff --git a/inc/geshi/vb.php b/inc/geshi/vb.php
index dd6545eb5..528e7cd45 100644
--- a/inc/geshi/vb.php
+++ b/inc/geshi/vb.php
@@ -5,7 +5,7 @@
* Author: Roberto Rossi (rsoftware@altervista.org)
* Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org),
* Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/08/30
*
* Visual Basic language file for GeSHi.
diff --git a/inc/geshi/vbnet.php b/inc/geshi/vbnet.php
index 563bb993a..758df9893 100644
--- a/inc/geshi/vbnet.php
+++ b/inc/geshi/vbnet.php
@@ -4,7 +4,7 @@
* ---------
* Author: Alan Juden (alan@judenware.org)
* Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/06/04
*
* VB.NET language file for GeSHi.
@@ -45,60 +45,46 @@ $language_data = array (
'QUOTEMARKS' => array('"'),
'ESCAPE_CHAR' => '',
'KEYWORDS' => array(
+ //Keywords
1 => array(
- '3DDKSHADOW', '3DHIGHLIGHT', '3DLIGHT', 'ABORT', 'ABORTRETRYIGNORE', 'ACTIVEBORDER',
- 'ACTIVETITLEBAR', 'ALIAS', 'APPLICATIONMODAL', 'APPLICATIONWORKSPACE', 'ARCHIVE',
- 'BACK', 'BINARYCOMPARE', 'BLACK', 'BLUE', 'BUTTONFACE', 'BUTTONSHADOW', 'BUTTONTEXT',
- 'CANCEL', 'CDROM', 'CR', 'CRITICAL', 'CRLF', 'CYAN', 'DEFAULT', 'DEFAULTBUTTON1',
- 'DEFAULTBUTTON2', 'DEFAULTBUTTON3', 'DESKTOP', 'DIRECTORY', 'EXCLAMATION', 'FALSE',
- 'FIXED', 'FORAPPENDING', 'FORMFEED', 'FORREADING', 'FORWRITING', 'FROMUNICODE',
- 'GRAYTEXT', 'GREEN', 'HIDDEN', 'HIDE', 'HIGHLIGHT', 'HIGHLIGHTTEXT', 'HIRAGANA',
- 'IGNORE', 'INACTIVEBORDER', 'INACTIVECAPTIONTEXT', 'INACTIVETITLEBAR', 'INFOBACKGROUND',
- 'INFORMATION', 'INFOTEXT', 'KATAKANALF', 'LOWERCASE', 'MAGENTA', 'MAXIMIZEDFOCUS',
- 'MENUBAR', 'MENUTEXT', 'METHOD', 'MINIMIZEDFOCUS', 'MINIMIZEDNOFOCUS', 'MSGBOXRIGHT',
- 'MSGBOXRTLREADING', 'MSGBOXSETFOREGROUND', 'NARROW', 'NEWLINE', 'NO', 'NORMAL',
- 'NORMALFOCUS', 'NORMALNOFOCUS', 'NULLSTRING', 'OBJECTERROR', 'OK', 'OKCANCEL', 'OKONLY',
- 'PROPERCASE', 'QUESTION', 'RAMDISK', 'READONLY', 'RED', 'REMOTE', 'REMOVABLE', 'RETRY',
- 'RETRYCANCEL', 'SCROLLBARS', 'SYSTEMFOLDER', 'SYSTEMMODAL', 'TEMPORARYFOLDER',
- 'TEXTCOMPARE', 'TITLEBARTEXT', 'TRUE', 'UNICODE', 'UNKNOWN', 'UPPERCASE', 'VERTICALTAB',
- 'VOLUME', 'WHITE', 'WIDE', 'WIN16', 'WIN32', 'WINDOWBACKGROUND', 'WINDOWFRAME',
- 'WINDOWSFOLDER', 'WINDOWTEXT', 'YELLOW', 'YES', 'YESNO', 'YESNOCANCEL'
- ),
+ 'AddHandler', 'AddressOf', 'Alias', 'And', 'AndAlso', 'As', 'ByRef', 'ByVal',
+ 'Call', 'Case', 'Catch', 'Char', 'Class', 'Const', 'Continue',
+ 'Declare', 'Default',
+ 'Delegate', 'Dim', 'DirectCast', 'Do', 'Each', 'Else', 'ElseIf', 'End', 'EndIf',
+ 'Enum', 'Erase', 'Error', 'Event', 'Exit', 'False', 'Finally', 'For', 'Friend', 'Function',
+ 'Get', 'GetType', 'GetXMLNamespace', 'Global', 'GoSub', 'GoTo', 'Handles', 'If', 'Implements',
+ 'Imports', 'In', 'Inherits', 'Interface', 'Is', 'IsNot', 'Let', 'Lib', 'Like', 'Loop', 'Me',
+ 'Mod', 'Module', 'Module Statement', 'MustInherit', 'MustOverride', 'MyBase', 'MyClass', 'Namespace',
+ 'Narrowing', 'New', 'Next', 'Not', 'Nothing', 'NotInheritable', 'NotOverridable', 'Of', 'On',
+ 'Operator', 'Option', 'Optional', 'Or', 'OrElse', 'Out', 'Overloads', 'Overridable', 'Overrides',
+ 'ParamArray', 'Partial', 'Private', 'Property', 'Protected', 'Public', 'RaiseEvent', 'ReadOnly', 'ReDim',
+ 'REM', 'RemoveHandler', 'Resume', 'Return', 'Select','Set', 'Shadows', 'Shared', 'Static', 'Step',
+ 'Stop', 'Structure', 'Sub', 'SyncLock', 'Then', 'Throw', 'To', 'True', 'Try', 'TryCast', 'TypeOf',
+ 'Using', 'Wend', 'When', 'While', 'Widening', 'With', 'WithEvents', 'WriteOnly', 'Xor'
+ ),
+ //Data Types
2 => array(
- 'AndAlso', 'As', 'ADDHANDLER', 'ASSEMBLY', 'AUTO', 'Binary', 'ByRef', 'ByVal', 'BEGINEPILOGUE',
- 'Else', 'ElseIf', 'Empty', 'Error', 'ENDPROLOGUE', 'EXTERNALSOURCE', 'ENVIRON', 'For',
- 'Friend', 'Func', 'GET', 'HANDLES', 'Input', 'Is', 'IsNot', 'Len', 'Lock', 'Me', 'Mid', 'MUSTINHERIT', 'MustOverride',
- 'MYBASE', 'MYCLASS', 'New', 'Next', 'Nothing', 'Null', 'NOTINHERITABLE',
- 'NOTOVERRIDABLE', 'Of', 'OFF', 'On', 'Option', 'Optional', 'Overloads', 'OVERRIDABLE', 'Overrides', 'ParamArray', 'Predicate',
- 'Print', 'Private', 'Property', 'Public', 'Resume', 'Return', 'Seek', 'Static', 'Step',
- 'String', 'SHELL', 'SENDKEYS', 'SET', 'Shared', 'Then', 'Time', 'To', 'THROW', 'WithEvents'
+ 'Boolean', 'Byte', 'Date', 'Decimal', 'Double', 'Integer', 'Long', 'Object',
+ 'SByte', 'Short', 'Single', 'String', 'UInteger', 'ULong', 'UShort'
),
+ //Compiler Directives
3 => array(
- 'COLLECTION', 'DEBUG', 'DICTIONARY', 'DRIVE', 'DRIVES', 'ERR', 'FILE', 'FILES',
- 'FILESYSTEMOBJECT', 'FOLDER', 'FOLDERS', 'TEXTSTREAM'
+ '#Const', '#Else', '#ElseIf', '#End', '#If'
),
+ //Constants
4 => array(
- 'BOOLEAN', 'BYTE', 'DATE', 'DECIMIAL', 'DOUBLE', 'INTEGER', 'LONG', 'OBJECT',
- 'SINGLE STRING'
+ 'CBool', 'CByte', 'CChar', 'CChr', 'CDate', 'CDbl', 'CDec','CInt', 'CLng', 'CLng8', 'CObj', 'CSByte', 'CShort',
+ 'CSng', 'CStr', 'CType', 'CUInt', 'CULng', 'CUShort'
),
+ //Linq
5 => array(
- 'ADDRESSOF', 'AND', 'BITAND', 'BITNOT', 'BITOR', 'BITXOR',
- 'GETTYPE', 'LIKE', 'MOD', 'NOT', 'ORXOR'
- ),
- 6 => array(
- 'APPACTIVATE', 'BEEP', 'CALL', 'CHDIR', 'CHDRIVE', 'CLASS', 'CASE', 'CATCH', 'CONST',
- 'DECLARE', 'DELEGATE', 'DELETESETTING', 'DIM', 'DO', 'DOEVENTS', 'END', 'ENUM',
- 'EVENT', 'EXIT', 'EACH', 'FUNCTION', 'FINALLY', 'IF', 'IMPORTS', 'INHERITS',
- 'INTERFACE', 'IMPLEMENTS', 'KILL', 'LOOP', 'NAMESPACE', 'OPEN', 'PUT',
- 'RAISEEVENT', 'RANDOMIZE', 'REDIM', 'REM', 'RESET', 'SAVESETTING', 'SELECT',
- 'SETATTR', 'STOP', 'SUB', 'SYNCLOCK', 'STRUCTURE', 'SHADOWS', 'SWITCH',
- 'TRY', 'WIDTH', 'WITH', 'WRITE', 'WHILE'
+ 'By','From','Group','Where'
),
+ //Built-in functions
7 => array(
- 'ABS', 'ARRAY', 'ASC', 'ASCB', 'ASCW', 'CALLBYNAME', 'CBOOL', 'CBYTE', 'CCHAR',
- 'CCHR', 'CDATE', 'CDBL', 'CDEC', 'CHOOSE', 'CHR', 'CHR$', 'CHRB', 'CHRB$', 'CHRW',
- 'CINT', 'CLNG', 'CLNG8', 'CLOSE', 'COBJ', 'COMMAND', 'COMMAND$', 'CONVERSION',
- 'COS', 'CREATEOBJECT', 'CSHORT', 'CSTR', 'CURDIR', 'CTYPE', 'CVDATE', 'DATEADD',
+ 'ABS', 'ARRAY', 'ASC', 'ASCB', 'ASCW', 'CALLBYNAME', 'CHOOSE', 'CHR', 'CHR$', 'CHRB', 'CHRB$', 'CHRW',
+ 'CLOSE', 'COMMAND', 'COMMAND$', 'CONVERSION',
+ 'COS', 'CREATEOBJECT', 'CURDIR', 'CVDATE', 'DATEADD',
'DATEDIFF', 'DATEPART', 'DATESERIAL', 'DATEVALUE', 'DAY', 'DDB', 'DIR', 'DIR$',
'EOF', 'ERROR$', 'EXP', 'FILEATTR', 'FILECOPY', 'FILEDATATIME', 'FILELEN', 'FILTER',
'FIX', 'FORMAT', 'FORMAT$', 'FORMATCURRENCY', 'FORMATDATETIME', 'FORMATNUMBER',
@@ -115,16 +101,10 @@ $language_data = array (
'TIMER', 'TIMESERIAL', 'TIMEVALUE', 'TODAY', 'TRIM', 'TRIM$', 'TYPENAME', 'UBOUND',
'UCASE', 'UCASE$', 'VAL', 'WEEKDAY', 'WEEKDAYNAME', 'YEAR'
),
- 8 => array(
- 'ANY', 'ATN', 'CALENDAR', 'CIRCLE', 'CURRENCY', 'DEFBOOL', 'DEFBYTE', 'DEFCUR',
- 'DEFDATE', 'DEFDBL', 'DEFDEC', 'DEFINT', 'DEFLNG', 'DEFOBJ', 'DEFSNG', 'DEFSTR',
- 'DEFVAR', 'EQV', 'GOSUB', 'IMP', 'INITIALIZE', 'ISMISSING', 'LET', 'LINE', 'LSET',
- 'RSET', 'SGN', 'SQR', 'TERMINATE', 'VARIANT', 'VARTYPE', 'WEND'
- ),
),
'SYMBOLS' => array(
- '&', '&=', '*', '*=', '+', '+=', '-', '-=', '//', '/', '/=', '=', '\\', '\\=',
- '^', '^='
+ '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!',
+ '(', ')', '{', '}', '.'
),
'CASE_SENSITIVE' => array(
GESHI_COMMENTS => false,
@@ -133,24 +113,20 @@ $language_data = array (
3 => false,
4 => false,
5 => false,
- 6 => false,
- 7 => false,
- 8 => false,
+ 7 => false
),
'STYLES' => array(
'KEYWORDS' => array(
- 1 => 'color: #0600FF;', //Constants
- 2 => 'color: #FF8000;', //Keywords
- 3 => 'color: #008000;', //Data Types
- 4 => 'color: #FF0000;', //Objects
- 5 => 'color: #804040;', //Operators
- 6 => 'color: #0600FF;', //Statements
- 7 => 'color: #0600FF;', //Functions
- 8 => 'color: #0600FF;' //Deprecated
+ 1 => 'color: #0000FF; font-weight: bold;', //Keywords
+ 2 => 'color: #6a5acd;', //primitive Data Types
+ 3 => 'color: #6a5acd; font-weight: bold;', //preprocessor-commands
+ 4 => 'color: #cd6a5a;', //Constants
+ 5 => 'color: #cd6a5a; font-weight: bold;', //LinQ
+ 7 => 'color: #000066;', //Built-in functions
),
'COMMENTS' => array(
- 1 => 'color: #008080; font-style: italic;',
- 'MULTI' => 'color: #008080; font-style: italic;'
+ 1 => 'color: #008000; font-style: italic;',
+ 'MULTI' => 'color: #008000; font-style: italic;'
),
'ESCAPE_CHAR' => array(
0 => 'color: #008080; font-weight: bold;'
@@ -159,16 +135,16 @@ $language_data = array (
0 => 'color: #000000;'
),
'STRINGS' => array(
- 0 => 'color: #808080;'
+ 0 => 'color: #a52a2a; back-color: #fffacd;'
),
'NUMBERS' => array(
- 0 => 'color: #FF0000;'
+ 0 => 'color: #a52a2a; back-color: #fffacd;'
),
'METHODS' => array(
- 1 => 'color: #0000FF;'
+ 1 => 'color: #000000;'
),
'SYMBOLS' => array(
- 0 => 'color: #008000;'
+ 0 => 'color: #000000;'
),
'REGEXPS' => array(
),
@@ -181,9 +157,7 @@ $language_data = array (
3 => 'http://www.google.com/search?q={FNAMEU}+site:msdn.microsoft.com',
4 => '',
5 => '',
- 6 => '',
- 7 => '',
- 8 => ''
+ 7 => 'http://www.google.com/search?q={FNAMEU}+site:msdn.microsoft.com'
),
'OOLANG' => true,
'OBJECT_SPLITTERS' => array(
@@ -195,6 +169,13 @@ $language_data = array (
'SCRIPT_DELIMITERS' => array(
),
'HIGHLIGHT_STRICT_BLOCK' => array(
+ ),
+ 'PARSER_CONTROL' => array(
+ 'KEYWORDS' => array(
+ 7 => array(
+ 'DISALLOWED_AFTER' => '(?!\w)(?=\s*\()'
+ )
+ )
)
);
diff --git a/inc/geshi/vedit.php b/inc/geshi/vedit.php
new file mode 100644
index 000000000..19b2bdb21
--- /dev/null
+++ b/inc/geshi/vedit.php
@@ -0,0 +1,103 @@
+<?php
+/*************************************************************************************
+ * vedit.php
+ * --------
+ * Author: Pauli Lindgren (pauli0212@yahoo.com)
+ * Copyright: (c) 2009 Pauli Lindgren (http://koti.mbnet.fi/pkl/)
+ * Release Version: 1.0.8.11
+ * Date Started: 2009/12/16
+ *
+ * Vedit macro language language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2009/12/16 (1.0.8.11)
+ * - First Release
+ *
+ * TODO (updated 2009/12/16)
+ * -------------------------
+ * - Add keyword groups 2, 3 and 4.
+ *
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array(
+ 'LANG_NAME' => 'Vedit macro language',
+ 'COMMENT_SINGLE' => array(1 => '//'),
+ 'COMMENT_MULTI' => array(),
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+ 'QUOTEMARKS' => array('"', '\''),
+ 'ESCAPE_CHAR' => '',
+ 'KEYWORDS' => array(
+ 1 => array(
+ 'break', 'breakout', 'break_out', 'continue', 'do', 'else', 'for',
+ 'goto', 'if', 'repeat', 'return', 'while'
+ )
+ ),
+ 'SYMBOLS' => array(
+ 1 => array(
+ '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%',
+ '=', '<', '>', '!', '^', '&', '|', '?', ':', ';', ','
+ )
+ ),
+ 'CASE_SENSITIVE' => array(
+ GESHI_COMMENTS => false,
+ 1 => false
+ ),
+ 'STYLES' => array(
+ 'KEYWORDS' => array(
+ 1 => 'color: #b1b100;'
+ ),
+ 'COMMENTS' => array(
+ 1 => 'color: #666666; font-style: italic;',
+ 'MULTI' => 'color: #666666; font-style: italic;'
+ ),
+ 'ESCAPE_CHAR' => array(
+ 0 => 'color: #000099; font-weight: bold;'
+ ),
+ 'BRACKETS' => array(
+ 0 => 'color: #009900;'
+ ),
+ 'STRINGS' => array(
+ 0 => 'color: #0000ff;'
+ ),
+ 'NUMBERS' => array(
+ 0 => 'color: #cc66cc;',
+ ),
+ 'METHODS' => array(
+ 0 => 'color: #004000;'
+ ),
+ 'SYMBOLS' => array(
+ 1 => 'color: #339933;'
+ ),
+ 'REGEXPS' => array(),
+ 'SCRIPT' => array()
+ ),
+ 'URLS' => array(1 => ''),
+ 'OOLANG' => false,
+ 'OBJECT_SPLITTERS' => array(),
+ 'REGEXPS' => array(),
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
+ 'SCRIPT_DELIMITERS' => array(),
+ 'HIGHLIGHT_STRICT_BLOCK' => array()
+);
+
+?> \ No newline at end of file
diff --git a/inc/geshi/verilog.php b/inc/geshi/verilog.php
index 9e4211eb9..2bf66d1c0 100644
--- a/inc/geshi/verilog.php
+++ b/inc/geshi/verilog.php
@@ -4,7 +4,7 @@
* -----------
* Author: G�nter Dannoritzer <dannoritzer@web.de>
* Copyright: (C) 2008 Guenter Dannoritzer
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/05/28
*
* Verilog language file for GeSHi.
@@ -53,7 +53,7 @@ $language_data = array (
'casex', 'casez', 'cmos', 'deassign', 'default', 'defparam',
'disable', 'edge', 'else', 'end', 'endcase', 'endfunction',
'endmodule', 'endprimitive', 'endspecify', 'endtable', 'endtask',
- 'event', 'for', 'force', 'forever', 'function', 'highz0',
+ 'event', 'fork', 'for', 'force', 'forever', 'function', 'highz0',
'highz1', 'if', 'ifnone', 'initial', 'inout', 'input', 'integer',
'join', 'large', 'macromodule', 'medium', 'module', 'nand',
'negedge', 'nmos', 'nor', 'not', 'notif0', 'notif1', 'or',
diff --git a/inc/geshi/vhdl.php b/inc/geshi/vhdl.php
index f6ce941d4..a8f37e676 100644
--- a/inc/geshi/vhdl.php
+++ b/inc/geshi/vhdl.php
@@ -3,14 +3,21 @@
* vhdl.php
* --------
* Author: Alexander 'E-Razor' Krause (admin@erazor-zone.de)
+ * Contributors:
+ * - Kevin Thibedeau (kevinpt@yahoo.com)
* Copyright: (c) 2005 Alexander Krause
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/06/15
*
* VHDL (VHSICADL, very high speed integrated circuit HDL) language file for GeSHi.
*
* CHANGES
* -------
+ * 2012/4/30 (1.0.8.10)
+ * - Reworked to support new features of VHDL-2008.
+ * - Changes include: multi-line comments, all new keywords, PSL keywords and metacomments,
+ * - based literals, attribute highlighting, preprocessor macros (from PSL), and other small
+ * - improvements.
* 2008/05/23 (1.0.7.22)
* - Added description of extra language features (SF#1970248)
* - Optimized regexp group 0 somewhat
@@ -43,56 +50,80 @@
$language_data = array (
'LANG_NAME' => 'VHDL',
'COMMENT_SINGLE' => array(1 => '--'),
- 'COMMENT_MULTI' => array('%' => '%'),
+ 'COMMENT_MULTI' => array('/*' => '*/'),
+ 'COMMENT_REGEXP' => array(
+ // PSL adds C-preprocessor support
+ 1 => '/(?<=\s)#(?:\\\\\\\\|\\\\\\n|.)*$/m',
+ // PSL metacomments (single-line only for now)
+ 2 => '/--\s*@?psl(?:.)*?;$/m',
+ ),
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
'QUOTEMARKS' => array('"'),
'ESCAPE_CHAR' => '',
'KEYWORDS' => array(
/*keywords*/
1 => array(
- 'access','after','alias','all','assert','attribute','architecture','begin',
- 'block','body','buffer','bus','case','component','configuration','constant',
- 'disconnect','downto','else','elsif','end','entity','exit','file','for',
+ 'access','after','alias','all','attribute','architecture','array','begin',
+ 'block','body','buffer','bus','case','case?','component','configuration','constant','context',
+ 'disconnect','downto','else','elsif','end','entity','exit','file','for','force',
'function','generate','generic','group','guarded','if','impure','in',
'inertial','inout','is','label','library','linkage','literal','loop',
'map','new','next','null','of','on','open','others','out','package',
- 'port','postponed','procedure','process','pure','range','record','register',
- 'reject','report','return','select','severity','signal','shared','subtype',
+ 'port','postponed','procedure','process','protected','pure','range','record','register',
+ 'reject','release','report','return','select','severity','shared','signal','subtype',
'then','to','transport','type','unaffected','units','until','use','variable',
- 'wait','when','while','with','note','warning','error','failure','and',
- 'or','xor','not','nor','used','memory','segments','dff','dffe','help_id',
- 'mod','info','latch','rising_edge','falling_edge'
- ),
- /*types*/
+ 'wait','when','while','with'
+ ),
+ /*types and standard libs*/
2 => array(
- 'bit','bit_vector','character','boolean','integer','real','time','string',
+ 'bit','bit_vector','character','boolean','integer','real','time','delay_length','string',
'severity_level','positive','natural','signed','unsigned','line','text',
- 'std_logic','std_logic_vector','std_ulogic','std_ulogic_vector','qsim_state',
- 'qsim_state_vector','qsim_12state','qsim_12state_vector','qsim_strength',
- 'mux_bit','mux_vector','reg_bit','reg_vector','wor_bit','wor_vector',
- 'work','ieee','std_logic_signed','std_logic_1164','std_logic_arith',
- 'numeric_std'
-
- ),
+ 'std_logic','std_logic_vector','std_ulogic','std_ulogic_vector',
+ 'sfixed','ufixed','float','float32','float64','float128',
+ 'work','ieee','std_logic_1164','math_real','math_complex','textio',
+ 'numeric_std','numeric_std_signed','numeric_std_unsigned','numeric_bit'
+ ),
/*operators*/
- ),
+ 3 => array(
+ 'abs','and','mod','nor','not','or','rem','rol','ror','sla','sll','sra','srl','xnor','xor'
+ ),
+ /*psl*/
+ 4 => array(
+ 'assert','assume','assume_guarantee','clock','const','countones','cover','default',
+ 'endpoint','fairness','fell','forall','inf','inherit','isunknown','onehot','onehot0','property',
+ 'prev','restrict','restrict_guarantee','rose','sequence','stable','strong','union','vmode','vprop','vunit'
+ ),
+ /*psl operators*/
+ 5 => array(
+ 'abort','always','before','before!','before!_','before_','eventually!','never',
+ 'next!','next_a','next_a!','next_e','next_e!','next_event','next_event!','next_event_a','next_event_a!',
+ 'next_event_e','next_event_e!','until!','until!_','until_','within'
+ )
+ ),
'SYMBOLS' => array(
'[', ']', '(', ')',
';',':',
- '<','>','=','<=',':=','=>','=='
+ '<','>','=','+','-','*','/','&','|','?'
),
'CASE_SENSITIVE' => array(
GESHI_COMMENTS => false,
1 => false,
- 2 => false
+ 2 => false,
+ 3 => false,
+ 4 => false,
+ 5 => false
),
'STYLES' => array(
'KEYWORDS' => array(
1 => 'color: #000080; font-weight: bold;',
- 2 => 'color: #0000ff;'
+ 2 => 'color: #0000ff;',
+ 3 => 'color: #000066;',
+ 4 => 'color: #000080; font-weight: bold;',
+ 5 => 'color: #000066;'
),
'COMMENTS' => array(
1 => 'color: #008000; font-style: italic;',
+ 2 => 'color: #ff0000; font-weight: bold;',
'MULTI' => 'color: #008000; font-style: italic;'
),
'ESCAPE_CHAR' => array(
@@ -114,25 +145,33 @@ $language_data = array (
),
'REGEXPS' => array(
0 => 'color: #ff0000;',
- 1 => 'color: #ff0000;'
+ //1 => 'color: #ff0000;',
+ 2 => 'color: #ee82ee;'
),
'SCRIPT' => array(
)
),
'URLS' => array(
1 => '',
- 2 => ''
- ),
+ 2 => '',
+ 3 => '',
+ 4 => '',
+ 5 => ''
+ ),
'OOLANG' => false,
'OBJECT_SPLITTERS' => array(
),
'REGEXPS' => array(
- //Hex numbers and scientific notation for numbers
- 0 => '(\b0x[0-9a-fA-F]+|\b\d[0-9a-fA-F]+[hH])|'.
- '(\b\d+?(\.\d+?)?E[+\-]?\d+)|(\bns)|'.
- "('[0-9a-zA-Z]+(?!'))",
- //Number characters?
- 1 => "\b(''\d'')"
+ //Based literals, scientific notation, and time units
+ 0 => '(\b\d+#[[:xdigit:]_]+#)|'.
+ '(\b[\d_]+(\.[\d_]+)?[eE][+\-]?[\d_]+)|'.
+ '(\b(hr|min|sec|ms|us|ns|ps|fs)\b)',
+ //Character literals
+ /* GeSHi won't match this pattern for some reason and QUOTEMARKS
+ * can't be used because it interferes with attribute parsing */
+ /*1 => "\b'.'\b",*/
+ //Attributes
+ 2 => "'\w+(?!')"
),
'STRICT_MODE_APPLIES' => GESHI_NEVER,
'SCRIPT_DELIMITERS' => array(
diff --git a/inc/geshi/vim.php b/inc/geshi/vim.php
index 68abc272e..fe7e5e006 100644
--- a/inc/geshi/vim.php
+++ b/inc/geshi/vim.php
@@ -6,7 +6,7 @@
* Contributors:
* - Laurent Peuch (psycojoker@gmail.com)
* Copyright: (c) 2008 Swaroop C H (http://www.swaroopch.com)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/10/19
*
* Vim scripting language file for GeSHi.
diff --git a/inc/geshi/visualfoxpro.php b/inc/geshi/visualfoxpro.php
index 322f34bae..123a3db41 100644
--- a/inc/geshi/visualfoxpro.php
+++ b/inc/geshi/visualfoxpro.php
@@ -4,7 +4,7 @@
* ----------------
* Author: Roberto Armellin (r.armellin@tin.it)
* Copyright: (c) 2004 Roberto Armellin, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/09/17
*
* Visual FoxPro language file for GeSHi.
diff --git a/inc/geshi/visualprolog.php b/inc/geshi/visualprolog.php
index a51466dcd..d36f1c67a 100644
--- a/inc/geshi/visualprolog.php
+++ b/inc/geshi/visualprolog.php
@@ -4,7 +4,7 @@
* ----------
* Author: Thomas Linder Puls (puls@pdc.dk)
* Copyright: (c) 2008 Thomas Linder Puls (puls@pdc.dk)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/11/20
*
* Visual Prolog language file for GeSHi.
diff --git a/inc/geshi/whitespace.php b/inc/geshi/whitespace.php
index 3e19b60ce..58f396376 100644
--- a/inc/geshi/whitespace.php
+++ b/inc/geshi/whitespace.php
@@ -4,7 +4,7 @@
* ----------
* Author: Benny Baumann (BenBE@geshi.org)
* Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2009/10/31
*
* Whitespace language file for GeSHi.
diff --git a/inc/geshi/whois.php b/inc/geshi/whois.php
index ae851cd08..a89e4731d 100644
--- a/inc/geshi/whois.php
+++ b/inc/geshi/whois.php
@@ -4,7 +4,7 @@
* --------
* Author: Benny Baumann (BenBE@geshi.org)
* Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/09/14
*
* Whois response (RPSL format) language file for GeSHi.
diff --git a/inc/geshi/winbatch.php b/inc/geshi/winbatch.php
index d27fe070f..3599a027c 100644
--- a/inc/geshi/winbatch.php
+++ b/inc/geshi/winbatch.php
@@ -4,7 +4,7 @@
* ------------
* Author: Craig Storey (storey.craig@gmail.com)
* Copyright: (c) 2004 Craig Storey (craig.xcottawa.ca)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2006/05/19
*
* WinBatch language file for GeSHi.
diff --git a/inc/geshi/xbasic.php b/inc/geshi/xbasic.php
index 94a2debf1..2edede364 100644
--- a/inc/geshi/xbasic.php
+++ b/inc/geshi/xbasic.php
@@ -4,7 +4,7 @@
* ----------
* Author: Jos Gabriel Moya Yangela (josemoya@gmail.com)
* Copyright: (c) 2005 Jos Gabriel Moya Yangela (http://aprenderadesaprender.6te.net)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2005/11/23
*
* XBasic language file for GeSHi.
diff --git a/inc/geshi/xml.php b/inc/geshi/xml.php
index 4a420d1b7..6354e457b 100644
--- a/inc/geshi/xml.php
+++ b/inc/geshi/xml.php
@@ -4,7 +4,7 @@
* -------
* Author: Nigel McNie (nigel@geshi.org)
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2004/09/01
*
* XML language file for GeSHi. Based on the idea/file by Christian Weiske
diff --git a/inc/geshi/xorg_conf.php b/inc/geshi/xorg_conf.php
index e1fff61b5..99edc6652 100644
--- a/inc/geshi/xorg_conf.php
+++ b/inc/geshi/xorg_conf.php
@@ -4,7 +4,7 @@
* ----------
* Author: Milian Wolff (mail@milianw.de)
* Copyright: (c) 2008 Milian Wolff (http://milianw.de)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2008/06/18
*
* xorg.conf language file for GeSHi.
diff --git a/inc/geshi/xpp.php b/inc/geshi/xpp.php
index d4d7b457d..a06e27794 100644
--- a/inc/geshi/xpp.php
+++ b/inc/geshi/xpp.php
@@ -4,7 +4,7 @@
* -------
* Author: Simon Butcher (simon@butcher.name)
* Copyright: (c) 2007 Simon Butcher (http://simon.butcher.name/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/02/27
*
* Axapta/Dynamics Ax X++ language file for GeSHi.
diff --git a/inc/geshi/yaml.php b/inc/geshi/yaml.php
index 1b3ce96f2..a2974eb57 100644
--- a/inc/geshi/yaml.php
+++ b/inc/geshi/yaml.php
@@ -4,7 +4,7 @@
* --------
* Author: Josh Ventura (JoshV10@gmail.com)
* Copyright: (c) 2010 Josh Ventura
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/12/14
*
* YAML language file for GeSHi.
diff --git a/inc/geshi/z80.php b/inc/geshi/z80.php
index cb92e9692..47326bb21 100644
--- a/inc/geshi/z80.php
+++ b/inc/geshi/z80.php
@@ -4,7 +4,7 @@
* -------
* Author: Benny Baumann (BenBE@omorphia.de)
* Copyright: (c) 2007-2008 Benny Baumann (http://www.omorphia.de/)
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2007/02/06
*
* ZiLOG Z80 Assembler language file for GeSHi.
diff --git a/inc/geshi/zxbasic.php b/inc/geshi/zxbasic.php
index b32b8950a..b1de472b5 100644
--- a/inc/geshi/zxbasic.php
+++ b/inc/geshi/zxbasic.php
@@ -4,7 +4,7 @@
* -------------
* Author: Jose Rodriguez (a.k.a. Boriel)
* Based on Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org) Freebasic template
- * Release Version: 1.0.8.10
+ * Release Version: 1.0.8.11
* Date Started: 2010/06/19
*
* ZXBasic language file for GeSHi.
diff --git a/inc/html.php b/inc/html.php
index 410b59e49..f4e6af663 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -13,6 +13,10 @@ if(!defined('NL')) define('NL',"\n");
* Convenience function to quickly build a wikilink
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @param string $id id of the target page
+ * @param string $name the name of the link, i.e. the text that is displayed
+ * @param string|array $search search string(s) that shall be highlighted in the target page
+ * @return string the HTML code of the link
*/
function html_wikilink($id,$name=null,$search=''){
static $xhtml_renderer = null;
@@ -121,7 +125,7 @@ function html_secedit_get_button($data) {
global $ID;
global $INFO;
- if (!isset($data['name']) || $data['name'] === '') return;
+ if (!isset($data['name']) || $data['name'] === '') return '';
$name = $data['name'];
unset($data['name']);
@@ -146,7 +150,6 @@ function html_secedit_get_button($data) {
function html_topbtn(){
global $lang;
- $ret = '';
$ret = '<a class="nolink" href="#dokuwiki__top"><input type="button" class="button" value="'.$lang['btn_top'].'" onclick="window.scrollTo(0, 0)" title="'.$lang['btn_top'].'" /></a>';
return $ret;
@@ -166,7 +169,6 @@ function html_btn($name,$id,$akey,$params,$method='get',$tooltip='',$label=false
$label = $lang['btn_'.$name];
$ret = '';
- $tip = '';
//filter id (without urlencoding)
$id = idfilter($id,false);
@@ -256,7 +258,6 @@ function html_draft(){
global $INFO;
global $ID;
global $lang;
- global $conf;
$draft = unserialize(io_readFile($INFO['draft'],false));
$text = cleanText(con($draft['prefix'],$draft['text'],$draft['suffix'],true));
@@ -312,9 +313,7 @@ function html_hilight_callback($m) {
* @author Andreas Gohr <andi@splitbrain.org>
*/
function html_search(){
- global $conf;
global $QUERY;
- global $ID;
global $lang;
$intro = p_locale_xhtml('searchpage');
@@ -328,15 +327,13 @@ function html_search(){
//show progressbar
print '<div id="dw__loading">'.NL;
- print '<script type="text/javascript"><!--//--><![CDATA[//><!--'.NL;
+ print '<script type="text/javascript">/*<![CDATA[*/'.NL;
print 'showLoadBar();'.NL;
- print '//--><!]]></script>'.NL;
+ print '/*!]]>*/</script>'.NL;
print '</div>'.NL;
flush();
//do quick pagesearch
- $data = array();
-
$data = ft_pageLookup($QUERY,true,useHeading('navigation'));
if(count($data)){
print '<div class="search_quickresult">';
@@ -390,9 +387,9 @@ function html_search(){
}
//hide progressbar
- print '<script type="text/javascript"><!--//--><![CDATA[//><!--'.NL;
+ print '<script type="text/javascript">/*<![CDATA[*/'.NL;
print 'hideLoadBar("dw__loading");'.NL;
- print '//--><!]]></script>'.NL;
+ print '/*!]]>*/</script>'.NL;
flush();
}
@@ -466,6 +463,9 @@ function html_revisions($first=0, $media_id = false){
if (!$media_id) $exists = $INFO['exists'];
else $exists = @file_exists(mediaFN($id));
+ $display_name = (!$media_id && useHeading('navigation')) ? hsc(p_get_first_heading($id)) : $id;
+ if (!$display_name) $display_name = $id;
+
if($exists && $first==0){
if (!$media_id && isset($INFO['meta']) && isset($INFO['meta']['last_change']) && $INFO['meta']['last_change']['type']===DOKU_CHANGE_TYPE_MINOR_EDIT)
$form->addElement(form_makeOpenTag('li', array('class' => 'minor')));
@@ -488,7 +488,7 @@ function html_revisions($first=0, $media_id = false){
$form->addElement(form_makeOpenTag('a', array(
'class' => 'wikilink1',
'href' => $href)));
- $form->addElement($id);
+ $form->addElement($display_name);
$form->addElement(form_makeCloseTag('a'));
if ($media_id) $form->addElement(form_makeOpenTag('div'));
@@ -563,11 +563,11 @@ function html_revisions($first=0, $media_id = false){
if (!$media_id) $href = wl($id,"rev=$rev",false,'&');
else $href = media_managerURL(array('image' => $id, 'tab_details' => 'view', 'rev' => $rev), '&');
$form->addElement(form_makeOpenTag('a', array('href' => $href, 'class' => 'wikilink1')));
- $form->addElement($id);
+ $form->addElement($display_name);
$form->addElement(form_makeCloseTag('a'));
}else{
$form->addElement('<img src="'.DOKU_BASE.'lib/images/blank.gif" width="15" height="11" alt="" />');
- $form->addElement($id);
+ $form->addElement($display_name);
}
if ($media_id) $form->addElement(form_makeOpenTag('div'));
@@ -716,6 +716,9 @@ function html_recent($first=0, $show_changes='both'){
$form->addElement($date);
$form->addElement(form_makeCloseTag('span'));
+ $diff = false;
+ $href = '';
+
if ($recent['media']) {
$diff = (count(getRevisions($recent['id'], 0, 1, 8192, true)) && @file_exists(mediaFN($recent['id'])));
if ($diff) {
@@ -825,7 +828,6 @@ function html_recent($first=0, $show_changes='both'){
function html_index($ns){
global $conf;
global $ID;
- $dir = $conf['datadir'];
$ns = cleanID($ns);
#fixme use appropriate function
if(empty($ns)){
@@ -861,7 +863,8 @@ function html_list_index($item){
$ret .= $base;
$ret .= '</strong></a>';
}else{
- $ret .= html_wikilink(':'.$item['id']);
+ // default is noNSorNS($id), but we want noNS($id) when useheading is off FS#2605
+ $ret .= html_wikilink(':'.$item['id'], useHeading('navigation') ? null : noNS($item['id']));
}
return $ret;
}
@@ -975,7 +978,6 @@ function html_buildlist($data,$class,$func,$lifunc='html_li_default',$forcewrapp
*/
function html_backlinks(){
global $ID;
- global $conf;
global $lang;
print p_locale_xhtml('backlinks');
@@ -995,6 +997,14 @@ function html_backlinks(){
}
}
+/**
+ * Get header of diff HTML
+ * @param string $l_rev Left revisions
+ * @param string $r_rev Right revision
+ * @param string $id Page id, if null $ID is used
+ * @param bool $media If it is for media files
+ * @return array HTML snippets for diff header
+ */
function html_diff_head($l_rev, $r_rev, $id = null, $media = false) {
global $lang;
if ($id === null) {
@@ -1070,13 +1080,13 @@ function html_diff_head($l_rev, $r_rev, $id = null, $media = false) {
*
* @author Andreas Gohr <andi@splitbrain.org>
* @param string $text - compare with this text with most current version
- * @param bool $intr - display the intro text
+ * @param bool $intro - display the intro text
+ * @param string $type type of the diff (inline or sidebyside)
*/
function html_diff($text='',$intro=true,$type=null){
global $ID;
global $REV;
global $lang;
- global $conf;
global $INPUT;
if(!$type) $type = $INPUT->str('difftype');
@@ -1114,7 +1124,7 @@ function html_diff($text='',$intro=true,$type=null){
$r_text = cleanText($text);
$r_head = $lang['yours'];
}else{
- if($rev1 && $rev2){ // two specific revisions wanted
+ if($rev1 && isset($rev2) && $rev2){ // two specific revisions wanted
// make sure order is correct (older on the left)
if($rev1 < $rev2){
$l_rev = $rev1;
@@ -1228,6 +1238,7 @@ function html_conflict($text,$summary){
*/
function html_msgarea(){
global $MSG, $MSG_shown;
+ /** @var array $MSG */
// store if the global $MSG has already been shown and thus HTML output has been started
$MSG_shown = true;
@@ -1254,7 +1265,6 @@ function html_msgarea(){
function html_register(){
global $lang;
global $conf;
- global $ID;
global $INPUT;
print p_locale_xhtml('register');
@@ -1287,8 +1297,8 @@ function html_updateprofile(){
global $lang;
global $conf;
global $INPUT;
- global $ID;
global $INFO;
+ /** @var auth_basic $auth */
global $auth;
print p_locale_xhtml('updateprofile');
@@ -1424,9 +1434,9 @@ function html_edit(){
if ($wr) {
// sets changed to true when previewed
- echo '<script type="text/javascript"><!--//--><![CDATA[//><!--'. NL;
+ echo '<script type="text/javascript">/*<![CDATA[*/'. NL;
echo 'textChanged = ' . ($mod ? 'true' : 'false');
- echo '//--><!]]></script>' . NL;
+ echo '/*!]]>*/</script>' . NL;
} ?>
<div class="editBox">
@@ -1487,6 +1497,7 @@ function html_minoredit(){
function html_debug(){
global $conf;
global $lang;
+ /** @var auth_basic $auth */
global $auth;
global $INFO;
@@ -1571,14 +1582,15 @@ function html_debug(){
function html_admin(){
global $ID;
global $INFO;
- global $lang;
global $conf;
+ /** @var auth_basic $auth */
global $auth;
// build menu of admin functions from the plugins that handle them
$pluginlist = plugin_list('admin');
$menu = array();
foreach ($pluginlist as $p) {
+ /** @var DokuWiki_Admin_Plugin $obj */
if($obj =& plugin_load('admin',$p) === null) continue;
// check permissions
@@ -1680,7 +1692,6 @@ function html_admin(){
function html_resendpwd() {
global $lang;
global $conf;
- global $ID;
global $INPUT;
$token = preg_replace('/[^a-f0-9]+/','',$INPUT->str('pwauth'));
@@ -1760,9 +1771,9 @@ function html_list_toc($item){
* @param string $text - what to display in the TOC
* @param int $level - nesting level
* @param string $hash - is prepended to the given $link, set blank if you want full links
+ * @return array the toc item
*/
function html_mktocitem($link, $text, $level, $hash='#'){
- global $conf;
return array( 'link' => $hash.$link,
'title' => $text,
'type' => 'ul',
@@ -1774,6 +1785,8 @@ function html_mktocitem($link, $text, $level, $hash='#'){
* Triggers an event with the form name: HTML_{$name}FORM_OUTPUT
*
* @author Tom N Harris <tnharris@whoopdedo.org>
+ * @param string $name The name of the form
+ * @param Doku_Form $form The form
*/
function html_form($name, &$form) {
// Safety check in case the caller forgets.
@@ -1784,6 +1797,7 @@ function html_form($name, &$form) {
/**
* Form print function.
* Just calls printForm() on the data object.
+ * @param Doku_Form $data The form
*/
function html_form_output($data) {
$data->printForm();
@@ -1866,6 +1880,12 @@ function html_flashobject($swf,$width,$height,$params=null,$flashvars=null,$atts
return $out;
}
+/**
+ * Prints HTML code for the given tab structure
+ *
+ * @param array $tabs tab structure
+ * @param string $current_tab the current tab id
+ */
function html_tabs($tabs, $current_tab = null) {
echo '<ul class="tabs">'.NL;
diff --git a/inc/httputils.php b/inc/httputils.php
index b815f3ca6..4ba287eb5 100644
--- a/inc/httputils.php
+++ b/inc/httputils.php
@@ -15,7 +15,7 @@ define('HTTP_CHUNK_SIZE',16*1024);
*
* @author Simon Willison <swillison@gmail.com>
* @link http://simonwillison.net/2003/Apr/23/conditionalGet/
- * @param timestamp $timestamp lastmodified time of the cache file
+ * @param int $timestamp lastmodified time of the cache file
* @returns void or exits with previously header() commands executed
*/
function http_conditionalRequest($timestamp){
diff --git a/inc/infoutils.php b/inc/infoutils.php
index 9ee1a717d..0dc7092ad 100644
--- a/inc/infoutils.php
+++ b/inc/infoutils.php
@@ -25,12 +25,12 @@ function checkUpdateMessages(){
// check if new messages needs to be fetched
if($lm < time()-(60*60*24) || $lm < @filemtime(DOKU_INC.DOKU_SCRIPT)){
+ @touch($cf);
dbglog("checkUpdatesMessages(): downloading messages.txt");
$http = new DokuHTTPClient();
- $http->timeout = 8;
+ $http->timeout = 12;
$data = $http->get(DOKU_MESSAGEURL.$updateVersion);
io_saveFile($cf,$data);
- @touch($cf);
}else{
dbglog("checkUpdatesMessages(): messages.txt up to date");
$data = io_readFile($cf);
@@ -176,6 +176,13 @@ function check(){
msg('mb_string extension not available - PHP only replacements will be used',0);
}
+ if (!preg_match("/^.$/u", "ñ")) {
+ msg('PHP is missing UTF-8 support in Perl-Compatible Regular Expressions (PCRE)', -1);
+ }
+ if (!preg_match("/^\pL$/u", "ñ")) {
+ msg('PHP is missing Unicode properties support in Perl-Compatible Regular Expressions (PCRE)', -1);
+ }
+
$loc = setlocale(LC_ALL, 0);
if(!$loc){
msg('No valid locale is set for your PHP setup. You should fix this',-1);
@@ -213,22 +220,6 @@ function check(){
msg('The current page is not writable by you',0);
}
- $check = wl('','',true).'data/_dummy';
- $http = new DokuHTTPClient();
- $http->timeout = 6;
- $res = $http->get($check);
- if(strpos($res,'data directory') !== false){
- msg('It seems like the data directory is accessible from the web.
- Make sure this directory is properly protected
- (See <a href="http://www.dokuwiki.org/security">security</a>)',-1);
- }elseif($http->status == 404 || $http->status == 403){
- msg('The data directory seems to be properly protected',1);
- }else{
- msg('Failed to check if the data directory is accessible from the web.
- Make sure this directory is properly protected
- (See <a href="http://www.dokuwiki.org/security">security</a>)',-1);
- }
-
// Check for corrupted search index
$lengths = idx_listIndexLengths();
$index_corrupted = false;
diff --git a/inc/init.php b/inc/init.php
index 00ab2afe9..9568d9b93 100644
--- a/inc/init.php
+++ b/inc/init.php
@@ -129,9 +129,13 @@ if(!defined('DOKU_TPLINC')) define('DOKU_TPLINC',
// enable gzip compression if supported
$conf['gzip_output'] &= (strpos($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip') !== false);
+global $ACT;
if ($conf['gzip_output'] &&
!defined('DOKU_DISABLE_GZIP_OUTPUT') &&
- function_exists('ob_gzhandler')) {
+ function_exists('ob_gzhandler') &&
+ // Disable compression when a (compressed) sitemap might be delivered
+ // See https://bugs.dokuwiki.org/index.php?do=details&task_id=2576
+ $ACT != 'sitemap') {
ob_start('ob_gzhandler');
}
@@ -162,7 +166,7 @@ if (get_magic_quotes_gpc() && !defined('MAGIC_QUOTES_STRIPPED')) {
@ini_set('magic_quotes_gpc', 0);
define('MAGIC_QUOTES_STRIPPED',1);
}
-@set_magic_quotes_runtime(0);
+if(function_exists('set_magic_quotes_runtime')) @set_magic_quotes_runtime(0);
@ini_set('magic_quotes_sybase',0);
// don't let cookies ever interfere with request vars
diff --git a/inc/io.php b/inc/io.php
index 4c6eb97df..b4da7d635 100644
--- a/inc/io.php
+++ b/inc/io.php
@@ -18,8 +18,8 @@ if(!defined('DOKU_INC')) die('meh.');
*
* @todo use safemode hack
* @param string $id - a pageid, the namespace of that id will be tried to deleted
- * @param string $basadir - the config name of the type to delete (datadir or mediadir usally)
- * @returns bool - true if at least one namespace was deleted
+ * @param string $basedir - the config name of the type to delete (datadir or mediadir usally)
+ * @return bool - true if at least one namespace was deleted
* @author Andreas Gohr <andi@splitbrain.org>
* @author Ben Coburn <btcoburn@silicodon.net>
*/
@@ -113,6 +113,7 @@ function io_readFile($file,$clean=true){
function bzfile($file){
$bz = bzopen($file,"r");
+ $str = '';
while (!feof($bz)){
//8192 seems to be the maximum buffersize?
$str = $str . bzread($bz,8192);
@@ -477,8 +478,8 @@ function io_download($url,$file,$useAttachment=false,$defaultName='',$maxSize=20
$data = $http->get($url);
if(!$data) return false;
+ $name = '';
if ($useAttachment) {
- $name = '';
if (isset($http->resp_headers['content-disposition'])) {
$content_disposition = $http->resp_headers['content-disposition'];
$match=array();
@@ -578,8 +579,8 @@ function io_exec($cmd, $input, &$output){
* @param string $file The file to search
* @param string $pattern PCRE pattern
* @param int $max How many lines to return (0 for all)
- * @param bool $baxkref When true returns array with backreferences instead of lines
- * @return matching lines or backref, false on error
+ * @param bool $backref When true returns array with backreferences instead of lines
+ * @return array matching lines or backref, false on error
*/
function io_grep($file,$pattern,$max=0,$backref=false){
$fh = @fopen($file,'r');
diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php
index 350e26695..8f34936f3 100644
--- a/inc/lang/ar/lang.php
+++ b/inc/lang/ar/lang.php
@@ -324,4 +324,3 @@ $lang['media_perm_read'] = 'عفوا، لست مخولا بقراءة ال
$lang['media_perm_upload'] = 'عفوا، لست مخولا برفع الملفات.';
$lang['media_update'] = 'ارفع إصدارا أحدث';
$lang['media_restore'] = 'استرجع هذه النسخة';
-$lang['plugin_install_err'] = 'ثبتت الإضافة بشكل خاطئ. أعد تسمية دليل الإضافة \'%s\' إلى \'%s\'.';
diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php
index 562dc78b3..3c6c17211 100644
--- a/inc/lang/bg/lang.php
+++ b/inc/lang/bg/lang.php
@@ -344,6 +344,4 @@ $lang['media_perm_upload'] = 'За съжаление нямате дост
$lang['media_update'] = 'Качване на нова версия';
$lang['media_restore'] = 'Възстановяване на тази версия';
-$lang['plugin_install_err'] = 'Неправилно инсталирана приставка. Моля, преименувайте директорията \'%s\' на \'%s\'.';
-
//Setup VIM: ex: et ts=2 :
diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php
index 608beafd8..a53da327a 100644
--- a/inc/lang/cs/lang.php
+++ b/inc/lang/cs/lang.php
@@ -47,6 +47,7 @@ $lang['btn_backtomedia'] = 'Zpět do Výběru dokumentu';
$lang['btn_subscribe'] = 'Odebírat emailem změny stránky';
$lang['btn_profile'] = 'Upravit profil';
$lang['btn_reset'] = 'Reset';
+$lang['btn_resendpwd'] = 'Nastavit nové heslo';
$lang['btn_draft'] = 'Upravit koncept';
$lang['btn_recover'] = 'Obnovit koncept';
$lang['btn_draftdel'] = 'Vymazat koncept';
@@ -83,6 +84,7 @@ $lang['profnoempty'] = 'Nelze zadat prázdné jméno nebo mailová adr
$lang['profchanged'] = 'Uživatelský profil změněn.';
$lang['pwdforget'] = 'Zapomněli jste heslo? Nechte si zaslat nové';
$lang['resendna'] = 'Tato wiki neumožňuje zasílání nových hesel.';
+$lang['resendpwd'] = 'Nastavit nové heslo pro';
$lang['resendpwdmissing'] = 'Musíte vyplnit všechny položky.';
$lang['resendpwdnouser'] = 'Bohužel takový uživatel v systému není.';
$lang['resendpwdbadauth'] = 'Autorizační kód není platný. Zadali jste opravdu celý odkaz na potvrzovací stránku?';
@@ -95,6 +97,7 @@ $lang['searchmedia_in'] = 'Hledat v %s';
$lang['txt_upload'] = 'Vyberte soubor jako přílohu';
$lang['txt_filename'] = 'Wiki jméno (volitelné)';
$lang['txt_overwrt'] = 'Přepsat existující soubor';
+$lang['maxuploadsize'] = 'Max. velikost souboru %s';
$lang['lockedby'] = 'Právě zamknuto:';
$lang['lockexpire'] = 'Zámek vyprší:';
$lang['js']['willexpire'] = 'Váš zámek pro editaci za chvíli vyprší.\nAbyste předešli konfliktům, stiskněte tlačítko Náhled a zámek se prodlouží.';
@@ -264,6 +267,7 @@ $lang['subscr_style_digest'] = 'souhrnný email změn pro každou stránku (ka
$lang['subscr_style_list'] = 'seznam změněných stránek od posledního emailu (každé %.2f dny/dní)';
$lang['authmodfailed'] = 'Autentizace uživatelů je špatně nastavena. Informujte prosím správce této wiki.';
$lang['authtempfail'] = 'Autentizace uživatelů je dočasně nedostupná. Pokud tento problém přetrvává, informujte prosím správce této wiki.';
+$lang['authpwdexpire'] = 'Platnost vašeho hesla vyprší za %d dní, měli byste ho změnit co nejdříve.';
$lang['i_chooselang'] = 'Vyberte si jazyk';
$lang['i_installer'] = 'Instalace DokuWiki';
$lang['i_wikiname'] = 'Název wiki';
@@ -318,4 +322,3 @@ $lang['media_perm_read'] = 'Bohužel, nemáte práva číst soubory.';
$lang['media_perm_upload'] = 'Bohužel, nemáte práva nahrávat soubory.';
$lang['media_update'] = 'Nahrát novou verzi';
$lang['media_restore'] = 'Obnovit tuto verzi';
-$lang['plugin_install_err'] = 'Plugin je špatně nainstalován. Přejmenujte adresář pluginu \'%s\' na \'%s\'.';
diff --git a/inc/lang/cs/mailwrap.html b/inc/lang/cs/mailwrap.html
new file mode 100644
index 000000000..dacd38d57
--- /dev/null
+++ b/inc/lang/cs/mailwrap.html
@@ -0,0 +1,13 @@
+<html>
+ <head>
+ <title>@TITLE@</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+
+ @HTMLBODY@
+
+ <br /><hr />
+ <small>Tento mail byl vygenerován systémem DokuWiki na adrese @DOKUWIKIURL@.</small>
+ </body>
+ </html> \ No newline at end of file
diff --git a/inc/lang/cs/resetpwd.txt b/inc/lang/cs/resetpwd.txt
new file mode 100644
index 000000000..9aa449cb6
--- /dev/null
+++ b/inc/lang/cs/resetpwd.txt
@@ -0,0 +1,3 @@
+====== Nastavení nového hesla ======
+
+Zadejte prosím nové heslo pro váš účet. \ No newline at end of file
diff --git a/inc/lang/da/lang.php b/inc/lang/da/lang.php
index 97f2138b4..ee8de1bb8 100644
--- a/inc/lang/da/lang.php
+++ b/inc/lang/da/lang.php
@@ -325,4 +325,3 @@ $lang['media_perm_read'] = 'Du har ikke nok rettigheder til at læse filer
$lang['media_perm_upload'] = 'Du har ikke nok rettigheder til at uploade filer.';
$lang['media_update'] = 'Upload ny version';
$lang['media_restore'] = 'Genskab denne version';
-$lang['plugin_install_err'] = 'Plugin installeret forkert. Omdøb plugin folder \'%s\' til \'%s\'.';
diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php
index 37469522f..0558a2a56 100644
--- a/inc/lang/de-informal/lang.php
+++ b/inc/lang/de-informal/lang.php
@@ -327,4 +327,3 @@ $lang['media_perm_read'] = 'Du besitzt nicht die notwendigen Berechtigunge
$lang['media_perm_upload'] = 'Du besitzt nicht die notwendigen Berechtigungen um Dateien hochzuladen.';
$lang['media_update'] = 'Neue Version hochladen';
$lang['media_restore'] = 'Diese Version wiederherstellen';
-$lang['plugin_install_err'] = 'Plugin nicht korrekt installiert. Plugin-Verzeichnis von \'%s\' nach \'%s\' umbenennen.';
diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php
index 4ea75157b..410022a3d 100644
--- a/inc/lang/de/lang.php
+++ b/inc/lang/de/lang.php
@@ -329,4 +329,3 @@ $lang['media_perm_read'] = 'Sie besitzen nicht die notwendigen Berechtigun
$lang['media_perm_upload'] = 'Sie besitzen nicht die notwendigen Berechtigungen um Dateien hochzuladen.';
$lang['media_update'] = 'Neue Version hochladen';
$lang['media_restore'] = 'Diese Version wiederherstellen';
-$lang['plugin_install_err'] = 'Plugin nicht korrekt installiert. Plugin-Verzeichnis von \'%s\' nach \'%s\' umbenennen.';
diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php
index 95f1a1ea5..443a5061d 100644
--- a/inc/lang/el/lang.php
+++ b/inc/lang/el/lang.php
@@ -306,4 +306,3 @@ $lang['media_perm_read'] = 'Συγνώμη, δεν έχετε επαρκή
$lang['media_perm_upload'] = 'Συγνώμη, δεν έχετε επαρκή διακαιώματα για να φορτώσετε αυτά τα αρχεία.';
$lang['media_update'] = 'Φόρτωση νέας έκδοσης';
$lang['media_restore'] = 'Επαναφορά αυτή της έκδοσης';
-$lang['plugin_install_err'] = 'Η επέκταση δεν εγκαταστήθηκε σωστά. Μετονομασία φακέλου επεκτάσεων από \'%s\' σε \'%s\'.';
diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php
index 3c51ba224..0e5a9ac3c 100644
--- a/inc/lang/en/lang.php
+++ b/inc/lang/en/lang.php
@@ -347,6 +347,4 @@ $lang['media_perm_upload'] = 'Sorry, you don\'t have enough rights to upload
$lang['media_update'] = 'Upload new version';
$lang['media_restore'] = 'Restore this version';
-$lang['plugin_install_err'] = "Plugin installed incorrectly. Rename plugin directory '%s' to '%s'.";
-
//Setup VIM: ex: et ts=2 :
diff --git a/inc/lang/en/preview.txt b/inc/lang/en/preview.txt
index 16c96c5d7..5ca69694d 100644
--- a/inc/lang/en/preview.txt
+++ b/inc/lang/en/preview.txt
@@ -1,4 +1,4 @@
====== Preview ======
-This is a preview of how your text will look like. Remember: It is **not saved** yet!
+This is a preview of what your text will look like. Remember: It is **not saved** yet!
diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php
index b2c64b2a6..5a0b0245f 100644
--- a/inc/lang/eo/lang.php
+++ b/inc/lang/eo/lang.php
@@ -95,6 +95,7 @@ $lang['searchmedia_in'] = 'Serĉi en %s';
$lang['txt_upload'] = 'Elektu dosieron por alŝuti';
$lang['txt_filename'] = 'Alŝuti kiel (laŭvole)';
$lang['txt_overwrt'] = 'Anstataŭigi ekzistantan dosieron';
+$lang['maxuploadsize'] = 'Alŝuto maks. %s po dosiero.';
$lang['lockedby'] = 'Nune ŝlosita de';
$lang['lockexpire'] = 'Ŝlosado ĉesos en';
$lang['js']['willexpire'] = 'Vi povos redakti ĉi tiun paĝon post unu minuto.\nSe vi volas nuligi tempokontrolon de la ŝlosado, premu la butonon "Antaŭrigardi".';
@@ -193,6 +194,7 @@ $lang['user_tools'] = 'Uzantaj iloj';
$lang['site_tools'] = 'Retejaj iloj';
$lang['page_tools'] = 'Paĝaj iloj';
$lang['skip_to_content'] = 'al la enhavo';
+$lang['sidebar'] = 'Flanka strio';
$lang['mail_newpage'] = 'paĝo aldonita:';
$lang['mail_changed'] = 'paĝo modifita:';
$lang['mail_subscribe_list'] = 'ŝanĝitaj paĝoj en nomspaco:';
@@ -263,6 +265,7 @@ $lang['subscr_style_digest'] = 'resuma retpoŝtaĵo de ŝanĝoj por ĉiu paĝo
$lang['subscr_style_list'] = 'listo de ŝanĝitaj paĝoj ekde la lasta retpoŝtaĵo (je %.2f tagoj)';
$lang['authmodfailed'] = 'Malbona agordo por identigi la uzanton. Bonvolu informi la administranton de la vikio.';
$lang['authtempfail'] = 'La identigo de via uzantonomo estas intertempe maldisponebla. Se tiu ĉi situacio daŭros, bonvolu informi la adminstranton de la vikio.';
+$lang['authpwdexpire'] = 'Via pasvorto malvalidos post %d tagoj, prefere ŝanĝu ĝin baldaũ.';
$lang['i_chooselang'] = 'Elektu vian lingvon';
$lang['i_installer'] = 'Instalilo de DokuWiki';
$lang['i_wikiname'] = 'Nomo de la vikio';
diff --git a/inc/lang/eo/mailwrap.html b/inc/lang/eo/mailwrap.html
new file mode 100644
index 000000000..9e92a00f7
--- /dev/null
+++ b/inc/lang/eo/mailwrap.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<title>@TITLE@</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
+
+@HTMLBODY@
+
+<br /><hr />
+<small>Tiu retpoŝtaĵo venas de DokuWiki ĉe @DOKUWIKIURL@.</small>
+</body>
+</html> \ No newline at end of file
diff --git a/inc/lang/eo/resetpwd.txt b/inc/lang/eo/resetpwd.txt
new file mode 100644
index 000000000..442a7ac4e
--- /dev/null
+++ b/inc/lang/eo/resetpwd.txt
@@ -0,0 +1,4 @@
+====== Difini novan pasvorton ======
+
+
+Bonvolu indiki novan pasvorton por via konto en tiu ĉi vikio. \ No newline at end of file
diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php
index ee3da258b..4c15877e3 100644
--- a/inc/lang/es/lang.php
+++ b/inc/lang/es/lang.php
@@ -26,6 +26,8 @@
* @author emezeta <emezeta@infoprimo.com>
* @author Oscar Ciudad <oscar@jacho.net>
* @author Ruben Figols <ruben.figols@gmail.com>
+ * @author Gerardo Zamudio <gerardo@gerardozamudio.net>
+ * @author Mercè López mercelz@gmail.com
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -56,11 +58,12 @@ $lang['btn_admin'] = 'Administrar';
$lang['btn_update'] = 'Actualizar';
$lang['btn_delete'] = 'Borrar';
$lang['btn_back'] = 'Atrás';
-$lang['btn_backlink'] = 'Enlaces anteriores';
+$lang['btn_backlink'] = 'Enlaces a esta página';
$lang['btn_backtomedia'] = 'Volver a la selección de archivos multimedia';
$lang['btn_subscribe'] = 'Suscribirse a cambios de la página';
$lang['btn_profile'] = 'Actualizar perfil';
$lang['btn_reset'] = 'Restablecer';
+$lang['btn_resendpwd'] = 'Establecer nueva contraseña';
$lang['btn_draft'] = 'Editar borrador';
$lang['btn_recover'] = 'Recuperar borrador';
$lang['btn_draftdel'] = 'Eliminar borrador';
@@ -97,6 +100,7 @@ $lang['profnoempty'] = 'No se permite que el nombre o la dirección de
$lang['profchanged'] = 'Se actualizó correctamente el perfil del usuario.';
$lang['pwdforget'] = '¿Has olvidado tu contraseña? Consigue una nueva';
$lang['resendna'] = 'Este wiki no brinda la posibilidad de reenvío de contraseña.';
+$lang['resendpwd'] = 'Establecer nueva contraseña para';
$lang['resendpwdmissing'] = 'Lo siento, debes completar todos los campos.';
$lang['resendpwdnouser'] = 'Lo siento, no se encuentra este usuario en nuestra base de datos.';
$lang['resendpwdbadauth'] = 'Lo siento, este código de autenticación no es válido. Asegúrate de haber usado el enlace de confirmación entero.';
@@ -109,6 +113,7 @@ $lang['searchmedia_in'] = 'Buscar en %s';
$lang['txt_upload'] = 'Selecciona el archivo a subir';
$lang['txt_filename'] = 'Subir como (opcional)';
$lang['txt_overwrt'] = 'Sobreescribir archivo existente';
+$lang['maxuploadsize'] = 'Peso máximo de %s por archivo';
$lang['lockedby'] = 'Actualmente bloqueado por';
$lang['lockexpire'] = 'El bloqueo expira en';
$lang['js']['willexpire'] = 'El bloqueo para la edición de esta página expira en un minuto.\nPAra prevenir conflictos uso el botón Previsualizar para restaurar el contador de bloqueo.';
@@ -203,6 +208,12 @@ $lang['external_edit'] = 'editor externo';
$lang['summary'] = 'Resumen de la edición';
$lang['noflash'] = 'Para mostrar este contenido es necesario el <a href="http://www.adobe.com/products/flashplayer/">Plugin Adobe Flash</a>.';
$lang['download'] = 'Descargar trozo de código fuente';
+$lang['tools'] = 'Herramientas';
+$lang['user_tools'] = 'Herramientas de usuario';
+$lang['site_tools'] = 'Herramientas del sitio';
+$lang['page_tools'] = 'Herramientas de la página';
+$lang['skip_to_content'] = 'Saltar a contenido';
+$lang['sidebar'] = 'Barra lateral';
$lang['mail_newpage'] = 'página añadida:';
$lang['mail_changed'] = 'página cambiada:';
$lang['mail_subscribe_list'] = 'páginas cambiadas en el espacio de nombre:';
@@ -273,6 +284,7 @@ $lang['subscr_style_digest'] = 'recopilar correo de cambios por cada página';
$lang['subscr_style_list'] = 'lista de páginas con cambios desde el último correo';
$lang['authmodfailed'] = 'Está mal configurada la autenticación de usuarios. Por favor, avisa al administrador del wiki.';
$lang['authtempfail'] = 'La autenticación de usuarios no está disponible temporalmente. Si esta situación persiste, por favor avisa al administrador del wiki.';
+$lang['authpwdexpire'] = 'Su contraseña caducara en %d días, debería cambiarla lo antes posible';
$lang['i_chooselang'] = 'Elija su idioma';
$lang['i_installer'] = 'Instalador de DokuWiki';
$lang['i_wikiname'] = 'Nombre del wiki';
@@ -327,4 +339,3 @@ $lang['media_perm_read'] = 'Disculpa, no tienes los permisos necesarios pa
$lang['media_perm_upload'] = 'Disculpa, no tienes los permisos necesarios para cargar ficheros.';
$lang['media_update'] = 'Actualizar nueva versión';
$lang['media_restore'] = 'Restaurar esta versión';
-$lang['plugin_install_err'] = 'Plugin instalado incorrectamente. Renombra el directorio de plugins \'%s\' to \'%s\'.';
diff --git a/inc/lang/es/mailwrap.html b/inc/lang/es/mailwrap.html
new file mode 100644
index 000000000..3cf255f79
--- /dev/null
+++ b/inc/lang/es/mailwrap.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<title>@TITLE@</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
+
+@HTMLBODY@
+
+<br /><hr />
+<small>Este correo ha sido generado por DokuWiki desde @DOKUWIKIURL@.</small>
+</body>
+</html> \ No newline at end of file
diff --git a/inc/lang/es/resetpwd.txt b/inc/lang/es/resetpwd.txt
new file mode 100644
index 000000000..6fade9598
--- /dev/null
+++ b/inc/lang/es/resetpwd.txt
@@ -0,0 +1,3 @@
+====== Establecer nueva contraseña ======
+
+Favor de introducir una nueva contraseña para su cuenta en este wiki \ No newline at end of file
diff --git a/inc/lang/es/subscr_single.txt b/inc/lang/es/subscr_single.txt
index e2a54c79f..abddeeb21 100644
--- a/inc/lang/es/subscr_single.txt
+++ b/inc/lang/es/subscr_single.txt
@@ -1,7 +1,7 @@
Hola!
La página @PAGE@ en @TITLE@ wiki ha cambiado.
-Estos son los cambioss:
+Estos son los cambios:
--------------------------------------------------------
@DIFF@
@@ -9,7 +9,7 @@ Estos son los cambioss:
Fecha : @DATE@
Usuario : @USER@
-Resúmen de edición: @SUMMARY@
+Resumen de edición: @SUMMARY@
Revisión Anterior: @OLDPAGE@
Nueva Revisión: @NEWPAGE@
diff --git a/inc/lang/eu/lang.php b/inc/lang/eu/lang.php
index f7a517fe4..59d9d86fb 100644
--- a/inc/lang/eu/lang.php
+++ b/inc/lang/eu/lang.php
@@ -5,6 +5,7 @@
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Xabi Ezpeleta <xezpeleta@mendikute.com>
* @author Inko Illarramendi <inko.i.a@gmail.com>
+ * @author Zigor Astarbe <astarbe@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -40,11 +41,14 @@ $lang['btn_backtomedia'] = 'Atzera Multimedia Fitxategiaren Aukeraketara';
$lang['btn_subscribe'] = 'Harpidetu Orri Aldaketetara';
$lang['btn_profile'] = 'Eguneratu Profila ';
$lang['btn_reset'] = 'Aldaketak Desegin';
+$lang['btn_resendpwd'] = 'Pasahitza berria ezarri';
$lang['btn_draft'] = 'Editatu zirriborroa';
$lang['btn_recover'] = 'Berreskuratu zirriborroa';
$lang['btn_draftdel'] = 'Ezabatu zirriborroa';
$lang['btn_revert'] = 'Berrezarri';
$lang['btn_register'] = 'Erregistratu';
+$lang['btn_apply'] = 'Baieztatu';
+$lang['btn_media'] = 'Media Kudeatzailea';
$lang['loggedinas'] = 'Erabiltzailea';
$lang['user'] = 'Erabiltzailea';
$lang['pass'] = 'Pasahitza';
@@ -74,6 +78,7 @@ $lang['profnoempty'] = 'Izen edota e-posta hutsa ez dago onartua.';
$lang['profchanged'] = 'Erabiltzaile profila arrakastaz eguneratua.';
$lang['pwdforget'] = 'Pasahitza ahaztu duzu? Eskuratu berri bat';
$lang['resendna'] = 'Wiki honek ez du pasahitz berbidalketa onartzen.';
+$lang['resendpwd'] = '-entzat pasahitza berria ezarri';
$lang['resendpwdmissing'] = 'Barkatu, eremu guztiak bete behar dituzu.';
$lang['resendpwdnouser'] = 'Barkatu, ez dugu erabiltzaile hori datu-basean aurkitzen';
$lang['resendpwdbadauth'] = 'Barkatu, kautotze kodea ez da baliozkoa. Ziurtatu baieztapen esteka osoa erabili duzula.';
@@ -88,7 +93,7 @@ $lang['txt_filename'] = 'Idatzi wikiname-a (aukerazkoa)';
$lang['txt_overwrt'] = 'Oraingo fitxategiaren gainean idatzi';
$lang['lockedby'] = 'Momentu honetan blokeatzen:';
$lang['lockexpire'] = 'Blokeaketa iraungitzen da:';
-$lang['js']['willexpire'] = 'Zure blokeaketa orri hau aldatzeko minutu batean iraungitzen da.\nGatazkak saihesteko, aurreikusi botoia erabili blokeaketa denboragailua berrabiarazteko.';
+$lang['js']['willexpire'] = 'Zure blokeaketa orri hau aldatzeko minutu batean iraungitzen da.\nGatazkak saihesteko, aurreikusi botoia erabili blokeaketa denboragailua berrabiarazteko.';
$lang['js']['notsavedyet'] = 'Gorde gabeko aldaketak galdu egingo dira.
Benetan jarraitu nahi duzu?';
$lang['js']['searchmedia'] = 'Bilatu fitxategiak';
@@ -120,6 +125,15 @@ Esteka kopiatu eta itsatsi dezakezu dena den.';
$lang['js']['linkwiz'] = 'Estekatze Laguntzailea';
$lang['js']['linkto'] = 'Estekatu hona:';
$lang['js']['del_confirm'] = 'Benetan ezabatu aukeratutako fitxategia(k)?';
+$lang['js']['restore_confirm'] = 'Benetan bertsio hau berrezarri?';
+$lang['js']['media_diff'] = 'Diferentziak ikusi:';
+$lang['js']['media_diff_both'] = 'Ondoz ondo';
+$lang['js']['media_select'] = 'Fitxategiak hautatu';
+$lang['js']['media_upload_btn'] = 'Igo';
+$lang['js']['media_done_btn'] = 'Egina';
+$lang['js']['media_drop'] = 'Fitxategiak igotzeko hona bota';
+$lang['js']['media_cancel'] = 'ezabatu';
+$lang['js']['media_overwrt'] = 'Dauden fitxategiak berridatzi';
$lang['rssfailed'] = 'Errorea gertatu da feed hau irakurtzean:';
$lang['nothingfound'] = 'Ez da ezer aurkitu.';
$lang['mediaselect'] = 'Aukeratu Multimedia fitxategia';
@@ -169,11 +183,21 @@ $lang['external_edit'] = 'kanpoko aldaketa';
$lang['summary'] = 'Aldatu laburpena';
$lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> beharrezkoa da eduki hau bistaratzeko.';
$lang['download'] = 'Deskarga Snippet-a';
+$lang['tools'] = 'Tresnak';
+$lang['user_tools'] = 'Erabiltzaile Tresnak';
+$lang['site_tools'] = 'Gune Tresnak';
+$lang['page_tools'] = 'Orri Tresnak';
+$lang['skip_to_content'] = 'edukira sahiestu';
+$lang['sidebar'] = 'Alboko-barra';
$lang['mail_newpage'] = '[DokuWiki] gehitutako orria:';
$lang['mail_changed'] = '[DokuWiki] aldatutako orria:';
$lang['mail_subscribe_list'] = 'izen-espazioan aldatutako orriak:';
$lang['mail_new_user'] = 'erabiltzaile berria:';
$lang['mail_upload'] = 'fitxategia igota:';
+$lang['changes_type'] = '-ren aldaketak ikusi';
+$lang['pages_changes'] = 'Orriak';
+$lang['media_changes'] = 'Media fitxategiak';
+$lang['both_changes'] = 'Bai orriak nahiz media fitxategiak';
$lang['qb_bold'] = 'Letra beltzez';
$lang['qb_italic'] = 'Letra italiarrez';
$lang['qb_underl'] = 'Azpimarratua';
@@ -214,6 +238,9 @@ $lang['img_copyr'] = 'Copyright';
$lang['img_format'] = 'Formatua';
$lang['img_camera'] = 'Kamera';
$lang['img_keywords'] = 'Hitz-gakoak';
+$lang['img_width'] = 'Zabalera';
+$lang['img_height'] = 'Altuera';
+$lang['img_manager'] = 'Media kudeatzailean ikusi';
$lang['subscr_subscribe_success'] = '%s gehitua %s-ren harpidetza zerrendara';
$lang['subscr_subscribe_error'] = 'Errorea %s gehitzen %s-ren harpidetza zerrendara';
$lang['subscr_subscribe_noaddress'] = 'Ez dago helbiderik zure login-arekin lotuta, ezin zara harpidetza zerrendara gehitua izan.';
@@ -232,6 +259,7 @@ $lang['subscr_style_digest'] = 'e-posta laburbildua orri bakoitzeko aldaketent
$lang['subscr_style_list'] = 'aldatutako orrien zerrenda azken e-postatik (%.2f egunero)';
$lang['authmodfailed'] = 'Erabiltzaile kautotzearen konfigurazioa okerra da. Mesedez, eman honen berri Wiki administratzaileari';
$lang['authtempfail'] = 'Erabiltzaile kautotzea denboraldi batez ez dago erabilgarri. Egoerak hala jarraitzen badu, mesedez, eman honen berri Wiki administratzaileari';
+$lang['authpwdexpire'] = 'Zure pasahitza %d egun barru iraungiko da, laster aldatu beharko zenuke.';
$lang['i_chooselang'] = 'Hautatu zure hizkuntza';
$lang['i_installer'] = 'DokuWiki instalatzailea';
$lang['i_wikiname'] = 'Wiki Izena';
@@ -263,3 +291,19 @@ $lang['hours'] = 'duela %d ordu';
$lang['minutes'] = 'duela %d minutu';
$lang['seconds'] = 'duela %d segundu';
$lang['wordblock'] = 'Zure aldaketa ez da aldatua izan blokeatutako testua (spam) daukalako.';
+$lang['media_uploadtab'] = 'Igo';
+$lang['media_searchtab'] = 'Bilatu';
+$lang['media_file'] = 'Fitxategia';
+$lang['media_viewtab'] = 'Begiratu';
+$lang['media_edittab'] = 'Editatu';
+$lang['media_historytab'] = 'Historia';
+$lang['media_sort_name'] = 'Izena';
+$lang['media_sort_date'] = 'Data';
+$lang['media_files'] = '%s -n fitxategiak';
+$lang['media_upload'] = 'Igo %s -ra';
+$lang['media_search'] = 'Bilatu %s -n';
+$lang['media_view'] = '%s';
+$lang['media_viewold'] = '%s -n %s';
+$lang['media_edit'] = '%s editatu';
+$lang['media_update'] = 'Bertsio berria igo';
+$lang['media_restore'] = 'Bertsio hau berrezarri';
diff --git a/inc/lang/eu/mailwrap.html b/inc/lang/eu/mailwrap.html
new file mode 100644
index 000000000..0cf92c28b
--- /dev/null
+++ b/inc/lang/eu/mailwrap.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<title>@TITLE@</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
+
+@HTMLBODY@
+
+<br /><hr />
+<small>Mezu elektroniko hau DokuWiki-k sortua da @DOKUWIKIURL@.</small>
+</body>
+</html> \ No newline at end of file
diff --git a/inc/lang/eu/resetpwd.txt b/inc/lang/eu/resetpwd.txt
new file mode 100644
index 000000000..9bb6e3ae8
--- /dev/null
+++ b/inc/lang/eu/resetpwd.txt
@@ -0,0 +1,3 @@
+ ====== Pasahitza berria ezarri ======
+
+Mesedez wiki honetako zure pasahitza berria sartu. \ No newline at end of file
diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php
index 1b8586d5a..fdcdeb1bc 100644
--- a/inc/lang/fa/lang.php
+++ b/inc/lang/fa/lang.php
@@ -13,6 +13,7 @@
* @author Omid Mottaghi <omidmr@gmail.com>
* @author Mohammad Reza Shoaei <shoaei@gmail.com>
* @author Milad DZand <M.DastanZand@gmail.com>
+ * @author AmirH Hassaneini <mytechmix@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'rtl';
@@ -198,6 +199,7 @@ $lang['user_tools'] = 'ابزار کاربر';
$lang['site_tools'] = 'ابزار سایت';
$lang['page_tools'] = 'ابزار صفحه';
$lang['skip_to_content'] = 'پرش به محتوا';
+$lang['sidebar'] = 'نوار کناری';
$lang['mail_newpage'] = 'صفحه اضافه شد:';
$lang['mail_changed'] = 'صفحه تغییر داده شد:';
$lang['mail_subscribe_list'] = 'صفحات تغییر داده شده در فضای‌نام';
@@ -323,4 +325,3 @@ $lang['media_perm_read'] = 'متاسفانه ، شما حق خواندن
$lang['media_perm_upload'] = 'متاسفانه ، شما حق آپلود این فایل ها را ندارید.';
$lang['media_update'] = 'آپلود نسخه جدید';
$lang['media_restore'] = 'بازیابی این نسخه';
-$lang['plugin_install_err'] = 'افزونه به صورت نادرست نصب شده است. دایرکتوری افزونه را از \'%s\' به \'%s\' تغییر دهید.';
diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php
index ce15f68d0..4f5f6f1a2 100644
--- a/inc/lang/fi/lang.php
+++ b/inc/lang/fi/lang.php
@@ -43,6 +43,7 @@ $lang['btn_backtomedia'] = 'Takaisin mediatiedostojen valintaan';
$lang['btn_subscribe'] = 'Tilaa muutokset';
$lang['btn_profile'] = 'Päivitä profiili';
$lang['btn_reset'] = 'Tyhjennä';
+$lang['btn_resendpwd'] = 'Aseta uusi salasana';
$lang['btn_draft'] = 'Muokkaa luonnosta';
$lang['btn_recover'] = 'Palauta luonnos';
$lang['btn_draftdel'] = 'Poista luonnos';
@@ -79,6 +80,7 @@ $lang['profnoempty'] = 'Tyhjä nimi tai sähköpostiosoite ei ole sall
$lang['profchanged'] = 'Käyttäjän profiilin päivitys onnistui.';
$lang['pwdforget'] = 'Unohtuiko salasana? Hanki uusi';
$lang['resendna'] = 'Tämä wiki ei tue salasanan uudelleenlähettämistä.';
+$lang['resendpwd'] = 'Aseta uusisalasana';
$lang['resendpwdmissing'] = 'Kaikki kentät on täytettävä.';
$lang['resendpwdnouser'] = 'Käyttäjää ei löydy tietokannastamme.';
$lang['resendpwdbadauth'] = 'Tunnistuskoodi on virheellinen. Varmista, että käytit koko varmistuslinkkiä.';
@@ -91,6 +93,7 @@ $lang['searchmedia_in'] = 'Etsi kohteesta %s';
$lang['txt_upload'] = 'Valitse tiedosto lähetettäväksi';
$lang['txt_filename'] = 'Lähetä nimellä (valinnainen)';
$lang['txt_overwrt'] = 'Ylikirjoita olemassa oleva';
+$lang['maxuploadsize'] = 'Palvelimelle siirto max. %s / tiedosto.';
$lang['lockedby'] = 'Tällä hetkellä tiedoston on lukinnut';
$lang['lockexpire'] = 'Lukitus päättyy';
$lang['js']['willexpire'] = 'Lukituksesi tämän sivun muokkaukseen päättyy minuutin kuluttua.\nRistiriitojen välttämiseksi paina esikatselu-nappia nollataksesi lukitusajan.';
@@ -185,6 +188,12 @@ $lang['external_edit'] = 'ulkoinen muokkaus';
$lang['summary'] = 'Yhteenveto muokkauksesta';
$lang['noflash'] = 'Tarvitset <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash-liitännäisen</a> nähdäksesi tämän sisällön.';
$lang['download'] = 'Lataa palanen';
+$lang['tools'] = 'Työkalut';
+$lang['user_tools'] = 'Käyttäjän työkalut';
+$lang['site_tools'] = 'Sivuston työkalut';
+$lang['page_tools'] = 'Sivutyökalut';
+$lang['skip_to_content'] = 'Siirry sisältöön';
+$lang['sidebar'] = 'Sivupalkki';
$lang['mail_newpage'] = 'sivu lisätty:';
$lang['mail_changed'] = 'sivu muutettu:';
$lang['mail_subscribe_list'] = 'muuttuneet sivut nimiavaruudessa:';
@@ -255,6 +264,7 @@ $lang['subscr_style_digest'] = 'yhteenveto-sähköposti joka sivusta (joka %.2
$lang['subscr_style_list'] = 'lista muuttuneista sivuista edellisen sähköpostin jälkeen (joka %.2f. päivä)';
$lang['authmodfailed'] = 'Käyttäjien autentikoinnin asetukset ovat virheelliset. Ilmoita asiasta wikin ylläpitäjälle.';
$lang['authtempfail'] = 'Käyttäjien autentikointi ei tällä hetkellä onnistu. Jos ongelma jatkuu, ota yhteyttä wikin ylläpitäjään.';
+$lang['authpwdexpire'] = 'Salasanasi vanhenee %d pv:n päästä, vaihda salasanasi pikaisesti.';
$lang['i_chooselang'] = 'Valitse kieli';
$lang['i_installer'] = 'DokuWikin asentaja';
$lang['i_wikiname'] = 'Wikin nimi';
@@ -309,4 +319,3 @@ $lang['media_perm_read'] = 'Anteeksi. Sinulla ei ole riittävästi oikeuks
$lang['media_perm_upload'] = 'Anteeksi. Sinulla ei ole riittävästi oikeuksia lähettääksesi tiedostoja.';
$lang['media_update'] = 'Lähetä uusi versio';
$lang['media_restore'] = 'Palauta tämä versio';
-$lang['plugin_install_err'] = 'Liitännäinen asentui virheellisesti. Nimeä liitännäisen hakemisto \'%s\' -> \'%s\'';
diff --git a/inc/lang/fi/mailwrap.html b/inc/lang/fi/mailwrap.html
new file mode 100644
index 000000000..6ff63c04e
--- /dev/null
+++ b/inc/lang/fi/mailwrap.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<title>@TITLE@</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
+
+@HTMLBODY@
+
+<br /><hr />
+<small>Tämä viesti on tehty DokuWiki:ssä @DOKUWIKIURL@.</small>
+</body>
+</html> \ No newline at end of file
diff --git a/inc/lang/fi/resetpwd.txt b/inc/lang/fi/resetpwd.txt
new file mode 100644
index 000000000..c6780949a
--- /dev/null
+++ b/inc/lang/fi/resetpwd.txt
@@ -0,0 +1,3 @@
+===== Aseta salasana =====
+
+Anna uusi salasanasi tässä wikissä. \ No newline at end of file
diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php
index a77be6965..c4080bc50 100644
--- a/inc/lang/fr/lang.php
+++ b/inc/lang/fr/lang.php
@@ -24,6 +24,7 @@
* @author schplurtz@laposte.net
* @author skimpax@gmail.com
* @author Yannick Aure <yannick.aure@gmail.com>
+ * @author Olivier DUVAL <zorky00@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -109,6 +110,7 @@ $lang['searchmedia_in'] = 'Chercher dans %s';
$lang['txt_upload'] = 'Sélectionnez un fichier à envoyer ';
$lang['txt_filename'] = 'Donnez un « wikiname » (optionnel) ';
$lang['txt_overwrt'] = 'Écraser le fichier cible';
+$lang['maxuploadsize'] = 'Téléverser max. %s par fichier';
$lang['lockedby'] = 'Actuellement bloqué par';
$lang['lockexpire'] = 'Le blocage expire à';
$lang['js']['willexpire'] = 'Votre verrouillage pour la modification de cette page expire dans une minute.\nPour éviter les conflits, utilisez le bouton « Aperçu » pour réinitialiser le minuteur.';
@@ -331,4 +333,3 @@ $lang['media_perm_read'] = 'Désolé, vous n\'avez pas les droits pour lir
$lang['media_perm_upload'] = 'Désolé, vous n\'avez pas les droits pour télécharger des fichiers.';
$lang['media_update'] = 'Télécharger une nouvelle version';
$lang['media_restore'] = 'Restaurer cette version';
-$lang['plugin_install_err'] = 'Extension mal installée. Renommez le dossier de l\'extension \'%s\' en \'%s\'.';
diff --git a/inc/lang/fr/mailtext.txt b/inc/lang/fr/mailtext.txt
index add3b2779..3c2d53292 100644
--- a/inc/lang/fr/mailtext.txt
+++ b/inc/lang/fr/mailtext.txt
@@ -7,7 +7,6 @@ Adresse IP : @IPADDRESS@
Nom d'hôte : @HOSTNAME@
Ancienne révision : @OLDPAGE@
Nouvelle révision : @NEWPAGE@
-Différences : @OLDPAGE@&do=diff
Résumé : @SUMMARY@
Utilisateur : @USER@
diff --git a/inc/lang/fr/mailwrap.html b/inc/lang/fr/mailwrap.html
new file mode 100644
index 000000000..2b674196b
--- /dev/null
+++ b/inc/lang/fr/mailwrap.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<title>@TITLE@</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
+
+@HTMLBODY@
+
+<br /><hr />
+<small>Ce courriel a été automatiquement généré par DokuWiki à l'adresse @DOKUWIKIURL@.</small>
+</body>
+</html> \ No newline at end of file
diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php
index 9636d6c15..23bd9a741 100644
--- a/inc/lang/gl/lang.php
+++ b/inc/lang/gl/lang.php
@@ -310,4 +310,3 @@ $lang['media_perm_read'] = 'Sentímolo, non tes permisos suficientes para
$lang['media_perm_upload'] = 'Sentímolo, non tes permisos suficientes para subir arquivos.';
$lang['media_update'] = 'Subir nova versión';
$lang['media_restore'] = 'Restaurar esta versión';
-$lang['plugin_install_err'] = 'Extensión instalada correctamente. Re-nomea o directorio da extensión de \'%s\' a \'%s\'.';
diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php
index 70082caae..a415f2a2c 100644
--- a/inc/lang/it/lang.php
+++ b/inc/lang/it/lang.php
@@ -14,6 +14,7 @@
* @author Osman Tekin <osman.tekin93@hotmail.it>
* @author Jacopo Corbetta <jacopo.corbetta@gmail.com>
* @author Matteo Pasotti <matteo@xquiet.eu>
+ * @author snarchio@gmail.com
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -177,6 +178,7 @@ $lang['diff'] = 'differenze con la versione attuale';
$lang['diff2'] = 'differenze tra le versioni selezionate';
$lang['difflink'] = 'Link a questa pagina di confronto';
$lang['diff_type'] = 'Guarda le differenze:';
+$lang['diff_inline'] = 'In linea';
$lang['diff_side'] = 'Fianco a Fianco';
$lang['line'] = 'Linea';
$lang['breadcrumb'] = 'Traccia';
@@ -195,6 +197,7 @@ $lang['user_tools'] = 'Strumenti Utente';
$lang['site_tools'] = 'Strumenti Sito';
$lang['page_tools'] = 'Strumenti Pagina';
$lang['skip_to_content'] = 'salta al contenuto';
+$lang['sidebar'] = 'Barra laterale';
$lang['mail_newpage'] = 'pagina aggiunta:';
$lang['mail_changed'] = 'pagina modificata:';
$lang['mail_subscribe_list'] = 'pagine modificate nella categoria:';
@@ -298,20 +301,24 @@ $lang['hours'] = '%d ore fa';
$lang['minutes'] = '%d minuti fa';
$lang['seconds'] = '%d secondi fa';
$lang['wordblock'] = 'La modifica non è stata salvata perché contiene testo bloccato (spam).';
+$lang['media_uploadtab'] = 'Upload';
$lang['media_searchtab'] = 'Cerca';
+$lang['media_file'] = 'File';
$lang['media_viewtab'] = 'Guarda';
$lang['media_edittab'] = 'Modifica';
$lang['media_historytab'] = 'Storia';
+$lang['media_list_thumbs'] = 'Miniatura';
$lang['media_list_rows'] = 'Righe';
$lang['media_sort_name'] = 'Nome';
$lang['media_sort_date'] = 'Data';
$lang['media_namespaces'] = 'Scegli il namespace';
$lang['media_files'] = 'File in %s';
+$lang['media_upload'] = 'Upload al %s';
$lang['media_search'] = 'Cerca in %s';
+$lang['media_view'] = '%s';
$lang['media_edit'] = 'Modifica %s';
$lang['media_history'] = 'Storia di %s';
$lang['media_perm_read'] = 'Spiacente, non hai abbastanza privilegi per leggere i files.';
$lang['media_perm_upload'] = 'Spiacente, non hai abbastanza privilegi per caricare files.';
$lang['media_update'] = 'Carica nuova versione';
$lang['media_restore'] = 'Ripristina questa versione';
-$lang['plugin_install_err'] = 'Plugin installato non correttamente. Rinomino la cartella del plugin \'%s\' in \'%s\'.';
diff --git a/inc/lang/ja/lang.php b/inc/lang/ja/lang.php
index 490c84cc9..791ef9a6e 100644
--- a/inc/lang/ja/lang.php
+++ b/inc/lang/ja/lang.php
@@ -318,4 +318,3 @@ $lang['media_perm_read'] = 'ファイルを閲覧する権限がありま
$lang['media_perm_upload'] = 'ファイルをアップロードする権限がありません。';
$lang['media_update'] = '新しいバージョンをアップロード';
$lang['media_restore'] = 'このバージョンを復元';
-$lang['plugin_install_err'] = 'プラグインが正しくインストールされませんでした。プラグインのディレクトリ名を \'%s\' から \'%s\' に変更してください。';
diff --git a/inc/lang/kk/lang.php b/inc/lang/kk/lang.php
index 3ff5ae455..37b0f462b 100644
--- a/inc/lang/kk/lang.php
+++ b/inc/lang/kk/lang.php
@@ -38,11 +38,13 @@ $lang['btn_backtomedia'] = 'Медиафайлды таңдауға қай
$lang['btn_subscribe'] = 'Жазылуларды басқару';
$lang['btn_profile'] = 'Профильді жаңарту';
$lang['btn_reset'] = 'Түсіру';
+$lang['btn_resendpwd'] = 'Шартты белгінi Өзгерту';
$lang['btn_draft'] = 'Шимайды өңдеу';
$lang['btn_recover'] = 'Шимайды қайтару';
$lang['btn_draftdel'] = 'Шимайды өшіру';
$lang['btn_revert'] = 'Қалпына келтіру';
$lang['btn_register'] = 'Тіркеу';
+$lang['btn_apply'] = 'Қолдану/Енгізу';
$lang['loggedinas'] = 'түпнұсқамен кірген';
$lang['user'] = 'Түпнұсқа';
$lang['pass'] = 'Құпиясөз';
@@ -86,7 +88,7 @@ $lang['txt_filename'] = 'Келесідей еңгізу (қалауы
$lang['txt_overwrt'] = 'Бар файлды қайта жазу';
$lang['lockedby'] = 'Осы уақытта тойтарылған';
$lang['lockexpire'] = 'Тойтару келесі уақытта бітеді';
-$lang['js']['willexpire'] = 'Бұл бетті түзеу тойтаруыңыз бір минутта бітеді. Қақтығыс болмау және тойтару таймерді түсіру үшін қарап шығу пернені басыңыз.';
+$lang['js']['willexpire'] = 'Бұл бетті түзеу тойтаруыңыз бір минутта бітеді. Қақтығыс болмау және тойтару таймерді түсіру үшін қарап шығу пернені басыңыз.';
$lang['js']['notsavedyet'] = 'Сақталмаған өзгерістер жоғалатын болады.';
$lang['js']['searchmedia'] = 'Файлдарды іздеу';
$lang['js']['keepopen'] = 'Таңдаған соң терезе жаппаңыз';
@@ -112,3 +114,17 @@ $lang['js']['medialeft'] = 'Сүретті сол жаққа тегіст
$lang['js']['mediaright'] = 'Сүретті оң жаққа тегістеу';
$lang['js']['mediacenter'] = 'Сүретті ортаға тегістеу';
$lang['js']['medianoalign'] = 'Тегістеусіз';
+$lang['js']['linkwiz'] = 'Сілтеме көмекшіci';
+$lang['js']['media_diff'] = 'Өзгеліктердi Көрсету';
+$lang['js']['media_select'] = 'Файлды тандау';
+$lang['mediaselect'] = 'Медиа файлдар';
+$lang['mediaroot'] = 'root';
+$lang['yours'] = 'Сендердің болжамыңыз';
+$lang['created'] = 'ЖасалFан';
+$lang['mail_new_user'] = 'Жаңа пайдаланушы';
+$lang['qb_chars'] = 'Арнайы белгiлер';
+$lang['img_backto'] = 'Қайта оралу';
+$lang['img_format'] = 'Формат';
+$lang['img_camera'] = 'Камера';
+$lang['i_chooselang'] = 'Тіл таңдау';
+$lang['i_retry'] = 'Қайталау';
diff --git a/inc/lang/ko/install.html b/inc/lang/ko/install.html
index 382fb7df0..aeeac870f 100644
--- a/inc/lang/ko/install.html
+++ b/inc/lang/ko/install.html
@@ -1,12 +1,12 @@
<p>이 페이지는 <a href="http://dokuwiki.org">Dokuwiki</a> 설치와 환경 설정을 도와줍니다.
-설치 과정에 대한 더 자세한 정보는 <a href="http://dokuwiki.org/ko:install">(한국어) 설치 문서</a>와
+설치 과정에 대한 더 자세한 정보는 <a href="http://dokuwiki.org/ko:install">(한국어) 설치 문서</a>와
<a href="http://dokuwiki.org/install">(영어) 설치 문서</a>를 참고하기 바랍니다.</p>
<p>DokuWiki는 위키 문서와 문서와 관련된 정보(예를 들어 그림, 검색 색인, 이전 버전 문서)를 저장하기 위해 일반적인 텍스트 파일을 사용합니다. 정상적으로 DokuWiki를 사용하려면 이 파일을 담고 있는 디렉토리에 대한 쓰기 권한을 가지고 있어야 합니다.
현재 설치 과정 중에는 디렉토리 권한 설정이 불가능합니다. 보통 직접 쉘 명령어를 사용하거나, 호스팅을 사용한다면 FTP나 호스팅 제어판(예를 들어 CPanel)을 사용해서 설정해야 합니다.</p>
-<p>현재 설치 과정중에 관리자로 로그인 후 DokuWiki의 관리 메뉴(플러그인 설치, 사용자 관리, 위키 문서 접근 권한 관리, 옵션 설정)를 가능하게 <abbr title="접근 제어 목록">ACL</abbr>에 대한 환경 설정을 수행합니다.
-이 것은 DokuWiki가 동작하는데 필요한 사항은 아니지만, 어쨌든 더 쉽게 관리자가 관리할 수 있도록 해줍니다.</p>
+<p>현재 설치 과정중에 관리자로 로그인 후 DokuWiki의 관리 메뉴(플러그인 설치, 사용자 관리, 위키 문서 접근 권한 관리, 옵션 설정)를 가능하게 <acronym title="접근 제어 목록">ACL</acronym>에 대한 환경 설정을 수행합니다.
+DokuWiki가 동작하는데 필요한 사항은 아니지만, 어쨌든 더 쉽게 관리자가 관리할 수 있도록 해줍니다.</p>
<p>숙련된 사용자나 특별한 설치 과정이 필요한 경우에 다음 링크를 참고하기 바랍니다:
<a href="http://dokuwiki.org/ko:install">설치 과정 (한국어)</a>
diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php
index 7b4e30a49..89d045503 100644
--- a/inc/lang/ko/lang.php
+++ b/inc/lang/ko/lang.php
@@ -7,7 +7,7 @@
* @author jk Lee
* @author dongnak@gmail.com
* @author Song Younghwan <purluno@gmail.com>
- * @author Seung-Chul Yoo <dryoo@live.com>
+ * @author Seung-Chul Yoo <dryoo@live.com>
* @author erial2@gmail.com
* @author Myeongjin <aranet100@gmail.com>
*/
@@ -37,13 +37,13 @@ $lang['btn_secedit'] = '편집';
$lang['btn_login'] = '로그인';
$lang['btn_logout'] = '로그아웃';
$lang['btn_admin'] = '관리';
-$lang['btn_update'] = '변경';
+$lang['btn_update'] = '바꾸기';
$lang['btn_delete'] = '삭제';
$lang['btn_back'] = '뒤로';
$lang['btn_backlink'] = '가리키는 링크';
$lang['btn_backtomedia'] = '미디어 파일 선택으로 돌아가기';
$lang['btn_subscribe'] = '구독 관리';
-$lang['btn_profile'] = '개인 정보 변경';
+$lang['btn_profile'] = '개인 정보 바꾸기';
$lang['btn_reset'] = '초기화';
$lang['btn_resendpwd'] = '새 비밀번호 설정';
$lang['btn_draft'] = '문서 초안 편집';
@@ -53,7 +53,7 @@ $lang['btn_revert'] = '복원';
$lang['btn_register'] = '등록';
$lang['btn_apply'] = '적용';
$lang['btn_media'] = '미디어 관리';
-$lang['loggedinas'] = '다른 사용자로 로그인';
+$lang['loggedinas'] = '다음 사용자로 로그인';
$lang['user'] = '사용자 이름';
$lang['pass'] = '비밀번호';
$lang['newpass'] = '새 비밀번호';
@@ -66,7 +66,7 @@ $lang['profile'] = '개인 정보';
$lang['badlogin'] = '잘못된 사용자 이름이거나 비밀번호입니다.';
$lang['minoredit'] = '사소한 바뀜';
$lang['draftdate'] = '문서 초안 자동 저장 시간';
-$lang['nosecedit'] = '문서가 수정되어 세션 정보의 유효 시간이 지나 문서 전부를 다시 읽습니다.';
+$lang['nosecedit'] = '한동안 문서가 바뀌어 세션 정보의 유효 시간이 지나 문서 전부를 다시 읽습니다.';
$lang['regmissing'] = '모든 항목을 입력해야 합니다.';
$lang['reguexists'] = '같은 이름을 사용하는 사용자가 있습니다.';
$lang['regsuccess'] = '사용자를 만들었으며 비밀번호는 이메일로 보냈습니다.';
@@ -193,6 +193,7 @@ $lang['user_tools'] = '사용자 도구';
$lang['site_tools'] = '사이트 도구';
$lang['page_tools'] = '문서 도구';
$lang['skip_to_content'] = '콘텐츠 넘기기';
+$lang['sidebar'] = '사이드바';
$lang['mail_newpage'] = '문서 추가:';
$lang['mail_changed'] = '문서 바뀜:';
$lang['mail_subscribe_list'] = '이름공간에서 바뀐 문서:';
@@ -218,7 +219,7 @@ $lang['qb_hplus'] = '상위 문단 제목';
$lang['qb_hminus'] = '하위 문단 제목';
$lang['qb_hequal'] = '동급 문단 제목';
$lang['qb_link'] = '내부 링크';
-$lang['qb_extlink'] = '외부 링크';
+$lang['qb_extlink'] = '바깥 링크';
$lang['qb_hr'] = '가로줄';
$lang['qb_ol'] = '순서 있는 목록';
$lang['qb_ul'] = '순서 없는 목록';
@@ -295,7 +296,7 @@ $lang['days'] = '%d일 전';
$lang['hours'] = '%d시간 전';
$lang['minutes'] = '%d분 전';
$lang['seconds'] = '%d초 전';
-$lang['wordblock'] = '스팸 문구를 포함하고 있어서 저장되지 않았습니다.';
+$lang['wordblock'] = '스팸 문구를 포함하고 있어서 저장하지 않았습니다.';
$lang['media_uploadtab'] = '올리기';
$lang['media_searchtab'] = '찾기';
$lang['media_file'] = '파일';
@@ -312,11 +313,10 @@ $lang['media_upload'] = '%s에 올리기';
$lang['media_search'] = '%s 찾기';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s의 %s';
-$lang['media_edit'] = '%s 수정';
-$lang['media_history'] = '%s 변경 내력';
+$lang['media_edit'] = '%s 편집';
+$lang['media_history'] = '%s 바뀜 내역';
$lang['media_meta_edited'] = '메타데이터가 수정됨';
$lang['media_perm_read'] = '이 파일을 읽을 권한이 없습니다.';
$lang['media_perm_upload'] = '파일을 올릴 권한이 없습니다.';
$lang['media_update'] = '새 버전 올리기';
$lang['media_restore'] = '이 버전으로 되돌리기';
-$lang['plugin_install_err'] = '플러그인 설치가 잘못되었습니다. 플러그인 디렉토리 \'%s\'(을)를 \'%s\'(으)로 바꾸십시오.';
diff --git a/inc/lang/ko/mailtext.txt b/inc/lang/ko/mailtext.txt
index 219fe6e0b..01bada9ba 100644
--- a/inc/lang/ko/mailtext.txt
+++ b/inc/lang/ko/mailtext.txt
@@ -1,4 +1,4 @@
-DokuWiki 문서가 추가 또는 변경되었습니다. 자세한 정보는 다음과 같습니다:
+DokuWiki 문서가 추가 또는 바뀌었습니다. 자세한 정보는 다음과 같습니다:
날짜 : @DATE@
브라우저 : @BROWSER@
diff --git a/inc/lang/ko/preview.txt b/inc/lang/ko/preview.txt
index 6563874ee..1b7710e2f 100644
--- a/inc/lang/ko/preview.txt
+++ b/inc/lang/ko/preview.txt
@@ -1,3 +1,3 @@
====== 미리 보기 ======
-이것은 입력한 내용이 어떻게 보일지 미리 보여줍니다. 아직 **저장되지 않았다**는 점을 기억해두십시오! \ No newline at end of file
+입력한 내용이 어떻게 보일지 미리 보여줍니다. 아직 **저장되지 않았다**는 점을 기억해두십시오! \ No newline at end of file
diff --git a/inc/lang/ko/showrev.txt b/inc/lang/ko/showrev.txt
index 084d82737..f6930044b 100644
--- a/inc/lang/ko/showrev.txt
+++ b/inc/lang/ko/showrev.txt
@@ -1,2 +1,2 @@
-**이것은 문서의 이전 버전입니다!**
+**문서의 이전 버전입니다!**
----
diff --git a/inc/lang/ko/updateprofile.txt b/inc/lang/ko/updateprofile.txt
index ebf19d8ab..379981cb3 100644
--- a/inc/lang/ko/updateprofile.txt
+++ b/inc/lang/ko/updateprofile.txt
@@ -1,3 +1,3 @@
-====== 개인 정보 수정 ======
+====== 개인 정보 바꾸기 ======
바꾸고 싶은 항목을 입력하기 바랍니다. 사용자 이름은 바꿀 수 없습니다. \ No newline at end of file
diff --git a/inc/lang/lv/lang.php b/inc/lang/lv/lang.php
index b02e7f471..19a7b7cce 100644
--- a/inc/lang/lv/lang.php
+++ b/inc/lang/lv/lang.php
@@ -39,6 +39,7 @@ $lang['btn_backtomedia'] = 'Atpakaļ uz mēdiju failu izvēli';
$lang['btn_subscribe'] = 'Abonēt izmaiņu paziņojumus';
$lang['btn_profile'] = 'Labot savu profilu';
$lang['btn_reset'] = 'Atsaukt izmaiņas';
+$lang['btn_resendpwd'] = 'Uzstādīt jaunu paroli';
$lang['btn_draft'] = 'Labot melnrakstu';
$lang['btn_recover'] = 'Atjaunot melnrakstu';
$lang['btn_draftdel'] = 'Dzēst melnrakstu';
@@ -75,6 +76,7 @@ $lang['profnoempty'] = 'Bez vārda vai e-pasta adreses nevar.';
$lang['profchanged'] = 'Profils veiksmīgi izlabots.';
$lang['pwdforget'] = 'Aizmirsi paroli? Saņem jaunu';
$lang['resendna'] = 'Paroļu izsūtīšanu nepiedāvāju.';
+$lang['resendpwd'] = 'Uzstādīt jaunu paroli lietotājam';
$lang['resendpwdmissing'] = 'Atvaino, jāizpilda visas ailes.';
$lang['resendpwdnouser'] = 'Atvaino, tāda lietotāja nav.';
$lang['resendpwdbadauth'] = 'Atvaino, šis autorizācijas kods nav derīgs. Pārliecinies, ka lietoji pilnu apstiprināšanas adresi.';
@@ -87,6 +89,7 @@ $lang['searchmedia_in'] = 'Meklēt iekš %s';
$lang['txt_upload'] = 'Norādi augšupielādējamo failu';
$lang['txt_filename'] = 'Ievadi vikivārdu (nav obligāts)';
$lang['txt_overwrt'] = 'Aizstāt esošo failu';
+$lang['maxuploadsize'] = 'Augšuplādējamā faila ierobežojums: %s.';
$lang['lockedby'] = 'Patlaban bloķējis ';
$lang['lockexpire'] = 'Bloķējums beigsies ';
$lang['js']['willexpire'] = 'Tavs bloķējums uz šo lapu pēc minūtes beigsies.\nLai izvairītos no konflikta, nospied Iepriekšapskata pogu\n un bloķējuma laiku sāks skaitīt no jauna.';
@@ -129,6 +132,7 @@ $lang['js']['media_select'] = 'Norādīt failus...';
$lang['js']['media_upload_btn'] = 'Augšuplādēt';
$lang['js']['media_done_btn'] = 'Gatavs';
$lang['js']['media_drop'] = 'Nomet te augšuplādējamos failus';
+$lang['js']['media_cancel'] = 'atlikt';
$lang['js']['media_overwrt'] = 'Rakstīt pāri esošajiem failiem';
$lang['rssfailed'] = 'Kļūda saņemot saturu no ';
$lang['nothingfound'] = 'Nekas nav atrasts.';
@@ -179,6 +183,12 @@ $lang['external_edit'] = 'ārpussistēmas labojums';
$lang['summary'] = 'Anotācija';
$lang['noflash'] = 'Lai attēlotu lapas saturu, vajag <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.';
$lang['download'] = 'Lejuplādēt «kodiņu»((snippet))';
+$lang['tools'] = 'Rīki';
+$lang['user_tools'] = 'Lietotāja rīki';
+$lang['site_tools'] = 'Vietnes rīki';
+$lang['page_tools'] = 'Lapas rīki';
+$lang['skip_to_content'] = 'uz rakstu';
+$lang['sidebar'] = 'Izvēlne';
$lang['mail_newpage'] = 'lapa pievienota:';
$lang['mail_changed'] = 'lapa mainīta:';
$lang['mail_subscribe_list'] = 'Nodaļā mainītās lapas:';
@@ -249,6 +259,7 @@ $lang['subscr_style_digest'] = 'kopsavilkumu par katru lapu (reizi %.2f dienā
$lang['subscr_style_list'] = 'kopš pēdējās vēstules notikušo labojumu sarakstu (reizi %.2f dienās)';
$lang['authmodfailed'] = 'Aplami konfigurēta lietotāju autentifikācija. Lūdzu ziņo Wiki administratoram.';
$lang['authtempfail'] = 'Lietotāju autentifikācija pašlaik nedarbojas. Ja tas turpinās ilgstoši, lūduz ziņo Wiki administratoram.';
+$lang['authpwdexpire'] = 'Tavai parolei pēc %d dienām biegsies termiņš, tā drīzumā jānomaina.';
$lang['i_chooselang'] = 'Izvēlies valodu';
$lang['i_installer'] = 'DokuWiki instalētājs';
$lang['i_wikiname'] = 'Wiki vārds';
@@ -304,4 +315,3 @@ $lang['media_perm_read'] = 'Atvainojiet, jums nav tiesību skatīt failus.
$lang['media_perm_upload'] = 'Atvainojiet, jums nav tiesību augšupielādēt. ';
$lang['media_update'] = 'Augšupielādēt jaunu versiju';
$lang['media_restore'] = 'Atjaunot šo versiju';
-$lang['plugin_install_err'] = 'Modulis aplami instalēts. Pārdēvē moduļa direktoriju %s par %s.';
diff --git a/inc/lang/lv/mailwrap.html b/inc/lang/lv/mailwrap.html
new file mode 100644
index 000000000..34b723901
--- /dev/null
+++ b/inc/lang/lv/mailwrap.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<title>@TITLE@</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
+
+@HTMLBODY@
+
+<br /><hr />
+<small>Šo vēstuli nosūtījusi programma DokuWiki no vietnes @DOKUWIKIURL@.</small>
+</body>
+</html> \ No newline at end of file
diff --git a/inc/lang/lv/resetpwd.txt b/inc/lang/lv/resetpwd.txt
new file mode 100644
index 000000000..757f34cff
--- /dev/null
+++ b/inc/lang/lv/resetpwd.txt
@@ -0,0 +1,3 @@
+====== Uzstādīt jaunu paroli ======
+
+Lūdzu izvēlies savam kontam jaunu paroli. \ No newline at end of file
diff --git a/inc/lang/nl/index.txt b/inc/lang/nl/index.txt
index 288957ed4..ad7122ba0 100644
--- a/inc/lang/nl/index.txt
+++ b/inc/lang/nl/index.txt
@@ -1,4 +1,4 @@
====== Index ======
-Dit is een index van alle beschikbare pagina's gesorteerd op [[doku>wiki:namespaces|namespaces]].
+Dit is een index van alle beschikbare pagina's gesorteerd op [[doku>namespaces|namespaces]].
diff --git a/inc/lang/nl/install.html b/inc/lang/nl/install.html
index e13b9d3ad..a65325826 100644
--- a/inc/lang/nl/install.html
+++ b/inc/lang/nl/install.html
@@ -1,5 +1,5 @@
-<p>Deze pagina helpt u bij de eerste installatie en configuratie van <a href="http://wiki.splitbrain.org">Dokuwiki</a>.
-Meer informatie over deze installer is beschikbaar op zijn eigen <a href="http://wiki.splitbrain.org/wiki:installer">documentatiepagina</a>.</p>
+<p>Deze pagina helpt u bij de eerste installatie en configuratie van <a href="http://dokuwiki.org">Dokuwiki</a>.
+Meer informatie over deze installer is beschikbaar op zijn eigen <a href="http://dokuwiki.org/installer">documentatiepagina</a>.</p>
<p>DokuWiki gebruikt platte tekstbestanden voor het opslaan van wikipagina's en andere informatie die bij deze pagina's horen (bijvoorbeeld plaatjes, zoek-indexen, oude revisies enz.). Om goed te kunnen functioneren, <strong>moet</strong>
DokuWiki schrijftoegang hebben tot de directories die deze bestanden bevatten.
@@ -10,5 +10,5 @@ wat de beheerder in staat stelt in te loggen en toegang te verkrijgen tot het be
Het is niet noodzakelijk voor DokuWiki om te functioneren maar het maakt het een stuk makkelijker om Dokuwiki te beheren.</p>
<p>Ervaren gebruikers of gebruikers die een aangepaste configuratie nodig hebben kunnen voor details terecht op de volgende pagina's:
-<a href="http://wiki.splitbrain.org/wiki:install">installatie-instructies</a>
-en <a href="http://wiki.splitbrain.org/wiki:config">configuratie-instellingen</a>.</p>
+<a href="http://dokuwiki.org/install">installatie-instructies</a>
+en <a href="http://dokuwiki.org/config">configuratie-instellingen</a>.</p>
diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php
index 911ffdc10..fdc0c075a 100644
--- a/inc/lang/nl/lang.php
+++ b/inc/lang/nl/lang.php
@@ -16,6 +16,7 @@
* @author Timon Van Overveldt <timonvo@gmail.com>
* @author Jeroen
* @author Ricardo Guijt <ricardoguijt@gmail.com>
+ * @author Gerrit <klapinklapin@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -58,7 +59,7 @@ $lang['btn_draftdel'] = 'Verwijder concept';
$lang['btn_revert'] = 'Herstellen';
$lang['btn_register'] = 'Registreren';
$lang['btn_apply'] = 'Toepassen';
-$lang['btn_media'] = 'Media beheerder';
+$lang['btn_media'] = 'Mediabeheerder';
$lang['loggedinas'] = 'Ingelogd als';
$lang['user'] = 'Gebruikersnaam';
$lang['pass'] = 'Wachtwoord';
@@ -201,6 +202,7 @@ $lang['user_tools'] = 'Gebruikershulpmiddelen';
$lang['site_tools'] = 'Site-hulpmiddelen';
$lang['page_tools'] = 'Paginahulpmiddelen';
$lang['skip_to_content'] = 'spring naar tekst';
+$lang['sidebar'] = 'Zijbalk';
$lang['mail_newpage'] = 'pagina toegevoegd:';
$lang['mail_changed'] = 'pagina aangepast:';
$lang['mail_subscribe_list'] = 'Pagina\'s veranderd in namespace:';
@@ -278,7 +280,7 @@ $lang['i_wikiname'] = 'Wikinaam';
$lang['i_enableacl'] = 'ACLs inschakelen (aanbevolen)';
$lang['i_superuser'] = 'Superuser';
$lang['i_problems'] = 'De installer vond problemen, hieronder aangegeven. Verhelp deze voor je doorgaat.';
-$lang['i_modified'] = 'Uit veiligheidsoverwegingen werkt dit script alleen met nieuwe en onveranderde DokuWiki-installaties. Pak de bestanden opnieuw uit of raadpleeg de <a href="http://wiki.splitbrain.org/wiki:install">Dokuwiki installatie-instructies</a>';
+$lang['i_modified'] = 'Uit veiligheidsoverwegingen werkt dit script alleen met nieuwe en onveranderde DokuWiki-installaties. Pak de bestanden opnieuw uit of raadpleeg de <a href="http://dokuwiki.org/install">Dokuwiki installatie-instructies</a>';
$lang['i_funcna'] = 'PHP functie <code>%s</code> is niet beschikbaar. Wellicht heeft je hosting provider deze uitgeschakeld?';
$lang['i_phpver'] = 'PHP-versie <code>%s</code> is lager dan de vereiste <code>%s</code>. Upgrade PHP.';
$lang['i_permfail'] = '<code>%s</code> is niet schrijfbaar voor DokuWiki. Pas de permissie-instellingen van deze directory aan.';
@@ -326,4 +328,3 @@ $lang['media_perm_read'] = 'Sorry, u heeft niet voldoende rechten om besta
$lang['media_perm_upload'] = 'Sorry, u heeft niet voldoende rechten om bestanden te uploaden.';
$lang['media_update'] = 'Upload nieuwe versie';
$lang['media_restore'] = 'Deze versie terugzetten';
-$lang['plugin_install_err'] = 'Plugin is juist geinstalleerd. Hernoem plugin map \'%s\' naar \'%s\'.';
diff --git a/inc/lang/nl/register.txt b/inc/lang/nl/register.txt
index 338edcca3..fc31860da 100644
--- a/inc/lang/nl/register.txt
+++ b/inc/lang/nl/register.txt
@@ -1,4 +1,4 @@
====== Registreer als nieuwe gebruiker ======
-Vul alle informatie hieronder in om een nieuw account voor deze wiki aan te maken. Zorg dat je een **geldig e-mailadres** opgeeft - als je je wachtwoord hier niet in kunt vullen wordt het naar dit adres verzonden. De gebruikersnaam moet een geldige [[doku>wiki:pagename|pagename]] zijn.
+Vul alle informatie hieronder in om een nieuw account voor deze wiki aan te maken. Zorg dat je een **geldig e-mailadres** opgeeft - als je je wachtwoord hier niet in kunt vullen wordt het naar dit adres verzonden. De gebruikersnaam moet een geldige [[doku>pagename|paginanaam]] zijn.
diff --git a/inc/lang/nl/resetpwd.txt b/inc/lang/nl/resetpwd.txt
new file mode 100644
index 000000000..345e30725
--- /dev/null
+++ b/inc/lang/nl/resetpwd.txt
@@ -0,0 +1,3 @@
+====== Een nieuw wachtwoord instellen ======
+
+Vul alstublieft een nieuw wachtwoord in voor jouw account in deze wiki. \ No newline at end of file
diff --git a/inc/lang/nl/subscr_digest.txt b/inc/lang/nl/subscr_digest.txt
index 0e6c2c5ba..9f0fe878c 100644
--- a/inc/lang/nl/subscr_digest.txt
+++ b/inc/lang/nl/subscr_digest.txt
@@ -9,7 +9,7 @@ De pagina @PAGE@ in de @TITLE@ wiki is veranderd. Hier zijn de wijzigingen:
Vorige revisie: @OLDPAGE@
Nieuwe revisie: @NEWPAGE@
-Om het verzenden van deze wijzigingsberichtente te stoppen, logt u in op het wiki op @DOKUWIKIURL@ en navigeert u naar @SUBSCRIBE@. Vervolgens kunt u zich voor elke gewenste pagina of namespace uitschrijven.
+Om het verzenden van deze wijzigingsberichten te stoppen, logt u in op de wiki op @DOKUWIKIURL@ en bezoekt u @SUBSCRIBE@. Vervolgens kunt u zich voor elke gewenste pagina of namespace uitschrijven.
--
Deze email is gegenereerd door DokuWiki op @DOKUWIKIURL@ \ No newline at end of file
diff --git a/inc/lang/nl/subscr_single.txt b/inc/lang/nl/subscr_single.txt
index 3e74bce17..1cd0c85d4 100644
--- a/inc/lang/nl/subscr_single.txt
+++ b/inc/lang/nl/subscr_single.txt
@@ -1,6 +1,7 @@
Halllo!
-De pagina @PAGE@ in de @TITLE@ wiki is veranderd. Hier zijn de wijzigingen:
+De pagina @PAGE@ in de @TITLE@ wiki is veranderd.
+Hier zijn de wijzigingen:
--------------------------------------------------------
@DIFF@
@@ -12,7 +13,7 @@ Wijzigingssamenvatting: @SUMMARY@
Vorige revisie: @OLDPAGE@
Nieuwe revisie: @NEWPAGE@
-Om het verzenden van deze wijzigingsberichtente te stoppen, logt u in op het wiki op @DOKUWIKIURL@ en navigeert u naar @SUBSCRIBE@. Vervolgens kunt u zich voor elke gewenste pagina of namespace uitschrijven.
+Om het verzenden van deze wijzigingsberichten te stoppen, logt u in op het wiki op @DOKUWIKIURL@ en navigeert u naar @NEWPAGE@. Vervolgens kunt u "Inschrijvingen wijzigen" gebruiken om inschrijvingen te stoppen.
--
Deze email is gegenereerd door DokuWiki op @DOKUWIKIURL@ \ No newline at end of file
diff --git a/inc/lang/nl/uploadmail.txt b/inc/lang/nl/uploadmail.txt
index 1816400d7..59920ae3d 100644
--- a/inc/lang/nl/uploadmail.txt
+++ b/inc/lang/nl/uploadmail.txt
@@ -1,6 +1,7 @@
Er is een bestand geüpload naar uw DokuWiki. Hier zijn de details;
Bestand : @MEDIA@
+Oude revisie: @OLD@
Datum : @DATE@
Browser : @BROWSER@
IP-adres : @IPADDRESS@
diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php
index 97ef741ef..cc3d34aed 100644
--- a/inc/lang/no/lang.php
+++ b/inc/lang/no/lang.php
@@ -323,4 +323,3 @@ $lang['media_perm_read'] = 'Beklager, du har ikke tilgang til å lese file
$lang['media_perm_upload'] = 'Beklager, du har ikke tilgang til å laste opp filer.';
$lang['media_update'] = 'Last opp ny versjon';
$lang['media_restore'] = 'Gjenopprett denne versjonen';
-$lang['plugin_install_err'] = 'Tillegget ble feil installert. Skift navn på mappen \'%s\' til \'%s\'.';
diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php
index 79d18bbf5..2f448d291 100644
--- a/inc/lang/pl/lang.php
+++ b/inc/lang/pl/lang.php
@@ -325,4 +325,3 @@ $lang['media_perm_read'] = 'Przepraszamy, nie masz wystarczających uprawn
$lang['media_perm_upload'] = 'Przepraszamy, nie masz wystarczających uprawnień do przesyłania plików.';
$lang['media_update'] = 'Prześlij nową wersję';
$lang['media_restore'] = 'Odtwórz tą wersję';
-$lang['plugin_install_err'] = 'Wtyczka zainstalowana nieprawidłowo. Zmień nazwę katalogu wtyczki \'%s\' na \'%s\'.';
diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php
index d6dc8f96b..b3d56bae7 100644
--- a/inc/lang/pt-br/lang.php
+++ b/inc/lang/pt-br/lang.php
@@ -54,11 +54,14 @@ $lang['btn_backtomedia'] = 'Voltar à seleção do arquivo de mídia';
$lang['btn_subscribe'] = 'Monitorar alterações';
$lang['btn_profile'] = 'Atualizar o perfil';
$lang['btn_reset'] = 'Limpar';
+$lang['btn_resendpwd'] = 'Definir a nova senha';
$lang['btn_draft'] = 'Editar o rascunho';
$lang['btn_recover'] = 'Recuperar o rascunho';
$lang['btn_draftdel'] = 'Excluir o rascunho';
$lang['btn_revert'] = 'Restaurar';
$lang['btn_register'] = 'Cadastre-se';
+$lang['btn_apply'] = 'Aplicar';
+$lang['btn_media'] = 'Gerenciador de mídias';
$lang['loggedinas'] = 'Identificado(a) como';
$lang['user'] = 'Nome de usuário';
$lang['pass'] = 'Senha';
@@ -88,6 +91,7 @@ $lang['profnoempty'] = 'Não são permitidos nomes ou endereços de e-
$lang['profchanged'] = 'O perfil do usuário foi atualizado com sucesso.';
$lang['pwdforget'] = 'Esqueceu sua senha? Solicite outra';
$lang['resendna'] = 'Esse wiki não tem suporte para o reenvio de senhas.';
+$lang['resendpwd'] = 'Definir a nova senha para';
$lang['resendpwdmissing'] = 'Desculpe, você deve preencher todos os campos.';
$lang['resendpwdnouser'] = 'Desculpe, não foi possível encontrar esse usuário no nosso banco de dados.';
$lang['resendpwdbadauth'] = 'Desculpe, esse código de autorização é inválido. Certifique-se de que você usou o link de confirmação inteiro.';
@@ -100,6 +104,7 @@ $lang['searchmedia_in'] = 'Buscar em %s';
$lang['txt_upload'] = 'Selecione o arquivo a ser enviado';
$lang['txt_filename'] = 'Enviar como (opcional)';
$lang['txt_overwrt'] = 'Substituir o arquivo existente';
+$lang['maxuploadsize'] = 'Tamanho máximo de %s por arquivo.';
$lang['lockedby'] = 'Atualmente bloqueada por';
$lang['lockexpire'] = 'O bloqueio expira em';
$lang['js']['willexpire'] = 'O seu bloqueio de edição deste página irá expirar em um minuto.\nPara evitar conflitos de edição, clique no botão de visualização para reiniciar o temporizador de bloqueio.';
@@ -134,6 +139,17 @@ Entretanto, você ainda pode copiar e colar o atalho.';
$lang['js']['linkwiz'] = 'Link Wizard';
$lang['js']['linkto'] = 'Link para:';
$lang['js']['del_confirm'] = 'Deseja realmente excluir o(s) item(ns) selecionado(s)?';
+$lang['js']['restore_confirm'] = 'Deseja realmente restaurar essa versão?';
+$lang['js']['media_diff'] = 'Ver as diferenças:';
+$lang['js']['media_diff_both'] = 'Lado a lado';
+$lang['js']['media_diff_opacity'] = 'Sobreposição';
+$lang['js']['media_diff_portions'] = 'Deslizamento';
+$lang['js']['media_select'] = 'Selecione os arquivos...';
+$lang['js']['media_upload_btn'] = 'Enviar';
+$lang['js']['media_done_btn'] = 'Concluído';
+$lang['js']['media_drop'] = 'Arraste os arquivos até aqui para enviar';
+$lang['js']['media_cancel'] = 'remover';
+$lang['js']['media_overwrt'] = 'Sobrescrever arquivos existentes';
$lang['rssfailed'] = 'Ocorreu um erro durante a atualização dessa fonte: ';
$lang['nothingfound'] = 'Não foi encontrado nada.';
$lang['mediaselect'] = 'Arquivos de mídia';
@@ -178,16 +194,26 @@ $lang['lastmod'] = 'Última modificação';
$lang['by'] = 'por';
$lang['deleted'] = 'removida';
$lang['created'] = 'criada';
-$lang['restored'] = 'revisão anterior restaurada';
+$lang['restored'] = 'a revisão anterior foi restaurada (%s)';
$lang['external_edit'] = 'edição externa';
$lang['summary'] = 'Resumo da edição';
$lang['noflash'] = 'O <a href="http://www.adobe.com/products/flashplayer/">plug-in Adobe Flash</a> é necessário para exibir este conteúdo.';
-$lang['download'] = 'Download Snippet';
+$lang['download'] = 'Baixar o snippet';
+$lang['tools'] = 'Ferramentas';
+$lang['user_tools'] = 'Ferramentas do usuário';
+$lang['site_tools'] = 'Ferramentas do site';
+$lang['page_tools'] = 'Ferramentas da página';
+$lang['skip_to_content'] = 'ir para o conteúdo';
+$lang['sidebar'] = 'Barra lateral';
$lang['mail_newpage'] = 'página adicionada:';
$lang['mail_changed'] = 'página modificada:';
$lang['mail_subscribe_list'] = 'páginas alteradas no espaço de nomes:';
$lang['mail_new_user'] = 'novo usuário:';
$lang['mail_upload'] = 'arquivo enviado:';
+$lang['changes_type'] = 'Ver as mudanças de';
+$lang['pages_changes'] = 'Páginas';
+$lang['media_changes'] = 'Arquivos de mídia';
+$lang['both_changes'] = 'Páginas e arquivos de mídia';
$lang['qb_bold'] = 'Texto em negrito';
$lang['qb_italic'] = 'Texto em itálico';
$lang['qb_underl'] = 'Texto sublinhado';
@@ -212,7 +238,7 @@ $lang['qb_media'] = 'Adicionar imagens e/ou outros arquivos';
$lang['qb_sig'] = 'Inserir assinatura';
$lang['qb_smileys'] = 'Carinhas';
$lang['qb_chars'] = 'Caracteres especiais';
-$lang['upperns'] = 'Pular para namespace acima';
+$lang['upperns'] = 'Pular para espaço de nomes acima';
$lang['admin_register'] = 'Adicionar novo usuário';
$lang['metaedit'] = 'Editar metadados';
$lang['metasaveerr'] = 'Não foi possível escrever os metadados';
@@ -228,6 +254,9 @@ $lang['img_copyr'] = 'Direitos autorais';
$lang['img_format'] = 'Formato';
$lang['img_camera'] = 'Câmera';
$lang['img_keywords'] = 'Palavras-chave';
+$lang['img_width'] = 'Largura';
+$lang['img_height'] = 'Altura';
+$lang['img_manager'] = 'Ver no gerenciador de mídias';
$lang['subscr_subscribe_success'] = 'Adicionado %s à lista de monitoramentos de %s';
$lang['subscr_subscribe_error'] = 'Ocorreu um erro na adição de %s à lista de monitoramentos de %s';
$lang['subscr_subscribe_noaddress'] = 'Como não há nenhum endereço associado ao seu usuário, você não pode ser adicionado à lista de monitoramento';
@@ -246,6 +275,7 @@ $lang['subscr_style_digest'] = 'um agrupamento de e-mails com as mudanças par
$lang['subscr_style_list'] = 'uma lista de páginas modificadas desde o último e-mail (a cada %.2f dias)';
$lang['authmodfailed'] = 'A configuração da autenticação de usuário está com problemas. Por favor, informe ao administrador do wiki.';
$lang['authtempfail'] = 'A autenticação de usuários está temporariamente desabilitada. Se essa situação persistir, por favor, informe ao administrador do Wiki.';
+$lang['authpwdexpire'] = 'Sua senha vai expirar em %d dias. Você deve mudá-la assim que for possível.';
$lang['i_chooselang'] = 'Selecione o seu idioma';
$lang['i_installer'] = 'Instalador do DokuWiki';
$lang['i_wikiname'] = 'Nome do Wiki';
@@ -278,3 +308,26 @@ $lang['hours'] = '%d horas atrás';
$lang['minutes'] = '%d minutos atrás';
$lang['seconds'] = '%d segundos atrás';
$lang['wordblock'] = 'Suas mudanças não foram salvas pois contem texto bloqueados (spam)';
+$lang['media_uploadtab'] = 'Enviar';
+$lang['media_searchtab'] = 'Pesquisar';
+$lang['media_file'] = 'Arquivo';
+$lang['media_viewtab'] = 'Ver';
+$lang['media_edittab'] = 'Editar';
+$lang['media_historytab'] = 'Histórico';
+$lang['media_list_thumbs'] = 'Miniaturas';
+$lang['media_list_rows'] = 'Linhas';
+$lang['media_sort_name'] = 'Nome';
+$lang['media_sort_date'] = 'Data';
+$lang['media_namespaces'] = 'Selecione o espaço de nomes';
+$lang['media_files'] = 'Arquivos em %s';
+$lang['media_upload'] = 'Enviar para %s';
+$lang['media_search'] = 'Pesquisar em %s';
+$lang['media_view'] = '%s';
+$lang['media_viewold'] = '%s em %s';
+$lang['media_edit'] = 'Editar %s';
+$lang['media_history'] = 'Histórico de %s';
+$lang['media_meta_edited'] = 'o metadado foi editado';
+$lang['media_perm_read'] = 'Desculpe, mas você não tem privilégios suficientes para ler arquivos.';
+$lang['media_perm_upload'] = 'Desculpe, mas você não tem privilégios suficientes para enviar arquivos.';
+$lang['media_update'] = 'Enviar uma nova versão';
+$lang['media_restore'] = 'Restaurar esta versão';
diff --git a/inc/lang/pt-br/mailwrap.html b/inc/lang/pt-br/mailwrap.html
new file mode 100644
index 000000000..80bea7a22
--- /dev/null
+++ b/inc/lang/pt-br/mailwrap.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<title>@TITLE@</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
+
+@HTMLBODY@
+
+<br /><hr />
+<small>Esta mensagem foi gerada pelo DokuWiki em @DOKUWIKIURL@.</small>
+</body>
+</html> \ No newline at end of file
diff --git a/inc/lang/pt-br/resetpwd.txt b/inc/lang/pt-br/resetpwd.txt
new file mode 100644
index 000000000..febb1d6a0
--- /dev/null
+++ b/inc/lang/pt-br/resetpwd.txt
@@ -0,0 +1,3 @@
+====== Definir uma nova senha ======
+
+Por favor, digite uma nova senha para sua conta neste wiki. \ No newline at end of file
diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php
index a0b0f57e8..af388985c 100644
--- a/inc/lang/pt/lang.php
+++ b/inc/lang/pt/lang.php
@@ -317,4 +317,3 @@ $lang['js']['media_drop'] = 'Largue ficheiros aqui para enviar';
$lang['js']['media_cancel'] = 'remover';
$lang['js']['media_overwrt'] = 'Escrever por cima de ficheiros existentes';
-$lang['plugin_install_err'] = "Plugin instalado incorrectamente. Renomeie a pasta do plugin de '%s' para '%s'.";
diff --git a/inc/lang/ro/lang.php b/inc/lang/ro/lang.php
index 41727e521..0c7e02605 100644
--- a/inc/lang/ro/lang.php
+++ b/inc/lang/ro/lang.php
@@ -320,4 +320,3 @@ $lang['media_perm_read'] = 'Ne pare rău, dar nu aveți suficiente dreptur
$lang['media_perm_upload'] = 'Ne pare rău, dar nu aveți suficiente drepturi pentru a putea încărca fișiere.';
$lang['media_update'] = 'Încarcă noua versiune';
$lang['media_restore'] = 'Restaurează această versiune';
-$lang['plugin_install_err'] = 'Modul instalat greșit. Redenumește directorul modulului \'%s\' în \'%s\'.';
diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php
index 4c3d26b1d..5f428b36a 100644
--- a/inc/lang/ru/lang.php
+++ b/inc/lang/ru/lang.php
@@ -203,6 +203,7 @@ $lang['user_tools'] = 'Инструменты пользовател
$lang['site_tools'] = 'Инструменты сайта';
$lang['page_tools'] = 'Инструменты страницы';
$lang['skip_to_content'] = 'Перейти к содержанию';
+$lang['sidebar'] = 'Боковая колонна';
$lang['mail_newpage'] = 'страница добавлена:';
$lang['mail_changed'] = 'страница изменена:';
$lang['mail_subscribe_list'] = 'изменились страницы в пространстве имён:';
@@ -332,4 +333,3 @@ $lang['media_perm_read'] = 'Извините, у Вас недостато
$lang['media_perm_upload'] = 'Извините, у Вас недостаточно прав для загрузки файлов.';
$lang['media_update'] = 'Загрузить новую версию';
$lang['media_restore'] = 'Восстановить эту версию';
-$lang['plugin_install_err'] = 'Плагин установлен некорректно. Переименуйте папку плагина из \'%s\' в \'%s\'.';
diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php
index 85e899b06..b8a947dc3 100644
--- a/inc/lang/sk/lang.php
+++ b/inc/lang/sk/lang.php
@@ -42,6 +42,7 @@ $lang['btn_backtomedia'] = 'Späť na výber súboru';
$lang['btn_subscribe'] = 'Sledovať zmeny';
$lang['btn_profile'] = 'Aktualizovať profil';
$lang['btn_reset'] = 'Zrušiť';
+$lang['btn_resendpwd'] = 'Nastaviť nové heslo';
$lang['btn_draft'] = 'Upraviť koncept';
$lang['btn_recover'] = 'Obnoviť koncept';
$lang['btn_draftdel'] = 'Zmazať koncept';
@@ -78,6 +79,7 @@ $lang['profnoempty'] = 'Prázdne meno alebo mailová adresa nie sú po
$lang['profchanged'] = 'Užívateľský účet úspešne zmenený.';
$lang['pwdforget'] = 'Zabudli ste heslo? Získajte nové!';
$lang['resendna'] = 'Táto wiki nepodporuje opätovné zasielanie hesla.';
+$lang['resendpwd'] = 'Nastaviť nové heslo pre';
$lang['resendpwdmissing'] = 'Prepáčte, musíte vyplniť všetky polia.';
$lang['resendpwdnouser'] = 'Prepáčte, nemôžeme nájsť zadaného užívateľa v databáze.';
$lang['resendpwdbadauth'] = 'Prepáčte, tento autorizačný kód nie je platný. Uistite sa, či ste použili celý autorizačný odkaz.';
@@ -90,6 +92,7 @@ $lang['searchmedia_in'] = 'Hľadať v %s';
$lang['txt_upload'] = 'Vyberte súbor ako prílohu';
$lang['txt_filename'] = 'Uložiť ako (voliteľné)';
$lang['txt_overwrt'] = 'Prepísať existujúci súbor';
+$lang['maxuploadsize'] = 'Obmedzenie max. %s na súbor.';
$lang['lockedby'] = 'Práve zamknuté:';
$lang['lockexpire'] = 'Zámok stratí platnosť:';
$lang['js']['willexpire'] = 'Váš zámok pre editáciu za chvíľu stratí platnosť.\nAby ste predišli konfliktom, stlačte tlačítko Náhľad a zámok sa predĺži.';
@@ -179,11 +182,17 @@ $lang['lastmod'] = 'Posledná úprava';
$lang['by'] = 'od';
$lang['deleted'] = 'odstránené';
$lang['created'] = 'vytvorené';
-$lang['restored'] = 'stará verzia bola obnovená';
+$lang['restored'] = 'stará verzia bola obnovená (%s)';
$lang['external_edit'] = 'externá úprava';
$lang['summary'] = 'Komentár k úpravám';
$lang['noflash'] = 'Pre zobrazenie tohto obsahu potrebujete <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.';
$lang['download'] = 'Stiahnuť';
+$lang['tools'] = 'Nástroje';
+$lang['user_tools'] = 'Nástroje používateľa';
+$lang['site_tools'] = 'Nástoje správy stránok';
+$lang['page_tools'] = 'Nástoje stránky';
+$lang['skip_to_content'] = 'skok na obsah';
+$lang['sidebar'] = 'Bočný panel';
$lang['mail_newpage'] = 'stránka pridaná:';
$lang['mail_changed'] = 'stránka zmenená:';
$lang['mail_subscribe_list'] = 'stránky zmenené v mennom priestore:';
@@ -254,6 +263,7 @@ $lang['subscr_style_digest'] = 'email so zhrnutím zmien pre každú stránku
$lang['subscr_style_list'] = 'zoznam zmenených stránok od posledného emailu (perióda %.2f dňa)';
$lang['authmodfailed'] = 'Užívateľská autentifikácia nie je možná. Prosím informujte správcu systému.';
$lang['authtempfail'] = 'Užívateľská autentifikácia je dočasne nedostupná. Ak táto situácia pretrváva, prosím informujte správcu systému.';
+$lang['authpwdexpire'] = 'Platnosť hesla vyprší za %d dní, mali by ste ho zmeniť čo najskôr.';
$lang['i_chooselang'] = 'Zvoľte váš jazyk';
$lang['i_installer'] = 'DokuWiki inštalátor';
$lang['i_wikiname'] = 'Názov Wiki';
@@ -308,4 +318,3 @@ $lang['media_perm_read'] = 'Prepáčte, ale nemáte dostatočné oprávnen
$lang['media_perm_upload'] = 'Prepáčte, ale nemáte dostatočné oprávnenie na nahrávanie súborov.';
$lang['media_update'] = 'Nahrať novú verziu';
$lang['media_restore'] = 'Obnoviť túto verziu';
-$lang['plugin_install_err'] = 'Plugin nebol nainštalovaný úspešne. Premenujte adresár s pluginom \'%s\' na \'%s\'.';
diff --git a/inc/lang/sk/mailwrap.html b/inc/lang/sk/mailwrap.html
new file mode 100644
index 000000000..2e42515fb
--- /dev/null
+++ b/inc/lang/sk/mailwrap.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<title>@TITLE@</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
+
+@HTMLBODY@
+
+<br /><hr />
+<small>Táto správa bola zaslaná DokuWiki @DOKUWIKIURL@.</small>
+</body>
+</html> \ No newline at end of file
diff --git a/inc/lang/sk/resetpwd.txt b/inc/lang/sk/resetpwd.txt
new file mode 100644
index 000000000..a4df4a545
--- /dev/null
+++ b/inc/lang/sk/resetpwd.txt
@@ -0,0 +1,3 @@
+====== Nastavenie nového hesla ======
+
+Prosím zadajte nové heslo vášho účtu v tejto wiki.
diff --git a/inc/lang/sl/lang.php b/inc/lang/sl/lang.php
index b34ab67e4..3a4dbd22e 100644
--- a/inc/lang/sl/lang.php
+++ b/inc/lang/sl/lang.php
@@ -311,4 +311,3 @@ $lang['media_perm_read'] = 'Ni ustreznih dovoljenj za branje datotek.';
$lang['media_perm_upload'] = 'Ni ustreznih dovoljenj za nalaganje datotek.';
$lang['media_update'] = 'Naloži novo različico';
$lang['media_restore'] = 'Obnovi to različico';
-$lang['plugin_install_err'] = 'Vstavek ni pravilno nameščen. Preimenujte mapo vstavka\'%s\' v \'%s\'.';
diff --git a/inc/lang/vi/lang.php b/inc/lang/vi/lang.php
index c9179f6b3..99c4d47e4 100644
--- a/inc/lang/vi/lang.php
+++ b/inc/lang/vi/lang.php
@@ -263,6 +263,4 @@ $lang['media_perm_upload'] = 'Xin lỗi, bạn không đủ quyền để up
$lang['media_update'] = 'Tải lên phiên bản mới';
$lang['media_restore'] = 'Phục hồi phiên bản này';
-$lang['plugin_install_err'] = "Plugin không được cài đặt chính xác.Đổi tên thư mục plugin '%s' thành '%s'.";
-
//Setup VIM: ex: et ts=2 :
diff --git a/inc/lang/zh-tw/admin.txt b/inc/lang/zh-tw/admin.txt
index 3cc10335d..5916e7106 100644
--- a/inc/lang/zh-tw/admin.txt
+++ b/inc/lang/zh-tw/admin.txt
@@ -1,4 +1,3 @@
====== 管理選單 ======
-以下為 DokuWiki 的管理設定
-
+以下為 DokuWiki 的管理設定。 \ No newline at end of file
diff --git a/inc/lang/zh-tw/diff.txt b/inc/lang/zh-tw/diff.txt
index b2b662ec3..17fad7ba0 100644
--- a/inc/lang/zh-tw/diff.txt
+++ b/inc/lang/zh-tw/diff.txt
@@ -1,4 +1,3 @@
====== 差異處 ======
-這裡顯示二個版本的差異處。
-
+這裏顯示二個版本的差異處。 \ No newline at end of file
diff --git a/inc/lang/zh-tw/index.txt b/inc/lang/zh-tw/index.txt
index 11ec223d9..bba277041 100644
--- a/inc/lang/zh-tw/index.txt
+++ b/inc/lang/zh-tw/index.txt
@@ -1,3 +1,3 @@
====== 站台地圖 ======
-這個站台地圖列出了所有允許的頁面,依 [[doku>namespaces|命名空間]] 排序。
+這個站台地圖列出了所有允許的頁面,依 [[doku>namespaces|分類空間]] 排序。 \ No newline at end of file
diff --git a/inc/lang/zh-tw/install.html b/inc/lang/zh-tw/install.html
index f435efc21..2a8b1aac3 100644
--- a/inc/lang/zh-tw/install.html
+++ b/inc/lang/zh-tw/install.html
@@ -1,8 +1,8 @@
-<p>本頁面旨在幫助您完成第一次安装和配置 <a href="http://dokuwiki.org">Dokuwiki</a>。關於安裝工具的更多訊息請參閱 <a href="http://dokuwiki.org/installer">官方文檔頁面</a>。</p>
+<p>本頁面旨在幫助您完成第一次安装和設定 <a href="http://dokuwiki.org">Dokuwiki</a>。關於安裝工具的更多訊息請參閱 <a href="http://dokuwiki.org/installer">官方文檔頁面</a>。</p>
<p>DokuWiki 使用普通檔案儲存維基頁面以及與頁面相關的訊息(例如:圖像,搜尋索引,修訂記錄等)。為了正常運作,DokuWiki <strong>必須</strong> 擁有針對那些路徑和檔案的寫入權限。本安裝工具無法設定目錄權限,這通常要透過命令行、FTP 或您主機上的控制台(如cPanel)進行。</p>
-<p>本安裝工具將設定您的 DokuWiki 用於 <abbr title="訪問控制列表">ACL</abbr> 的配置檔,它能讓管理員登入並使用「管理」功能來安裝插件、管理用户、管理訪問權限和其他配置設定。它並不是 DokuWiki 正常運作所必須,但安裝之後將更方便管理。</p>
+<p>本安裝工具將設定您的 DokuWiki 用於 <abbr title="訪問控制列表">ACL</abbr> 的設定檔,它能讓管理員登入並使用「管理」功能來安裝插件、管理用户、管理訪問權限和其他設定設定。它並不是 DokuWiki 正常運作所必須,但安裝之後將更方便管理。</p>
<p>有經驗的用戶或有特殊需求的用戶請參閱更詳細的 <a href="http://dokuwiki.org/install">安裝指南</a>
-和 <a href="http://dokuwiki.org/config">配置設定</a>。</p> \ No newline at end of file
+和 <a href="http://dokuwiki.org/config">設定</a>。</p> \ No newline at end of file
diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php
index bbbbb71a6..2cceb4012 100644
--- a/inc/lang/zh-tw/lang.php
+++ b/inc/lang/zh-tw/lang.php
@@ -10,6 +10,7 @@
* @author Cheng-Wei Chien <e.cwchien@gmail.com>
* @author Danny Lin
* @author Shuo-Ting Jian <shoting@gmail.com>
+ * @author syaoranhinata@gmail.com
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -45,6 +46,7 @@ $lang['btn_backtomedia'] = '重新選擇圖檔';
$lang['btn_subscribe'] = '訂閱更動通知';
$lang['btn_profile'] = '更新個人資料';
$lang['btn_reset'] = '資料重設';
+$lang['btn_resendpwd'] = '設定新密碼';
$lang['btn_draft'] = '編輯草稿';
$lang['btn_recover'] = '復原草稿';
$lang['btn_draftdel'] = '捨棄草稿';
@@ -60,39 +62,41 @@ $lang['oldpass'] = '目前密碼';
$lang['passchk'] = '確認密碼';
$lang['remember'] = '記住帳號密碼';
$lang['fullname'] = '真實姓名';
-$lang['email'] = 'E-Mail';
+$lang['email'] = '電郵';
$lang['profile'] = '使用者個人資料';
-$lang['badlogin'] = '很抱歉,您的使用者名稱或密碼可能有錯誤';
+$lang['badlogin'] = '很抱歉,您的使用者名稱或密碼可能有錯誤。';
$lang['minoredit'] = '小修改';
$lang['draftdate'] = '草稿已自動存檔於';
$lang['nosecedit'] = '頁面在這之間已被修改,過時的區段資料已載入全頁取代。';
-$lang['regmissing'] = '很抱歉,所有欄位都要填寫';
-$lang['reguexists'] = '很抱歉,本帳號已被註冊';
+$lang['regmissing'] = '很抱歉,所有欄位都要填寫。';
+$lang['reguexists'] = '很抱歉,本帳號已被註冊。';
$lang['regsuccess'] = '使用者已建立,密碼已寄發至該 email。';
-$lang['regsuccess2'] = '使用者已建立';
+$lang['regsuccess2'] = '使用者已建立。';
$lang['regmailfail'] = '寄出密碼信似乎發生錯誤,請跟管理員聯絡!';
$lang['regbadmail'] = '您輸入的 email 似乎不對,如果您認為是正確的,請與管理員聯絡。';
$lang['regbadpass'] = '兩次輸入的密碼不一致,請再試一次。';
$lang['regpwmail'] = '您的 DokuWiki 帳號密碼';
$lang['reghere'] = '您還沒有帳號嗎?註冊一個吧。';
-$lang['profna'] = '本維基不開放修改個人資料';
-$lang['profnochange'] = '未做任何變更';
-$lang['profnoempty'] = '帳號或 email 地址不可空白!';
-$lang['profchanged'] = '個人資料已成功更新囉。';
+$lang['profna'] = '本維基不開放修改個人資料。';
+$lang['profnochange'] = '未做任何變更。';
+$lang['profnoempty'] = '帳號或電郵地址不可空白!';
+$lang['profchanged'] = '個人資料已成功更新。';
$lang['pwdforget'] = '忘記密碼了?索取新密碼!';
-$lang['resendna'] = '本維基不開放重寄密碼';
+$lang['resendna'] = '本維基不開放重寄密碼。';
+$lang['resendpwd'] = '設定新密碼供';
$lang['resendpwdmissing'] = '抱歉,您必須填寫所有欄位。';
-$lang['resendpwdnouser'] = '抱歉,資料庫內找不到這個使用者';
+$lang['resendpwdnouser'] = '抱歉,資料庫內找不到這個使用者。';
$lang['resendpwdbadauth'] = '抱歉,認證碼無效。請確認您使用了完整的確認連結。';
$lang['resendpwdconfirm'] = '確認連結已通過郵件發送給您了。';
$lang['resendpwdsuccess'] = '您的新密碼已寄出。';
$lang['license'] = '若未特別註明,此維基上的內容都是採用以下授權方式:';
$lang['licenseok'] = '注意:編輯此頁面表示您已同意以下的授權方式:';
$lang['searchmedia'] = '搜尋檔名:';
-$lang['searchmedia_in'] = '在 %s 裡搜尋';
+$lang['searchmedia_in'] = '在 %s 裏搜尋';
$lang['txt_upload'] = '請選擇要上傳的檔案';
$lang['txt_filename'] = '請輸入要存在維基內的檔案名稱 (非必要)';
$lang['txt_overwrt'] = '是否要覆蓋原有檔案';
+$lang['maxuploadsize'] = '每個上傳檔案不可大於 %s 。';
$lang['lockedby'] = '目前已被下列人員鎖定';
$lang['lockexpire'] = '預計解除鎖定於';
$lang['js']['willexpire'] = '本頁的編輯鎖定將在一分鐘內到期。要避免發生衝突,請按「預覽」鍵重設鎖定計時。';
@@ -122,12 +126,12 @@ $lang['js']['mediaright'] = '圖像靠右對齊';
$lang['js']['mediacenter'] = '圖像置中對齊';
$lang['js']['medianoalign'] = '不對齊';
$lang['js']['nosmblinks'] = '只有在 Microsoft IE 下才能執行「連結到 Windows shares」。
-不過您仍可複製及貼上這個連結';
+不過您仍可複製及貼上這個連結。';
$lang['js']['linkwiz'] = '建立連結精靈';
$lang['js']['linkto'] = '連結至:';
$lang['js']['del_confirm'] = '確定刪除選取的項目?';
$lang['js']['restore_confirm'] = '確定還原到這個版本?';
-$lang['js']['media_diff'] = '檢視差異:';
+$lang['js']['media_diff'] = '檢視差異:';
$lang['js']['media_diff_both'] = '並排';
$lang['js']['media_diff_opacity'] = '重疊';
$lang['js']['media_diff_portions'] = '滑動';
@@ -145,21 +149,21 @@ $lang['uploadsucc'] = '上傳成功';
$lang['uploadfail'] = '上傳失敗。似乎是權限錯誤?';
$lang['uploadwrong'] = '拒絕上傳。這個副檔名被禁止了!';
$lang['uploadexist'] = '檔案已存在,未處理。';
-$lang['uploadbadcontent'] = '上傳檔案的內容不符合 %s 檔的副檔名';
+$lang['uploadbadcontent'] = '上傳檔案的內容不符合 %s 檔的副檔名。';
$lang['uploadspam'] = '這次的上傳被垃圾訊息黑名單阻檔了。';
$lang['uploadxss'] = '這次的上傳因可能的惡意的內容而被阻檔。';
$lang['uploadsize'] = '上傳的檔案太大了 (最大:%s)';
$lang['deletesucc'] = '檔案 "%s" 已刪除。';
$lang['deletefail'] = '檔案 "%s" 無法刪除,請檢查權限定。';
$lang['mediainuse'] = '檔案 "%s" 未刪除,因為它正被使用。';
-$lang['namespaces'] = '命名空間';
+$lang['namespaces'] = '分類空間';
$lang['mediafiles'] = '可用的檔案有';
-$lang['accessdenied'] = '您不被允許檢視此頁面';
-$lang['mediausage'] = '使用以下的語法來連結此檔案:';
+$lang['accessdenied'] = '您不可以檢視此頁面。';
+$lang['mediausage'] = '使用以下的語法來連結此檔案:';
$lang['mediaview'] = '檢視原始檔案';
$lang['mediaroot'] = 'root';
-$lang['mediaupload'] = '上傳檔案至目前的命名空間。要建立次級命名空間,將其名稱加在「上傳並重命名為」檔案名的前面,並用英文冒號隔開';
-$lang['mediaextchange'] = '檔案類型已由 .%s 變更為 .%s !';
+$lang['mediaupload'] = '上傳檔案至目前的分類空間。要建立子分類空間,將其名稱加在「上傳並重命名為」檔案名的前面,並用英文冒號隔開。';
+$lang['mediaextchange'] = '檔案類型已由 .%s 變更為 .%s !';
$lang['reference'] = '引用到本頁的,合計有';
$lang['ref_inuse'] = '此檔案無法刪除,因為它正被以下頁面使用:';
$lang['ref_hidden'] = '一些參考內容位於您沒有讀取權限的頁面中';
@@ -186,11 +190,17 @@ $lang['external_edit'] = '外部編輯';
$lang['summary'] = '編輯摘要';
$lang['noflash'] = '顯示此內容需要 <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>';
$lang['download'] = '下載程式碼片段';
-$lang['mail_newpage'] = '增加的頁面:';
-$lang['mail_changed'] = '變更的頁面:';
-$lang['mail_subscribe_list'] = '命名空間中更動的頁面:';
-$lang['mail_new_user'] = '新使用者:';
-$lang['mail_upload'] = '已上傳檔案:';
+$lang['tools'] = '工具';
+$lang['user_tools'] = '用戶工具';
+$lang['site_tools'] = '網站工具';
+$lang['page_tools'] = '頁面工具';
+$lang['skip_to_content'] = '跳至內容';
+$lang['sidebar'] = '側欄';
+$lang['mail_newpage'] = '增加的頁面:';
+$lang['mail_changed'] = '變更的頁面:';
+$lang['mail_subscribe_list'] = '分類空間中更動的頁面:';
+$lang['mail_new_user'] = '新使用者:';
+$lang['mail_upload'] = '已上傳檔案:';
$lang['changes_type'] = '檢視最近更新類型';
$lang['pages_changes'] = '頁面';
$lang['media_changes'] = '多媒體檔案';
@@ -219,7 +229,7 @@ $lang['qb_media'] = '加入圖片或檔案';
$lang['qb_sig'] = '插入簽名';
$lang['qb_smileys'] = '表情符號';
$lang['qb_chars'] = '特殊字元';
-$lang['upperns'] = '前往父層命名空間';
+$lang['upperns'] = '前往父分類空間';
$lang['admin_register'] = '新增使用者';
$lang['metaedit'] = '編輯後設資料';
$lang['metasaveerr'] = '後設資料寫入失敗';
@@ -245,7 +255,7 @@ $lang['subscr_unsubscribe_success'] = '已將 %s 移除自 %s 的訂閱列表';
$lang['subscr_unsubscribe_error'] = '將 %s 移除自 %s 的訂閱列表時發生錯誤';
$lang['subscr_already_subscribed'] = '%s 已經被 %s 訂閱了';
$lang['subscr_not_subscribed'] = '%s 尚未被 %s 訂閱';
-$lang['subscr_m_not_subscribed'] = '您尚未訂閱目前的頁面或命名空間。';
+$lang['subscr_m_not_subscribed'] = '您尚未訂閱目前的頁面或分類空間。';
$lang['subscr_m_new_header'] = '加入訂閱';
$lang['subscr_m_current_header'] = '目前訂閱';
$lang['subscr_m_unsubscribe'] = '取消訂閱';
@@ -256,6 +266,7 @@ $lang['subscr_style_digest'] = '對每個頁面發送更改的摘要信件 (
$lang['subscr_style_list'] = '自上次發信以來更改的頁面的列表 (每 %.2f 天)';
$lang['authmodfailed'] = '帳號認證的設定不正確,請通知該維基管理員。';
$lang['authtempfail'] = '帳號認證目前暫不提供,若本狀況持續發生的話,請通知該維基管理員。';
+$lang['authpwdexpire'] = '您的密碼將在 %d 天內到期,請馬上更換新密碼。';
$lang['i_chooselang'] = '選擇您的語系';
$lang['i_installer'] = 'DokuWiki 安裝工具';
$lang['i_wikiname'] = '維基名稱';
@@ -280,7 +291,7 @@ $lang['i_pol1'] = '公開的維基 (任何人可讀取,註冊
$lang['i_pol2'] = '封閉的維基 (只有註冊使用者可讀取、寫入、上傳)';
$lang['i_retry'] = '重試';
$lang['i_license'] = '請選擇您想要的內容發布許可協議:';
-$lang['recent_global'] = '您正在閱讀命名空間: <b>%s</b> 中的變更。您亦可觀看整個維基的<a href="%s">最近更新</a>。';
+$lang['recent_global'] = '您正在閱讀分類空間: <b>%s</b> 中的變更。您亦可觀看整個維基的<a href="%s">最近更新</a>。';
$lang['years'] = '%d 年前';
$lang['months'] = '%d 個月前';
$lang['weeks'] = '%d 週前';
@@ -299,7 +310,7 @@ $lang['media_list_thumbs'] = '縮圖';
$lang['media_list_rows'] = '列表';
$lang['media_sort_name'] = '名稱';
$lang['media_sort_date'] = '日期';
-$lang['media_namespaces'] = '選擇命名空間';
+$lang['media_namespaces'] = '選擇分類空間';
$lang['media_files'] = '在 %s 中的檔案';
$lang['media_upload'] = '上傳至 %s';
$lang['media_search'] = '在 %s 中搜尋';
@@ -308,8 +319,7 @@ $lang['media_viewold'] = '%s 在 %s';
$lang['media_edit'] = '編輯 %s';
$lang['media_history'] = '%s 的歷史紀錄';
$lang['media_meta_edited'] = '元資料已編輯';
-$lang['media_perm_read'] = '抱歉,您沒有足夠權限讀取檔案';
+$lang['media_perm_read'] = '抱歉,您沒有足夠權限讀取檔案。';
$lang['media_perm_upload'] = '抱歉,您沒有足夠權限上傳檔案。';
$lang['media_update'] = '上傳新的版本';
$lang['media_restore'] = '還原這個版本';
-$lang['plugin_install_err'] = '插件安裝錯誤。將插件目錄 "%s" 重新命名為 "%s"';
diff --git a/inc/lang/zh-tw/mailwrap.html b/inc/lang/zh-tw/mailwrap.html
new file mode 100644
index 000000000..9cd5faacd
--- /dev/null
+++ b/inc/lang/zh-tw/mailwrap.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<title>@TITLE@</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
+
+@HTMLBODY@
+
+<br /><hr />
+<small>這郵件由DokuWiki at @DOKUWIKIURL@. 生成</small>
+</body>
+</html> \ No newline at end of file
diff --git a/inc/lang/zh-tw/resetpwd.txt b/inc/lang/zh-tw/resetpwd.txt
new file mode 100644
index 000000000..f760335af
--- /dev/null
+++ b/inc/lang/zh-tw/resetpwd.txt
@@ -0,0 +1,3 @@
+====== 設定新密碼 ======
+
+請為您的帳戶輸入新密碼。 \ No newline at end of file
diff --git a/inc/lang/zh-tw/subscr_digest.txt b/inc/lang/zh-tw/subscr_digest.txt
index a26e73050..a0f2be73e 100644
--- a/inc/lang/zh-tw/subscr_digest.txt
+++ b/inc/lang/zh-tw/subscr_digest.txt
@@ -12,8 +12,8 @@
要取消頁面提醒,請登入維基 @DOKUWIKIURL@
然後拜訪 @SUBSCRIBE@
-並取消訂閱頁面或命名空間的更改。
+並取消訂閱頁面或分類空間的更改。
--
本信件由以下 DokuWiki 站台產生:
-@DOKUWIKIURL@
+@DOKUWIKIURL@ \ No newline at end of file
diff --git a/inc/lang/zh-tw/subscr_form.txt b/inc/lang/zh-tw/subscr_form.txt
index 0ad675cc8..394d4cbad 100644
--- a/inc/lang/zh-tw/subscr_form.txt
+++ b/inc/lang/zh-tw/subscr_form.txt
@@ -1,3 +1,3 @@
====== 訂閱管理 ======
-這個頁面允許您管理在目前頁面和命名空間的訂閱。 \ No newline at end of file
+這個頁面允許您管理在目前頁面和分類空間的訂閱。 \ No newline at end of file
diff --git a/inc/lang/zh-tw/subscr_list.txt b/inc/lang/zh-tw/subscr_list.txt
index 2a1b26c6e..078eae63e 100644
--- a/inc/lang/zh-tw/subscr_list.txt
+++ b/inc/lang/zh-tw/subscr_list.txt
@@ -1,6 +1,6 @@
您好!
-維基 @TITLE@ 的 @PAGE@ 命名空間的頁面已更改。
+維基 @TITLE@ 的 @PAGE@ 分類空間的頁面已更改。
更改內容如下:
--------------------------------------------------------
@@ -9,8 +9,8 @@
要取消頁面提醒,請登入維基 @DOKUWIKIURL@
然後拜訪 @SUBSCRIBE@
-並取消訂閱頁面或命名空間的更改。
+並取消訂閱頁面或分類空間的更改。
--
本信件由以下 DokuWiki 站台產生:
-@DOKUWIKIURL@
+@DOKUWIKIURL@ \ No newline at end of file
diff --git a/inc/lang/zh-tw/subscr_single.txt b/inc/lang/zh-tw/subscr_single.txt
index f3c623c5c..5128140d0 100644
--- a/inc/lang/zh-tw/subscr_single.txt
+++ b/inc/lang/zh-tw/subscr_single.txt
@@ -15,8 +15,8 @@
要取消頁面提醒,請登入維基 @DOKUWIKIURL@
然後拜訪 @NEWPAGE@
-並取消訂閱頁面或命名空間的更改。
+並取消訂閱頁面或分類空間的更改。
--
本信件由以下 DokuWiki 站台產生:
-@DOKUWIKIURL@
+@DOKUWIKIURL@ \ No newline at end of file
diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php
index 9ea0f5e7f..b21a74ed5 100644
--- a/inc/lang/zh/lang.php
+++ b/inc/lang/zh/lang.php
@@ -190,7 +190,7 @@ $lang['lastmod'] = '最后更改';
$lang['by'] = '由';
$lang['deleted'] = '移除';
$lang['created'] = '创建';
-$lang['restored'] = '已恢复为旧版';
+$lang['restored'] = '已恢复为旧版 (%s)';
$lang['external_edit'] = '外部编辑';
$lang['summary'] = '编辑摘要';
$lang['noflash'] = '需要 <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash 插件</a> 来播放本内容。 ';
@@ -200,6 +200,7 @@ $lang['user_tools'] = '用户工具';
$lang['site_tools'] = '站点工具';
$lang['page_tools'] = '页面工具';
$lang['skip_to_content'] = '跳至内容';
+$lang['sidebar'] = '侧边栏';
$lang['mail_newpage'] = '添加页面:';
$lang['mail_changed'] = '更改页面:';
$lang['mail_subscribe_list'] = '命名空间中改变的页面:';
@@ -329,4 +330,3 @@ $lang['media_perm_read'] = '抱歉,您没有足够权限读取这些文
$lang['media_perm_upload'] = '抱歉,您没有足够权限来上传文件。';
$lang['media_update'] = '上传新版本';
$lang['media_restore'] = '恢复这个版本';
-$lang['plugin_install_err'] = '插件安装不正确。重命名插件目录“%s”为“%s”。';
diff --git a/inc/load.php b/inc/load.php
index b676518e7..b8a279523 100644
--- a/inc/load.php
+++ b/inc/load.php
@@ -95,13 +95,13 @@ function load_autoload($name){
}
// Plugin loading
- if(preg_match('/^(helper|syntax|action|admin|renderer|remote)_plugin_([^_]+)(?:_([^_]+))?$/',
+ if(preg_match('/^(helper|syntax|action|admin|renderer|remote)_plugin_('.DOKU_PLUGIN_NAME_REGEX.')(?:_([^_]+))?$/',
$name, $m)) {
// try to load the wanted plugin file
$c = ((count($m) === 4) ? "/{$m[3]}" : '');
$plg = DOKU_PLUGIN . "{$m[2]}/{$m[1]}$c.php";
if(@file_exists($plg)){
- include DOKU_PLUGIN . "{$m[2]}/{$m[1]}$c.php";
+ include_once DOKU_PLUGIN . "{$m[2]}/{$m[1]}$c.php";
}
return;
}
diff --git a/inc/mail.php b/inc/mail.php
index bec0c5b10..d0ea651bf 100644
--- a/inc/mail.php
+++ b/inc/mail.php
@@ -32,20 +32,25 @@ if (!defined('PREG_PATTERN_VALID_EMAIL')) define('PREG_PATTERN_VALID_EMAIL', '['
/**
* Prepare mailfrom replacement patterns
*
+ * Also prepares a mailfromnobody config that contains an autoconstructed address
+ * if the mailfrom one is userdependent and this might not be wanted (subscriptions)
+ *
* @author Andreas Gohr <andi@splitbrain.org>
*/
function mail_setup(){
global $conf;
global $USERINFO;
- $replace = array();
+ // auto constructed address
+ $host = @parse_url(DOKU_URL,PHP_URL_HOST);
+ if(!$host) $host = 'example.com';
+ $noreply = 'noreply@'.$host;
+ $replace = array();
if(!empty($USERINFO['mail'])){
$replace['@MAIL@'] = $USERINFO['mail'];
}else{
- $host = @parse_url(DOKU_URL,PHP_URL_HOST);
- if(!$host) $host = 'example.com';
- $replace['@MAIL@'] = 'noreply@'.$host;
+ $replace['@MAIL@'] = $noreply;
}
if(!empty($_SERVER['REMOTE_USER'])){
@@ -60,9 +65,18 @@ function mail_setup(){
$replace['@NAME@'] = '';
}
- $conf['mailfrom'] = str_replace(array_keys($replace),
- array_values($replace),
- $conf['mailfrom']);
+ // apply replacements
+ $from = str_replace(array_keys($replace),
+ array_values($replace),
+ $conf['mailfrom']);
+
+ // any replacements done? set different mailfromnone
+ if($from != $conf['mailfrom']){
+ $conf['mailfromnobody'] = $noreply;
+ }else{
+ $conf['mailfromnobody'] = $from;
+ }
+ $conf['mailfrom'] = $from;
}
/**
diff --git a/inc/media.php b/inc/media.php
index 35112f274..6335bf210 100644
--- a/inc/media.php
+++ b/inc/media.php
@@ -296,7 +296,7 @@ function media_upload($ns,$auth,$file=false){
$res = media_save(array('name' => $file['tmp_name'],
'mime' => $imime,
'ext' => $iext), $ns.':'.$id,
- $INPUT->post->bool('ow'), $auth, 'move_uploaded_file');
+ $INPUT->post->bool('ow'), $auth, 'copy_uploaded_file');
if (is_array($res)) {
msg($res[0], $res[1]);
return false;
@@ -305,6 +305,23 @@ function media_upload($ns,$auth,$file=false){
}
/**
+ * An alternative to move_uploaded_file that copies
+ *
+ * Using copy, makes sure any setgid bits on the media directory are honored
+ *
+ * @see move_uploaded_file()
+ * @param string $from
+ * @param string $to
+ * @return bool
+ */
+function copy_uploaded_file($from, $to){
+ if(!is_uploaded_file($from)) return false;
+ $ok = copy($from, $to);
+ @unlink($from);
+ return $ok;
+}
+
+/**
* This generates an action event and delegates to _media_upload_action().
* Action plugins are allowed to pre/postprocess the uploaded file.
* (The triggered event is preventable.)
@@ -646,6 +663,7 @@ function media_tab_files_options(){
global $lang;
global $NS;
global $INPUT;
+ global $ID;
$form = new Doku_Form(array('class' => 'options', 'method' => 'get',
'action' => wl($ID)));
$media_manager_params = media_managerURL(array(), '', false, true);
@@ -1365,9 +1383,9 @@ function media_printfile($item,$auth,$jump,$display_namespace=false){
// output
echo '<div class="'.$zebra.'"'.$jump.' title="'.hsc($item['id']).'">'.NL;
if (!$display_namespace) {
- echo '<a name="h_:'.$item['id'].'" class="'.$class.'">'.hsc($file).'</a> ';
+ echo '<a id="h_:'.$item['id'].'" class="'.$class.'">'.hsc($file).'</a> ';
} else {
- echo '<a name="h_:'.$item['id'].'" class="'.$class.'">'.hsc($item['id']).'</a><br/>';
+ echo '<a id="h_:'.$item['id'].'" class="'.$class.'">'.hsc($item['id']).'</a><br/>';
}
echo '<span class="info">('.$info.')</span>'.NL;
@@ -1431,7 +1449,7 @@ function media_printfile_thumbs($item,$auth,$jump=false,$display_namespace=false
media_printimgdetail($item, true);
} else {
- echo '<a name="d_:'.$item['id'].'" class="image" title="'.$item['id'].'" href="'.
+ echo '<a id="d_:'.$item['id'].'" class="image" title="'.$item['id'].'" href="'.
media_managerURL(array('image' => hsc($item['id']), 'ns' => getNS($item['id']),
'tab_details' => 'view')).'">';
echo media_printicon($item['id']);
@@ -1444,7 +1462,7 @@ function media_printfile_thumbs($item,$auth,$jump=false,$display_namespace=false
$name = hsc($item['id']);
}
echo '<dd class="name"><a href="'.media_managerURL(array('image' => hsc($item['id']), 'ns' => getNS($item['id']),
- 'tab_details' => 'view')).'" name="h_:'.$item['id'].'">'.$name.'</a></dd>'.NL;
+ 'tab_details' => 'view')).'" id="h_:'.$item['id'].'">'.$name.'</a></dd>'.NL;
if($item['isimg']){
$size = '';
@@ -1492,7 +1510,7 @@ function media_printimgdetail($item, $fullscreen=false){
// output
if ($fullscreen) {
- echo '<a name="l_:'.$item['id'].'" class="image thumb" href="'.
+ echo '<a id="l_:'.$item['id'].'" class="image thumb" href="'.
media_managerURL(array('image' => hsc($item['id']), 'ns' => getNS($item['id']), 'tab_details' => 'view')).'">';
echo '<img src="'.$src.'" '.$att.' />';
echo '</a>';
@@ -1502,7 +1520,7 @@ function media_printimgdetail($item, $fullscreen=false){
echo '<div class="detail">';
echo '<div class="thumb">';
- echo '<a name="d_:'.$item['id'].'" class="select">';
+ echo '<a id="d_:'.$item['id'].'" class="select">';
echo '<img src="'.$src.'" '.$att.' />';
echo '</a>';
echo '</div>';
diff --git a/inc/pageutils.php b/inc/pageutils.php
index d6abff894..3bb10883f 100644
--- a/inc/pageutils.php
+++ b/inc/pageutils.php
@@ -199,7 +199,8 @@ function noNSorNS($id) {
* Creates a XHTML valid linkid from a given headline title
*
* @param string $title The headline title
- * @param array $check Existing IDs (title => number)
+ * @param array|bool $check Existing IDs (title => number)
+ * @return string the title
* @author Andreas Gohr <andi@splitbrain.org>
*/
function sectionID($title,&$check) {
@@ -535,15 +536,25 @@ function getCacheName($data,$ext=''){
* @author Andreas Gohr <gohr@cosmocode.de>
*/
function isHiddenPage($id){
+ $data = array(
+ 'id' => $id,
+ 'hidden' => false
+ );
+ trigger_event('PAGEUTILS_ID_HIDEPAGE', $data, '_isHiddenPage');
+ return $data['hidden'];
+}
+
+function _isHiddenPage(&$data) {
global $conf;
global $ACT;
- if(empty($conf['hidepages'])) return false;
- if($ACT == 'admin') return false;
- if(preg_match('/'.$conf['hidepages'].'/ui',':'.$id)){
- return true;
+ if ($data['hidden']) return;
+ if(empty($conf['hidepages'])) return;
+ if($ACT == 'admin') return;
+
+ if(preg_match('/'.$conf['hidepages'].'/ui',':'.$data['id'])){
+ $data['hidden'] = true;
}
- return false;
}
/**
diff --git a/inc/parser/metadata.php b/inc/parser/metadata.php
index 8bfdc3b9c..8638ffa6a 100644
--- a/inc/parser/metadata.php
+++ b/inc/parser/metadata.php
@@ -133,27 +133,6 @@ class Doku_Renderer_metadata extends Doku_Renderer {
}
}
- function strong_open(){}
- function strong_close(){}
-
- function emphasis_open(){}
- function emphasis_close(){}
-
- function underline_open(){}
- function underline_close(){}
-
- function monospace_open(){}
- function monospace_close(){}
-
- function subscript_open(){}
- function subscript_close(){}
-
- function superscript_open(){}
- function superscript_close(){}
-
- function deleted_open(){}
- function deleted_close(){}
-
/**
* Callback for footnote start syntax
*
@@ -218,14 +197,6 @@ class Doku_Renderer_metadata extends Doku_Renderer {
if ($this->capture) $this->doc .= $text;
}
- function php($text){}
-
- function phpblock($text){}
-
- function html($text){}
-
- function htmlblock($text){}
-
function preformatted($text){
if ($this->capture) $this->doc .= $text;
}
@@ -393,18 +364,6 @@ class Doku_Renderer_metadata extends Doku_Renderer {
$params['refresh'];
}
- function table_open($maxcols = NULL, $numrows = NULL){}
- function table_close(){}
-
- function tablerow_open(){}
- function tablerow_close(){}
-
- function tableheader_open($colspan = 1, $align = NULL, $rowspan = 1){}
- function tableheader_close(){}
-
- function tablecell_open($colspan = 1, $align = NULL, $rowspan = 1){}
- function tablecell_close(){}
-
//----------------------------------------------------------
// Utils
diff --git a/inc/parser/renderer.php b/inc/parser/renderer.php
index 0923e6896..2c78f220a 100644
--- a/inc/parser/renderer.php
+++ b/inc/parser/renderer.php
@@ -62,7 +62,7 @@ class Doku_Renderer extends DokuWiki_Plugin {
//handle plugin rendering
function plugin($name,$data){
- $plugin =& plugin_load('syntax',$name);
+ $plugin = plugin_load('syntax',$name);
if($plugin != null){
$plugin->render($this->getFormat(),$this,$data);
}
diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php
index e18718746..b4e78a530 100644
--- a/inc/parser/xhtml.php
+++ b/inc/parser/xhtml.php
@@ -358,6 +358,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
/**
* Execute PHP code if allowed
*
+ * @param string $text PHP code that is either executed or printed
* @param string $wrapper html element to wrap result if $conf['phpok'] is okff
*
* @author Andreas Gohr <andi@splitbrain.org>
@@ -382,6 +383,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
/**
* Insert HTML if allowed
*
+ * @param string $text html text
* @param string $wrapper html element to wrap result if $conf['htmlok'] is okff
*
* @author Andreas Gohr <andi@splitbrain.org>
diff --git a/inc/parserutils.php b/inc/parserutils.php
index 20f992ba2..1733fcf09 100644
--- a/inc/parserutils.php
+++ b/inc/parserutils.php
@@ -386,9 +386,18 @@ function p_set_metadata($id, $data, $render=false, $persistent=true){
if ($key == 'relation'){
foreach ($value as $subkey => $subvalue){
- $meta['current'][$key][$subkey] = !empty($meta['current'][$key][$subkey]) ? array_merge($meta['current'][$key][$subkey], $subvalue) : $subvalue;
- if ($persistent)
- $meta['persistent'][$key][$subkey] = !empty($meta['persistent'][$key][$subkey]) ? array_merge($meta['persistent'][$key][$subkey], $subvalue) : $subvalue;
+ if(isset($meta['current'][$key][$subkey]) && is_array($meta['current'][$key][$subkey])) {
+ $meta['current'][$key][$subkey] = array_merge($meta['current'][$key][$subkey], (array)$subvalue);
+ } else {
+ $meta['current'][$key][$subkey] = $subvalue;
+ }
+ if($persistent) {
+ if(isset($meta['persistent'][$key][$subkey]) && is_array($meta['persistent'][$key][$subkey])) {
+ $meta['persistent'][$key][$subkey] = array_merge($meta['persistent'][$key][$subkey], (array)$subvalue);
+ } else {
+ $meta['persistent'][$key][$subkey] = $subvalue;
+ }
+ }
}
// be careful with some senisitive arrays of $meta
@@ -396,10 +405,10 @@ function p_set_metadata($id, $data, $render=false, $persistent=true){
// these keys, must have subkeys - a legitimate value must be an array
if (is_array($value)) {
- $meta['current'][$key] = !empty($meta['current'][$key]) ? array_merge($meta['current'][$key],$value) : $value;
+ $meta['current'][$key] = !empty($meta['current'][$key]) ? array_merge((array)$meta['current'][$key],$value) : $value;
if ($persistent) {
- $meta['persistent'][$key] = !empty($meta['persistent'][$key]) ? array_merge($meta['persistent'][$key],$value) : $value;
+ $meta['persistent'][$key] = !empty($meta['persistent'][$key]) ? array_merge((array)$meta['persistent'][$key],$value) : $value;
}
}
@@ -570,7 +579,7 @@ function p_get_parsermodes(){
$obj = null;
foreach($pluginlist as $p){
/** @var DokuWiki_Syntax_Plugin $obj */
- if(!$obj =& plugin_load('syntax',$p)) continue; //attempt to load plugin into $obj
+ if(!$obj = plugin_load('syntax',$p)) continue; //attempt to load plugin into $obj
$PARSER_MODES[$obj->getType()][] = "plugin_$p"; //register mode type
//add to modes
$modes[] = array(
@@ -668,7 +677,9 @@ function p_render($mode,$instructions,&$info){
// Loop through the instructions
foreach ( $instructions as $instruction ) {
// Execute the callback against the Renderer
- call_user_func_array(array(&$Renderer, $instruction[0]), $instruction[1] ? $instruction[1] : array());
+ if(method_exists($Renderer, $instruction[0])){
+ call_user_func_array(array(&$Renderer, $instruction[0]), $instruction[1] ? $instruction[1] : array());
+ }
}
//set info array
diff --git a/inc/plugin.php b/inc/plugin.php
index d2fe3818d..b0518346d 100644
--- a/inc/plugin.php
+++ b/inc/plugin.php
@@ -191,7 +191,7 @@ class DokuWiki_Plugin {
*/
function loadHelper($name, $msg){
if (!plugin_isdisabled($name)){
- $obj =& plugin_load('helper',$name);
+ $obj = plugin_load('helper',$name);
}else{
$obj = null;
}
diff --git a/inc/plugincontroller.class.php b/inc/plugincontroller.class.php
index 11636fb91..0b4041a77 100644
--- a/inc/plugincontroller.class.php
+++ b/inc/plugincontroller.class.php
@@ -70,7 +70,6 @@ class Doku_Plugin_Controller {
//we keep all loaded plugins available in global scope for reuse
global $DOKU_PLUGINS;
- global $lang;
list($plugin,$component) = $this->_splitName($name);
@@ -97,7 +96,10 @@ class Doku_Plugin_Controller {
$dir = $this->get_directory($plugin);
$inf = confToHash(DOKU_PLUGIN."$dir/plugin.info.txt");
if($inf['base'] && $inf['base'] != $plugin){
- msg(sprintf($lang['plugin_install_err'],hsc($plugin),hsc($inf['base'])),-1);
+ msg(sprintf("Plugin installed incorrectly. Rename plugin directory '%s' to '%s'.", hsc($plugin), hsc($inf['base'])), -1);
+ } elseif (preg_match('/^'.DOKU_PLUGIN_NAME_REGEX.'$/', $plugin) !== 1) {
+ msg(sprintf("Plugin name '%s' is not a valid plugin name, only the characters a-z and 0-9 are allowed. ".
+ 'Maybe the plugin has been installed in the wrong directory?', hsc($plugin)), -1);
}
return null;
}
diff --git a/inc/pluginutils.php b/inc/pluginutils.php
index 53cfedf82..7c37d4f7f 100644
--- a/inc/pluginutils.php
+++ b/inc/pluginutils.php
@@ -8,6 +8,8 @@
// plugin related constants
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
+// note that only [a-z0-9]+ is officially supported, this is only to support plugins that don't follow these conventions, too
+if(!defined('DOKU_PLUGIN_NAME_REGEX')) define('DOKU_PLUGIN_NAME_REGEX', '[a-zA-Z0-9\x7f-\xff]+');
/**
* Original plugin functions, remain for backwards compatibility
diff --git a/inc/search.php b/inc/search.php
index a02b86b34..1cecfd5ec 100644
--- a/inc/search.php
+++ b/inc/search.php
@@ -119,7 +119,7 @@ function search_index(&$data,$base,$file,$type,$lvl,$opts){
'listfiles' => !$opts['nofiles'],
'sneakyacl' => $conf['sneaky_index'],
// Hacky, should rather use recmatch
- 'depth' => preg_match('#^'.$file.'(/|$)#','/'.$opts['ns']) ? 0 : -1
+ 'depth' => preg_match('#^'.preg_quote($file, '#').'(/|$)#','/'.$opts['ns']) ? 0 : -1
);
return search_universal($data, $base, $file, $type, $lvl, $opts);
diff --git a/inc/subscription.php b/inc/subscription.php
index d1ee0397a..6b201c266 100644
--- a/inc/subscription.php
+++ b/inc/subscription.php
@@ -20,10 +20,11 @@
* Get the name of the metafile tracking subscriptions to target page or
* namespace
*
+ * @author Adrian Lang <lang@cosmocode.de>
+ *
* @param string $id The target page or namespace, specified by id; Namespaces
* are identified by appending a colon.
- *
- * @author Adrian Lang <lang@cosmocode.de>
+ * @return string
*/
function subscription_filename($id) {
$meta_fname = '.mlist';
@@ -39,16 +40,23 @@ function subscription_filename($id) {
/**
* Lock subscription info for an ID
*
+ * @author Adrian Lang <lang@cosmocode.de>
* @param string $id The target page or namespace, specified by id; Namespaces
* are identified by appending a colon.
- *
- * @author Adrian Lang <lang@cosmocode.de>
+ * @return string
*/
function subscription_lock_filename ($id){
global $conf;
return $conf['lockdir'].'/_subscr_' . md5($id) . '.lock';
}
+/**
+ * Creates a lock file for writing subscription data
+ *
+ * @todo add lock time parameter to io_lock() and use this instead
+ * @param $id
+ * @return bool
+ */
function subscription_lock($id) {
global $conf;
$lock = subscription_lock_filename($id);
@@ -70,10 +78,10 @@ function subscription_lock($id) {
/**
* Unlock subscription info for an ID
*
+ * @author Adrian Lang <lang@cosmocode.de>
* @param string $id The target page or namespace, specified by id; Namespaces
* are identified by appending a colon.
- *
- * @author Adrian Lang <lang@cosmocode.de>
+ * @return bool
*/
function subscription_unlock($id) {
$lockf = subscription_lock_filename($id);
@@ -92,6 +100,8 @@ function subscription_unlock($id) {
* returned if a subscription should be deleted but the user is not subscribed
* and the subscription meta file exists.
*
+ * @author Adrian Lang <lang@cosmocode.de>
+ *
* @param string $user The subscriber or unsubscriber
* @param string $page The target object (page or namespace), specified by
* id; Namespaces are identified by a trailing colon.
@@ -99,8 +109,7 @@ function subscription_unlock($id) {
* “every”, “digest”, and “list”.
* @param string $data An optional data blob
* @param bool $overwrite Whether an existing subscription may be overwritten
- *
- * @author Adrian Lang <lang@cosmocode.de>
+ * @return bool
*/
function subscription_set($user, $page, $style, $data = null,
$overwrite = false) {
@@ -123,7 +132,7 @@ function subscription_set($user, $page, $style, $data = null,
// Delete subscription if one exists and $overwrite is true. If $overwrite
// is false, fail.
$subs = subscription_find($page, array('user' => $user));
- if (count($subs) > 0 && array_pop(array_keys($subs)) === $page) {
+ if (count($subs) > 0 && isset($subs[$page])) {
if (!$overwrite) {
msg(sprintf($lang['subscr_already_subscribed'], $user,
prettyprint_id($page)), -1);
@@ -149,12 +158,12 @@ function subscription_set($user, $page, $style, $data = null,
* This function searches all relevant subscription files for a page or
* namespace.
*
- * @param string $page The target object’s (namespace or page) id
- * @param array $pre A hash of predefined values
- *
+ * @author Adrian Lang <lang@cosmocode.de>
* @see function subscription_regex for $pre documentation
*
- * @author Adrian Lang <lang@cosmocode.de>
+ * @param string $page The target object’s (namespace or page) id
+ * @param array $pre A hash of predefined values
+ * @return array
*/
function subscription_find($page, $pre) {
// Construct list of files which may contain relevant subscriptions.
@@ -231,13 +240,15 @@ function get_info_subscribed() {
/**
* Construct a regular expression parsing a subscription definition line
*
+ * @author Adrian Lang <lang@cosmocode.de>
+ *
* @param array $pre A hash of predefined values; “user”, “style”, and
* “data” may be set to limit the results to
* subscriptions matching these parameters. If
* “escaped” is true, these fields are inserted into the
* regular expression without escaping.
*
- * @author Adrian Lang <lang@cosmocode.de>
+ * @return string complete regexp including delimiters
*/
function subscription_regex($pre = array()) {
if (!isset($pre['escaped']) || $pre['escaped'] === false) {
@@ -258,15 +269,18 @@ function subscription_regex($pre = array()) {
*
* This is the default action for COMMON_NOTIFY_ADDRESSLIST.
*
+ * @author Steven Danz <steven-danz@kc.rr.com>
+ * @author Adrian Lang <lang@cosmocode.de>
+ *
+ * @todo this does NOT return a string but uses a reference to write back, either fix function or docs
* @param array $data Containing $id (the page id), $self (whether the author
* should be notified, $addresslist (current email address
* list)
- *
- * @author Steven Danz <steven-danz@kc.rr.com>
- * @author Adrian Lang <lang@cosmocode.de>
+ * @return string
*/
function subscription_addresslist(&$data){
global $conf;
+ /** @var auth_basic $auth */
global $auth;
$id = $data['id'];
@@ -303,11 +317,11 @@ function subscription_addresslist(&$data){
*
* Sends a digest mail showing a bunch of changes.
*
+ * @author Adrian Lang <lang@cosmocode.de>
+ *
* @param string $subscriber_mail The target mail address
* @param array $id The ID
* @param int $lastupdate Time of the last notification
- *
- * @author Adrian Lang <lang@cosmocode.de>
*/
function subscription_send_digest($subscriber_mail, $id, $lastupdate) {
$n = 0;
@@ -339,11 +353,11 @@ function subscription_send_digest($subscriber_mail, $id, $lastupdate) {
*
* Sends a list mail showing a list of changed pages.
*
+ * @author Adrian Lang <lang@cosmocode.de>
+ *
* @param string $subscriber_mail The target mail address
* @param array $ids Array of ids
* @param string $ns_id The id of the namespace
- *
- * @author Adrian Lang <lang@cosmocode.de>
*/
function subscription_send_list($subscriber_mail, $ids, $ns_id) {
if (count($ids) === 0) return;
@@ -365,6 +379,8 @@ function subscription_send_list($subscriber_mail, $ids, $ns_id) {
/**
* Helper function for sending a mail
*
+ * @author Adrian Lang <lang@cosmocode.de>
+ *
* @param string $subscriber_mail The target mail address
* @param array $replaces Predefined parameters used to parse the
* template
@@ -372,21 +388,23 @@ function subscription_send_list($subscriber_mail, $ids, $ns_id) {
* prefix “mail_”)
* @param string $id The page or namespace id
* @param string $template The name of the mail template
- *
- * @author Adrian Lang <lang@cosmocode.de>
+ * @return bool
*/
function subscription_send($subscriber_mail, $replaces, $subject, $id, $template) {
- global $conf;
global $lang;
+ global $conf;
$text = rawLocale($template);
$trep = array_merge($replaces, array('PAGE' => $id));
+ $hrep = $trep;
+ $hrep['DIFF'] = nl2br(htmlspecialchars($hrep['DIFF']));
$subject = $lang['mail_' . $subject] . ' ' . $id;
$mail = new Mailer();
$mail->bcc($subscriber_mail);
$mail->subject($subject);
- $mail->setBody($text,$trep);
+ $mail->setBody($text,$trep,$hrep);
+ $mail->from($conf['mailfromnobody']);
$mail->setHeader(
'List-Unsubscribe',
'<'.wl($id,array('do'=>'subscribe'),true,'&').'>',
diff --git a/inc/template.php b/inc/template.php
index 5b6260155..0d96be214 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -9,29 +9,33 @@
if(!defined('DOKU_INC')) die('meh.');
/**
- * Returns the path to the given template, uses
- * default one if the custom version doesn't exist.
+ * Access a template file
+ *
+ * Returns the path to the given file inside the current template, uses
+ * default template if the custom version doesn't exist.
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @param string $file
+ * @return string
*/
-function template($tpl){
+function template($file) {
global $conf;
- if(@is_readable(DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$tpl))
- return DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$tpl;
+ if(@is_readable(DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$file))
+ return DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$file;
- return DOKU_INC.'lib/tpl/default/'.$tpl;
+ return DOKU_INC.'lib/tpl/dokuwiki/'.$file;
}
-
/**
* Convenience function to access template dir from local FS
*
* This replaces the deprecated DOKU_TPLINC constant
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @return string
*/
-function tpl_incdir(){
+function tpl_incdir() {
global $conf;
return DOKU_INC.'lib/tpl/'.$conf['template'].'/';
}
@@ -42,8 +46,9 @@ function tpl_incdir(){
* This replaces the deprecated DOKU_TPL constant
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @return string
*/
-function tpl_basedir(){
+function tpl_basedir() {
global $conf;
return DOKU_BASE.'lib/tpl/'.$conf['template'].'/';
}
@@ -59,32 +64,43 @@ function tpl_basedir(){
* handled by this function. ACL stuff is not done here either.
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @triggers TPL_ACT_RENDER
+ * @triggers TPL_CONTENT_DISPLAY
+ * @param bool $prependTOC should the TOC be displayed here?
+ * @return bool true if any output
*/
-function tpl_content($prependTOC=true) {
+function tpl_content($prependTOC = true) {
global $ACT;
global $INFO;
$INFO['prependTOC'] = $prependTOC;
ob_start();
- trigger_event('TPL_ACT_RENDER',$ACT,'tpl_content_core');
+ trigger_event('TPL_ACT_RENDER', $ACT, 'tpl_content_core');
$html_output = ob_get_clean();
- trigger_event('TPL_CONTENT_DISPLAY',$html_output,'ptln');
+ trigger_event('TPL_CONTENT_DISPLAY', $html_output, 'ptln');
return !empty($html_output);
}
-function tpl_content_core(){
+/**
+ * Default Action of TPL_ACT_RENDER
+ *
+ * @return bool
+ */
+function tpl_content_core() {
global $ACT;
global $TEXT;
global $PRE;
global $SUF;
global $SUM;
global $IDX;
+ global $INPUT;
- switch($ACT){
+ switch($ACT) {
case 'show':
html_show();
break;
+ /** @noinspection PhpMissingBreakStatementInspection */
case 'locked':
html_locked();
case 'edit':
@@ -102,20 +118,13 @@ function tpl_content_core(){
html_search();
break;
case 'revisions':
- $first = isset($_REQUEST['first']) ? intval($_REQUEST['first']) : 0;
- html_revisions($first);
+ html_revisions($INPUT->int('first'));
break;
case 'diff':
html_diff();
break;
case 'recent':
- if (is_array($_REQUEST['first'])) {
- $_REQUEST['first'] = array_keys($_REQUEST['first']);
- $_REQUEST['first'] = $_REQUEST['first'][0];
- }
- $first = is_numeric($_REQUEST['first']) ? intval($_REQUEST['first']) : 0;
- $show_changes = $_REQUEST['show_changes'];
- html_recent($first, $show_changes);
+ html_recent($INPUT->extract('first')->int('first'), $INPUT->str('show_changes'));
break;
case 'index':
html_index($IDX); #FIXME can this be pulled from globals? is it sanitized correctly?
@@ -124,8 +133,8 @@ function tpl_content_core(){
html_backlinks();
break;
case 'conflict':
- html_conflict(con($PRE,$TEXT,$SUF),$SUM);
- html_diff(con($PRE,$TEXT,$SUF),false);
+ html_conflict(con($PRE, $TEXT, $SUF), $SUM);
+ html_diff(con($PRE, $TEXT, $SUF), false);
break;
case 'login':
html_login();
@@ -152,9 +161,9 @@ function tpl_content_core(){
tpl_media();
break;
default:
- $evt = new Doku_Event('TPL_ACT_UNKNOWN',$ACT);
- if ($evt->advise_before())
- msg("Failed to handle command: ".hsc($ACT),-1);
+ $evt = new Doku_Event('TPL_ACT_UNKNOWN', $ACT);
+ if($evt->advise_before())
+ msg("Failed to handle command: ".hsc($ACT), -1);
$evt->advise_after();
unset($evt);
return false;
@@ -169,43 +178,47 @@ function tpl_content_core(){
* a false argument
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @param bool $return Should the TOC be returned instead to be printed?
+ * @return string
*/
-function tpl_toc($return=false){
+function tpl_toc($return = false) {
global $TOC;
global $ACT;
global $ID;
global $REV;
global $INFO;
global $conf;
+ global $INPUT;
$toc = array();
- if(is_array($TOC)){
+ if(is_array($TOC)) {
// if a TOC was prepared in global scope, always use it
$toc = $TOC;
- }elseif(($ACT == 'show' || substr($ACT,0,6) == 'export') && !$REV && $INFO['exists']){
+ } elseif(($ACT == 'show' || substr($ACT, 0, 6) == 'export') && !$REV && $INFO['exists']) {
// get TOC from metadata, render if neccessary
$meta = p_get_metadata($ID, false, METADATA_RENDER_USING_CACHE);
- if(isset($meta['internal']['toc'])){
+ if(isset($meta['internal']['toc'])) {
$tocok = $meta['internal']['toc'];
- }else{
+ } else {
$tocok = true;
}
- $toc = $meta['description']['tableofcontents'];
- if(!$tocok || !is_array($toc) || !$conf['tocminheads'] || count($toc) < $conf['tocminheads']){
+ $toc = $meta['description']['tableofcontents'];
+ if(!$tocok || !is_array($toc) || !$conf['tocminheads'] || count($toc) < $conf['tocminheads']) {
$toc = array();
}
- }elseif($ACT == 'admin'){
+ } elseif($ACT == 'admin') {
// try to load admin plugin TOC FIXME: duplicates code from tpl_admin
$plugin = null;
- if (!empty($_REQUEST['page'])) {
+ $class = $INPUT->str('page');
+ if(!empty($class)) {
$pluginlist = plugin_list('admin');
- if (in_array($_REQUEST['page'], $pluginlist)) {
+ if(in_array($class, $pluginlist)) {
// attempt to load the plugin
- $plugin =& plugin_load('admin',$_REQUEST['page']);
+ /** @var $plugin DokuWiki_Admin_Plugin */
+ $plugin =& plugin_load('admin', $class);
}
}
- if ( ($plugin !== null) &&
- (!$plugin->forAdminOnly() || $INFO['isadmin']) ){
+ if( ($plugin !== null) && (!$plugin->forAdminOnly() || $INFO['isadmin']) ) {
$toc = $plugin->getTOC();
$TOC = $toc; // avoid later rebuild
}
@@ -215,6 +228,7 @@ function tpl_toc($return=false){
$html = html_TOC($toc);
if($return) return $html;
echo $html;
+ return '';
}
/**
@@ -222,26 +236,28 @@ function tpl_toc($return=false){
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_admin(){
+function tpl_admin() {
global $INFO;
global $TOC;
+ global $INPUT;
$plugin = null;
- if (!empty($_REQUEST['page'])) {
+ $class = $INPUT->str('page');
+ if(!empty($class)) {
$pluginlist = plugin_list('admin');
- if (in_array($_REQUEST['page'], $pluginlist)) {
-
+ if(in_array($class, $pluginlist)) {
// attempt to load the plugin
- $plugin =& plugin_load('admin',$_REQUEST['page']);
+ /** @var $plugin DokuWiki_Admin_Plugin */
+ $plugin =& plugin_load('admin', $class);
}
}
- if ($plugin !== null){
+ if($plugin !== null) {
if(!is_array($TOC)) $TOC = $plugin->getTOC(); //if TOC wasn't requested yet
if($INFO['prependTOC']) tpl_toc();
$plugin->html();
- }else{
+ } else {
html_admin();
}
return true;
@@ -252,11 +268,12 @@ function tpl_admin(){
*
* This has to go into the head section of your template.
*
- * @triggers TPL_METAHEADER_OUTPUT
- * @param boolean $alt Should feeds and alternative format links be added?
* @author Andreas Gohr <andi@splitbrain.org>
+ * @triggers TPL_METAHEADER_OUTPUT
+ * @param bool $alt Should feeds and alternative format links be added?
+ * @return bool
*/
-function tpl_metaheaders($alt=true){
+function tpl_metaheaders($alt = true) {
global $ID;
global $REV;
global $INFO;
@@ -265,13 +282,12 @@ function tpl_metaheaders($alt=true){
global $QUERY;
global $lang;
global $conf;
- $it=2;
// prepare the head array
$head = array();
// prepare seed for js and css
- $tseed = 0;
+ $tseed = 0;
$depends = getConfigFiles('main');
foreach($depends as $f) {
$time = @filemtime($f);
@@ -279,99 +295,119 @@ function tpl_metaheaders($alt=true){
}
// the usual stuff
- $head['meta'][] = array( 'name'=>'generator', 'content'=>'DokuWiki');
- $head['link'][] = array( 'rel'=>'search', 'type'=>'application/opensearchdescription+xml',
- 'href'=>DOKU_BASE.'lib/exe/opensearch.php', 'title'=>$conf['title'] );
- $head['link'][] = array( 'rel'=>'start', 'href'=>DOKU_BASE );
- if(actionOK('index')){
- $head['link'][] = array( 'rel'=>'contents', 'href'=> wl($ID,'do=index',false,'&'),
- 'title'=>$lang['btn_index'] );
+ $head['meta'][] = array('name'=> 'generator', 'content'=> 'DokuWiki');
+ $head['link'][] = array(
+ 'rel' => 'search', 'type'=> 'application/opensearchdescription+xml',
+ 'href'=> DOKU_BASE.'lib/exe/opensearch.php', 'title'=> $conf['title']
+ );
+ $head['link'][] = array('rel'=> 'start', 'href'=> DOKU_BASE);
+ if(actionOK('index')) {
+ $head['link'][] = array(
+ 'rel' => 'contents', 'href'=> wl($ID, 'do=index', false, '&'),
+ 'title'=> $lang['btn_index']
+ );
}
- if($alt){
- $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml',
- 'title'=>'Recent Changes', 'href'=>DOKU_BASE.'feed.php');
- $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml',
- 'title'=>'Current Namespace',
- 'href'=>DOKU_BASE.'feed.php?mode=list&ns='.$INFO['namespace']);
- if(($ACT == 'show' || $ACT == 'search') && $INFO['writable']){
- $head['link'][] = array( 'rel'=>'edit',
- 'title'=>$lang['btn_edit'],
- 'href'=> wl($ID,'do=edit',false,'&'));
+ if($alt) {
+ $head['link'][] = array(
+ 'rel' => 'alternate', 'type'=> 'application/rss+xml',
+ 'title'=> 'Recent Changes', 'href'=> DOKU_BASE.'feed.php'
+ );
+ $head['link'][] = array(
+ 'rel' => 'alternate', 'type'=> 'application/rss+xml',
+ 'title'=> 'Current Namespace',
+ 'href' => DOKU_BASE.'feed.php?mode=list&ns='.$INFO['namespace']
+ );
+ if(($ACT == 'show' || $ACT == 'search') && $INFO['writable']) {
+ $head['link'][] = array(
+ 'rel' => 'edit',
+ 'title'=> $lang['btn_edit'],
+ 'href' => wl($ID, 'do=edit', false, '&')
+ );
}
- if($ACT == 'search'){
- $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml',
- 'title'=>'Search Result',
- 'href'=>DOKU_BASE.'feed.php?mode=search&q='.$QUERY);
+ if($ACT == 'search') {
+ $head['link'][] = array(
+ 'rel' => 'alternate', 'type'=> 'application/rss+xml',
+ 'title'=> 'Search Result',
+ 'href' => DOKU_BASE.'feed.php?mode=search&q='.$QUERY
+ );
}
- if(actionOK('export_xhtml')){
- $head['link'][] = array( 'rel'=>'alternate', 'type'=>'text/html', 'title'=>'Plain HTML',
- 'href'=>exportlink($ID, 'xhtml', '', false, '&'));
+ if(actionOK('export_xhtml')) {
+ $head['link'][] = array(
+ 'rel' => 'alternate', 'type'=> 'text/html', 'title'=> 'Plain HTML',
+ 'href'=> exportlink($ID, 'xhtml', '', false, '&')
+ );
}
- if(actionOK('export_raw')){
- $head['link'][] = array( 'rel'=>'alternate', 'type'=>'text/plain', 'title'=>'Wiki Markup',
- 'href'=>exportlink($ID, 'raw', '', false, '&'));
+ if(actionOK('export_raw')) {
+ $head['link'][] = array(
+ 'rel' => 'alternate', 'type'=> 'text/plain', 'title'=> 'Wiki Markup',
+ 'href'=> exportlink($ID, 'raw', '', false, '&')
+ );
}
}
// setup robot tags apropriate for different modes
- if( ($ACT=='show' || $ACT=='export_xhtml') && !$REV){
- if($INFO['exists']){
+ if(($ACT == 'show' || $ACT == 'export_xhtml') && !$REV) {
+ if($INFO['exists']) {
//delay indexing:
- if((time() - $INFO['lastmod']) >= $conf['indexdelay']){
- $head['meta'][] = array( 'name'=>'robots', 'content'=>'index,follow');
- }else{
- $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,nofollow');
+ if((time() - $INFO['lastmod']) >= $conf['indexdelay']) {
+ $head['meta'][] = array('name'=> 'robots', 'content'=> 'index,follow');
+ } else {
+ $head['meta'][] = array('name'=> 'robots', 'content'=> 'noindex,nofollow');
}
- $head['link'][] = array( 'rel'=>'canonical', 'href'=>wl($ID,'',true,'&') );
- }else{
- $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,follow');
+ $head['link'][] = array('rel'=> 'canonical', 'href'=> wl($ID, '', true, '&'));
+ } else {
+ $head['meta'][] = array('name'=> 'robots', 'content'=> 'noindex,follow');
}
- }elseif(defined('DOKU_MEDIADETAIL')){
- $head['meta'][] = array( 'name'=>'robots', 'content'=>'index,follow');
- }else{
- $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,nofollow');
+ } elseif(defined('DOKU_MEDIADETAIL')) {
+ $head['meta'][] = array('name'=> 'robots', 'content'=> 'index,follow');
+ } else {
+ $head['meta'][] = array('name'=> 'robots', 'content'=> 'noindex,nofollow');
}
// set metadata
- if($ACT == 'show' || $ACT=='export_xhtml'){
+ if($ACT == 'show' || $ACT == 'export_xhtml') {
// date of modification
- if($REV){
- $head['meta'][] = array( 'name'=>'date', 'content'=>date('Y-m-d\TH:i:sO',$REV));
- }else{
- $head['meta'][] = array( 'name'=>'date', 'content'=>date('Y-m-d\TH:i:sO',$INFO['lastmod']));
+ if($REV) {
+ $head['meta'][] = array('name'=> 'date', 'content'=> date('Y-m-d\TH:i:sO', $REV));
+ } else {
+ $head['meta'][] = array('name'=> 'date', 'content'=> date('Y-m-d\TH:i:sO', $INFO['lastmod']));
}
// keywords (explicit or implicit)
- if(!empty($INFO['meta']['subject'])){
- $head['meta'][] = array( 'name'=>'keywords', 'content'=>join(',',$INFO['meta']['subject']));
- }else{
- $head['meta'][] = array( 'name'=>'keywords', 'content'=>str_replace(':',',',$ID));
+ if(!empty($INFO['meta']['subject'])) {
+ $head['meta'][] = array('name'=> 'keywords', 'content'=> join(',', $INFO['meta']['subject']));
+ } else {
+ $head['meta'][] = array('name'=> 'keywords', 'content'=> str_replace(':', ',', $ID));
}
}
// load stylesheets
- $head['link'][] = array('rel'=>'stylesheet', 'type'=>'text/css',
- 'href'=>DOKU_BASE.'lib/exe/css.php?t='.$conf['template'].'&tseed='.$tseed);
+ $head['link'][] = array(
+ 'rel' => 'stylesheet', 'type'=> 'text/css',
+ 'href'=> DOKU_BASE.'lib/exe/css.php?t='.$conf['template'].'&tseed='.$tseed
+ );
// make $INFO and other vars available to JavaScripts
- $json = new JSON();
+ $json = new JSON();
$script = "var NS='".$INFO['namespace']."';";
- if($conf['useacl'] && $_SERVER['REMOTE_USER']){
+ if($conf['useacl'] && $_SERVER['REMOTE_USER']) {
$script .= "var SIG='".toolbar_signature()."';";
}
$script .= 'var JSINFO = '.$json->encode($JSINFO).';';
- $head['script'][] = array( 'type'=>'text/javascript', '_data'=> $script);
+ $head['script'][] = array('type'=> 'text/javascript', '_data'=> $script);
// load external javascript
- $head['script'][] = array( 'type'=>'text/javascript', 'charset'=>'utf-8', '_data'=>'',
- 'src'=>DOKU_BASE.'lib/exe/js.php'.'?tseed='.$tseed);
+ $head['script'][] = array(
+ 'type'=> 'text/javascript', 'charset'=> 'utf-8', '_data'=> '',
+ 'src' => DOKU_BASE.'lib/exe/js.php'.'?tseed='.$tseed
+ );
// trigger event here
- trigger_event('TPL_METAHEADER_OUTPUT',$head,'_tpl_metaheaders_action',true);
+ trigger_event('TPL_METAHEADER_OUTPUT', $head, '_tpl_metaheaders_action', true);
return true;
}
@@ -387,18 +423,18 @@ function tpl_metaheaders($alt=true){
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function _tpl_metaheaders_action($data){
- foreach($data as $tag => $inst){
- foreach($inst as $attr){
- echo '<',$tag,' ',buildAttributes($attr);
- if(isset($attr['_data']) || $tag == 'script'){
+function _tpl_metaheaders_action($data) {
+ foreach($data as $tag => $inst) {
+ foreach($inst as $attr) {
+ echo '<', $tag, ' ', buildAttributes($attr);
+ if(isset($attr['_data']) || $tag == 'script') {
if($tag == 'script' && $attr['_data'])
- $attr['_data'] = "<!--//--><![CDATA[//><!--\n".
+ $attr['_data'] = "/*<![CDATA[*/".
$attr['_data'].
- "\n//--><!]]>";
+ "\n/*!]]>*/";
- echo '>',$attr['_data'],'</',$tag,'>';
- }else{
+ echo '>', $attr['_data'], '</', $tag, '>';
+ } else {
echo '/>';
}
echo "\n";
@@ -413,11 +449,11 @@ function _tpl_metaheaders_action($data){
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_link($url,$name,$more='',$return=false){
+function tpl_link($url, $name, $more = '', $return = false) {
$out = '<a href="'.$url.'" ';
- if ($more) $out .= ' '.$more;
+ if($more) $out .= ' '.$more;
$out .= ">$name</a>";
- if ($return) return $out;
+ if($return) return $out;
print $out;
return true;
}
@@ -429,8 +465,8 @@ function tpl_link($url,$name,$more='',$return=false){
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_pagelink($id,$name=null){
- print html_wikilink($id,$name);
+function tpl_pagelink($id, $name = null) {
+ print html_wikilink($id, $name);
return true;
}
@@ -442,14 +478,13 @@ function tpl_pagelink($id,$name=null){
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_getparent($id){
- global $conf;
+function tpl_getparent($id) {
$parent = getNS($id).':';
- resolve_pageid('',$parent,$exists);
+ resolve_pageid('', $parent, $exists);
if($parent == $id) {
- $pos = strrpos (getNS($id),':');
- $parent = substr($parent,0,$pos).':';
- resolve_pageid('',$parent,$exists);
+ $pos = strrpos(getNS($id), ':');
+ $parent = substr($parent, 0, $pos).':';
+ resolve_pageid('', $parent, $exists);
if($parent == $id) return false;
}
return $parent;
@@ -461,21 +496,27 @@ function tpl_getparent($id){
* @author Adrian Lang <mail@adrianlang.de>
* @see tpl_get_action
*/
-function tpl_button($type,$return=false){
+function tpl_button($type, $return = false) {
$data = tpl_get_action($type);
- if ($data === false) {
+ if($data === false) {
return false;
- } elseif (!is_array($data)) {
+ } elseif(!is_array($data)) {
$out = sprintf($data, 'button');
} else {
+ /**
+ * @var string $accesskey
+ * @var string $id
+ * @var string $method
+ * @var array $params
+ */
extract($data);
- if ($id === '#dokuwiki__top') {
+ if($id === '#dokuwiki__top') {
$out = html_topbtn();
} else {
$out = html_btn($type, $id, $accesskey, $params, $method);
}
}
- if ($return) return $out;
+ if($return) return $out;
echo $out;
return true;
}
@@ -486,32 +527,40 @@ function tpl_button($type,$return=false){
* @author Adrian Lang <mail@adrianlang.de>
* @see tpl_get_action
*/
-function tpl_actionlink($type,$pre='',$suf='',$inner='',$return=false){
+function tpl_actionlink($type, $pre = '', $suf = '', $inner = '', $return = false) {
global $lang;
$data = tpl_get_action($type);
- if ($data === false) {
+ if($data === false) {
return false;
- } elseif (!is_array($data)) {
+ } elseif(!is_array($data)) {
$out = sprintf($data, 'link');
} else {
+ /**
+ * @var string $accesskey
+ * @var string $id
+ * @var string $method
+ * @var array $params
+ */
extract($data);
- if (strpos($id, '#') === 0) {
+ if(strpos($id, '#') === 0) {
$linktarget = $id;
} else {
$linktarget = wl($id, $params);
}
- $caption = $lang['btn_' . $type];
- $akey = $addTitle = '';
- if($accesskey){
- $akey = 'accesskey="'.$accesskey.'" ';
+ $caption = $lang['btn_'.$type];
+ $akey = $addTitle = '';
+ if($accesskey) {
+ $akey = 'accesskey="'.$accesskey.'" ';
$addTitle = ' ['.strtoupper($accesskey).']';
}
- $out = tpl_link($linktarget, $pre.(($inner)?$inner:$caption).$suf,
- 'class="action ' . $type . '" ' .
- $akey . 'rel="nofollow" ' .
- 'title="' . hsc($caption).$addTitle . '"', 1);
+ $out = tpl_link(
+ $linktarget, $pre.(($inner) ? $inner : $caption).$suf,
+ 'class="action '.$type.'" '.
+ $akey.'rel="nofollow" '.
+ 'title="'.hsc($caption).$addTitle.'"', 1
+ );
}
- if ($return) return $out;
+ if($return) return $out;
echo $out;
return true;
}
@@ -536,53 +585,53 @@ function tpl_actionlink($type,$pre='',$suf='',$inner='',$return=false){
* @author Andreas Gohr <andi@splitbrain.org>
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
* @author Adrian Lang <mail@adrianlang.de>
+ * @param string $type
+ * @return array|bool|string
*/
function tpl_get_action($type) {
global $ID;
global $INFO;
global $REV;
global $ACT;
- global $conf;
- global $auth;
// check disabled actions and fix the badly named ones
- if($type == 'history') $type='revisions';
+ if($type == 'history') $type = 'revisions';
if(!actionOK($type)) return false;
$accesskey = null;
$id = $ID;
$method = 'get';
$params = array('do' => $type);
- switch($type){
+ switch($type) {
case 'edit':
// most complicated type - we need to decide on current action
- if($ACT == 'show' || $ACT == 'search'){
+ if($ACT == 'show' || $ACT == 'search') {
$method = 'post';
- if($INFO['writable']){
+ if($INFO['writable']) {
$accesskey = 'e';
if(!empty($INFO['draft'])) {
- $type = 'draft';
+ $type = 'draft';
$params['do'] = 'draft';
} else {
$params['rev'] = $REV;
- if(!$INFO['exists']){
- $type = 'create';
+ if(!$INFO['exists']) {
+ $type = 'create';
}
}
- }else{
+ } else {
if(!actionOK('source')) return false; //pseudo action
$params['rev'] = $REV;
- $type = 'source';
- $accesskey = 'v';
+ $type = 'source';
+ $accesskey = 'v';
}
- }else{
- $params = array();
- $type = 'show';
+ } else {
+ $params = array();
+ $type = 'show';
$accesskey = 'v';
}
break;
case 'revisions':
- $type = 'revs';
+ $type = 'revs';
$accesskey = 'o';
break;
case 'recent':
@@ -593,40 +642,40 @@ function tpl_get_action($type) {
break;
case 'top':
$accesskey = 't';
- $params = array();
- $id = '#dokuwiki__top';
+ $params = array();
+ $id = '#dokuwiki__top';
break;
case 'back':
$parent = tpl_getparent($ID);
- if (!$parent) {
+ if(!$parent) {
return false;
}
- $id = $parent;
- $params = array();
+ $id = $parent;
+ $params = array();
$accesskey = 'b';
break;
case 'login':
$params['sectok'] = getSecurityToken();
- if(isset($_SERVER['REMOTE_USER'])){
- if (!actionOK('logout')) {
+ if(isset($_SERVER['REMOTE_USER'])) {
+ if(!actionOK('logout')) {
return false;
}
$params['do'] = 'logout';
- $type = 'logout';
+ $type = 'logout';
}
break;
case 'register':
- if($_SERVER['REMOTE_USER']){
+ if($_SERVER['REMOTE_USER']) {
return false;
}
break;
case 'resendpwd':
- if($_SERVER['REMOTE_USER']){
+ if($_SERVER['REMOTE_USER']) {
return false;
}
break;
case 'admin':
- if(!$INFO['ismanager']){
+ if(!$INFO['ismanager']) {
return false;
}
break;
@@ -634,21 +683,22 @@ function tpl_get_action($type) {
if(!$INFO['ismanager'] || !$REV || !$INFO['writable']) {
return false;
}
- $params['rev'] = $REV;
+ $params['rev'] = $REV;
$params['sectok'] = getSecurityToken();
break;
+ /** @noinspection PhpMissingBreakStatementInspection */
case 'subscription':
- $type = 'subscribe';
+ $type = 'subscribe';
$params['do'] = 'subscribe';
case 'subscribe':
- if(!$_SERVER['REMOTE_USER']){
+ if(!$_SERVER['REMOTE_USER']) {
return false;
}
break;
case 'backlink':
break;
case 'profile':
- if(!isset($_SERVER['REMOTE_USER'])){
+ if(!isset($_SERVER['REMOTE_USER'])) {
return false;
}
break;
@@ -665,14 +715,25 @@ function tpl_get_action($type) {
* Wrapper around tpl_button() and tpl_actionlink()
*
* @author Anika Henke <anika@selfthinker.org>
+ * @param
+ * @param bool $link link or form button?
+ * @param bool $wrapper HTML element wrapper
+ * @param bool $return return or print
+ * @param string $pre prefix for links
+ * @param string $suf suffix for links
+ * @param string $inner inner HTML for links
+ * @return bool|string
*/
-function tpl_action($type,$link=0,$wrapper=false,$return=false,$pre='',$suf='',$inner='') {
+function tpl_action($type, $link = false, $wrapper = false, $return = false, $pre = '', $suf = '', $inner = '') {
$out = '';
- if ($link) $out .= tpl_actionlink($type,$pre,$suf,$inner,1);
- else $out .= tpl_button($type,1);
- if ($out && $wrapper) $out = "<$wrapper>$out</$wrapper>";
+ if($link) {
+ $out .= tpl_actionlink($type, $pre, $suf, $inner, 1);
+ } else {
+ $out .= tpl_button($type, 1);
+ }
+ if($out && $wrapper) $out = "<$wrapper>$out</$wrapper>";
- if ($return) return $out;
+ if($return) return $out;
print $out;
return $out ? true : false;
}
@@ -688,14 +749,17 @@ function tpl_action($type,$link=0,$wrapper=false,$return=false,$pre='',$suf='',$
* autocompletion feature (MSIE and Firefox)
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @param bool $ajax
+ * @param bool $autocomplete
+ * @return bool
*/
-function tpl_searchform($ajax=true,$autocomplete=true){
+function tpl_searchform($ajax = true, $autocomplete = true) {
global $lang;
global $ACT;
global $QUERY;
// don't print the search form if search action has been disabled
- if (!actionOk('search')) return false;
+ if(!actionOk('search')) return false;
print '<form action="'.wl().'" accept-charset="utf-8" class="search" id="dw__search" method="get"><div class="no">';
print '<input type="hidden" name="do" value="search" />';
@@ -713,8 +777,10 @@ function tpl_searchform($ajax=true,$autocomplete=true){
* Print the breadcrumbs trace
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @param string $sep Separator between entries
+ * @return bool
*/
-function tpl_breadcrumbs($sep='•'){
+function tpl_breadcrumbs($sep = '•') {
global $lang;
global $conf;
@@ -725,7 +791,7 @@ function tpl_breadcrumbs($sep='•'){
//reverse crumborder in right-to-left mode, add RLM character to fix heb/eng display mixups
if($lang['direction'] == 'rtl') {
- $crumbs = array_reverse($crumbs,true);
+ $crumbs = array_reverse($crumbs, true);
$crumbs_sep = ' &#8207;<span class="bcsep">'.$sep.'</span>&#8207; ';
} else {
$crumbs_sep = ' <span class="bcsep">'.$sep.'</span> ';
@@ -734,13 +800,13 @@ function tpl_breadcrumbs($sep='•'){
//render crumbs, highlight the last one
print '<span class="bchead">'.$lang['breadcrumb'].':</span>';
$last = count($crumbs);
- $i = 0;
- foreach ($crumbs as $id => $name){
+ $i = 0;
+ foreach($crumbs as $id => $name) {
$i++;
echo $crumbs_sep;
- if ($i == $last) print '<span class="curid">';
- tpl_link(wl($id),hsc($name),'class="breadcrumbs" title="'.$id.'"');
- if ($i == $last) print '</span>';
+ if($i == $last) print '<span class="curid">';
+ tpl_link(wl($id), hsc($name), 'class="breadcrumbs" title="'.$id.'"');
+ if($i == $last) print '</span>';
}
return true;
}
@@ -756,8 +822,10 @@ function tpl_breadcrumbs($sep='•'){
* @author Sean Coates <sean@caedmon.net>
* @author <fredrik@averpil.com>
* @todo May behave strangely in RTL languages
+ * @param string $sep Separator between entries
+ * @return bool
*/
-function tpl_youarehere($sep=' » '){
+function tpl_youarehere($sep = ' » ') {
global $conf;
global $ID;
global $lang;
@@ -775,10 +843,10 @@ function tpl_youarehere($sep=' » '){
// print intermediate namespace links
$part = '';
- for($i=0; $i<$count - 1; $i++){
+ for($i = 0; $i < $count - 1; $i++) {
$part .= $parts[$i].':';
$page = $part;
- if ($page == $conf['start']) continue; // Skip startpage
+ if($page == $conf['start']) continue; // Skip startpage
// output
echo $sep;
@@ -786,10 +854,10 @@ function tpl_youarehere($sep=' » '){
}
// print current page, skipping start page, skipping for namespace index
- resolve_pageid('',$page,$exists);
- if(isset($page) && $page==$part.$parts[$i]) return;
+ resolve_pageid('', $page, $exists);
+ if(isset($page) && $page == $part.$parts[$i]) return true;
$page = $part.$parts[$i];
- if($page == $conf['start']) return;
+ if($page == $conf['start']) return true;
echo $sep;
tpl_pagelink($page);
return true;
@@ -802,11 +870,12 @@ function tpl_youarehere($sep=' » '){
* Could be enhanced with a profile link in future?
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @return bool
*/
-function tpl_userinfo(){
+function tpl_userinfo() {
global $lang;
global $INFO;
- if(isset($_SERVER['REMOTE_USER'])){
+ if(isset($_SERVER['REMOTE_USER'])) {
print $lang['loggedinas'].': '.hsc($INFO['userinfo']['name']).' ('.hsc($_SERVER['REMOTE_USER']).')';
return true;
}
@@ -817,51 +886,55 @@ function tpl_userinfo(){
* Print some info about the current page
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @param bool $ret return content instead of printing it
+ * @return bool|string
*/
-function tpl_pageinfo($ret=false){
+function tpl_pageinfo($ret = false) {
global $conf;
global $lang;
global $INFO;
global $ID;
// return if we are not allowed to view the page
- if (!auth_quickaclcheck($ID)) { return false; }
+ if(!auth_quickaclcheck($ID)) {
+ return false;
+ }
// prepare date and path
$fn = $INFO['filepath'];
- if(!$conf['fullpath']){
- if($INFO['rev']){
- $fn = str_replace(fullpath($conf['olddir']).'/','',$fn);
- }else{
- $fn = str_replace(fullpath($conf['datadir']).'/','',$fn);
+ if(!$conf['fullpath']) {
+ if($INFO['rev']) {
+ $fn = str_replace(fullpath($conf['olddir']).'/', '', $fn);
+ } else {
+ $fn = str_replace(fullpath($conf['datadir']).'/', '', $fn);
}
}
- $fn = utf8_decodeFN($fn);
+ $fn = utf8_decodeFN($fn);
$date = dformat($INFO['lastmod']);
// print it
- if($INFO['exists']){
+ if($INFO['exists']) {
$out = '';
$out .= $fn;
$out .= ' · ';
$out .= $lang['lastmod'];
$out .= ': ';
$out .= $date;
- if($INFO['editor']){
+ if($INFO['editor']) {
$out .= ' '.$lang['by'].' ';
$out .= editorinfo($INFO['editor']);
- }else{
+ } else {
$out .= ' ('.$lang['external_edit'].')';
}
- if($INFO['locked']){
+ if($INFO['locked']) {
$out .= ' · ';
$out .= $lang['lockedby'];
$out .= ': ';
$out .= editorinfo($INFO['locked']);
}
- if($ret){
+ if($ret) {
return $out;
- }else{
+ } else {
echo $out;
return true;
}
@@ -876,21 +949,23 @@ function tpl_pageinfo($ret=false){
* the given ID is used.
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @param string $id page id
+ * @param bool $ret return content instead of printing
+ * @return bool|string
*/
-function tpl_pagetitle($id=null, $ret=false){
- global $conf;
- if(is_null($id)){
+function tpl_pagetitle($id = null, $ret = false) {
+ if(is_null($id)) {
global $ID;
$id = $ID;
}
$name = $id;
- if (useHeading('navigation')) {
+ if(useHeading('navigation')) {
$title = p_get_first_heading($id);
- if ($title) $name = $title;
+ if($title) $name = $title;
}
- if ($ret) {
+ if($ret) {
return hsc($name);
} else {
print hsc($name);
@@ -911,8 +986,12 @@ function tpl_pagetitle($id=null, $ret=false){
* Only allowed in: detail.php
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @param array $tags tags to try
+ * @param string $alt alternative output if no data was found
+ * @param null $src the image src, uses global $SRC if not given
+ * @return string
*/
-function tpl_img_getTag($tags,$alt='',$src=null){
+function tpl_img_getTag($tags, $alt = '', $src = null) {
// Init Exif Reader
global $SRC;
@@ -931,66 +1010,72 @@ function tpl_img_getTag($tags,$alt='',$src=null){
*
* Only allowed in: detail.php
*
+ * @triggers TPL_IMG_DISPLAY
* @param $maxwidth int - maximal width of the image
* @param $maxheight int - maximal height of the image
* @param $link bool - link to the orginal size?
* @param $params array - additional image attributes
+ * @return mixed Result of TPL_IMG_DISPLAY
*/
-function tpl_img($maxwidth=0,$maxheight=0,$link=true,$params=null){
+function tpl_img($maxwidth = 0, $maxheight = 0, $link = true, $params = null) {
global $IMG;
+ global $INPUT;
$w = tpl_img_getTag('File.Width');
$h = tpl_img_getTag('File.Height');
//resize to given max values
$ratio = 1;
- if($w >= $h){
- if($maxwidth && $w >= $maxwidth){
- $ratio = $maxwidth/$w;
- }elseif($maxheight && $h > $maxheight){
- $ratio = $maxheight/$h;
+ if($w >= $h) {
+ if($maxwidth && $w >= $maxwidth) {
+ $ratio = $maxwidth / $w;
+ } elseif($maxheight && $h > $maxheight) {
+ $ratio = $maxheight / $h;
}
- }else{
- if($maxheight && $h >= $maxheight){
- $ratio = $maxheight/$h;
- }elseif($maxwidth && $w > $maxwidth){
- $ratio = $maxwidth/$w;
+ } else {
+ if($maxheight && $h >= $maxheight) {
+ $ratio = $maxheight / $h;
+ } elseif($maxwidth && $w > $maxwidth) {
+ $ratio = $maxwidth / $w;
}
}
- if($ratio){
- $w = floor($ratio*$w);
- $h = floor($ratio*$h);
+ if($ratio) {
+ $w = floor($ratio * $w);
+ $h = floor($ratio * $h);
}
//prepare URLs
- $url=ml($IMG,array('cache'=>$_REQUEST['cache']),true,'&');
- $src=ml($IMG,array('cache'=>$_REQUEST['cache'],'w'=>$w,'h'=>$h),true,'&');
+ $url = ml($IMG, array('cache'=> $INPUT->str('cache')), true, '&');
+ $src = ml($IMG, array('cache'=> $INPUT->str('cache'), 'w'=> $w, 'h'=> $h), true, '&');
//prepare attributes
- $alt=tpl_img_getTag('Simple.Title');
- if(is_null($params)){
+ $alt = tpl_img_getTag('Simple.Title');
+ if(is_null($params)) {
$p = array();
- }else{
+ } else {
$p = $params;
}
- if($w) $p['width'] = $w;
+ if($w) $p['width'] = $w;
if($h) $p['height'] = $h;
- $p['class'] = 'img_detail';
- if($alt){
+ $p['class'] = 'img_detail';
+ if($alt) {
$p['alt'] = $alt;
$p['title'] = $alt;
- }else{
+ } else {
$p['alt'] = '';
}
$p['src'] = $src;
- $data = array('url'=>($link?$url:null), 'params'=>$p);
- return trigger_event('TPL_IMG_DISPLAY',$data,'_tpl_img_action',true);
+ $data = array('url'=> ($link ? $url : null), 'params'=> $p);
+ return trigger_event('TPL_IMG_DISPLAY', $data, '_tpl_img_action', true);
}
/**
* Default action for TPL_IMG_DISPLAY
+ *
+ * @param array $data
+ * @return bool
*/
-function _tpl_img_action($data, $param=null) {
+function _tpl_img_action($data) {
global $lang;
$p = buildAttributes($data['params']);
@@ -1005,38 +1090,42 @@ function _tpl_img_action($data, $param=null) {
*
* Should be called somewhere at the very end of the main.php
* template
+ *
+ * @return bool
*/
-function tpl_indexerWebBug(){
+function tpl_indexerWebBug() {
global $ID;
- $p = array();
+ $p = array();
$p['src'] = DOKU_BASE.'lib/exe/indexer.php?id='.rawurlencode($ID).
'&'.time();
$p['width'] = 2; //no more 1x1 px image because we live in times of ad blockers...
$p['height'] = 1;
$p['alt'] = '';
- $att = buildAttributes($p);
+ $att = buildAttributes($p);
print "<img $att />";
return true;
}
-// configuration methods
/**
* tpl_getConf($id)
*
* use this function to access template configuration variables
+ *
+ * @param string $id
+ * @return string
*/
-function tpl_getConf($id){
+function tpl_getConf($id) {
global $conf;
static $tpl_configloaded = false;
$tpl = $conf['template'];
- if (!$tpl_configloaded){
+ if(!$tpl_configloaded) {
$tconf = tpl_loadConfig();
- if ($tconf !== false){
- foreach ($tconf as $key => $value){
- if (isset($conf['tpl'][$tpl][$key])) continue;
+ if($tconf !== false) {
+ foreach($tconf as $key => $value) {
+ if(isset($conf['tpl'][$tpl][$key])) continue;
$conf['tpl'][$tpl][$key] = $value;
}
$tpl_configloaded = true;
@@ -1048,15 +1137,18 @@ function tpl_getConf($id){
/**
* tpl_loadConfig()
+ *
* reads all template configuration variables
* this function is automatically called by tpl_getConf()
+ *
+ * @return array
*/
-function tpl_loadConfig(){
+function tpl_loadConfig() {
$file = tpl_incdir().'/conf/default.php';
$conf = array();
- if (!@file_exists($file)) return false;
+ if(!@file_exists($file)) return false;
// load default config file
include($file);
@@ -1070,18 +1162,18 @@ function tpl_loadConfig(){
*
* use this function to access template language variables
*/
-function tpl_getLang($id){
+function tpl_getLang($id) {
static $lang = array();
- if (count($lang) === 0){
+ if(count($lang) === 0) {
$path = tpl_incdir().'lang/';
$lang = array();
- global $conf; // definitely don't invoke "global $lang"
+ global $conf; // definitely don't invoke "global $lang"
// don't include once
@include($path.'en/lang.php');
- if ($conf['lang'] != 'en') @include($path.$conf['lang'].'/lang.php');
+ if($conf['lang'] != 'en') @include($path.$conf['lang'].'/lang.php');
}
return $lang[$id];
@@ -1100,44 +1192,41 @@ function tpl_getLang($id){
* @param bool $fromajax - set true when calling this function via ajax
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_mediaContent($fromajax=false){
+function tpl_mediaContent($fromajax = false) {
global $IMG;
global $AUTH;
global $INUSE;
global $NS;
global $JUMPTO;
+ global $INPUT;
- if(is_array($_REQUEST['do'])){
- $do = array_shift(array_keys($_REQUEST['do']));
- }else{
- $do = $_REQUEST['do'];
- }
- if(in_array($do,array('save','cancel'))) $do = '';
+ $do = $INPUT->extract('do')->str('do');
+ if(in_array($do, array('save', 'cancel'))) $do = '';
- if(!$do){
- if($_REQUEST['edit']){
+ if(!$do) {
+ if($INPUT->bool('edit')) {
$do = 'metaform';
- }elseif(is_array($INUSE)){
+ } elseif(is_array($INUSE)) {
$do = 'filesinuse';
- }else{
+ } else {
$do = 'filelist';
}
}
// output the content pane, wrapped in an event.
if(!$fromajax) ptln('<div id="media__content">');
- $data = array( 'do' => $do);
- $evt = new Doku_Event('MEDIAMANAGER_CONTENT_OUTPUT', $data);
- if ($evt->advise_before()) {
+ $data = array('do' => $do);
+ $evt = new Doku_Event('MEDIAMANAGER_CONTENT_OUTPUT', $data);
+ if($evt->advise_before()) {
$do = $data['do'];
- if($do == 'filesinuse'){
- media_filesinuse($INUSE,$IMG);
- }elseif($do == 'filelist'){
- media_filelist($NS,$AUTH,$JUMPTO);
- }elseif($do == 'searchlist'){
- media_searchlist($_REQUEST['q'],$NS,$AUTH);
- }else{
- msg('Unknown action '.hsc($do),-1);
+ if($do == 'filesinuse') {
+ media_filesinuse($INUSE, $IMG);
+ } elseif($do == 'filelist') {
+ media_filelist($NS, $AUTH, $JUMPTO);
+ } elseif($do == 'searchlist') {
+ media_searchlist($INPUT->str('q'), $NS, $AUTH);
+ } else {
+ msg('Unknown action '.hsc($do), -1);
}
}
$evt->advise_after();
@@ -1153,37 +1242,38 @@ function tpl_mediaContent($fromajax=false){
*
* @author Kate Arzamastseva <pshns@ukr.net>
*/
-function tpl_mediaFileList(){
+function tpl_mediaFileList() {
global $AUTH;
global $NS;
global $JUMPTO;
global $lang;
+ global $INPUT;
- $opened_tab = $_REQUEST['tab_files'];
- if (!$opened_tab || !in_array($opened_tab, array('files', 'upload', 'search'))) $opened_tab = 'files';
- if ($_REQUEST['mediado'] == 'update') $opened_tab = 'upload';
+ $opened_tab = $INPUT->str('tab_files');
+ if(!$opened_tab || !in_array($opened_tab, array('files', 'upload', 'search'))) $opened_tab = 'files';
+ if($INPUT->str('mediado') == 'update') $opened_tab = 'upload';
- echo '<h2 class="a11y">' . $lang['mediaselect'] . '</h2>'.NL;
+ echo '<h2 class="a11y">'.$lang['mediaselect'].'</h2>'.NL;
media_tabs_files($opened_tab);
echo '<div class="panelHeader">'.NL;
echo '<h3>';
$tabTitle = ($NS) ? $NS : '['.$lang['mediaroot'].']';
- printf($lang['media_' . $opened_tab], '<strong>'.hsc($tabTitle).'</strong>');
+ printf($lang['media_'.$opened_tab], '<strong>'.hsc($tabTitle).'</strong>');
echo '</h3>'.NL;
- if ($opened_tab === 'search' || $opened_tab === 'files') {
+ if($opened_tab === 'search' || $opened_tab === 'files') {
media_tab_files_options();
}
echo '</div>'.NL;
echo '<div class="panelContent">'.NL;
- if ($opened_tab == 'files') {
- media_tab_files($NS,$AUTH,$JUMPTO);
- } elseif ($opened_tab == 'upload') {
- media_tab_upload($NS,$AUTH,$JUMPTO);
- } elseif ($opened_tab == 'search') {
- media_tab_search($NS,$AUTH);
+ if($opened_tab == 'files') {
+ media_tab_files($NS, $AUTH, $JUMPTO);
+ } elseif($opened_tab == 'upload') {
+ media_tab_upload($NS, $AUTH, $JUMPTO);
+ } elseif($opened_tab == 'search') {
+ media_tab_search($NS, $AUTH);
}
echo '</div>'.NL;
}
@@ -1196,55 +1286,55 @@ function tpl_mediaFileList(){
*
* @author Kate Arzamastseva <pshns@ukr.net>
*/
-function tpl_mediaFileDetails($image, $rev){
- global $AUTH, $NS, $conf, $DEL, $lang;
+function tpl_mediaFileDetails($image, $rev) {
+ global $AUTH, $NS, $conf, $DEL, $lang, $INPUT;
$removed = (!file_exists(mediaFN($image)) && file_exists(mediaMetaFN($image, '.changes')) && $conf['mediarevisions']);
- if (!$image || (!file_exists(mediaFN($image)) && !$removed) || $DEL) return '';
- if ($rev && !file_exists(mediaFN($image, $rev))) $rev = false;
- if (isset($NS) && getNS($image) != $NS) return '';
- $do = $_REQUEST['mediado'];
+ if(!$image || (!file_exists(mediaFN($image)) && !$removed) || $DEL) return;
+ if($rev && !file_exists(mediaFN($image, $rev))) $rev = false;
+ if(isset($NS) && getNS($image) != $NS) return;
+ $do = $INPUT->str('mediado');
- $opened_tab = $_REQUEST['tab_details'];
+ $opened_tab = $INPUT->str('tab_details');
$tab_array = array('view');
- list($ext, $mime) = mimetype($image);
- if ($mime == 'image/jpeg') {
+ list(, $mime) = mimetype($image);
+ if($mime == 'image/jpeg') {
$tab_array[] = 'edit';
}
- if ($conf['mediarevisions']) {
+ if($conf['mediarevisions']) {
$tab_array[] = 'history';
}
- if (!$opened_tab || !in_array($opened_tab, $tab_array)) $opened_tab = 'view';
- if ($_REQUEST['edit']) $opened_tab = 'edit';
- if ($do == 'restore') $opened_tab = 'view';
+ if(!$opened_tab || !in_array($opened_tab, $tab_array)) $opened_tab = 'view';
+ if($INPUT->bool('edit')) $opened_tab = 'edit';
+ if($do == 'restore') $opened_tab = 'view';
media_tabs_details($image, $opened_tab);
echo '<div class="panelHeader"><h3>';
- list($ext,$mime,$dl) = mimetype($image,false);
- $class = preg_replace('/[^_\-a-z0-9]+/i','_',$ext);
- $class = 'select mediafile mf_'.$class;
- $tabTitle = '<strong class="'.$class.'"><a href="'.ml($image).'" title="'.$lang['mediaview'].'">'.$image.'</a>'.'</strong>';
- if ($opened_tab === 'view' && $rev) {
+ list($ext) = mimetype($image, false);
+ $class = preg_replace('/[^_\-a-z0-9]+/i', '_', $ext);
+ $class = 'select mediafile mf_'.$class;
+ $tabTitle = '<strong><a href="'.ml($image).'" class="'.$class.'" title="'.$lang['mediaview'].'">'.$image.'</a>'.'</strong>';
+ if($opened_tab === 'view' && $rev) {
printf($lang['media_viewold'], $tabTitle, dformat($rev));
} else {
- printf($lang['media_' . $opened_tab], $tabTitle);
+ printf($lang['media_'.$opened_tab], $tabTitle);
}
echo '</h3></div>'.NL;
echo '<div class="panelContent">'.NL;
- if ($opened_tab == 'view') {
+ if($opened_tab == 'view') {
media_tab_view($image, $NS, $AUTH, $rev);
- } elseif ($opened_tab == 'edit' && !$removed) {
+ } elseif($opened_tab == 'edit' && !$removed) {
media_tab_edit($image, $NS, $AUTH);
- } elseif ($opened_tab == 'history' && $conf['mediarevisions']) {
- media_tab_history($image,$NS,$AUTH);
+ } elseif($opened_tab == 'history' && $conf['mediarevisions']) {
+ media_tab_history($image, $NS, $AUTH);
}
echo '</div>'.NL;
@@ -1257,14 +1347,13 @@ function tpl_mediaFileDetails($image, $rev){
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_mediaTree(){
+function tpl_mediaTree() {
global $NS;
ptln('<div id="media__tree">');
media_nstree($NS);
ptln('</div>');
}
-
/**
* Print a dropdown menu with all DokuWiki actions
*
@@ -1272,16 +1361,12 @@ function tpl_mediaTree(){
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_actiondropdown($empty='',$button='&gt;'){
+function tpl_actiondropdown($empty = '', $button = '&gt;') {
global $ID;
- global $INFO;
global $REV;
- global $ACT;
- global $conf;
global $lang;
- global $auth;
- echo '<form action="' . DOKU_SCRIPT . '" method="post" accept-charset="utf-8">';
+ echo '<form action="'.DOKU_SCRIPT.'" method="post" accept-charset="utf-8">';
echo '<div class="no">';
echo '<input type="hidden" name="id" value="'.$ID.'" />';
if($REV) echo '<input type="hidden" name="rev" value="'.$REV.'" />';
@@ -1291,45 +1376,45 @@ function tpl_actiondropdown($empty='',$button='&gt;'){
echo '<option value="">'.$empty.'</option>';
echo '<optgroup label="'.$lang['page_tools'].'">';
- $act = tpl_get_action('edit');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('edit');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('revert');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('revert');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('revisions');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('revisions');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('backlink');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('backlink');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('subscribe');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- echo '</optgroup>';
+ $act = tpl_get_action('subscribe');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ echo '</optgroup>';
echo '<optgroup label="'.$lang['site_tools'].'">';
- $act = tpl_get_action('recent');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('recent');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('media');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('media');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('index');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('index');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
echo '</optgroup>';
echo '<optgroup label="'.$lang['user_tools'].'">';
- $act = tpl_get_action('login');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('login');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('register');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('register');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('profile');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('profile');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('admin');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('admin');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
echo '</optgroup>';
echo '</select>';
@@ -1342,24 +1427,26 @@ function tpl_actiondropdown($empty='',$button='&gt;'){
* Print a informational line about the used license
*
* @author Andreas Gohr <andi@splitbrain.org>
- * @param string $img - print image? (|button|badge)
- * @param bool $return - when true don't print, but return HTML
- * @param bool $wrap - wrap in div with class="license"?
+ * @param string $img print image? (|button|badge)
+ * @param bool $imgonly skip the textual description?
+ * @param bool $return when true don't print, but return HTML
+ * @param bool $wrap wrap in div with class="license"?
+ * @return string
*/
-function tpl_license($img='badge',$imgonly=false,$return=false,$wrap=true){
+function tpl_license($img = 'badge', $imgonly = false, $return = false, $wrap = true) {
global $license;
global $conf;
global $lang;
if(!$conf['license']) return '';
if(!is_array($license[$conf['license']])) return '';
- $lic = $license[$conf['license']];
+ $lic = $license[$conf['license']];
$target = ($conf['target']['extern']) ? ' target="'.$conf['target']['extern'].'"' : '';
$out = '';
- if($wrap) $out .= '<div class="license">';
- if($img){
+ if($wrap) $out .= '<div class="license">';
+ if($img) {
$src = license_img($img);
- if($src){
+ if($src) {
$out .= '<a href="'.$lic['url'].'" rel="license"'.$target;
$out .= '><img src="'.DOKU_BASE.$src.'" alt="'.$lic['name'].'" /></a>';
if(!$imgonly) $out .= ' ';
@@ -1374,23 +1461,24 @@ function tpl_license($img='badge',$imgonly=false,$return=false,$wrap=true){
if($return) return $out;
echo $out;
+ return '';
}
-
/**
- * Includes the rendered XHTML of a given page
+ * Includes the rendered HTML of a given page
*
* This function is useful to populate sidebars or similar features in a
* template
*/
-function tpl_include_page($pageid,$print=true){
+function tpl_include_page($pageid, $print = true, $propagate = false) {
global $ID;
global $TOC;
- $oldid = $ID;
+
+ if ($propagate) $pageid = page_findnearest($pageid);
+
$oldtoc = $TOC;
- $html = p_wiki_xhtml($pageid,'',false);
- $ID = $oldid;
- $TOC = $oldtoc;
+ $html = p_wiki_xhtml($pageid, '', false);
+ $TOC = $oldtoc;
if(!$print) return $html;
echo $html;
@@ -1398,17 +1486,6 @@ function tpl_include_page($pageid,$print=true){
}
/**
- * Include the sidebar, will check current namespaces first
- */
-function tpl_sidebar($print=true){
- global $conf;
-
- $sidebar = page_findnearest($conf['sidebar']);
- if($sidebar) return tpl_include_page($sidebar, $print);
- return '';
-}
-
-/**
* Display the subscribe form
*
* @author Adrian Lang <lang@cosmocode.de>
@@ -1418,18 +1495,18 @@ function tpl_subscribe() {
global $ID;
global $lang;
global $conf;
- $stime_days = $conf['subscribe_time']/60/60/24;
+ $stime_days = $conf['subscribe_time'] / 60 / 60 / 24;
echo p_locale_xhtml('subscr_form');
- echo '<h2>' . $lang['subscr_m_current_header'] . '</h2>';
+ echo '<h2>'.$lang['subscr_m_current_header'].'</h2>';
echo '<div class="level2">';
- if ($INFO['subscribed'] === false) {
- echo '<p>' . $lang['subscr_m_not_subscribed'] . '</p>';
+ if($INFO['subscribed'] === false) {
+ echo '<p>'.$lang['subscr_m_not_subscribed'].'</p>';
} else {
echo '<ul>';
foreach($INFO['subscribed'] as $sub) {
echo '<li><div class="li">';
- if ($sub['target'] !== $ID) {
+ if($sub['target'] !== $ID) {
echo '<code class="ns">'.hsc(prettyprint_id($sub['target'])).'</code>';
} else {
echo '<code class="page">'.hsc(prettyprint_id($sub['target'])).'</code>';
@@ -1438,32 +1515,36 @@ function tpl_subscribe() {
if(!$sstl) $sstl = hsc($sub['style']);
echo ' ('.$sstl.') ';
- echo '<a href="' . wl($ID,
- array('do'=>'subscribe',
- 'sub_target'=>$sub['target'],
- 'sub_style'=>$sub['style'],
- 'sub_action'=>'unsubscribe',
- 'sectok' => getSecurityToken())) .
- '" class="unsubscribe">'.$lang['subscr_m_unsubscribe'] .
- '</a></div></li>';
+ echo '<a href="'.wl(
+ $ID,
+ array(
+ 'do' => 'subscribe',
+ 'sub_target'=> $sub['target'],
+ 'sub_style' => $sub['style'],
+ 'sub_action'=> 'unsubscribe',
+ 'sectok' => getSecurityToken()
+ )
+ ).
+ '" class="unsubscribe">'.$lang['subscr_m_unsubscribe'].
+ '</a></div></li>';
}
echo '</ul>';
}
echo '</div>';
// Add new subscription form
- echo '<h2>' . $lang['subscr_m_new_header'] . '</h2>';
+ echo '<h2>'.$lang['subscr_m_new_header'].'</h2>';
echo '<div class="level2">';
- $ns = getNS($ID).':';
+ $ns = getNS($ID).':';
$targets = array(
- $ID => '<code class="page">'.prettyprint_id($ID).'</code>',
- $ns => '<code class="ns">'.prettyprint_id($ns).'</code>',
- );
- $styles = array(
- 'every' => $lang['subscr_style_every'],
- 'digest' => sprintf($lang['subscr_style_digest'], $stime_days),
- 'list' => sprintf($lang['subscr_style_list'], $stime_days),
- );
+ $ID => '<code class="page">'.prettyprint_id($ID).'</code>',
+ $ns => '<code class="ns">'.prettyprint_id($ns).'</code>',
+ );
+ $styles = array(
+ 'every' => $lang['subscr_style_every'],
+ 'digest' => sprintf($lang['subscr_style_digest'], $stime_days),
+ 'list' => sprintf($lang['subscr_style_list'], $stime_days),
+ );
$form = new Doku_Form(array('id' => 'subscribe__form'));
$form->startFieldset($lang['subscr_m_subscribe']);
@@ -1486,7 +1567,7 @@ function tpl_subscribe() {
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_flush(){
+function tpl_flush() {
ob_flush();
flush();
}
@@ -1498,18 +1579,22 @@ function tpl_flush(){
* file, otherwise it is assumed to be relative to the current template
*
* @param array $search locations to look at
- * @param bool $abs if to use absolute URL
- * @param arrayref $imginfo filled with getimagesize()
+ * @param bool $abs if to use absolute URL
+ * @param array &$imginfo filled with getimagesize()
+ * @return string
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_getMediaFile($search, $abs=false, &$imginfo=null){
+function tpl_getMediaFile($search, $abs = false, &$imginfo = null) {
+ $img = '';
+ $file = '';
+ $ismedia = false;
// loop through candidates until a match was found:
- foreach($search as $img){
- if(substr($img,0,1) == ':'){
+ foreach($search as $img) {
+ if(substr($img, 0, 1) == ':') {
$file = mediaFN($img);
$ismedia = true;
- }else{
- $file = tpl_incdir().$img;
+ } else {
+ $file = tpl_incdir().$img;
$ismedia = false;
}
@@ -1517,14 +1602,14 @@ function tpl_getMediaFile($search, $abs=false, &$imginfo=null){
}
// fetch image data if requested
- if(!is_null($imginfo)){
+ if(!is_null($imginfo)) {
$imginfo = getimagesize($file);
}
// build URL
- if($ismedia){
+ if($ismedia) {
$url = ml($img, '', true, '', $abs);
- }else{
+ } else {
$url = tpl_basedir().$img;
if($abs) $url = DOKU_URL.substr($url, strlen(DOKU_REL));
}
@@ -1548,13 +1633,13 @@ function tpl_getMediaFile($search, $abs=false, &$imginfo=null){
* @author Anika Henke <anika@selfthinker.org>
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_includeFile($file){
+function tpl_includeFile($file) {
global $config_cascade;
- foreach (array('protected','local','default') as $config_group) {
- if (empty($config_cascade['main'][$config_group])) continue;
- foreach ($config_cascade['main'][$config_group] as $conf_file) {
+ foreach(array('protected', 'local', 'default') as $config_group) {
+ if(empty($config_cascade['main'][$config_group])) continue;
+ foreach($config_cascade['main'][$config_group] as $conf_file) {
$dir = dirname($conf_file);
- if(file_exists("$dir/$file")){
+ if(file_exists("$dir/$file")) {
include("$dir/$file");
return;
}
@@ -1563,7 +1648,7 @@ function tpl_includeFile($file){
// still here? try the template dir
$file = tpl_incdir().$file;
- if(file_exists($file)){
+ if(file_exists($file)) {
include($file);
}
}
@@ -1575,7 +1660,7 @@ function tpl_includeFile($file){
* @deprecated Use tpl_getMediaFile() instead
* @author Anika Henke <anika@selfthinker.org>
*/
-function tpl_getFavicon($abs=false, $fileName='favicon.ico') {
+function tpl_getFavicon($abs = false, $fileName = 'favicon.ico') {
$look = array(":wiki:$fileName", ":$fileName", "images/$fileName");
return tpl_getMediaFile($look, $abs);
}
@@ -1583,21 +1668,22 @@ function tpl_getFavicon($abs=false, $fileName='favicon.ico') {
/**
* Returns <link> tag for various icon types (favicon|mobile|generic)
*
- * @param array $types - list of icon types to display (favicon|mobile|generic)
* @author Anika Henke <anika@selfthinker.org>
+ * @param array $types - list of icon types to display (favicon|mobile|generic)
+ * @return string
*/
-function tpl_favicon($types=array('favicon')) {
+function tpl_favicon($types = array('favicon')) {
$return = '';
- foreach ($types as $type) {
+ foreach($types as $type) {
switch($type) {
case 'favicon':
$look = array(':wiki:favicon.ico', ':favicon.ico', 'images/favicon.ico');
$return .= '<link rel="shortcut icon" href="'.tpl_getMediaFile($look).'" />'.NL;
break;
case 'mobile':
- $look = array(':wiki:apple-touch-icon.png', ':apple-touch-icon.png', 'images/apple-touch-icon.ico');
+ $look = array(':wiki:apple-touch-icon.png', ':apple-touch-icon.png', 'images/apple-touch-icon.png');
$return .= '<link rel="apple-touch-icon" href="'.tpl_getMediaFile($look).'" />'.NL;
break;
case 'generic':
@@ -1617,14 +1703,15 @@ function tpl_favicon($types=array('favicon')) {
* @author Kate Arzamastseva <pshns@ukr.net>
*/
function tpl_media() {
- global $DEL, $NS, $IMG, $AUTH, $JUMPTO, $REV, $lang, $fullscreen, $conf;
+ global $NS, $IMG, $JUMPTO, $REV, $lang, $fullscreen, $INPUT;
$fullscreen = true;
require_once DOKU_INC.'lib/exe/mediamanager.php';
- if ($_REQUEST['image']) $image = cleanID($_REQUEST['image']);
- if (isset($IMG)) $image = $IMG;
- if (isset($JUMPTO)) $image = $JUMPTO;
- if (isset($REV) && !$JUMPTO) $rev = $REV;
+ $rev = '';
+ $image = cleanID($INPUT->str('image'));
+ if(isset($IMG)) $image = $IMG;
+ if(isset($JUMPTO)) $image = $JUMPTO;
+ if(isset($REV) && !$JUMPTO) $rev = $REV;
echo '<div id="mediamanager__page">'.NL;
echo '<h1>'.$lang['btn_media'].'</h1>'.NL;
diff --git a/inc/utf8.php b/inc/utf8.php
index 227fa830a..6fab8502c 100644
--- a/inc/utf8.php
+++ b/inc/utf8.php
@@ -91,15 +91,16 @@ if(!function_exists('utf8_basename')){
* @return string
*/
function utf8_basename($path, $suffix=''){
+ $path = trim($path,'\\/');
$rpos = max(strrpos($path, '/'), strrpos($path, '\\'));
- $file = substr($path, $rpos+1);
+ if($rpos) $path = substr($path, $rpos+1);
$suflen = strlen($suffix);
- if($suflen && (substr($file, -$suflen) == $suffix)){
- $file = substr($file, 0, -$suflen);
+ if($suflen && (substr($path, -$suflen) == $suffix)){
+ $path = substr($path, 0, -$suflen);
}
- return $file;
+ return $path;
}
}