From 1b1990f42c136e4e1d843da3d7eaa17035d9bdc8 Mon Sep 17 00:00:00 2001 From: Klectik Date: Thu, 2 Mar 2017 23:24:14 +0100 Subject: [PATCH] Replaced the code with the newest version in the "dev" branch --- .htaccess | 0 LICENSE | 339 - admin/admin.php | 167 +- admin/ajax.php | 81 +- admin/bm.php | 354 +- admin/close.php | 54 +- admin/comments.php | 310 +- admin/css/archive.css | 0 admin/css/images/asc.gif | Bin admin/css/images/bg-box.png | Bin admin/css/images/bg-foot-box.png | Bin admin/css/images/bg-top-box-hover.png | Bin admin/css/images/bg-top-box.png | Bin admin/css/images/bg.gif | Bin admin/css/images/blank.gif | Bin admin/css/images/close.gif | Bin admin/css/images/closelabel.gif | Bin admin/css/images/comments.png | Bin admin/css/images/delete.png | Bin admin/css/images/desc.gif | Bin admin/css/images/edit.png | Bin admin/css/images/film.png | Bin admin/css/images/gelato-logo.png | Bin admin/css/images/grad-big.png | Bin admin/css/images/grad-small.png | Bin admin/css/images/image.png | Bin admin/css/images/loading.gif | Bin admin/css/images/music.png | Bin admin/css/images/nextlabel.gif | Bin admin/css/images/page.png | Bin admin/css/images/prevlabel.gif | Bin admin/css/images/quote.png | Bin admin/css/images/td_back.gif | Bin admin/css/images/world.png | Bin admin/css/lightbox.css | 0 admin/css/style.css | 0 admin/feeds.php | 116 +- admin/index.php | 635 +- admin/options.php | 278 +- admin/plugins.php | 223 +- admin/scripts/jquery.js | 0 admin/scripts/jquery.tablesorter.min.js | 0 admin/scripts/jquery.validate.min.js | 0 admin/scripts/lightbox.js | 0 .../scripts/markitup/jquery.markitup.pack.js | 0 .../markitup/sets/html/images/bold.png | Bin .../markitup/sets/html/images/clean.png | Bin .../markitup/sets/html/images/code.png | Bin .../markitup/sets/html/images/fonts.png | Bin .../scripts/markitup/sets/html/images/h1.png | Bin .../scripts/markitup/sets/html/images/h2.png | Bin .../scripts/markitup/sets/html/images/h3.png | Bin .../scripts/markitup/sets/html/images/h4.png | Bin .../scripts/markitup/sets/html/images/h5.png | Bin .../scripts/markitup/sets/html/images/h6.png | Bin .../markitup/sets/html/images/image.png | Bin .../markitup/sets/html/images/italic.png | Bin .../markitup/sets/html/images/link.png | Bin .../markitup/sets/html/images/list-bullet.png | Bin .../markitup/sets/html/images/list-item.png | Bin .../sets/html/images/list-numeric.png | Bin .../markitup/sets/html/images/more.png | Bin .../markitup/sets/html/images/paragraph.png | Bin .../markitup/sets/html/images/picture.png | Bin .../markitup/sets/html/images/preview.png | Bin .../markitup/sets/html/images/quotes.png | Bin .../markitup/sets/html/images/stroke.png | Bin .../markitup/sets/html/images/underline.png | Bin .../scripts/markitup/sets/html/images/url.png | Bin admin/scripts/markitup/sets/html/set.js | 0 admin/scripts/markitup/sets/html/style.css | 0 .../markitup/skins/simple/images/handle.png | Bin .../markitup/skins/simple/images/menu.png | Bin .../markitup/skins/simple/images/submenu.png | Bin admin/scripts/markitup/skins/simple/style.css | 0 admin/scripts/nicEdit.js | 0 admin/scripts/nicEditorIcons.gif | Bin admin/scripts/player.swf | Bin admin/scripts/tools.js | 0 admin/settings.php | 144 +- admin/themes/admin/api.xml | 0 admin/themes/admin/index.htm | 0 admin/themes/admin/install.htm | 16 +- admin/themes/admin/login.htm | 0 .../{parts => }/template_add_conversation.htm | 0 .../admin/{parts => }/template_add_link.htm | 0 .../admin/{parts => }/template_add_mp3.htm | 0 .../admin/{parts => }/template_add_photo.htm | 13 +- .../{parts => }/template_add_photo_bm.htm | 0 .../admin/{parts => }/template_add_post.htm | 0 .../admin/{parts => }/template_add_quote.htm | 0 .../admin/{parts => }/template_add_video.htm | 0 .../themes/admin/{parts => }/template_bm.htm | 0 .../admin/{parts => }/template_comment.htm | 0 .../{parts => }/template_comment_post.htm | 0 .../{parts => }/template_conversation.htm | 0 .../themes/admin/{parts => }/template_mp3.htm | 0 .../admin/{parts => }/template_photo.htm | 3 +- .../admin/{parts => }/template_quote.htm | 0 .../{parts => }/template_regular_post.htm | 0 .../themes/admin/{parts => }/template_url.htm | 0 .../admin/{parts => }/template_video.htm | 0 admin/user.php | 151 +- api.php | 230 +- archive.php | 327 +- classes/JSON.php | 84 +- classes/comments.class.php | 235 +- classes/configuration.class.php | 196 +- classes/feeds.class.php | 346 +- classes/gelato.class.php | 434 +- classes/gettext.class.php | 745 +- classes/imgsize.php | 203 +- classes/install.class.php | 481 +- classes/lang.functions.php | 71 +- classes/mysql_connection.class.php | 585 +- classes/pagination.class.php | 471 +- classes/plugin.class.php | 129 +- classes/plugins.class.php | 50 +- classes/simplepie.class.php | 9997 ++++++++--------- classes/streams.class.php | 354 +- classes/templates.class.php | 287 +- classes/textile.class.php | 412 +- classes/themes.class.php | 274 +- classes/user.class.php | 312 +- classes/util.class.php | 1431 +-- config-sample.php => config.php | 40 +- date.php | 14 + db/gelato_db.erwin | Bin db/gelato_db.sql | 0 entry.php | 174 +- gettext.bat | 0 images/bg.jpg | Bin images/bg_nav.png | Bin images/cabecera.gif | Bin images/cont_BG.gif | Bin images/error.png | Bin images/favicon.ico | Bin images/footer.gif | Bin images/icon_info.gif | Bin images/information.png | Bin images/proceso.gif | Bin images/quote.gif | Bin images/round-en.png | Bin images/round-es.png | Bin images/round-wn.png | Bin images/round-ws.png | Bin images/top_ribbon.png | Bin index.php | 644 +- install.php | 97 +- languages/ca/messages.mo | Bin languages/ca/messages.po | 0 languages/de/messages.mo | Bin languages/de/messages.po | 0 languages/en/messages.mo | Bin languages/en/messages.po | 0 languages/es-AR/messages.mo | Bin languages/es-AR/messages.po | 0 languages/es-ES/messages.mo | Bin languages/es-ES/messages.po | 0 languages/es-MX/messages.mo | Bin languages/es-MX/messages.po | 0 languages/fr/messages.mo | Bin languages/fr/messages.po | 0 languages/it/messages.mo | Bin languages/it/messages.po | 0 languages/nl/messages.mo | Bin languages/nl/messages.po | 0 languages/no/messages.mo | Bin languages/no/messages.po | 0 languages/pl/messages.mo | Bin languages/pl/messages.po | 0 languages/pt-BR/messages.mo | Bin languages/pt-BR/messages.po | 0 languages/ru/messages.mo | Bin languages/ru/messages.po | 0 languages/zh-CN/messages.mo | Bin languages/zh-CN/messages.po | 0 languages/zh-TW/messages.mo | Bin languages/zh-TW/messages.po | 0 login.php | 97 +- notice.txt | 0 plugins/feedreplacement.php | 159 +- plugins/geshi/abap.php | 176 +- plugins/geshi/actionscript.php | 308 +- plugins/geshi/ada.php | 172 +- plugins/geshi/apache.php | 250 +- plugins/geshi/applescript.php | 152 +- plugins/geshi/asm.php | 296 +- plugins/geshi/asp.php | 210 +- plugins/geshi/autoit.php | 622 +- plugins/geshi/bash.php | 292 +- plugins/geshi/basic4gl.php | 467 +- plugins/geshi/blitzbasic.php | 140 +- plugins/geshi/bnf.php | 4 +- plugins/geshi/c.php | 176 +- plugins/geshi/c_mac.php | 264 +- plugins/geshi/caddcl.php | 160 +- plugins/geshi/cadlisp.php | 280 +- plugins/geshi/cfdg.php | 168 +- plugins/geshi/cfm.php | 524 +- plugins/geshi/cpp-qt.php | 452 +- plugins/geshi/cpp.php | 250 +- plugins/geshi/csharp.php | 374 +- plugins/geshi/css-gen.cfg | 0 plugins/geshi/css.php | 136 +- plugins/geshi/d.php | 4 +- plugins/geshi/delphi.php | 4 +- plugins/geshi/diff.php | 242 +- plugins/geshi/div.php | 168 +- plugins/geshi/dos.php | 226 +- plugins/geshi/dot.php | 4 +- plugins/geshi/eiffel.php | 706 +- plugins/geshi/fortran.php | 224 +- plugins/geshi/freebasic.php | 118 +- plugins/geshi/genero.php | 4 +- plugins/geshi/geshi.php | 6205 +++++----- plugins/geshi/gml.php | 874 +- plugins/geshi/groovy.php | 4146 ++++--- plugins/geshi/haskell.php | 8 +- plugins/geshi/html4strict.php | 362 +- plugins/geshi/idl.php | 152 +- plugins/geshi/ini.php | 152 +- plugins/geshi/inno.php | 330 +- plugins/geshi/io.php | 146 +- plugins/geshi/java.php | 2662 +++-- plugins/geshi/java5.php | 1928 ++-- plugins/geshi/javascript.php | 16 +- plugins/geshi/latex.php | 4 +- plugins/geshi/lisp.php | 172 +- plugins/geshi/lua.php | 150 +- plugins/geshi/m68k.php | 178 +- plugins/geshi/matlab.php | 1606 ++- plugins/geshi/mirc.php | 223 +- plugins/geshi/mpasm.php | 226 +- plugins/geshi/mysql.php | 4 +- plugins/geshi/nsis.php | 602 +- plugins/geshi/objc.php | 394 +- plugins/geshi/ocaml-brief.php | 142 +- plugins/geshi/ocaml.php | 240 +- plugins/geshi/oobas.php | 174 +- plugins/geshi/oracle8.php | 874 +- plugins/geshi/pascal.php | 186 +- plugins/geshi/per.php | 4 +- plugins/geshi/perl.php | 240 +- plugins/geshi/php-brief.php | 220 +- plugins/geshi/php.php | 4 +- plugins/geshi/plsql.php | 152 +- plugins/geshi/python.php | 348 +- plugins/geshi/qbasic.php | 186 +- plugins/geshi/rails.php | 4 +- plugins/geshi/reg.php | 303 +- plugins/geshi/robots.php | 4 +- plugins/geshi/ruby.php | 4 +- plugins/geshi/sas.php | 4 +- plugins/geshi/scheme.php | 216 +- plugins/geshi/sdlbasic.php | 124 +- plugins/geshi/smalltalk.php | 234 +- plugins/geshi/smarty.php | 250 +- plugins/geshi/sql.php | 166 +- plugins/geshi/tcl.php | 244 +- plugins/geshi/text.php | 61 +- plugins/geshi/thinbasic.php | 4 +- plugins/geshi/tsql.php | 618 +- plugins/geshi/vb.php | 212 +- plugins/geshi/vbnet.php | 312 +- plugins/geshi/vhdl.php | 4 +- plugins/geshi/visualfoxpro.php | 798 +- plugins/geshi/winbatch.php | 634 +- plugins/geshi/xml.php | 196 +- plugins/geshi/xpp.php | 782 +- plugins/geshi/z80.php | 178 +- plugins/kodrs.php | 103 +- plugins/post_confirmation.php | 51 +- readme.txt | 45 +- rss.php | 161 +- sitemap.php | 86 +- sitemap.xsl | 0 themes/Dreamscape/images/bg.gif | Bin themes/Dreamscape/images/content_bg.png | Bin themes/Dreamscape/index.htm | 0 themes/Dreamscape/style.css | 0 themes/tumblr/img/bg.gif | Bin themes/tumblr/img/link.gif | Bin themes/tumblr/img/rss.gif | Bin themes/tumblr/index.htm | 4 + themes/tumblr/style.css | 0 update.php | 37 - uploads/index.php | 4 +- 288 files changed, 28744 insertions(+), 29745 deletions(-) mode change 100644 => 100755 .htaccess delete mode 100644 LICENSE mode change 100644 => 100755 admin/admin.php mode change 100644 => 100755 admin/ajax.php mode change 100644 => 100755 admin/bm.php mode change 100644 => 100755 admin/close.php mode change 100644 => 100755 admin/comments.php mode change 100644 => 100755 admin/css/archive.css mode change 100644 => 100755 admin/css/images/asc.gif mode change 100644 => 100755 admin/css/images/bg-box.png mode change 100644 => 100755 admin/css/images/bg-foot-box.png mode change 100644 => 100755 admin/css/images/bg-top-box-hover.png mode change 100644 => 100755 admin/css/images/bg-top-box.png mode change 100644 => 100755 admin/css/images/bg.gif mode change 100644 => 100755 admin/css/images/blank.gif mode change 100644 => 100755 admin/css/images/close.gif mode change 100644 => 100755 admin/css/images/closelabel.gif mode change 100644 => 100755 admin/css/images/comments.png mode change 100644 => 100755 admin/css/images/delete.png mode change 100644 => 100755 admin/css/images/desc.gif mode change 100644 => 100755 admin/css/images/edit.png mode change 100644 => 100755 admin/css/images/film.png mode change 100644 => 100755 admin/css/images/gelato-logo.png mode change 100644 => 100755 admin/css/images/grad-big.png mode change 100644 => 100755 admin/css/images/grad-small.png mode change 100644 => 100755 admin/css/images/image.png mode change 100644 => 100755 admin/css/images/loading.gif mode change 100644 => 100755 admin/css/images/music.png mode change 100644 => 100755 admin/css/images/nextlabel.gif mode change 100644 => 100755 admin/css/images/page.png mode change 100644 => 100755 admin/css/images/prevlabel.gif mode change 100644 => 100755 admin/css/images/quote.png mode change 100644 => 100755 admin/css/images/td_back.gif mode change 100644 => 100755 admin/css/images/world.png mode change 100644 => 100755 admin/css/lightbox.css mode change 100644 => 100755 admin/css/style.css mode change 100644 => 100755 admin/feeds.php mode change 100644 => 100755 admin/index.php mode change 100644 => 100755 admin/options.php mode change 100644 => 100755 admin/plugins.php mode change 100644 => 100755 admin/scripts/jquery.js mode change 100644 => 100755 admin/scripts/jquery.tablesorter.min.js mode change 100644 => 100755 admin/scripts/jquery.validate.min.js mode change 100644 => 100755 admin/scripts/lightbox.js mode change 100644 => 100755 admin/scripts/markitup/jquery.markitup.pack.js mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/bold.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/clean.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/code.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/fonts.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/h1.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/h2.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/h3.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/h4.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/h5.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/h6.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/image.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/italic.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/link.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/list-bullet.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/list-item.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/list-numeric.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/more.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/paragraph.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/picture.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/preview.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/quotes.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/stroke.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/underline.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/images/url.png mode change 100644 => 100755 admin/scripts/markitup/sets/html/set.js mode change 100644 => 100755 admin/scripts/markitup/sets/html/style.css mode change 100644 => 100755 admin/scripts/markitup/skins/simple/images/handle.png mode change 100644 => 100755 admin/scripts/markitup/skins/simple/images/menu.png mode change 100644 => 100755 admin/scripts/markitup/skins/simple/images/submenu.png mode change 100644 => 100755 admin/scripts/markitup/skins/simple/style.css mode change 100644 => 100755 admin/scripts/nicEdit.js mode change 100644 => 100755 admin/scripts/nicEditorIcons.gif mode change 100644 => 100755 admin/scripts/player.swf mode change 100644 => 100755 admin/scripts/tools.js mode change 100644 => 100755 admin/settings.php mode change 100644 => 100755 admin/themes/admin/api.xml mode change 100644 => 100755 admin/themes/admin/index.htm mode change 100644 => 100755 admin/themes/admin/install.htm mode change 100644 => 100755 admin/themes/admin/login.htm rename admin/themes/admin/{parts => }/template_add_conversation.htm (100%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_add_link.htm (100%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_add_mp3.htm (100%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_add_photo.htm (96%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_add_photo_bm.htm (100%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_add_post.htm (100%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_add_quote.htm (100%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_add_video.htm (100%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_bm.htm (100%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_comment.htm (100%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_comment_post.htm (100%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_conversation.htm (100%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_mp3.htm (100%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_photo.htm (96%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_quote.htm (100%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_regular_post.htm (100%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_url.htm (100%) mode change 100644 => 100755 rename admin/themes/admin/{parts => }/template_video.htm (100%) mode change 100644 => 100755 mode change 100644 => 100755 admin/user.php mode change 100644 => 100755 api.php mode change 100644 => 100755 archive.php mode change 100644 => 100755 classes/JSON.php mode change 100644 => 100755 classes/comments.class.php mode change 100644 => 100755 classes/configuration.class.php mode change 100644 => 100755 classes/feeds.class.php mode change 100644 => 100755 classes/gelato.class.php mode change 100644 => 100755 classes/gettext.class.php mode change 100644 => 100755 classes/imgsize.php mode change 100644 => 100755 classes/install.class.php mode change 100644 => 100755 classes/lang.functions.php mode change 100644 => 100755 classes/mysql_connection.class.php mode change 100644 => 100755 classes/pagination.class.php mode change 100644 => 100755 classes/plugin.class.php mode change 100644 => 100755 classes/plugins.class.php mode change 100644 => 100755 classes/simplepie.class.php mode change 100644 => 100755 classes/streams.class.php mode change 100644 => 100755 classes/templates.class.php mode change 100644 => 100755 classes/textile.class.php mode change 100644 => 100755 classes/themes.class.php mode change 100644 => 100755 classes/user.class.php mode change 100644 => 100755 classes/util.class.php rename config-sample.php => config.php (60%) mode change 100644 => 100755 create mode 100755 date.php mode change 100644 => 100755 db/gelato_db.erwin mode change 100644 => 100755 db/gelato_db.sql mode change 100644 => 100755 entry.php mode change 100644 => 100755 gettext.bat mode change 100644 => 100755 images/bg.jpg mode change 100644 => 100755 images/bg_nav.png mode change 100644 => 100755 images/cabecera.gif mode change 100644 => 100755 images/cont_BG.gif mode change 100644 => 100755 images/error.png mode change 100644 => 100755 images/favicon.ico mode change 100644 => 100755 images/footer.gif mode change 100644 => 100755 images/icon_info.gif mode change 100644 => 100755 images/information.png mode change 100644 => 100755 images/proceso.gif mode change 100644 => 100755 images/quote.gif mode change 100644 => 100755 images/round-en.png mode change 100644 => 100755 images/round-es.png mode change 100644 => 100755 images/round-wn.png mode change 100644 => 100755 images/round-ws.png mode change 100644 => 100755 images/top_ribbon.png mode change 100644 => 100755 index.php mode change 100644 => 100755 install.php mode change 100644 => 100755 languages/ca/messages.mo mode change 100644 => 100755 languages/ca/messages.po mode change 100644 => 100755 languages/de/messages.mo mode change 100644 => 100755 languages/de/messages.po mode change 100644 => 100755 languages/en/messages.mo mode change 100644 => 100755 languages/en/messages.po mode change 100644 => 100755 languages/es-AR/messages.mo mode change 100644 => 100755 languages/es-AR/messages.po mode change 100644 => 100755 languages/es-ES/messages.mo mode change 100644 => 100755 languages/es-ES/messages.po mode change 100644 => 100755 languages/es-MX/messages.mo mode change 100644 => 100755 languages/es-MX/messages.po mode change 100644 => 100755 languages/fr/messages.mo mode change 100644 => 100755 languages/fr/messages.po mode change 100644 => 100755 languages/it/messages.mo mode change 100644 => 100755 languages/it/messages.po mode change 100644 => 100755 languages/nl/messages.mo mode change 100644 => 100755 languages/nl/messages.po mode change 100644 => 100755 languages/no/messages.mo mode change 100644 => 100755 languages/no/messages.po mode change 100644 => 100755 languages/pl/messages.mo mode change 100644 => 100755 languages/pl/messages.po mode change 100644 => 100755 languages/pt-BR/messages.mo mode change 100644 => 100755 languages/pt-BR/messages.po mode change 100644 => 100755 languages/ru/messages.mo mode change 100644 => 100755 languages/ru/messages.po mode change 100644 => 100755 languages/zh-CN/messages.mo mode change 100644 => 100755 languages/zh-CN/messages.po mode change 100644 => 100755 languages/zh-TW/messages.mo mode change 100644 => 100755 languages/zh-TW/messages.po mode change 100644 => 100755 login.php mode change 100644 => 100755 notice.txt mode change 100644 => 100755 plugins/feedreplacement.php mode change 100644 => 100755 plugins/geshi/abap.php mode change 100644 => 100755 plugins/geshi/actionscript.php mode change 100644 => 100755 plugins/geshi/ada.php mode change 100644 => 100755 plugins/geshi/apache.php mode change 100644 => 100755 plugins/geshi/applescript.php mode change 100644 => 100755 plugins/geshi/asm.php mode change 100644 => 100755 plugins/geshi/asp.php mode change 100644 => 100755 plugins/geshi/autoit.php mode change 100644 => 100755 plugins/geshi/bash.php mode change 100644 => 100755 plugins/geshi/basic4gl.php mode change 100644 => 100755 plugins/geshi/blitzbasic.php mode change 100644 => 100755 plugins/geshi/bnf.php mode change 100644 => 100755 plugins/geshi/c.php mode change 100644 => 100755 plugins/geshi/c_mac.php mode change 100644 => 100755 plugins/geshi/caddcl.php mode change 100644 => 100755 plugins/geshi/cadlisp.php mode change 100644 => 100755 plugins/geshi/cfdg.php mode change 100644 => 100755 plugins/geshi/cfm.php mode change 100644 => 100755 plugins/geshi/cpp-qt.php mode change 100644 => 100755 plugins/geshi/cpp.php mode change 100644 => 100755 plugins/geshi/csharp.php mode change 100644 => 100755 plugins/geshi/css-gen.cfg mode change 100644 => 100755 plugins/geshi/css.php mode change 100644 => 100755 plugins/geshi/d.php mode change 100644 => 100755 plugins/geshi/delphi.php mode change 100644 => 100755 plugins/geshi/diff.php mode change 100644 => 100755 plugins/geshi/div.php mode change 100644 => 100755 plugins/geshi/dos.php mode change 100644 => 100755 plugins/geshi/dot.php mode change 100644 => 100755 plugins/geshi/eiffel.php mode change 100644 => 100755 plugins/geshi/fortran.php mode change 100644 => 100755 plugins/geshi/freebasic.php mode change 100644 => 100755 plugins/geshi/genero.php mode change 100644 => 100755 plugins/geshi/geshi.php mode change 100644 => 100755 plugins/geshi/gml.php mode change 100644 => 100755 plugins/geshi/groovy.php mode change 100644 => 100755 plugins/geshi/haskell.php mode change 100644 => 100755 plugins/geshi/html4strict.php mode change 100644 => 100755 plugins/geshi/idl.php mode change 100644 => 100755 plugins/geshi/ini.php mode change 100644 => 100755 plugins/geshi/inno.php mode change 100644 => 100755 plugins/geshi/io.php mode change 100644 => 100755 plugins/geshi/java.php mode change 100644 => 100755 plugins/geshi/java5.php mode change 100644 => 100755 plugins/geshi/javascript.php mode change 100644 => 100755 plugins/geshi/latex.php mode change 100644 => 100755 plugins/geshi/lisp.php mode change 100644 => 100755 plugins/geshi/lua.php mode change 100644 => 100755 plugins/geshi/m68k.php mode change 100644 => 100755 plugins/geshi/matlab.php mode change 100644 => 100755 plugins/geshi/mirc.php mode change 100644 => 100755 plugins/geshi/mpasm.php mode change 100644 => 100755 plugins/geshi/mysql.php mode change 100644 => 100755 plugins/geshi/nsis.php mode change 100644 => 100755 plugins/geshi/objc.php mode change 100644 => 100755 plugins/geshi/ocaml-brief.php mode change 100644 => 100755 plugins/geshi/ocaml.php mode change 100644 => 100755 plugins/geshi/oobas.php mode change 100644 => 100755 plugins/geshi/oracle8.php mode change 100644 => 100755 plugins/geshi/pascal.php mode change 100644 => 100755 plugins/geshi/per.php mode change 100644 => 100755 plugins/geshi/perl.php mode change 100644 => 100755 plugins/geshi/php-brief.php mode change 100644 => 100755 plugins/geshi/php.php mode change 100644 => 100755 plugins/geshi/plsql.php mode change 100644 => 100755 plugins/geshi/python.php mode change 100644 => 100755 plugins/geshi/qbasic.php mode change 100644 => 100755 plugins/geshi/rails.php mode change 100644 => 100755 plugins/geshi/reg.php mode change 100644 => 100755 plugins/geshi/robots.php mode change 100644 => 100755 plugins/geshi/ruby.php mode change 100644 => 100755 plugins/geshi/sas.php mode change 100644 => 100755 plugins/geshi/scheme.php mode change 100644 => 100755 plugins/geshi/sdlbasic.php mode change 100644 => 100755 plugins/geshi/smalltalk.php mode change 100644 => 100755 plugins/geshi/smarty.php mode change 100644 => 100755 plugins/geshi/sql.php mode change 100644 => 100755 plugins/geshi/tcl.php mode change 100644 => 100755 plugins/geshi/text.php mode change 100644 => 100755 plugins/geshi/thinbasic.php mode change 100644 => 100755 plugins/geshi/tsql.php mode change 100644 => 100755 plugins/geshi/vb.php mode change 100644 => 100755 plugins/geshi/vbnet.php mode change 100644 => 100755 plugins/geshi/vhdl.php mode change 100644 => 100755 plugins/geshi/visualfoxpro.php mode change 100644 => 100755 plugins/geshi/winbatch.php mode change 100644 => 100755 plugins/geshi/xml.php mode change 100644 => 100755 plugins/geshi/xpp.php mode change 100644 => 100755 plugins/geshi/z80.php mode change 100644 => 100755 plugins/kodrs.php mode change 100644 => 100755 plugins/post_confirmation.php mode change 100644 => 100755 readme.txt mode change 100644 => 100755 rss.php mode change 100644 => 100755 sitemap.php mode change 100644 => 100755 sitemap.xsl mode change 100644 => 100755 themes/Dreamscape/images/bg.gif mode change 100644 => 100755 themes/Dreamscape/images/content_bg.png mode change 100644 => 100755 themes/Dreamscape/index.htm mode change 100644 => 100755 themes/Dreamscape/style.css mode change 100644 => 100755 themes/tumblr/img/bg.gif mode change 100644 => 100755 themes/tumblr/img/link.gif mode change 100644 => 100755 themes/tumblr/img/rss.gif mode change 100644 => 100755 themes/tumblr/index.htm mode change 100644 => 100755 themes/tumblr/style.css delete mode 100644 update.php mode change 100644 => 100755 uploads/index.php diff --git a/.htaccess b/.htaccess old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 7dfe0db..0000000 --- a/LICENSE +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/admin/admin.php b/admin/admin.php old mode 100644 new mode 100755 index 4ce06e2..b0a02f8 --- a/admin/admin.php +++ b/admin/admin.php @@ -1,32 +1,34 @@ - - - =========================== */ - -require_once('../entry.php'); -global $user, $conf, $tumble; - -if ($user->isAdmin()) { - -?> + + + =========================== */ + +require_once('../entry.php'); +global $user, $conf, $tumble; + +if ($user->isAdmin()) { + ?> gelato :: <?php echo __("admin users")?> - - - - - + + + + + + @@ -49,10 +51,10 @@ if ($user->isAdmin()) {
@@ -60,40 +62,39 @@ if ($user->isAdmin()) {

 

-".__("The user has been added successfully.")."
"; - } - } - - if (isset($_GET["delete"])) { - if ($_GET["delete"]=="true") { - echo "
".__("The user has been eliminated successfully.")."
"; - } - } - - if (isset($_GET["modified"])) { - if ($_GET["modified"]=="true") { - echo "
".__("The user has been modified successfully.")."
"; - } - } - - if (isset($_GET["error"])) { - if ($_GET["error"]==1) { - echo "
".__("The username is not available.")."
"; - } elseif ($_GET["error"]==2) { - echo "
".__("Error on the database server:.")." ".$_GET["des"]."
"; - } - } -?> +".__("The user has been added successfully.")."
"; + } + } + + if (isset($_GET["delete"])) { + if ($_GET["delete"]=="true") { + echo "
".__("The user has been eliminated successfully.")."
"; + } + } + + if (isset($_GET["modified"])) { + if ($_GET["modified"]=="true") { + echo "
".__("The user has been modified successfully.")."
"; + } + } + + if (isset($_GET["error"])) { + if ($_GET["error"]==1) { + echo "
".__("The username is not available.")."
"; + } elseif ($_GET["error"]==2) { + echo "
".__("Error on the database server:.")." ".$_GET["des"]."
"; + } + } ?>
@@ -105,30 +106,35 @@ if ($user->isAdmin()) { -getUsers(); - if ($db->contarRegistros()>0) { - while($register = mysql_fetch_array($rs)) { -?> - > +getUsers(); + if ($db->contarRegistros()>0) { + while ($register = mysql_fetch_array($rs)) { + ?> + > - + - + - +
">"> "> 
@@ -142,8 +148,9 @@ if ($user->isAdmin()) {
-urlGelato."/login.php"); -} -?> \ No newline at end of file +urlGelato."/login.php"); +} +?> diff --git a/admin/ajax.php b/admin/ajax.php old mode 100644 new mode 100755 index f8c54bc..64556cb --- a/admin/ajax.php +++ b/admin/ajax.php @@ -1,42 +1,43 @@ - - - =========================== */ + + + =========================== */ ?> -isAdmin()) { - if ($_GET["action"]) { - - if ($_GET["action"] == "close") { - if ($user->closeSession()) { - echo __(" ending session…"); - } else { - echo __(" failure ending session…"); - } - } // $_GET["action"] == "close" - - if ($_GET["action"] == "verify") { - if ($_GET["login"]=="") { - echo "
".__("Required field cannot be left blank.")."
"; - } else { - if (!$user->userExist($_GET["login"])) { - echo "
".__("Username available.")."
"; - } else { - echo "
".__("The username is not available.")."
"; - } - } - } // $_GET["action"] == "verify" - } // $_GET["action"] - } // $user->isAdmin() +isAdmin()) { + if ($_GET["action"]) { + if ($_GET["action"] == "close") { + if ($user->closeSession()) { + echo __(" ending session…"); + } else { + echo __(" failure ending session…"); + } + } // $_GET["action"] == "close" + + if ($_GET["action"] == "verify") { + if ($_GET["login"]=="") { + echo "
".__("Required field cannot be left blank.")."
"; + } else { + if (!$user->userExist($_GET["login"])) { + echo "
".__("Username available.")."
"; + } else { + echo "
".__("The username is not available.")."
"; + } + } + } // $_GET["action"] == "verify" + } // $_GET["action"] + } // $user->isAdmin() ?> \ No newline at end of file diff --git a/admin/bm.php b/admin/bm.php old mode 100644 new mode 100755 index 21aa598..22437c8 --- a/admin/bm.php +++ b/admin/bm.php @@ -1,121 +1,118 @@ - - - =========================== */ -?> -isAdmin()) { - - if(isset($_POST["btnAdd"])) { - unset($_POST["btnAdd"]); - - if ($_POST["type"]=="2") { // is Photo type - if (isset($_POST["url"]) && $_POST["url"]!="") { - $photoName = util::getFileName($_POST["url"]); - if (!$tumble->savePhoto($_POST["url"])) { - header("Location: ".$conf->urlGelato."/admin/index.php?photo=false"); - die(); - } - $_POST["url"] = "../uploads/".util::sanitizeName($photoName); - } - - unset($_POST["photo"]); - unset($_POST["MAX_FILE_SIZE"]); - } - - if ($_POST["type"]=="7") { // is MP3 type - set_time_limit(300); - $mp3Name = util::getFileName($_POST["url"]); - if (!$tumble->saveMP3($_POST["url"])) { - header("Location: ".$conf->urlGelato."/admin/index.php?mp3=false"); - die(); - } - if (isMP3($remoteFileName)) { - $_POST["url"] = $conf->urlGelato."/uploads/".$mp3Name; - } - } - - if (!get_magic_quotes_gpc()) { - $_POST["title"] = addslashes($_POST["title"]); - $_POST["description"] = addslashes($_POST["description"]); - } - - $_POST["title"] = util::removeBadTags($_POST["title"],true); - $_POST["description"] = util::removeBadTags($_POST["description"]); - - if ($tumble->addPost($_POST)) { - $input = array("{type}"); - $output = array("1"); - - $template->cargarPlantilla($input, $output, "template_bm"); - $template->mostrarPlantilla(); - die(); - } else { - header("Location: ".$conf->urlGelato."/admin/index.php?error=2&des=".$this->merror); - die(); - } - } else { - - if (isset($_GET["url"])) { - $url = $_GET["url"]; - } else { - $url = null; - } - if (isset($url)) { - - if (util::isMP3($url)) { - $postType = "mp3"; - } elseif (util::isGoEar($url)) { - $postType = "mp3"; - } elseif (util::isImageFile($url)) { - $postType = "photo"; - } elseif (util::isVideo($url)) { - $postType = "video"; - } else { - if (isset($_GET["sel"]) && !$_GET["sel"]=="" ) { - $postType = "post"; - } else { - $postType = "url"; - } - } - - } else { - die(__("Must be a valid URL")); - } + + + =========================== */ ?> +isAdmin()) { + if (isset($_POST["btnAdd"])) { + unset($_POST["btnAdd"]); + + if ($_POST["type"]=="2") { // is Photo type + if (isset($_POST["url"]) && $_POST["url"]!="") { + $photoName = $util_class->getFileName($_POST["url"]); + if (!$tumble->savePhoto($_POST["url"])) { + header("Location: ".$conf->urlGelato."/admin/index.php?photo=false"); + die(); + } + $_POST["url"] = "../uploads/".$util_class->sanitizeName($photoName); + } + + unset($_POST["photo"]); + unset($_POST["MAX_FILE_SIZE"]); + } + + if ($_POST["type"]=="7") { // is MP3 type + set_time_limit(300); + $mp3Name = $util_class->getFileName($_POST["url"]); + if (!$tumble->saveMP3($_POST["url"])) { + header("Location: ".$conf->urlGelato."/admin/index.php?mp3=false"); + die(); + } + if (isMP3($remoteFileName)) { + $_POST["url"] = $conf->urlGelato."/uploads/".$mp3Name; + } + } + + if (!get_magic_quotes_gpc()) { + $_POST["title"] = addslashes($_POST["title"]); + $_POST["description"] = addslashes($_POST["description"]); + } + + $_POST["title"] = $util_class->removeBadTags($_POST["title"], true); + $_POST["description"] = $util_class->removeBadTags($_POST["description"]); + + if ($tumble->addPost($_POST)) { + $input = array("{type}"); + $output = array("1"); + + $template->cargarPlantilla($input, $output, "template_bm"); + $template->mostrarPlantilla(); + die(); + } else { + header("Location: ".$conf->urlGelato."/admin/index.php?error=2&des=".$this->merror); + die(); + } + } else { + if (isset($_GET["url"])) { + $url = $_GET["url"]; + } else { + $url = null; + } + if (isset($url)) { + if ($util_class->isMP3($url)) { + $postType = "mp3"; + } elseif ($util_class->isGoEar($url)) { + $postType = "mp3"; + } elseif ($util_class->isImageFile($url)) { + $postType = "photo"; + } elseif ($util_class->isVideo($url)) { + $postType = "video"; + } else { + if (isset($_GET["sel"]) && !$_GET["sel"]=="") { + $postType = "post"; + } else { + $postType = "url"; + } + } + } else { + die(__("Must be a valid URL")); + } ?> - + gelato :: <?php echo __("bookmarklet")?> - - - - - - - + + + + + + + @@ -125,84 +122,82 @@ if ($user->isAdmin()) {

 

name="frmAdd" class="newpost">
-cargarPlantilla($input, $output, "template_add_post"); - $template->mostrarPlantilla(); - break; - case "photo": - $input = array("{type}", "{date}", "{id_user}", "{editUrl}", "{editBody}"); - $output = array("2", $date, $_SESSION['user_id'], $url, $body); - - $template->cargarPlantilla($input, $output, "template_add_photo_bm"); - $template->mostrarPlantilla(); - break; - case "url": - - $input = array("{type}", "{date}", "{id_user}", "{editTitle}", "{editUrl}", "{editBody}"); - $output = array("4", $date, $_SESSION['user_id'], $title, $url, $body); - - $template->cargarPlantilla($input, $output, "template_add_link"); - $template->mostrarPlantilla(); - break; - case "video": - $input = array("{type}", "{date}", "{id_user}", "{editUrl}", "{editBody}"); - $output = array("6", $date, $_SESSION['user_id'], $url, $body); - - $template->cargarPlantilla($input, $output, "template_add_video"); - $template->mostrarPlantilla(); - break; - case "mp3": - $input = array("{type}", "{date}", "{id_user}", "{editUrl}", "{editBody}"); - $output = array("7", $date, $_SESSION['user_id'], $url, $body); - - $template->cargarPlantilla($input, $output, "template_add_mp3"); - $template->mostrarPlantilla(); - break; - } -?> +cargarPlantilla($input, $output, "template_add_post"); + $template->mostrarPlantilla(); + break; + case "photo": + $input = array("{type}", "{date}", "{id_user}", "{editUrl}", "{editBody}"); + $output = array("2", $date, $_SESSION['user_id'], $url, $body); + + $template->cargarPlantilla($input, $output, "template_add_photo_bm"); + $template->mostrarPlantilla(); + break; + case "url": + + $input = array("{type}", "{date}", "{id_user}", "{editTitle}", "{editUrl}", "{editBody}"); + $output = array("4", $date, $_SESSION['user_id'], $title, $url, $body); + + $template->cargarPlantilla($input, $output, "template_add_link"); + $template->mostrarPlantilla(); + break; + case "video": + $input = array("{type}", "{date}", "{id_user}", "{editUrl}", "{editBody}"); + $output = array("6", $date, $_SESSION['user_id'], $url, $body); + + $template->cargarPlantilla($input, $output, "template_add_video"); + $template->mostrarPlantilla(); + break; + case "mp3": + $input = array("{type}", "{date}", "{id_user}", "{editUrl}", "{editBody}"); + $output = array("7", $date, $_SESSION['user_id'], $url, $body); + + $template->cargarPlantilla($input, $output, "template_add_mp3"); + $template->mostrarPlantilla(); + break; + } ?>

:
@@ -225,18 +220,19 @@ if ($user->isAdmin()) {

- + -urlGelato.$target); -} -?> \ No newline at end of file +urlGelato.$target); +} +?> diff --git a/admin/close.php b/admin/close.php old mode 100644 new mode 100755 index 1023e03..1a1781a --- a/admin/close.php +++ b/admin/close.php @@ -1,21 +1,23 @@ - - - =========================== */ + + + =========================== */ ?> -closeSession(); - +closeSession(); + ?> @@ -47,16 +49,18 @@ $closed = $user->closeSession();

- +

- +

-

diff --git a/admin/comments.php b/admin/comments.php old mode 100644 new mode 100755 index 22a62e8..beda4e0 --- a/admin/comments.php +++ b/admin/comments.php @@ -1,82 +1,81 @@ - - - =========================== */ -?> -isAdmin(); -$isEdition = isset($_GET["edit"]); -$commentId = ($isEdition) ? $_GET["edit"] : NULL; - -if(isset($_POST["btnAdd"])) { - unset($_POST["btnAdd"]); - - $_POST["username"] = strip_tags($_POST["username"]); - $_POST["email"] = strip_tags($_POST["email"]); - $_POST["web"] = strip_tags($_POST["web"]); - $_POST["content"] = util::removeBadTags($_POST["content"], true); - - if (isset($_POST["id_comment"])) { - if ($isAdmin) { - if ($comment->modifyComment($_POST, $_POST["id_comment"])) { - header("Location: comments.php?modified=true"); - die(); - } else { - header("Location: comments.php?modified=false"); - die(); - } - } - } else { - $comment->generateCookie($_POST); - $_POST["spam"] = ($comment->isSpam($_POST)) ? "1" : "0"; - $_POST["ip_user"] = $_SERVER["REMOTE_ADDR"]; - - $strEnd=($conf->urlFriendly) ? "/" : ""; - if ($comment->addComment($_POST)) { - header("Location: ".$conf->urlGelato.($conf->urlFriendly?"/post/":"/index.php?post=").$_POST["id_post"].$strEnd); - die(); - } else { - header("Location: ".$conf->urlGelato.($conf->urlFriendly?"/post/":"/index.php?post=").$_POST["id_post"].$strEnd); - die(); - } - } -} - -if ($isAdmin) { - - if (isset($_GET["delete"])) { - if ($comment->deleteComment($_GET['delete'])) { - header("Location: comments.php?deleted=true"); - die(); - } else { - header("Location: comments.php?deleted=false"); - die(); - } - } - + + + =========================== */ ?> +isAdmin(); +$isEdition = isset($_GET["edit"]); +$commentId = ($isEdition) ? $_GET["edit"] : null; + +if (isset($_POST["btnAdd"])) { + unset($_POST["btnAdd"]); + + $_POST["username"] = strip_tags($_POST["username"]); + $_POST["email"] = strip_tags($_POST["email"]); + $_POST["web"] = strip_tags($_POST["web"]); + $_POST["content"] = util::removeBadTags($_POST["content"], true); + + if (isset($_POST["id_comment"])) { + if ($isAdmin) { + if ($comment->modifyComment($_POST, $_POST["id_comment"])) { + header("Location: comments.php?modified=true"); + die(); + } else { + header("Location: comments.php?modified=false"); + die(); + } + } + } else { + $comment->generateCookie($_POST); + $_POST["spam"] = ($comment->isSpam($_POST)) ? "1" : "0"; + $_POST["ip_user"] = $_SERVER["REMOTE_ADDR"]; + + $strEnd=($conf->urlFriendly) ? "/" : ""; + if ($comment->addComment($_POST)) { + header("Location: ".$conf->urlGelato.($conf->urlFriendly?"/post/":"/index.php?post=").$_POST["id_post"].$strEnd); + die(); + } else { + header("Location: ".$conf->urlGelato.($conf->urlFriendly?"/post/":"/index.php?post=").$_POST["id_post"].$strEnd); + die(); + } + } +} + +if ($isAdmin) { + if (isset($_GET["delete"])) { + if ($comment->deleteComment($_GET['delete'])) { + header("Location: comments.php?deleted=true"); + die(); + } else { + header("Location: comments.php?deleted=false"); + die(); + } + } ?> gelato :: <?php echo __("comments")?> - - - - + + + + - +
@@ -104,82 +103,84 @@ if ($isAdmin) {

 

-".__("The comment has been eliminated successfully.")."
"; - } - if ($_GET["deleted"]=="false") { - echo "
".__("The post has NOT been eliminated.")."
"; - } - } - - if (isset($_GET["modified"])) { - if ($_GET["modified"]=="true") { - echo "
".__("The comment has been modified successfully.")."
"; - } - if ($_GET["modified"]=="false") { - echo "
".__("The post has NOT been modified.")."
"; - } - } -?> +".__("The comment has been eliminated successfully.")."
"; + } + if ($_GET["deleted"]=="false") { + echo "
".__("The post has NOT been eliminated.")."
"; + } + } + + if (isset($_GET["modified"])) { + if ($_GET["modified"]=="true") { + echo "
".__("The comment has been modified successfully.")."
"; + } + if ($_GET["modified"]=="false") { + echo "
".__("The post has NOT been modified.")."
"; + } + } ?>
-getComment($_GET["edit"]); - $date = strtotime($row["comment_date"]); - - $input = array("{User}", "{Email}", "{Web}", "{Comment}", "{Id_Post}", "{Date_Added}", "{Id_Comment}", "{Form_Action}"); - $output = array($row["username"], $row["email"], $row["web"], $row["content"], $row["id_post"], $date, $row["id_comment"], $conf->urlGelato."/admin/comments.php"); - - $template->cargarPlantilla($input, $output, "template_comment_post"); - $template->mostrarPlantilla(); - - } else { - - if (isset($_GET["page"]) && is_numeric($_GET["page"]) ) { - $page_num = $_GET["page"]; - } else { - $page_num = NULL; - } - - $limit=$conf->postLimit; - - if(isset($page_num) && is_numeric($page_num) && $page_num>0) { - $from = (($page_num-1) * $limit); - } else { - $from = 0; - } - - if (isset($_GET["spam"]) && $_GET["spam"]=="true") { $sp = "1"; } else { $sp = null; } - - $rs = $comment->getComments(null, $limit, $from, $sp); - - if ($db->contarRegistros()>0) { - while($rowComment = mysql_fetch_array($rs)) { - - $commentAuthor = ($rowComment["web"]=="") ? $rowComment["username"]." | ".$rowComment["email"] : "".$rowComment["username"]." | ".$rowComment["email"]; - - $input = array("{Permalink}", "{URL_Tumble}", "{Id_Comment}", "{Comment_Author}", "{Comment}"); - $output = array($conf->urlGelato."/index.php/post/".$rowComment["id_post"]."#comment-".$rowComment["id_comment"], $conf->urlGelato, $rowComment["id_comment"], $commentAuthor, $rowComment["content"]); - - $template->cargarPlantilla($input, $output, "template_comment"); - $template->mostrarPlantilla(); - } - - $p = new pagination; - $p->items($comment->countComments()); - $p->limit($limit); - $p->currentPage(isset($page_num) ? $page_num : 1); - $p->show(); - } - } -?> +getComment($_GET["edit"]); + $date = strtotime($row["comment_date"]); + + $input = array("{User}", "{Email}", "{Web}", "{Comment}", "{Id_Post}", "{Date_Added}", "{Id_Comment}", "{Form_Action}"); + $output = array($row["username"], $row["email"], $row["web"], $row["content"], $row["id_post"], $date, $row["id_comment"], $conf->urlGelato."/admin/comments.php"); + + $template->cargarPlantilla($input, $output, "template_comment_post"); + $template->mostrarPlantilla(); + } else { + if (isset($_GET["page"]) && is_numeric($_GET["page"])) { + $page_num = $_GET["page"]; + } else { + $page_num = null; + } + + $limit=$conf->postLimit; + + if (isset($page_num) && is_numeric($page_num) && $page_num>0) { + $from = (($page_num-1) * $limit); + } else { + $from = 0; + } + + if (isset($_GET["spam"]) && $_GET["spam"]=="true") { + $sp = "1"; + } else { + $sp = null; + } + + $rs = $comment->getComments(null, $limit, $from, $sp); + + if ($db->contarRegistros()>0) { + while ($rowComment = mysql_fetch_array($rs)) { + $commentAuthor = ($rowComment["web"]=="") ? $rowComment["username"]." | ".$rowComment["email"] : "".$rowComment["username"]." | ".$rowComment["email"]; + + $input = array("{Permalink}", "{URL_Tumble}", "{Id_Comment}", "{Comment_Author}", "{Comment}"); + $output = array($conf->urlGelato."/index.php/post/".$rowComment["id_post"]."#comment-".$rowComment["id_comment"], $conf->urlGelato, $rowComment["id_comment"], $commentAuthor, $rowComment["content"]); + + $template->cargarPlantilla($input, $output, "template_comment"); + $template->mostrarPlantilla(); + } + + $p = new pagination; + $p->items($comment->countComments()); + $p->limit($limit); + $p->currentPage(isset($page_num) ? $page_num : 1); + $p->show(); + } + } ?>
@@ -191,8 +192,9 @@ if ($isAdmin) { -urlGelato."/login.php"); -} +urlGelato."/login.php"); +} ?> \ No newline at end of file diff --git a/admin/css/archive.css b/admin/css/archive.css old mode 100644 new mode 100755 diff --git a/admin/css/images/asc.gif b/admin/css/images/asc.gif old mode 100644 new mode 100755 diff --git a/admin/css/images/bg-box.png b/admin/css/images/bg-box.png old mode 100644 new mode 100755 diff --git a/admin/css/images/bg-foot-box.png b/admin/css/images/bg-foot-box.png old mode 100644 new mode 100755 diff --git a/admin/css/images/bg-top-box-hover.png b/admin/css/images/bg-top-box-hover.png old mode 100644 new mode 100755 diff --git a/admin/css/images/bg-top-box.png b/admin/css/images/bg-top-box.png old mode 100644 new mode 100755 diff --git a/admin/css/images/bg.gif b/admin/css/images/bg.gif old mode 100644 new mode 100755 diff --git a/admin/css/images/blank.gif b/admin/css/images/blank.gif old mode 100644 new mode 100755 diff --git a/admin/css/images/close.gif b/admin/css/images/close.gif old mode 100644 new mode 100755 diff --git a/admin/css/images/closelabel.gif b/admin/css/images/closelabel.gif old mode 100644 new mode 100755 diff --git a/admin/css/images/comments.png b/admin/css/images/comments.png old mode 100644 new mode 100755 diff --git a/admin/css/images/delete.png b/admin/css/images/delete.png old mode 100644 new mode 100755 diff --git a/admin/css/images/desc.gif b/admin/css/images/desc.gif old mode 100644 new mode 100755 diff --git a/admin/css/images/edit.png b/admin/css/images/edit.png old mode 100644 new mode 100755 diff --git a/admin/css/images/film.png b/admin/css/images/film.png old mode 100644 new mode 100755 diff --git a/admin/css/images/gelato-logo.png b/admin/css/images/gelato-logo.png old mode 100644 new mode 100755 diff --git a/admin/css/images/grad-big.png b/admin/css/images/grad-big.png old mode 100644 new mode 100755 diff --git a/admin/css/images/grad-small.png b/admin/css/images/grad-small.png old mode 100644 new mode 100755 diff --git a/admin/css/images/image.png b/admin/css/images/image.png old mode 100644 new mode 100755 diff --git a/admin/css/images/loading.gif b/admin/css/images/loading.gif old mode 100644 new mode 100755 diff --git a/admin/css/images/music.png b/admin/css/images/music.png old mode 100644 new mode 100755 diff --git a/admin/css/images/nextlabel.gif b/admin/css/images/nextlabel.gif old mode 100644 new mode 100755 diff --git a/admin/css/images/page.png b/admin/css/images/page.png old mode 100644 new mode 100755 diff --git a/admin/css/images/prevlabel.gif b/admin/css/images/prevlabel.gif old mode 100644 new mode 100755 diff --git a/admin/css/images/quote.png b/admin/css/images/quote.png old mode 100644 new mode 100755 diff --git a/admin/css/images/td_back.gif b/admin/css/images/td_back.gif old mode 100644 new mode 100755 diff --git a/admin/css/images/world.png b/admin/css/images/world.png old mode 100644 new mode 100755 diff --git a/admin/css/lightbox.css b/admin/css/lightbox.css old mode 100644 new mode 100755 diff --git a/admin/css/style.css b/admin/css/style.css old mode 100644 new mode 100755 diff --git a/admin/feeds.php b/admin/feeds.php old mode 100644 new mode 100755 index a355b4c..98856be --- a/admin/feeds.php +++ b/admin/feeds.php @@ -1,49 +1,49 @@ - - - =========================== */ -?> -isAdmin()) { - $message = ''; - $f = new feeds(); - if(isset($_POST['add'], $_POST['url'])){ - $credits =(isset($_POST['credits']))? 1 : 0; - if($f->addFeed($_POST['url'],$_POST['type'],$_POST['source'], $credits)){ - $message = __('Feed added'); - $messageStatus = 'exito'; - } - } - - if(isset($_GET['delete']) && is_numeric($_GET['delete'])){ - if($f->removeFeed((int)$_GET['delete'])){ - $message = __('Feed deleted'); - $messageStatus = 'error'; - } - } - + + + =========================== */ ?> +isAdmin()) { + $message = ''; + $f = new feeds(); + if (isset($_POST['add'], $_POST['url'])) { + $credits =(isset($_POST['credits']))? 1 : 0; + if ($f->addFeed($_POST['url'], $_POST['type'], $_POST['source'], $credits)) { + $message = __('Feed added'); + $messageStatus = 'exito'; + } + } + + if (isset($_GET['delete']) && is_numeric($_GET['delete'])) { + if ($f->removeFeed((int)$_GET['delete'])) { + $message = __('Feed deleted'); + $messageStatus = 'error'; + } + } ?> gelato :: <?php echo __("Feeds")?> - - - - - + + + + +
@@ -88,7 +88,7 @@ if ($user->isAdmin()) {
  • - '.$message.'
    ' : ''); ?> + '.$message.'
    ' : ''); ?>
    @@ -128,16 +128,15 @@ if ($user->isAdmin()) {
      - getFeedList(); - foreach($actual_feeds as $feed){ - if($feed['error']>0){ - echo '
    • '.__('Error updating').' '.((!empty($feed['title']))? $feed['title'] : $feed['url']).'
    • '; - }else{ - echo '
    • '.__('Importing').' '.((!empty($feed['title']))? $feed['title'] : $feed['url']).'
    • '; - } - } - ?> + getFeedList(); + foreach ($actual_feeds as $feed) { + if ($feed['error']>0) { + echo '
    • '.__('Error updating').' '.((!empty($feed['title']))? $feed['title'] : $feed['url']).'
    • '; + } else { + echo '
    • '.__('Importing').' '.((!empty($feed['title']))? $feed['title'] : $feed['url']).'
    • '; + } + } ?>
    @@ -151,8 +150,9 @@ if ($user->isAdmin()) { -urlGelato."/login.php"); -} +urlGelato."/login.php"); +} ?> \ No newline at end of file diff --git a/admin/index.php b/admin/index.php old mode 100644 new mode 100755 index e944074..2c5a22d --- a/admin/index.php +++ b/admin/index.php @@ -1,313 +1,326 @@ - - - =========================== */ + + + =========================== */ ?> -set('isEdition',$isEdition); -$theme->set('postId',$postId); -$theme->set('pagination',''); - -if (get_magic_quotes_gpc()) { - foreach($_GET as $k=>$get){ - $_GET[$k]=stripslashes($get); - } -} - -if ($user->isAuthenticated()) { - if (isset($_GET["delete"])) { - $tumble->deletePost($_GET['delete']); - header("Location: index.php?deleted=true"); - die(); - } - - if(isset($_POST["btnAdd"])){ - unset($_POST["btnAdd"]); - $_POST['type'] = util::type2Number($_POST['type']); - - if ($_POST["type"]=="2") { // is Photo type - if (isset($_POST["url"]) && $_POST["url"]!="") { - $photoName = util::getFileName($_POST["url"]); - if (!$tumble->savePhoto($_POST["url"])) { - header("Location: ".$conf->urlGelato."/admin/index.php?photo=false"); - die(); - } - $_POST["url"] = "../uploads/".util::sanitizeName($photoName); - } - - if ( move_uploaded_file( $_FILES['photo']['tmp_name'], "../uploads/".util::sanitizeName($_FILES['photo']['name']) ) ) { - $_POST["url"] = "../uploads/".util::sanitizeName($_FILES['photo']['name']); - } - - unset($_POST["photo"]); - unset($_POST["MAX_FILE_SIZE"]); - } - - if ($_POST["type"]=="7") { // is MP3 type - set_time_limit(300); - $mp3Name = util::getFileName($_POST["url"]); - if (!$tumble->saveMP3($_POST["url"])) { - header("Location: ".$conf->urlGelato."/admin/index.php?mp3=false"); - die(); - } - if (util::isMP3($remoteFileName)) { - $_POST["url"] = $conf->urlGelato."/uploads/".$mp3Name; - } - } - - if (!get_magic_quotes_gpc()) { - $_POST["title"] = addslashes($_POST["title"]); - $_POST["description"] = addslashes($_POST["description"]); - } - - /* - $textile = new Textile(); - - $_POST["title"] = $textile->TextileThis(removeBadTags($_POST["title"],true)); - $_POST["description"] = $textile->TextileThis(removeBadTags($_POST["description"])); - */ - - $_POST["title"] = util::removeBadTags($_POST["title"],true); - $_POST["description"] = util::removeBadTags($_POST["description"]); - - if (isset($_POST["id_post"]) and is_numeric($_POST["id_post"]) and $_POST["id_post"]>0) { - $tumble->modifyPost($_POST, $_POST["id_post"]); - } else { - if ($tumble->addPost($_POST)) { - header("Location: ".$conf->urlGelato."/admin/index.php?added=true"); - die(); - } else { - header("Location: ".$conf->urlGelato."/admin/index.php?error=2&des=".$tumble->merror); - die(); - } - } - } else { - if ($isEdition) { - $post = $tumble->getPost($postId); - } - $admin_includes = ""; - $trigger->call('admin_includes'); - $theme->set('admin_includes',$admin_includes); - $theme->set('version',util::version()); - $theme->set('conf', array( - 'urlGelato'=>$conf->urlGelato, - 'richText'=>$conf->richText - )); - $theme->set('new',isset($_GET['new'])?$_GET['new']:''); - $theme->set('information',false); - $theme->set('error',false); - - if($conf->check_version){ - $present = util::version(); - $lastest = util::_file_get_contents("http://www.gelatocms.com/vgel.txt"); - if ($present < $lastest) - $theme->set('information',__("A new gelato version has been released and is ready for download.")); - } - - $actions = array( - 'deleted'=>false, - 'modified'=>false, - 'added'=>false - ); - - if(isset($_GET['deleted']) and $_GET['deleted']=='true'){ - $theme->set('exito',__("The post has been eliminated successfully.")); - $actions['deleted'] = true; - } - - if(isset($_GET["modified"]) and $_GET["modified"]==true){ - $theme->set('exito',__("The post has been modified successfully.")); - $actions['modified']=true; - } - - if(isset($_GET["added"]) and $_GET["added"]==true) { - $theme->set('exito',__("The post has been added successfully.")); - $actions['added']=true; - } - - $theme->set('action',$actions); - - if (isset($_GET["error"]) and $_GET["error"]==2) - $theme->set('error',__("Error on the database server:")." ".$_GET["des"]); - - if (isset($_GET["mp3"]) and $_GET["mp3"]=='false') - $theme->set('error',__("Not an MP3 file or an upload problem.")); - - if (isset($_GET["photo"]) and $_GET["photo"]=='false') - $theme->set('error',__("Not a photo file or an upload problem.")); - - if ($isEdition) { - switch ($post["type"]) { - case "1": $_GET["new"] = "post"; break; - case "2": $_GET["new"] = "photo"; break; - case "3": $_GET["new"] = "quote"; break; - case "4": $_GET["new"] = "url"; break; - case "5": $_GET["new"] = "conversation"; break; - case "6": $_GET["new"] = "video"; break; - case "7": $_GET["new"] = "mp3"; break; - } - } - - $date = ($isEdition) ? strtotime($post["date"]) : gmmktime(); - $title = ($isEdition) ? htmlspecialchars(stripslashes($post["title"])) : ""; - $body = ($isEdition) ? stripslashes($post["description"]) : ""; - $url = ($isEdition) ? $post["url"] : ""; - - if (!isset($_GET['new'])) $_GET['new'] = 'post'; - - $form = new themes; - $form->set('date',$date); - $form->set('id_user',$_SESSION['user_id']); - $form->set('type',$_GET["new"]); - $form->set('editBody',$body); - switch ($_GET["new"]) { - case "post": - $form->set('editTitle',$title); - $theme->set('form',$form->fetch(Absolute_Path.'admin/themes/admin/parts/template_add_post.htm')); - break; - case "photo": - $url = str_replace("../", $conf->urlGelato."/", $url); - $form->set('editUrl',$url); - $theme->set('form',$form->fetch(Absolute_Path.'admin/themes/admin/parts/template_add_photo.htm')); - break; - case "quote": - $form->set('editTitle',$title); - $theme->set('form',$form->fetch(Absolute_Path.'admin/themes/admin/parts/template_add_quote.htm')); - break; - case "url": - $form->set('editTitle',$title); - $form->set('editUrl',$url); - $theme->set('form',$form->fetch(Absolute_Path.'admin/themes/admin/parts/template_add_link.htm')); - break; - case "conversation": - $form->set('editTitle',$title); - $theme->set('form',$form->fetch(Absolute_Path.'admin/themes/admin/parts/template_add_conversation.htm')); - break; - case "video": - $form->set('editUrl',$url); - $theme->set('form',$form->fetch(Absolute_Path.'admin/themes/admin/parts/template_add_video.htm')); - break; - case "mp3": - $form->set('editUrl',$url); - $theme->set('form',$form->fetch(Absolute_Path.'admin/themes/admin/parts/template_add_mp3.htm')); - break; - } - - - if (!$isEdition){ - if (isset($_GET["page"])) - $page_num = $_GET["page"]; - else - $page_num = NULL; - - $limit=$conf->postLimit; - - if(isset($page_num) && is_numeric($page_num) && $page_num>0)// Is defined the page and is numeric? - $from = (($page_num-1) * $limit); - else - $from = 0; - - $rs = $tumble->getPosts($limit, $from); - $theme->set('Posts_Number',$db->contarRegistros()); - - $rows = array(); - if ($db->contarRegistros()>0) { - while($register = mysql_fetch_array($rs)) { - $row['postType'] = util::type2Text($tumble->getType($register["id_post"])); - - $formatedDate = gmdate("M d", strtotime($register["date"]) + util::transform_offset($conf->offsetTime)); - $strEnd=($conf->urlFriendly) ? "/" : ""; - $permalink = $conf->urlGelato.($conf->urlFriendly?"/post/":"/index.php?post=").$register["id_post"].$strEnd; - - $register["title"] = stripslashes($register["title"]); - $register["description"] = stripslashes($register["description"]); - - $row['Id_Post'] = $register["id_post"]; - $row['Date_Added'] = $formatedDate; - $row['Permalink'] = $permalink; - - switch ($tumble->getType($register["id_post"])) { - case "1": - $row['Title'] = $register["title"]; - $row['Body'] = $register["description"]; - break; - case "2": - $fileName = "../uploads/".util::getFileName($register["url"]); - - $x = @getimagesize($fileName); - if ($x[0] > 100) - $photoPath = $conf->urlGelato."/classes/imgsize.php?w=100&img=".$register["url"]; - else - $photoPath = $register["url"]; - - $effect = " href=\"".str_replace("../", $conf->urlGelato."/", $register["url"])."\" rel=\"lightbox\""; - - $row['PhotoURL'] = $photoPath; - $row['PhotoAlt'] = strip_tags($register["description"]); - $row['Caption'] = $register["description"]; - $row['Effect'] = $effect; - break; - case "3": - $row['Quote'] = $register["description"]; - $row['Source'] = $register["title"]; - break; - case "4": - if($conf->shorten_links) - $register["url"] = util::_file_get_contents("http://api.abbrr.com/api.php?out=link&url=".$register["url"]); - $register["title"] = ($register["title"]=="")? $register["url"] : $register["title"]; - - $row['URL'] = $register["url"]; - $row['Name'] = $register["title"]; - $row['Description'] = $register["description"]; - break; - case "5": - $row['Title'] = $register["title"]; - $row['Conversation'] = $tumble->formatConversation($register["description"]); - break; - case "6": - $row['Video'] = $tumble->getVideoPlayer($register["url"]); - $row['Caption'] = $register["description"]; - break; - case "7": - $row['Mp3'] = $tumble->getMp3Player($register["url"]); - $row['Caption'] = $register["description"]; - break; - } - - $rows[] = $row; - } - - $p = new pagination; - $p->items($tumble->getPostsNumber()); - $p->limit($limit); - $p->currentPage(isset($page_num) ? $page_num : 1); - - $theme->set('pagination',$p->getPagination()); - $theme->set('rows',$rows); - }else{ - $theme->set('error',__("No posts in this tumblelog.")); - } - } - $theme->display(Absolute_Path.'admin/themes/admin/index.htm'); - } -} else { - header("Location: ".$conf->urlGelato."/login.php"); -} +set('isEdition', $isEdition); +$theme->set('postId', $postId); +$theme->set('pagination', ''); + +if (get_magic_quotes_gpc()) { + foreach ($_GET as $k=>$get) { + $_GET[$k]=stripslashes($get); + } +} +$util_class = new util(); +if ($user->isAuthenticated()) { + if (isset($_GET["delete"])) { + $tumble->deletePost($_GET['delete']); + header("Location: index.php?deleted=true"); + die(); + } + + if (isset($_POST["btnAdd"])) { + unset($_POST["btnAdd"]); + $_POST['type'] = $util_class->type2Number($_POST['type']); + + if ($_POST["type"]=="2") { // is Photo type + if (isset($_POST["url"]) && $_POST["url"]!="") { + $photoName = $util_class->getFileName($_POST["url"]); + if (!$tumble->savePhoto($_POST["url"])) { + header("Location: ".$conf->urlGelato."/admin/index.php?photo=false"); + die(); + } + $_POST["url"] = "../uploads/".$util_class->sanitizeName($photoName); + } + + if (move_uploaded_file($_FILES['photo']['tmp_name'], "../uploads/".$util_class->sanitizeName($_FILES['photo']['name']))) { + $_POST["url"] = "../uploads/".$util_class->sanitizeName($_FILES['photo']['name']); + } + + unset($_POST["photo"]); + unset($_POST["MAX_FILE_SIZE"]); + } + + if ($_POST["type"]=="7") { // is MP3 type + set_time_limit(300); + $mp3Name = $util_class->getFileName($_POST["url"]); + if (!$tumble->saveMP3($_POST["url"])) { + header("Location: ".$conf->urlGelato."/admin/index.php?mp3=false"); + die(); + } + if ($util_class->isMP3($remoteFileName)) { + $_POST["url"] = $conf->urlGelato."/uploads/".$mp3Name; + } + } + + if (!get_magic_quotes_gpc()) { + $_POST["title"] = addslashes($_POST["title"]); + $_POST["description"] = addslashes($_POST["description"]); + } + + /* + $textile = new Textile(); + + $_POST["title"] = $textile->TextileThis(removeBadTags($_POST["title"],true)); + $_POST["description"] = $textile->TextileThis(removeBadTags($_POST["description"])); + */ + + $_POST["title"] = $util_class->removeBadTags($_POST["title"], true); + $_POST["description"] = $util_class->removeBadTags($_POST["description"]); + + if (isset($_POST["id_post"]) and is_numeric($_POST["id_post"]) and $_POST["id_post"]>0) { + $tumble->modifyPost($_POST, $_POST["id_post"]); + } else { + if ($tumble->addPost($_POST)) { + header("Location: ".$conf->urlGelato."/admin/index.php?added=true"); + die(); + } else { + header("Location: ".$conf->urlGelato."/admin/index.php?error=2&des=".$tumble->merror); + die(); + } + } + } else { + if ($isEdition) { + $post = $tumble->getPost($postId); + } + $admin_includes = ""; + $trigger->call('admin_includes'); + $theme->set('admin_includes', $admin_includes); + + $theme->set('version', $util_class->version()); + $theme->set('conf', array( + 'urlGelato'=>$conf->urlGelato, + 'richText'=>$conf->richText + )); + $theme->set('new', isset($_GET['new'])?$_GET['new']:''); + $theme->set('information', false); + $theme->set('error', false); + + if ($conf->check_version) { + $present = $util_class->version(); + $lastest = $util_class->_file_get_contents("http://www.gelatocms.com/vgel.txt"); + if ($present < $lastest) { + $theme->set('information', __("A new gelato version has been released and is ready for download.")); + } + } + + $actions = array( + 'deleted'=>false, + 'modified'=>false, + 'added'=>false + ); + + if (isset($_GET['deleted']) and $_GET['deleted']=='true') { + $theme->set('exito', __("The post has been eliminated successfully.")); + $actions['deleted'] = true; + } + + if (isset($_GET["modified"]) and $_GET["modified"]==true) { + $theme->set('exito', __("The post has been modified successfully.")); + $actions['modified']=true; + } + + if (isset($_GET["added"]) and $_GET["added"]==true) { + $theme->set('exito', __("The post has been added successfully.")); + $actions['added']=true; + } + + $theme->set('action', $actions); + + if (isset($_GET["error"]) and $_GET["error"]==2) { + $theme->set('error', __("Error on the database server:")." ".$_GET["des"]); + } + + if (isset($_GET["mp3"]) and $_GET["mp3"]=='false') { + $theme->set('error', __("Not an MP3 file or an upload problem.")); + } + + if (isset($_GET["photo"]) and $_GET["photo"]=='false') { + $theme->set('error', __("Not a photo file or an upload problem.")); + } + + if ($isEdition) { + switch ($post["type"]) { + case "1": $_GET["new"] = "post"; break; + case "2": $_GET["new"] = "photo"; break; + case "3": $_GET["new"] = "quote"; break; + case "4": $_GET["new"] = "url"; break; + case "5": $_GET["new"] = "conversation"; break; + case "6": $_GET["new"] = "video"; break; + case "7": $_GET["new"] = "mp3"; break; + } + } + + $date = ($isEdition) ? strtotime($post["date"]) : time(); + $title = ($isEdition) ? htmlspecialchars(stripslashes($post["title"])) : ""; + $body = ($isEdition) ? stripslashes($post["description"]) : ""; + $url = ($isEdition) ? $post["url"] : ""; + + if (!isset($_GET['new'])) { + $_GET['new'] = 'post'; + } + + $form = new themes; + $form->set('date', $date); + $form->set('id_user', $_SESSION['user_id']); + $form->set('type', $_GET["new"]); + $form->set('editBody', $body); + switch ($_GET["new"]) { + case "post": + $form->set('editTitle', $title); + $theme->set('form', $form->fetch(Absolute_Path.'admin/themes/admin/template_add_post.htm')); + break; + case "photo": + $url = str_replace("../", $conf->urlGelato."/", $url); + $form->set('editUrl', $url); + $theme->set('form', $form->fetch(Absolute_Path.'admin/themes/admin/template_add_photo.htm')); + break; + case "quote": + $form->set('editTitle', $title); + $theme->set('form', $form->fetch(Absolute_Path.'admin/themes/admin/template_add_quote.htm')); + break; + case "url": + $form->set('editTitle', $title); + $form->set('editUrl', $url); + $theme->set('form', $form->fetch(Absolute_Path.'admin/themes/admin/template_add_link.htm')); + break; + case "conversation": + $form->set('editTitle', $title); + $theme->set('form', $form->fetch(Absolute_Path.'admin/themes/admin/template_add_conversation.htm')); + break; + case "video": + $form->set('editUrl', $url); + $theme->set('form', $form->fetch(Absolute_Path.'admin/themes/admin/template_add_video.htm')); + break; + case "mp3": + $form->set('editUrl', $url); + $theme->set('form', $form->fetch(Absolute_Path.'admin/themes/admin/template_add_mp3.htm')); + break; + } + + + if (!$isEdition) { + if (isset($_GET["page"])) { + $page_num = $_GET["page"]; + } else { + $page_num = null; + } + + $limit=$conf->postLimit; + + if (isset($page_num) && is_numeric($page_num) && $page_num>0) {// Is defined the page and is numeric? + $from = (($page_num-1) * $limit); + } else { + $from = 0; + } + + $rs = $tumble->getPosts($limit, $from); + $theme->set('Posts_Number', $db->contarRegistros()); + + $rows = array(); + if ($db->contarRegistros()>0) { + while ($register = mysql_fetch_array($rs)) { + $row['postType'] = $util_class->type2Text($tumble->getType($register["id_post"])); + + $formatedDate = gmdate("M d", strtotime($register["date"]) + $util_class->transform_offset($conf->offsetTime)); + $strEnd=($conf->urlFriendly) ? "/" : ""; + $permalink = $conf->urlGelato.($conf->urlFriendly?"/post/":"/index.php?post=").$register["id_post"].$strEnd; + + $register["title"] = stripslashes($register["title"]); + $register["description"] = stripslashes($register["description"]); + + $row['Id_Post'] = $register["id_post"]; + $row['Date_Added'] = $formatedDate; + $row['Permalink'] = $permalink; + + switch ($tumble->getType($register["id_post"])) { + case "1": + $row['Title'] = $register["title"]; + $row['Body'] = $register["description"]; + break; + case "2": + $fileName = "../uploads/".$util_class->getFileName($register["url"]); + + $x = @getimagesize($fileName); + if ($x[0] > 100) { + $photoPath = $conf->urlGelato."/classes/imgsize.php?w=100&img=".$register["url"]; + } else { + $photoPath = $register["url"]; + } + + $effect = " href=\"".str_replace("../", $conf->urlGelato."/", $register["url"])."\" rel=\"lightbox\""; + + $row['PhotoURL'] = $photoPath; + $row['PhotoAlt'] = strip_tags($register["description"]); + $row['Caption'] = $register["description"]; + $row['Effect'] = $effect; + break; + case "3": + $row['Quote'] = $register["description"]; + $row['Source'] = $register["title"]; + break; + case "4": + if ($conf->shorten_links) { + $register["url"] = $util_class->_file_get_contents("http://api.abbrr.com/api.php?out=link&url=".$register["url"]); + } + $register["title"] = ($register["title"]=="")? $register["url"] : $register["title"]; + + $row['URL'] = $register["url"]; + $row['Name'] = $register["title"]; + $row['Description'] = $register["description"]; + break; + case "5": + $row['Title'] = $register["title"]; + $row['Conversation'] = $tumble->formatConversation($register["description"]); + break; + case "6": + $row['Video'] = $tumble->getVideoPlayer($register["url"]); + $row['Caption'] = $register["description"]; + break; + case "7": + $row['Mp3'] = $tumble->getMp3Player($register["url"]); + $row['Caption'] = $register["description"]; + break; + } + + $rows[] = $row; + } + + $p = new pagination; + $p->items($tumble->getPostsNumber()); + $p->limit($limit); + $p->currentPage(isset($page_num) ? $page_num : 1); + + $theme->set('pagination', $p->getPagination()); + $theme->set('rows', $rows); + } else { + $theme->set('error', __("No posts in this tumblelog.")); + } + } + $theme->display(Absolute_Path.'admin/themes/admin/index.htm'); + } +} else { + header("Location: ".$conf->urlGelato."/login.php"); +} ?> diff --git a/admin/options.php b/admin/options.php old mode 100644 new mode 100755 index b3ce103..69593fe --- a/admin/options.php +++ b/admin/options.php @@ -1,77 +1,78 @@ - - - =========================== */ -?> -isAdmin()) { - - if(isset($_POST["btnsubmit"])) { - if (!$tumble->saveOption($_POST["rich_text"], "rich_text")) { - header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); - die(); - } - if (!$tumble->saveOption($_POST["url_friendly"], "url_friendly")) { - header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); - die(); - } - - $off_r= split("," , $_POST['time_offsets']); - $_POST['offset_time'] = $off_r[0]; - $_POST['offset_city'] = $off_r[1]; - unset($_POST['time_offsets']); - if (!$tumble->saveOption($_POST["offset_city"], "offset_city")) { - header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); - die(); - } - if (!$tumble->saveOption($_POST["offset_time"], "offset_time")) { - header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); - die(); - } - - if (!$tumble->saveOption($_POST["allow_comments"], "allow_comments")) { - header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); - die(); - } - - if (!$tumble->saveOption($_POST["shorten_links"], "shorten_links")) { - header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); - die(); - } - - if (!$tumble->saveOption($_POST["rss_import_frec"], "rss_import_frec")) { - header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); - die(); - } - - if (!$tumble->saveOption($_POST["check_version"], "check_version")) { - header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); - die(); - } - - header("Location: ".$conf->urlGelato."/admin/options.php?modified=true"); - die(); - } else { + + + =========================== */ ?> +isAdmin()) { + if (isset($_POST["btnsubmit"])) { + if (!$tumble->saveOption($_POST["rich_text"], "rich_text")) { + header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); + die(); + } + if (!$tumble->saveOption($_POST["url_friendly"], "url_friendly")) { + header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); + die(); + } + + $off_r= split(",", $_POST['time_offsets']); + $_POST['offset_time'] = $off_r[0]; + $_POST['offset_city'] = $off_r[1]; + unset($_POST['time_offsets']); + if (!$tumble->saveOption($_POST["offset_city"], "offset_city")) { + header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); + die(); + } + if (!$tumble->saveOption($_POST["offset_time"], "offset_time")) { + header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); + die(); + } + + if (!$tumble->saveOption($_POST["allow_comments"], "allow_comments")) { + header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); + die(); + } + + if (!$tumble->saveOption($_POST["shorten_links"], "shorten_links")) { + header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); + die(); + } + + if (!$tumble->saveOption($_POST["rss_import_frec"], "rss_import_frec")) { + header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); + die(); + } + + if (!$tumble->saveOption($_POST["check_version"], "check_version")) { + header("Location: ".$conf->urlGelato."/admin/options.php?error=1&des=".$conf->merror); + die(); + } + + header("Location: ".$conf->urlGelato."/admin/options.php?modified=true"); + die(); + } else { + ?> gelato :: <?php echo __("options")?> - - - + + + @@ -88,9 +89,9 @@ if ($user->isAdmin()) {
    @@ -98,24 +99,23 @@ if ($user->isAdmin()) {
    -".__("The configuration has been modified successfully.")."
    "; - } - } - if (isset($_GET["error"])) { - if ($_GET["error"]==1) { - echo "
    ".__("Error on the database server: ")."".$_GET["des"]."
    "; - } - } -?> +".__("The configuration has been modified successfully.")."
    "; + } + } + if (isset($_GET["error"])) { + if ($_GET["error"]==1) { + echo "
    ".__("Error on the database server: ")."".$_GET["des"]."
    "; + } + } ?>
    @@ -123,20 +123,32 @@ if ($user->isAdmin()) {
    • @@ -207,35 +219,66 @@ if ($user->isAdmin()) {
    • -call('add_options_panel'); -?> +call('add_options_panel'); ?>

    @@ -254,9 +297,10 @@ if ($user->isAdmin()) {

    -urlGelato."/login.php"); -} +urlGelato."/login.php"); +} ?> \ No newline at end of file diff --git a/admin/plugins.php b/admin/plugins.php old mode 100644 new mode 100755 index 595350b..c55a040 --- a/admin/plugins.php +++ b/admin/plugins.php @@ -1,64 +1,64 @@ - - - =========================== */ -?> -isAdmin()) { - - - $plugins = array(); - if ($handle = opendir(Absolute_Path."plugins")) { - while (false !== ($file = readdir($handle))) { - if (substr($file, strlen($file)-4, 4) == ".php") { - $plugins[] = substr($file, 0, strlen($file)-4); - } - } - closedir($handle); - } - - $actives = json_decode($conf->active_plugins,1); - - $actives = $actives[1]; - - if(isset($_POST["btnsubmit"])) { - $actives = array(); - foreach($_POST['plugins'] as $plugin => $val){ - if($val != 'off'){ - $file = $plugin.'.php'; - $actives[$plugin] = $file; - } - } - - if(!$tumble->saveOption(json_encode(array(array('total'=>count($actives)),$actives)), "active_plugins")){ - header("Location: ".$conf->urlGelato."/admin/plugins.php?error=1&desc=".$conf->merror); - die(); - } - header("Location: ".$conf->urlGelato."/admin/plugins.php?modified=true"); - die(); - } else { + + + =========================== */ ?> +isAdmin()) { + $plugins = array(); + if ($handle = opendir(Absolute_Path."plugins")) { + while (false !== ($file = readdir($handle))) { + if (substr($file, strlen($file)-4, 4) == ".php") { + $plugins[] = substr($file, 0, strlen($file)-4); + } + } + closedir($handle); + } + + $actives = json_decode($conf->active_plugins, 1); + + $actives = $actives[1]; + + if (isset($_POST["btnsubmit"])) { + $actives = array(); + foreach ($_POST['plugins'] as $plugin => $val) { + if ($val != 'off') { + $file = $plugin.'.php'; + $actives[$plugin] = $file; + } + } + + if (!$tumble->saveOption(json_encode(array(array('total'=>count($actives)),$actives)), "active_plugins")) { + header("Location: ".$conf->urlGelato."/admin/plugins.php?error=1&desc=".$conf->merror); + die(); + } + header("Location: ".$conf->urlGelato."/admin/plugins.php?modified=true"); + die(); + } else { + ?> gelato :: <?php echo __("Plugins")?> - - - - + + + + @@ -75,9 +75,9 @@ if ($user->isAdmin()) {
    @@ -91,62 +91,64 @@ if ($user->isAdmin()) {
  • -".__("The configuration has been modified successfully.")."
    "; - } - } - if (isset($_GET["error"])) { - if ($_GET["error"]==1) { - echo "
    ".__("Error on the database server: ")."".$_GET["des"]."
    "; - } - } -?> +".__("The configuration has been modified successfully.")."
    "; + } + } + if (isset($_GET["error"])) { + if ($_GET["error"]==1) { + echo "
    ".__("Error on the database server: ")."".$_GET["des"]."
    "; + } + } ?>
    - here'); - }else{ - foreach ($plugins as $key => $plugin) { - - //FIXME terminar esto asi se lee la info desde el archivo 'a la' WP - /* - $plugin_data = implode( '', file( Absolute_Path."plugins/".$plugin.'.php' )); - preg_match( '|Plugin Name:(.*)$|mi', $plugin_data, $plugin_name ); - preg_match( '|Plugin URI:(.*)$|mi', $plugin_data, $plugin_uri ); - preg_match( '|Description:(.*)$|mi', $plugin_data, $description ); - preg_match( '|Author:(.*)$|mi', $plugin_data, $author_name ); - preg_match( '|Author URI:(.*)$|mi', $plugin_data, $author_uri ); - - if ( preg_match( "|Version:(.*)|i", $plugin_data, $version )) - $version = trim( $version[1] ); - else - $version = ''; - - $plugin_data = array('Name' => trim($plugin_name[1]), 'URI' => trim($plugin_uri[1]), 'Description' => trim($description[1]), 'Author' => trim($author_name[1]), 'Author_uri' => trim($author_uri[1]), 'Version' => $version); -*/ - $desc = __("There is no info for this plugin jet"); - $activated = array_key_exists($plugin, $actives); - ?> + here'); + } else { + foreach ($plugins as $key => $plugin) { + + //FIXME terminar esto asi se lee la info desde el archivo 'a la' WP + /* + $plugin_data = implode( '', file( Absolute_Path."plugins/".$plugin.'.php' )); + preg_match( '|Plugin Name:(.*)$|mi', $plugin_data, $plugin_name ); + preg_match( '|Plugin URI:(.*)$|mi', $plugin_data, $plugin_uri ); + preg_match( '|Description:(.*)$|mi', $plugin_data, $description ); + preg_match( '|Author:(.*)$|mi', $plugin_data, $author_name ); + preg_match( '|Author URI:(.*)$|mi', $plugin_data, $author_uri ); + + if ( preg_match( "|Version:(.*)|i", $plugin_data, $version )) + $version = trim( $version[1] ); + else + $version = ''; + + $plugin_data = array('Name' => trim($plugin_name[1]), 'URI' => trim($plugin_uri[1]), 'Description' => trim($description[1]), 'Author' => trim($author_name[1]), 'Author_uri' => trim($author_uri[1]), 'Version' => $version); +*/ + $desc = __("There is no info for this plugin jet"); + $activated = array_key_exists($plugin, $actives); ?>
    • - - + +
    • - +
    - +

    " class="submit"/> @@ -164,9 +166,10 @@ if ($user->isAdmin()) {

    -urlGelato."/login.php"); -} +urlGelato."/login.php"); +} ?> \ No newline at end of file diff --git a/admin/scripts/jquery.js b/admin/scripts/jquery.js old mode 100644 new mode 100755 diff --git a/admin/scripts/jquery.tablesorter.min.js b/admin/scripts/jquery.tablesorter.min.js old mode 100644 new mode 100755 diff --git a/admin/scripts/jquery.validate.min.js b/admin/scripts/jquery.validate.min.js old mode 100644 new mode 100755 diff --git a/admin/scripts/lightbox.js b/admin/scripts/lightbox.js old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/jquery.markitup.pack.js b/admin/scripts/markitup/jquery.markitup.pack.js old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/bold.png b/admin/scripts/markitup/sets/html/images/bold.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/clean.png b/admin/scripts/markitup/sets/html/images/clean.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/code.png b/admin/scripts/markitup/sets/html/images/code.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/fonts.png b/admin/scripts/markitup/sets/html/images/fonts.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/h1.png b/admin/scripts/markitup/sets/html/images/h1.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/h2.png b/admin/scripts/markitup/sets/html/images/h2.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/h3.png b/admin/scripts/markitup/sets/html/images/h3.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/h4.png b/admin/scripts/markitup/sets/html/images/h4.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/h5.png b/admin/scripts/markitup/sets/html/images/h5.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/h6.png b/admin/scripts/markitup/sets/html/images/h6.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/image.png b/admin/scripts/markitup/sets/html/images/image.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/italic.png b/admin/scripts/markitup/sets/html/images/italic.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/link.png b/admin/scripts/markitup/sets/html/images/link.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/list-bullet.png b/admin/scripts/markitup/sets/html/images/list-bullet.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/list-item.png b/admin/scripts/markitup/sets/html/images/list-item.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/list-numeric.png b/admin/scripts/markitup/sets/html/images/list-numeric.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/more.png b/admin/scripts/markitup/sets/html/images/more.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/paragraph.png b/admin/scripts/markitup/sets/html/images/paragraph.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/picture.png b/admin/scripts/markitup/sets/html/images/picture.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/preview.png b/admin/scripts/markitup/sets/html/images/preview.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/quotes.png b/admin/scripts/markitup/sets/html/images/quotes.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/stroke.png b/admin/scripts/markitup/sets/html/images/stroke.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/underline.png b/admin/scripts/markitup/sets/html/images/underline.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/images/url.png b/admin/scripts/markitup/sets/html/images/url.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/set.js b/admin/scripts/markitup/sets/html/set.js old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/sets/html/style.css b/admin/scripts/markitup/sets/html/style.css old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/skins/simple/images/handle.png b/admin/scripts/markitup/skins/simple/images/handle.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/skins/simple/images/menu.png b/admin/scripts/markitup/skins/simple/images/menu.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/skins/simple/images/submenu.png b/admin/scripts/markitup/skins/simple/images/submenu.png old mode 100644 new mode 100755 diff --git a/admin/scripts/markitup/skins/simple/style.css b/admin/scripts/markitup/skins/simple/style.css old mode 100644 new mode 100755 diff --git a/admin/scripts/nicEdit.js b/admin/scripts/nicEdit.js old mode 100644 new mode 100755 diff --git a/admin/scripts/nicEditorIcons.gif b/admin/scripts/nicEditorIcons.gif old mode 100644 new mode 100755 diff --git a/admin/scripts/player.swf b/admin/scripts/player.swf old mode 100644 new mode 100755 diff --git a/admin/scripts/tools.js b/admin/scripts/tools.js old mode 100644 new mode 100755 diff --git a/admin/settings.php b/admin/settings.php old mode 100644 new mode 100755 index 59d69d3..f833af5 --- a/admin/settings.php +++ b/admin/settings.php @@ -1,35 +1,36 @@ - - - =========================== */ - -require_once('../entry.php'); -global $user, $conf, $tumble; - -if ($user->isAdmin()) { - - if(isset($_POST["btnsubmit"])) { - unset($_POST["btnsubmit"]); - $_POST["url_installation"] = (util::endsWith($_POST["url_installation"], "/")) ? substr($_POST["url_installation"], 0, strlen($_POST["url_installation"])-1) : $_POST["url_installation"] ; - $tumble->saveSettings($_POST); - } else { -?> + + + =========================== */ + +require_once('../entry.php'); +global $user, $conf, $tumble; + +if ($user->isAdmin()) { + if (isset($_POST["btnsubmit"])) { + unset($_POST["btnsubmit"]); + $_POST["url_installation"] = (util::endsWith($_POST["url_installation"], "/")) ? substr($_POST["url_installation"], 0, strlen($_POST["url_installation"])-1) : $_POST["url_installation"] ; + $tumble->saveSettings($_POST); + } else { + ?> gelato :: <?php echo __("settings")?> - - - + + + @@ -46,9 +47,9 @@ if ($user->isAdmin()) {
    @@ -56,64 +57,58 @@ if ($user->isAdmin()) {
    -".__("The configuration has been modified successfully.")."
    "; - } - } - if (isset($_GET["error"])) { - if ($_GET["error"]==1) { - echo "
    ".__("Error on the database server: ")."".$_GET["des"]."
    "; - } - } -?> +".__("The configuration has been modified successfully.")."
    "; + } + } + if (isset($_GET["error"])) { + if ($_GET["error"]==1) { + echo "
    ".__("Error on the database server: ")."".$_GET["des"]."
    "; + } + } ?>
    • -
    • +
    • -
    • +
    • -
    • +
    • -
    • +
    • -call('add_settings_panel'); -?> +call('add_settings_panel'); ?>

    @@ -132,9 +127,10 @@ if ($user->isAdmin()) {

    -urlGelato."/login.php"); -} +urlGelato."/login.php"); +} ?> \ No newline at end of file diff --git a/admin/themes/admin/api.xml b/admin/themes/admin/api.xml old mode 100644 new mode 100755 diff --git a/admin/themes/admin/index.htm b/admin/themes/admin/index.htm old mode 100644 new mode 100755 diff --git a/admin/themes/admin/install.htm b/admin/themes/admin/install.htm old mode 100644 new mode 100755 index 7c13c1f..3294cfa --- a/admin/themes/admin/install.htm +++ b/admin/themes/admin/install.htm @@ -29,8 +29,16 @@
    Database Settings
      -
    • - {error.9}
    • +
    • + {error.10}
    • +
    • +
    • +
    • + {error.9}
    • +
    • + {error.7}
    • +
    • + {error.8}

    @@ -59,9 +67,7 @@
  • diff --git a/admin/themes/admin/login.htm b/admin/themes/admin/login.htm old mode 100644 new mode 100755 diff --git a/admin/themes/admin/parts/template_add_conversation.htm b/admin/themes/admin/template_add_conversation.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_add_conversation.htm rename to admin/themes/admin/template_add_conversation.htm diff --git a/admin/themes/admin/parts/template_add_link.htm b/admin/themes/admin/template_add_link.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_add_link.htm rename to admin/themes/admin/template_add_link.htm diff --git a/admin/themes/admin/parts/template_add_mp3.htm b/admin/themes/admin/template_add_mp3.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_add_mp3.htm rename to admin/themes/admin/template_add_mp3.htm diff --git a/admin/themes/admin/parts/template_add_photo.htm b/admin/themes/admin/template_add_photo.htm old mode 100644 new mode 100755 similarity index 96% rename from admin/themes/admin/parts/template_add_photo.htm rename to admin/themes/admin/template_add_photo.htm index 64f05a8..54fe97e --- a/admin/themes/admin/parts/template_add_photo.htm +++ b/admin/themes/admin/template_add_photo.htm @@ -1,3 +1,5 @@ + +

    @@ -28,13 +30,15 @@ + + + + + \ No newline at end of file diff --git a/admin/themes/admin/parts/template_add_photo_bm.htm b/admin/themes/admin/template_add_photo_bm.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_add_photo_bm.htm rename to admin/themes/admin/template_add_photo_bm.htm diff --git a/admin/themes/admin/parts/template_add_post.htm b/admin/themes/admin/template_add_post.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_add_post.htm rename to admin/themes/admin/template_add_post.htm diff --git a/admin/themes/admin/parts/template_add_quote.htm b/admin/themes/admin/template_add_quote.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_add_quote.htm rename to admin/themes/admin/template_add_quote.htm diff --git a/admin/themes/admin/parts/template_add_video.htm b/admin/themes/admin/template_add_video.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_add_video.htm rename to admin/themes/admin/template_add_video.htm diff --git a/admin/themes/admin/parts/template_bm.htm b/admin/themes/admin/template_bm.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_bm.htm rename to admin/themes/admin/template_bm.htm diff --git a/admin/themes/admin/parts/template_comment.htm b/admin/themes/admin/template_comment.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_comment.htm rename to admin/themes/admin/template_comment.htm diff --git a/admin/themes/admin/parts/template_comment_post.htm b/admin/themes/admin/template_comment_post.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_comment_post.htm rename to admin/themes/admin/template_comment_post.htm diff --git a/admin/themes/admin/parts/template_conversation.htm b/admin/themes/admin/template_conversation.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_conversation.htm rename to admin/themes/admin/template_conversation.htm diff --git a/admin/themes/admin/parts/template_mp3.htm b/admin/themes/admin/template_mp3.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_mp3.htm rename to admin/themes/admin/template_mp3.htm diff --git a/admin/themes/admin/parts/template_photo.htm b/admin/themes/admin/template_photo.htm old mode 100644 new mode 100755 similarity index 96% rename from admin/themes/admin/parts/template_photo.htm rename to admin/themes/admin/template_photo.htm index 640d63a..81f6386 --- a/admin/themes/admin/parts/template_photo.htm +++ b/admin/themes/admin/template_photo.htm @@ -6,5 +6,4 @@ {Caption}

    {PhotoAlt}

    -
  • - +
    \ No newline at end of file diff --git a/admin/themes/admin/parts/template_quote.htm b/admin/themes/admin/template_quote.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_quote.htm rename to admin/themes/admin/template_quote.htm diff --git a/admin/themes/admin/parts/template_regular_post.htm b/admin/themes/admin/template_regular_post.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_regular_post.htm rename to admin/themes/admin/template_regular_post.htm diff --git a/admin/themes/admin/parts/template_url.htm b/admin/themes/admin/template_url.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_url.htm rename to admin/themes/admin/template_url.htm diff --git a/admin/themes/admin/parts/template_video.htm b/admin/themes/admin/template_video.htm old mode 100644 new mode 100755 similarity index 100% rename from admin/themes/admin/parts/template_video.htm rename to admin/themes/admin/template_video.htm diff --git a/admin/user.php b/admin/user.php old mode 100644 new mode 100755 index d583b14..5e438e8 --- a/admin/user.php +++ b/admin/user.php @@ -1,69 +1,69 @@ - - - =========================== */ -?> -isAdmin()) { - - if (isset($_GET["delete"])) { - $user->deleteUser($_GET['delete']); - header("Location: admin.php?delete=true"); - die(); - } - - if(isset($_POST["btnAdd"])) { - unset($_POST["btnAdd"]); - if (isset($_POST["repass"])) { - unset($_POST["repass"]); - } - if (isset($_POST["btnVerifyUser"])) { - unset($_POST["btnVerifyUser"]); - } - if (isset($_POST["id_user"])) { - $user->modifyUser($_POST, $_POST["id_user"]); - } else { - $user->addUser($_POST); - } - } else { - if ($isEdition) { - $register = $user->getUserByID($userId); - } + + + =========================== */ ?> +isAdmin()) { + if (isset($_GET["delete"])) { + $user->deleteUser($_GET['delete']); + header("Location: admin.php?delete=true"); + die(); + } + + if (isset($_POST["btnAdd"])) { + unset($_POST["btnAdd"]); + if (isset($_POST["repass"])) { + unset($_POST["repass"]); + } + if (isset($_POST["btnVerifyUser"])) { + unset($_POST["btnVerifyUser"]); + } + if (isset($_POST["id_user"])) { + $user->modifyUser($_POST, $_POST["id_user"]); + } else { + $user->addUser($_POST); + } + } else { + if ($isEdition) { + $register = $user->getUserByID($userId); + } ?> gelato :: <?php echo __("add user")?> - - - - + + + + - +
    @@ -81,24 +81,24 @@ if ($user->isAdmin()) {
      - - - + + +
    • - " /> - + " /> +
      - +
    • @@ -113,19 +113,19 @@ if ($user->isAdmin()) {
    • - " /> + " />
    • - " /> + " />
    • - " /> + " />

    • - +
    • user" /> @@ -145,9 +145,10 @@ if ($user->isAdmin()) {
    -urlGelato."/login.php"); -} +urlGelato."/login.php"); +} ?> \ No newline at end of file diff --git a/api.php b/api.php old mode 100644 new mode 100755 index ba97fc1..3753ac2 --- a/api.php +++ b/api.php @@ -1,109 +1,125 @@ - - - =========================== */ + + + =========================== */ ?> - 50) { $total = 50; } - $user = new user(); - $userData = $user->getUserByID(1); - $username = ($userData["name"] == "") ? "gelato" : $userData["name"]; - - $theme->set("username",$username); - $theme->set("conf",array( - "offsetCity"=>$conf->offsetCity, - "title"=>$conf->title, - "description"=>$conf->description - )); - - $feeds = array(); - $actual_feeds = $f->getFeedList(); - foreach($actual_feeds as $feed){ - $error_text = ($feed["error"]>0) ? "false" : "true"; - $feed['url'] = htmlspecialchars($feed['url']); - $feed['type'] = util::type2Text($feed['type']); - $feed['getNextUpdate'] = $f->getNextUpdate($feed['id_feed']); - $feed['title'] = htmlspecialchars($feed['title']); - $feed['error_text'] = $error_text; - $feeds[] = $feed; - } - - $theme->set("feeds",$feeds); - - if ($hasType) { - $postType = type2Number($_GET["type"]); - } - $rs = $tumble->getPosts($total, $start); - - $totalRegistros = $db->contarRegistros(); - $theme->set("totalRegistros",$totalRegistros); - - if ($totalRegistros>0) { - $theme->set("start",$start); - $theme->set("total",$total); - - while($post = mysql_fetch_assoc($rs)){ - $post['desc'] = util::trimString($post["description"]); - $strEnd = ($conf->urlFriendly) ? "/" : ""; - $post['url'] = $conf->urlGelato.($conf->urlFriendly ? "/post/" : "/index.php?post=").$post["id_post"].$strEnd; - $post['formatedDate'] = gmdate("D, d M Y H:i:s", strtotime($post["date"]) + util::transform_offset($conf->offsetTime)); - - $post["type"] = util::type2Text($post["type"]); - - switch ($post["type"]) { - case "post": - $post['tit'] = (empty($post["title"])) ? $post['desc'] : strip_tags($post["title"]); - break; - case "photo": - $post['photoPath'] = str_replace("../", $conf->urlGelato."/", $post["url"]); - $post['tit'] = stripslashes(((empty($post["description"])) ? "Photo" : $post['desc'])); - break; - case "quote": - $post['title'] = strip_tags($post["title"]); - break; - case "url": - $post['tit'] = (empty($post["title"])) ? $post["url"] : strip_tags($post["title"]); - break; - case "conversation": - $lines = explode("\n", $post['desc']); - $line = $lines[0]; - $post['tit'] = (empty($post["title"])) ? util::trimString($line) : $post["title"]; - $post['desc'] = $tumble->formatConversation($post['desc']); - $post['descAPIFormat'] = $tumble->formatConversation($post['desc']); - break; - case "video": - $post['tit'] = (empty($post["description"])) ? "Video" : $post['desc']; - $post['desc'] = htmlspecialchars($tumble->getVideoPlayer($post["url"])); - break; - case "mp3": - $post['tit'] = (empty($post["description"])) ? "Audio" : $post['desc']; - $post['desc'] = htmlspecialchars($tumble->getMp3Player($post["url"])); - break; - } - $posts[] = $post; - } - $theme->set("posts",$posts); - } - $theme->display(Absolute_Path.'admin/themes/admin/api.xml'); - } + 50) { + $total = 50; + } + $user = new user(); + $userData = $user->getUserByID(1); + $username = ($userData["name"] == "") ? "gelato" : $userData["name"]; + + $theme->set("username", $username); + $theme->set("conf", array( + "offsetCity"=>$conf->offsetCity, + "title"=>$conf->title, + "description"=>$conf->description + )); + + $feeds = array(); + $actual_feeds = $f->getFeedList(); + foreach ($actual_feeds as $feed) { + $error_text = ($feed["error"]>0) ? "false" : "true"; + $feed['url'] = htmlspecialchars($feed['url']); + $feed['type'] = util::type2Text($feed['type']); + $feed['getNextUpdate'] = $f->getNextUpdate($feed['id_feed']); + $feed['title'] = htmlspecialchars($feed['title']); + $feed['error_text'] = $error_text; + $feeds[] = $feed; + } + + $theme->set("feeds", $feeds); + + if ($hasType) { + $postType = type2Number($_GET["type"]); + } + $rs = $tumble->getPosts($total, $start); + + $totalRegistros = $db->contarRegistros(); + $theme->set("totalRegistros", $totalRegistros); + + if ($totalRegistros>0) { + $theme->set("start", $start); + $theme->set("total", $total); + + while ($post = mysql_fetch_assoc($rs)) { + $post['desc'] = util::trimString($post["description"]); + $strEnd = ($conf->urlFriendly) ? "/" : ""; + $post['url'] = $conf->urlGelato.($conf->urlFriendly ? "/post/" : "/index.php?post=").$post["id_post"].$strEnd; + $post['formatedDate'] = gmdate("D, d M Y H:i:s", strtotime($post["date"]) + util::transform_offset($conf->offsetTime)); + + $post["type"] = util::type2Text($post["type"]); + + switch ($post["type"]) { + case "post": + $post['tit'] = (empty($post["title"])) ? $post['desc'] : strip_tags($post["title"]); + break; + case "photo": + $post['photoPath'] = str_replace("../", $conf->urlGelato."/", $post["url"]); + $post['tit'] = stripslashes(((empty($post["description"])) ? "Photo" : $post['desc'])); + break; + case "quote": + $post['title'] = strip_tags($post["title"]); + break; + case "url": + $post['tit'] = (empty($post["title"])) ? $post["url"] : strip_tags($post["title"]); + break; + case "conversation": + $lines = explode("\n", $post['desc']); + $line = $lines[0]; + $post['tit'] = (empty($post["title"])) ? util::trimString($line) : $post["title"]; + $post['desc'] = $tumble->formatConversation($post['desc']); + $post['descAPIFormat'] = $tumble->formatConversation($post['desc']); + break; + case "video": + $post['tit'] = (empty($post["description"])) ? "Video" : $post['desc']; + $post['desc'] = htmlspecialchars($tumble->getVideoPlayer($post["url"])); + break; + case "mp3": + $post['tit'] = (empty($post["description"])) ? "Audio" : $post['desc']; + $post['desc'] = htmlspecialchars($tumble->getMp3Player($post["url"])); + break; + } + $posts[] = $post; + } + $theme->set("posts", $posts); + } + $theme->display(Absolute_Path.'admin/themes/admin/api.xml'); + } ?> diff --git a/archive.php b/archive.php old mode 100644 new mode 100755 index cd6ce60..200c735 --- a/archive.php +++ b/archive.php @@ -1,120 +1,126 @@ - - - =========================== */ + + + =========================== */ ?> -getPosts($tumble->getPostsNumber()); -if ($db->contarRegistros()>0) { - while($register = mysql_fetch_assoc($rs)) { - $date = strtotime($register['date']); - $year = date('Y',$date); - $month = date('M',$date); - $day = date('d',$date); - $dates[$year][$month][$day] = true; - $output = handleNode($register); - - $theType = util::type2Text($register["type"]); - - switch($theType) { - case 'quote': - $quote[] = $output; - continue; - case 'conversation': - $conversation[] = $output; - continue; - case 'url': - $link[] = $output; - continue; - case 'photo': - $photo[] = $output; - continue; - case 'post': - $regular[] = $output; - continue; - case 'video': - $video[] = $output; - continue; - } - } -} - -function handleNode($node) { - global $user, $tumble, $conf; - $dateTmp = null; - $formatedDate = gmdate("M d", strtotime($node["date"]) + util::transform_offset($conf->offsetTime)); - - $output = array(); - $output['url'] = $tumble->getPermalink($node["id_post"]); - $output['date'] = $formatedDate; - - $date = strtotime($node['date']); - $year = date('Y',$date); - $month = date('M',$date); - $day = date('d',$date); - - $output['full_date'] = $day.' '.$month.' '.$year; - $theType = util::type2Text($node["type"]); - - switch($theType) { - case 'quote': - $output['quote'] = $node["description"]; - $output['source'] = $node["title"]; - break; - case 'conversation': - $output['lines'] = $tumble->formatConversation($node["description"]); - break; - case 'url': - $node["title"] = (empty($node["title"]))? $node["url"] : $node["title"]; - $output['text'] = $node["title"]; - $output['link'] = $node["url"]; - break; - case 'photo': - $fileName = "uploads/".util::getFileName($node["url"]); - $x = @getimagesize($fileName); - if ($x[0] > 500) { - $photoPath = $conf->urlGelato."/classes/imgsize.php?w=500&img=".$node["url"]; - } else { - $photoPath = str_replace("../", $conf->urlGelato."/", $node["url"]); - } - $output['caption'] = $node["description"]; - $output['photo'] = $photoPath; - break; - case 'post': - $output['title'] = $node["title"]; - $output['body'] = $node["description"]; - break; - case 'video': - $output['caption'] = $node["description"]; - $temp = $tumble->getVideoPlayer($node["url"]); - $patterns[0] = "/width='[0-9]+'/"; - $patterns[1] = "/height='[0-9]+'/"; - $replace[0] = "width='100'"; - $replace[1] = "height='75'"; - $embed = preg_replace($patterns, $replace, $temp); - $output['embed'] = $embed; - } - return $output; - } +getPosts($tumble->getPostsNumber()); +if ($db->contarRegistros()>0) { + while ($register = mysql_fetch_assoc($rs)) { + $date = strtotime($register['date']); + $year = date('Y', $date); + $month = date('M', $date); + $day = date('d', $date); + $dates[$year][$month][$day] = true; + $output = handleNode($register); + + $theType = $util_class->type2Text($register["type"]); + + switch ($theType) { + case 'quote': + $quote[] = $output; + continue; + case 'conversation': + $conversation[] = $output; + continue; + case 'url': + $link[] = $output; + continue; + case 'photo': + $photo[] = $output; + continue; + case 'post': + $regular[] = $output; + continue; + case 'video': + $video[] = $output; + continue; + } + } +} + +function handleNode($node) +{ + $util_class = new util(); + global $user, $tumble, $conf; + $dateTmp = null; + $formatedDate = gmdate("M d", strtotime($node["date"]) + $util_class->transform_offset($conf->offsetTime)); + + $output = array(); + $output['url'] = $tumble->getPermalink($node["id_post"]); + $output['date'] = $formatedDate; + + $date = strtotime($node['date']); + $year = date('Y', $date); + $month = date('M', $date); + $day = date('d', $date); + + $output['full_date'] = $day.' '.$month.' '.$year; + $theType = $util_class->type2Text($node["type"]); + + switch ($theType) { + case 'quote': + $output['quote'] = $node["description"]; + $output['source'] = $node["title"]; + break; + case 'conversation': + $output['lines'] = $tumble->formatConversation($node["description"]); + break; + case 'url': + $node["title"] = (empty($node["title"]))? $node["url"] : $node["title"]; + $output['text'] = $node["title"]; + $output['link'] = $node["url"]; + break; + case 'photo': + $fileName = "uploads/".$util_class->getFileName($node["url"]); + $x = @getimagesize($fileName); + if ($x[0] > 500) { + $photoPath = $conf->urlGelato."/classes/imgsize.php?w=500&img=".$node["url"]; + } else { + $photoPath = str_replace("../", $conf->urlGelato."/", $node["url"]); + } + $output['caption'] = $node["description"]; + $output['photo'] = $photoPath; + break; + case 'post': + $output['title'] = $node["title"]; + $output['body'] = $node["description"]; + break; + case 'video': + $output['caption'] = $node["description"]; + $temp = $tumble->getVideoPlayer($node["url"]); + $patterns[0] = "/width='[0-9]+'/"; + $patterns[1] = "/height='[0-9]+'/"; + $replace[0] = "width='100'"; + $replace[1] = "height='75'"; + $embed = preg_replace($patterns, $replace, $temp); + $output['embed'] = $embed; + } + return $output; +} ?> - " /> + version().")"; ?>" /> "/> <?php echo $conf->title." » ".__(" archive"); ?> @@ -216,23 +222,22 @@ function handleNode($node) {

    TIMELINE

      - $monthday) { - echo '
    • '.$year.'
    • '; - if(is_array($monthday) && count($monthday) > 0){ - - foreach ($monthday as $month => $days) { - echo '
    • '.$month.' '.$year.'
    • '; - if(is_array($days) && count($days) > 0){ - foreach ($days as $day => $val) { - echo '
    • '.$day.' '.$month.' '.$year.'
    • '; - } - } - } - } - } - ?> + $monthday) { + echo '
    • '.$year.'
    • '; + if (is_array($monthday) && count($monthday) > 0) { + foreach ($monthday as $month => $days) { + echo '
    • '.$month.' '.$year.'
    • '; + if (is_array($days) && count($days) > 0) { + foreach ($days as $day => $val) { + echo '
    • '.$day.' '.$month.' '.$year.'
    • '; + } + } + } + } + } + ?>
    @@ -245,7 +250,8 @@ function handleNode($node) {
      - +
    • ' title="" onclick="location.href='';">
        @@ -253,13 +259,15 @@ function handleNode($node) {
    • - +

     

    diff --git a/classes/JSON.php b/classes/JSON.php old mode 100644 new mode 100755 index 0cddbdd..ed196b3 --- a/classes/JSON.php +++ b/classes/JSON.php @@ -59,22 +59,22 @@ /** * Marker constant for Services_JSON::decode(), used to flag stack state */ -define('SERVICES_JSON_SLICE', 1); +define('SERVICES_JSON_SLICE', 1); /** * Marker constant for Services_JSON::decode(), used to flag stack state */ -define('SERVICES_JSON_IN_STR', 2); +define('SERVICES_JSON_IN_STR', 2); /** * Marker constant for Services_JSON::decode(), used to flag stack state */ -define('SERVICES_JSON_IN_ARR', 3); +define('SERVICES_JSON_IN_ARR', 3); /** * Marker constant for Services_JSON::decode(), used to flag stack state */ -define('SERVICES_JSON_IN_OBJ', 4); +define('SERVICES_JSON_IN_OBJ', 4); /** * Marker constant for Services_JSON::decode(), used to flag stack state @@ -114,7 +114,7 @@ define('SERVICES_JSON_SUPPRESS_ERRORS', 32); */ class Services_JSON { - /** + /** * constructs a new JSON instance * * @param int $use object behavior flags; combine with boolean-OR @@ -130,7 +130,7 @@ class Services_JSON * bubble up with an error, so all return values * from encode() should be checked with isError() */ - function Services_JSON($use = 0) + public function Services_JSON($use = 0) { $this->use = $use; } @@ -146,16 +146,16 @@ class Services_JSON * @return string UTF-8 character * @access private */ - function utf162utf8($utf16) + public function utf162utf8($utf16) { // oh please oh please oh please oh please oh please - if(function_exists('mb_convert_encoding')) { + if (function_exists('mb_convert_encoding')) { return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); } $bytes = (ord($utf16{0}) << 8) | ord($utf16{1}); - switch(true) { + switch (true) { case ((0x7F & $bytes) == $bytes): // this case should never be reached, because we are in ASCII range // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 @@ -190,14 +190,14 @@ class Services_JSON * @return string UTF-16 character * @access private */ - function utf82utf16($utf8) + public function utf82utf16($utf8) { // oh please oh please oh please oh please oh please - if(function_exists('mb_convert_encoding')) { + if (function_exists('mb_convert_encoding')) { return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); } - switch(strlen($utf8)) { + switch (strlen($utf8)) { case 1: // this case should never be reached, because we are in ASCII range // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 @@ -234,7 +234,7 @@ class Services_JSON * @return mixed JSON string representation of input var or an error if a problem occurs * @access public */ - function encode($var) + public function encode($var) { switch (gettype($var)) { case 'boolean': @@ -260,7 +260,6 @@ class Services_JSON * escaping with a slash or encoding to UTF-8 where necessary */ for ($c = 0; $c < $strlen_var; ++$c) { - $ord_var_c = ord($var{$c}); switch (true) { @@ -380,8 +379,8 @@ class Services_JSON array_keys($var), array_values($var)); - foreach($properties as $property) { - if(Services_JSON::isError($property)) { + foreach ($properties as $property) { + if (Services_JSON::isError($property)) { return $property; } } @@ -392,8 +391,8 @@ class Services_JSON // treat it like a regular array $elements = array_map(array($this, 'encode'), $var); - foreach($elements as $element) { - if(Services_JSON::isError($element)) { + foreach ($elements as $element) { + if (Services_JSON::isError($element)) { return $element; } } @@ -407,8 +406,8 @@ class Services_JSON array_keys($vars), array_values($vars)); - foreach($properties as $property) { - if(Services_JSON::isError($property)) { + foreach ($properties as $property) { + if (Services_JSON::isError($property)) { return $property; } } @@ -431,11 +430,11 @@ class Services_JSON * @return string JSON-formatted name-value pair, like '"name":value' * @access private */ - function name_value($name, $value) + public function name_value($name, $value) { $encoded_value = $this->encode($value); - if(Services_JSON::isError($encoded_value)) { + if (Services_JSON::isError($encoded_value)) { return $encoded_value; } @@ -450,7 +449,7 @@ class Services_JSON * @return string string value stripped of comments and whitespace * @access private */ - function reduce_string($str) + public function reduce_string($str) { $str = preg_replace(array( @@ -481,7 +480,7 @@ class Services_JSON * in ASCII or UTF-8 format! * @access public */ - function decode($str) + public function decode($str) { $str = $this->reduce_string($str); @@ -509,7 +508,6 @@ class Services_JSON return ((float)$str == (integer)$str) ? (integer)$str : (float)$str; - } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) { // STRINGS RETURNED IN UTF-8 FORMAT $delim = substr($str, 0, 1); @@ -518,7 +516,6 @@ class Services_JSON $strlen_chrs = strlen($chrs); for ($c = 0; $c < $strlen_chrs; ++$c) { - $substr_chrs_c_2 = substr($chrs, $c, 2); $ord_chrs_c = ord($chrs{$c}); @@ -602,11 +599,9 @@ class Services_JSON break; } - } return $utf8; - } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) { // array, or object notation @@ -633,10 +628,8 @@ class Services_JSON if ($chrs == '') { if (reset($stk) == SERVICES_JSON_IN_ARR) { return $arr; - } else { return $obj; - } } @@ -645,7 +638,6 @@ class Services_JSON $strlen_chrs = strlen($chrs); for ($c = 0; $c <= $strlen_chrs; ++$c) { - $top = end($stk); $substr_chrs_c_2 = substr($chrs, $c, 2); @@ -659,7 +651,6 @@ class Services_JSON if (reset($stk) == SERVICES_JSON_IN_ARR) { // we are in an array, so just push an element onto the stack array_push($arr, $this->decode($slice)); - } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { // we are in an object, so figure // out the property name and set an @@ -688,14 +679,11 @@ class Services_JSON $obj->$key = $val; } } - } - } elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) { // found a quote, and we are not inside a string array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c})); //print("Found start of string at {$c}\n"); - } elseif (($chrs{$c} == $top['delim']) && ($top['what'] == SERVICES_JSON_IN_STR) && ((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) { @@ -704,58 +692,48 @@ class Services_JSON // odd number of backslashes at the end of the string so far array_pop($stk); //print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n"); - } elseif (($chrs{$c} == '[') && in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { // found a left-bracket, and we are in an array, object, or slice array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false)); //print("Found start of array at {$c}\n"); - } elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) { // found a right-bracket, and we're in an array array_pop($stk); //print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); - } elseif (($chrs{$c} == '{') && in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { // found a left-brace, and we are in an array, object, or slice array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false)); //print("Found start of object at {$c}\n"); - } elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) { // found a right-brace, and we're in an object array_pop($stk); //print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); - } elseif (($substr_chrs_c_2 == '/*') && in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { // found a comment start, and we are in an array, object, or slice array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false)); $c++; //print("Found start of comment at {$c}\n"); - } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) { // found a comment end, and we're in one now array_pop($stk); $c++; - for ($i = $top['where']; $i <= $c; ++$i) + for ($i = $top['where']; $i <= $c; ++$i) { $chrs = substr_replace($chrs, ' ', $i, 1); + } //print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); - } - } if (reset($stk) == SERVICES_JSON_IN_ARR) { return $arr; - } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { return $obj; - } - } } } @@ -763,7 +741,7 @@ class Services_JSON /** * @todo Ultimately, this should just call PEAR::isError() */ - function isError($data, $code = null) + public function isError($data, $code = null) { if (class_exists('pear')) { return PEAR::isError($data, $code); @@ -777,16 +755,14 @@ class Services_JSON } if (class_exists('PEAR_Error')) { - class Services_JSON_Error extends PEAR_Error { - function Services_JSON_Error($message = 'unknown error', $code = null, + public function Services_JSON_Error($message = 'unknown error', $code = null, $mode = null, $options = null, $userinfo = null) { parent::PEAR_Error($message, $code, $mode, $options, $userinfo); } } - } else { /** @@ -794,13 +770,9 @@ if (class_exists('PEAR_Error')) { */ class Services_JSON_Error { - function Services_JSON_Error($message = 'unknown error', $code = null, + public function Services_JSON_Error($message = 'unknown error', $code = null, $mode = null, $options = null, $userinfo = null) { - } } - } - -?> diff --git a/classes/comments.class.php b/classes/comments.class.php old mode 100644 new mode 100755 index 2388f47..dddad90 --- a/classes/comments.class.php +++ b/classes/comments.class.php @@ -1,103 +1,132 @@ - - - =========================== */ - -class comments { - var $db; - var $conf; - - function comments() { - global $db; - global $conf; - - $this->db = $db; - $this->conf = $conf; - } - - function addComment($fieldsArray) { - if ($this->db->insertarDeFormulario($this->conf->tablePrefix."comments", $fieldsArray)) { - return true; - } else { - return false; - } - } - - function generateCookie($fieldsArray) { - $path = dirname(dirname($_SERVER['SCRIPT_NAME']."../")); - setcookie("cookie_gel_user", $fieldsArray["username"], time() + 30000000, $path); - setcookie("cookie_gel_email", $fieldsArray["email"], time() + 30000000, $path); - setcookie("cookie_gel_web", $fieldsArray["web"], time() + 30000000, $path); - } - - function isSpam($fieldsArray) { - if (preg_match( "/^\d+$/", $fieldsArray["username"])) { return true; } - elseif (trim($fieldsArray["content"]) == "") { return true; } - elseif (preg_match( "/^\d+$/", $fieldsArray["content"])) { return true; } - elseif (strtolower($fieldsArray["content"]) == strtolower($fieldsArray["username"])) { return true; } - elseif (preg_match("#^[^.]+\.\.\.#", $fieldsArray["content"])) { return true; } - elseif (3 <= preg_match_all("/a href=/", strtolower($fieldsArray["content"]), $matches)) { return true; } - elseif ($this->isBadWord($fieldsArray["content"])) { return true; } - else { return false; } - } - - function isBadWord($str="") { - $bads = array ("puto", "viagra", "ringtones", "casino", "buy", "cheap", "order", "poker", "discount", "fuck", "cool", "site", "online", "very", "cholesterol", "milf", "sex", "sexo", "arredamento", "reddit", "sesso", "lesbico", "vzge", "angelcities", "porno", "holdem", "blackjack", "black-jack", "mortgage", "pharmacy", "loan", "refinance", "credit", "alberghi", "scarica", "hotel", "cellulare", "giochi", "gratis", "gif", "animata", "fantasy", "albergo", "blowjob", "delicio", "cosco", "dealerships"); - for($i=0;$idb->ejecutarConsulta("select * from ".$this->conf->tablePrefix."comments WHERE id_post=".$idPost." AND spam=0 order by comment_date ASC"); - } else { - if (isset($limit) && isset($from)) { - $limit = " LIMIT $from, $limit"; - } else { ""; } - if (isset($spam)) { $sp = "1"; } else { $sp = "0"; } - $this->db->ejecutarConsulta("select * from ".$this->conf->tablePrefix."comments WHERE spam=".$sp." order by comment_date ASC".$limit); - } - return $this->db->mid_consulta; - } - - function getComment($id="") { - $this->db->ejecutarConsulta("select * from ".$this->conf->tablePrefix."comments WHERE id_comment=".$id); - return mysql_fetch_array($this->db->mid_consulta); - } - - function countComments($idPost=null) { - if (isset($idPost)) { - $this->db->ejecutarConsulta("select * from ".$this->conf->tablePrefix."comments WHERE id_post=".$idPost." AND spam=0"); - } else { - $this->db->ejecutarConsulta("select * from ".$this->conf->tablePrefix."comments WHERE spam=0"); - } - return $this->db->contarRegistros(); - } - - function deleteComment($idComment) { - if ($this->db->ejecutarConsulta("DELETE FROM ".$this->conf->tablePrefix."comments WHERE id_comment=".$idComment)) { - return true; - } else { - return false; - } - } - - function modifyComment($fieldsArray, $id_comment) { - if ($this->db->modificarDeFormulario($this->conf->tablePrefix."comments", $fieldsArray, "id_comment=$id_comment")) { - return true; - } else { - return false; - } - } -} -?> \ No newline at end of file + + + =========================== */ + +class comments +{ + public $db; + public $conf; + + public function __construct() + { + global $db; + global $conf; + + $this->db = $db; + $this->conf = $conf; + } + + public function addComment($fieldsArray) + { + if ($this->db->insertarDeFormulario($this->conf->tablePrefix."comments", $fieldsArray)) { + return true; + } else { + return false; + } + } + + public function generateCookie($fieldsArray) + { + $path = dirname(dirname($_SERVER['SCRIPT_NAME']."../")); + setcookie("cookie_gel_user", $fieldsArray["username"], time() + 30000000, $path); + setcookie("cookie_gel_email", $fieldsArray["email"], time() + 30000000, $path); + setcookie("cookie_gel_web", $fieldsArray["web"], time() + 30000000, $path); + } + + public function isSpam($fieldsArray) + { + if (preg_match("/^\d+$/", $fieldsArray["username"])) { + return true; + } elseif (trim($fieldsArray["content"]) == "") { + return true; + } elseif (preg_match("/^\d+$/", $fieldsArray["content"])) { + return true; + } elseif (strtolower($fieldsArray["content"]) == strtolower($fieldsArray["username"])) { + return true; + } elseif (preg_match("#^[^.]+\.\.\.#", $fieldsArray["content"])) { + return true; + } elseif (3 <= preg_match_all("/a href=/", strtolower($fieldsArray["content"]), $matches)) { + return true; + } elseif ($this->isBadWord($fieldsArray["content"])) { + return true; + } else { + return false; + } + } + + public function isBadWord($str="") + { + $bads = array("puto", "viagra", "ringtones", "casino", "buy", "cheap", "order", "poker", "discount", "fuck", "cool", "site", "online", "very", "cholesterol", "milf", "sex", "sexo", "arredamento", "reddit", "sesso", "lesbico", "vzge", "angelcities", "porno", "holdem", "blackjack", "black-jack", "mortgage", "pharmacy", "loan", "refinance", "credit", "alberghi", "scarica", "hotel", "cellulare", "giochi", "gratis", "gif", "animata", "fantasy", "albergo", "blowjob", "delicio", "cosco", "dealerships"); + for ($i=0;$idb->ejecutarConsulta("select * from ".$this->conf->tablePrefix."comments WHERE id_post=".$idPost." AND spam=0 order by comment_date ASC"); + } else { + if (isset($limit) && isset($from)) { + $limit = " LIMIT $from, $limit"; + } else { + ""; + } + if (isset($spam)) { + $sp = "1"; + } else { + $sp = "0"; + } + $this->db->ejecutarConsulta("select * from ".$this->conf->tablePrefix."comments WHERE spam=".$sp." order by comment_date ASC".$limit); + } + return $this->db->mid_consulta; + } + + public function getComment($id="") + { + $this->db->ejecutarConsulta("select * from ".$this->conf->tablePrefix."comments WHERE id_comment=".$id); + return mysql_fetch_array($this->db->mid_consulta); + } + + public function countComments($idPost=null) + { + if (isset($idPost)) { + $this->db->ejecutarConsulta("select * from ".$this->conf->tablePrefix."comments WHERE id_post=".$idPost." AND spam=0"); + } else { + $this->db->ejecutarConsulta("select * from ".$this->conf->tablePrefix."comments WHERE spam=0"); + } + return $this->db->contarRegistros(); + } + + public function deleteComment($idComment) + { + if ($this->db->ejecutarConsulta("DELETE FROM ".$this->conf->tablePrefix."comments WHERE id_comment=".$idComment)) { + return true; + } else { + return false; + } + } + + public function modifyComment($fieldsArray, $id_comment) + { + if ($this->db->modificarDeFormulario($this->conf->tablePrefix."comments", $fieldsArray, "id_comment=$id_comment")) { + return true; + } else { + return false; + } + } +} diff --git a/classes/configuration.class.php b/classes/configuration.class.php old mode 100644 new mode 100755 index 81e45bc..06eb8e8 --- a/classes/configuration.class.php +++ b/classes/configuration.class.php @@ -1,98 +1,102 @@ - - - =========================== */ + + + =========================== */ ?> -ejecutarConsulta("SELECT * FROM ".Table_prefix."config")) { - $row=$db->obtenerRegistro(); - $this->tablePrefix = Table_prefix; - $this->urlGelato = $row['url_installation']; - $this->postLimit = $row['posts_limit']; - $this->title = $row['title']; - $this->description = $row['description']; - $this->lang = $row['lang']; - $this->template = $row['template']; - - initLang($this->lang); - - $this->urlFriendly = $this->get_option("url_friendly"); - $this->richText = $this->get_option("rich_text"); - $this->offsetCity = $this->get_option("offset_city"); - $this->offsetTime = $this->get_option("offset_time"); - $this->allowComments = $this->get_option("allow_comments"); - $this->shorten_links = $this->get_option("shorten_links"); - $this->rssImportFrec = $this->get_option("rss_import_frec"); - $this->check_version = $this->get_option("check_version"); - $this->active_plugins = $this->get_option("active_plugins"); - - //TODO: Soporte de los plugins desde BD activar/desactivar - //FIXME cambiar esto por el soporte por carpetas, mas organizado. - // asi se pueden estandarizar documentacion y thumbnails, - /*if ($handle = opendir(Absolute_Path."plugins")) { - while (false !== ($file = readdir($handle))) { - if (substr($file, strlen($file)-4, 4) == ".php") { - require_once(Absolute_Path."plugins/{$file}"); - $this->plugins[] = substr($file, 0, strlen($file)-4); - } - } - closedir($handle); - }*/ - } else { - if($isFeed) { - header("HTTP/1.0 503 Service Unavailable"); - header("Retry-After: 60"); - exit(); - } else { - $message = " +ejecutarConsulta("SELECT * FROM ".Table_prefix."config")) { + $row=$db->obtenerRegistro(); + $this->tablePrefix = Table_prefix; + $this->urlGelato = $row['url_installation']; + $this->postLimit = $row['posts_limit']; + $this->title = $row['title']; + $this->description = $row['description']; + $this->lang = $row['lang']; + $this->template = $row['template']; + + initLang($this->lang); + + $this->urlFriendly = $this->get_option("url_friendly"); + $this->richText = $this->get_option("rich_text"); + $this->offsetCity = $this->get_option("offset_city"); + $this->offsetTime = $this->get_option("offset_time"); + $this->allowComments = $this->get_option("allow_comments"); + $this->shorten_links = $this->get_option("shorten_links"); + $this->rssImportFrec = $this->get_option("rss_import_frec"); + $this->check_version = $this->get_option("check_version"); + $this->active_plugins = $this->get_option("active_plugins"); + + //TODO: Soporte de los plugins desde BD activar/desactivar + //FIXME cambiar esto por el soporte por carpetas, mas organizado. + // asi se pueden estandarizar documentacion y thumbnails, + /*if ($handle = opendir(Absolute_Path."plugins")) { + while (false !== ($file = readdir($handle))) { + if (substr($file, strlen($file)-4, 4) == ".php") { + require_once(Absolute_Path."plugins/{$file}"); + $this->plugins[] = substr($file, 0, strlen($file)-4); + } + } + closedir($handle); + }*/ + } else { + if ($isFeed) { + header("HTTP/1.0 503 Service Unavailable"); + header("Retry-After: 60"); + exit(); + } else { + $message = "

    Error establishing a database connection

    -

    The configuration info is not available.

    "; - die($message); - } - } - } - - function get_option($name){ - global $db; - $sql = "SELECT * FROM ".Table_prefix."options WHERE name='".$name."' LIMIT 1"; - $db->ejecutarConsulta($sql); - if ($db->contarRegistros()>0) { - $row=$db->obtenerRegistro(); - return $row['val']; - } else { - return "0"; - } - } -} -?> \ No newline at end of file +

    The configuration info is not available.

    "; + die($message); + } + } + } + + public function get_option($name) + { + global $db; + $sql = "SELECT * FROM ".Table_prefix."options WHERE name='".$name."' LIMIT 1"; + $db->ejecutarConsulta($sql); + if ($db->contarRegistros()>0) { + $row=$db->obtenerRegistro(); + return $row['val']; + } else { + return "0"; + } + } +} +?> diff --git a/classes/feeds.class.php b/classes/feeds.class.php old mode 100644 new mode 100755 index 0f9d8a0..a9978c0 --- a/classes/feeds.class.php +++ b/classes/feeds.class.php @@ -1,172 +1,176 @@ - - - =========================== */ + + + =========================== */ ?> -conf = new configuration(); - } - - function addFeed($url, $type, $source, $credits){ - $f = array(); - $f['updated_at'] = '0000-00-00 00:00:00'; - $f['error'] = 0; - $f['title'] = ''; - $f['url'] = ''; - $f['credits'] = $credits; - $f['site_url'] = ''; - $f['id_user'] = $_SESSION['user_id']; - switch($source){ - case 'Rss': $f['url'] = $url; $f['type'] = $type; break; - case 'VOX': $f['url'] = 'http://{{username}}.vox.com/library/posts/atom.xml'; $f['type'] = 1; break; - case 'Digg': $f['url'] = 'http://digg.com/rss/{{username}}/index2.xml'; $f['type'] = 1; break; - case 'Tumblr': $f['url'] = 'http://{{username}}.tumblr.com/rss'; $f['type'] = 1; break; - case 'Twitter': $f['url'] = 'http://twitter.com/{{username}}'; $f['type'] = 1; break; - case 'Last.fm': $f['url'] = 'http://ws.audioscrobbler.com/1.0/user/{{username}}/recenttracks.rss'; $f['type'] = 1; break; - case 'Blogger': $f['url'] = 'http://{{username}}.blogspot.com/feeds/posts/default'; $f['type'] = 1; break; - case 'Youtube': $f['url'] = 'http://www.youtube.com/rss/user/{{username}}/videos.rss'; $f['type'] = 1; break; - case 'Wordpress.com': $f['url'] = 'http://{{username}}.wordpress.com/feed/'; $f['type'] = 1; break; - case 'Del.icio.us': $f['url'] = 'http://feeds.delicious.com/rss/{{username}}'; $f['type'] = 1; break; - default : $f['url'] = ''; break; - } - if(!empty($f['url'])){ - $f['url'] = str_replace('{{username}}',$url,$f['url']); - return ($this->insertarDeFormulario($this->conf->tablePrefix."feeds", $f)); - } - print_r($_POST); - print_r($f); - } - - function removeFeed($id){ - return ($this->ejecutarConsulta("DELETE FROM ".$this->conf->tablePrefix."feeds WHERE id_feed=".$id)); - } - - function updateFeeds(){ - $timeToUpdate = trim($this->conf->rssImportFrec). ' ago'; - $feeds = $this->getFeedList("WHERE updated_at < '".date("Y-m-d H:i:s",strtotime($timeToUpdate))."'"); - foreach($feeds as $feed){ - $data = new SimplePie(); - $data->feed_url($feed['url']); - $data->cache_location(Absolute_Path."/uploads/CACHE"); - $data->init(); - $temp = array(); - $temp['updated_at'] = date("Y-m-d H:i:s"); - if (!empty($data->error)){ - // Error report - $temp['error'] = 1; - $this->modificarDeFormulario($this->conf->tablePrefix."feeds", $temp, 'id_feed = '.$feed['id_feed']); - }else{ - - if($data->data){ - $timeFilter = strtotime($timeToUpdate); - foreach($data->get_items() as $post){ - if (strtotime($post->get_date("Y-m-d H:i:s")) > strtotime($feed['updated_at'])) { - $newPost = array(); - $newPost['id_user'] = $feed['id_user']; - $newPost['title'] = $post->get_title(); - $newPost['date'] = $post->get_date("Y-m-d H:i:s"); - if($feed['type'] == 1){ //TEXT - $newPost['type'] = 1; - if($post->get_title() != $post->get_description()){ - if(strpos($feed['url'],'twitter.com') <= 0){ - $newPost['description'] = $post->get_description(); - // Youtube Fix to add a link to the image - if(strpos($feed['url'],'youtube.com') > 0){ - $newPost['description'] = preg_replace('/\]+)/','get_description()); - // Delicious fix to add a link post - }elseif(strpos($feed['url'],'delicious.com') > 0){ - $newPost['type'] = 4; - $newPost['url'] = $post->get_link(); - } - } - - } - }elseif($feed['type'] == 2){ //IMAGES - $ma = array(); - $url_image = ''; - @preg_match_all('/\]+)/',$post->get_description(), $ma); - @preg_match_all('/src\=\"([^\"]+)\"/',$ma[0][0], $ma); - $url_image = $ma[1][0]; - - if(empty($url_image)){ - /* Theres no image, lets make a text post */ - $newPost['type'] = 1; - if($post->get_title() != $post->get_description()){ - if(strpos($feed['url'],'twitter.com') <= 0){ - $newPost['description'] = $post->get_description(); - } - } - }else{ - $newPost['type'] = 2; - $newPost['url'] = $url_image; - $newPost['description'] = $post->get_title(); - } - } - if($feed['credits'] == 1 && !empty($feed['title'])){ - $newPost['description'] .= '

    (via '.$feed['title'].')

    '; - } - $this->insertarDeFormulario($this->conf->tablePrefix."data", $newPost); - } - } - $temp['title'] = (!empty($data->data['info']['title']))? $data->data['info']['title'] : ''; - $temp['site_url'] = (!empty($data->data['info']['link']['alternate'][0]))? $data->data['info']['link']['alternate'][0] : $data->data['info']['link']; - $temp['error'] = 0; - $this->modificarDeFormulario($this->conf->tablePrefix."feeds", $temp, 'id_feed = '.$feed['id_feed']); - - } - } - } - - } - - - function getFeedList($condition = ''){ - $feeds = array(); - $this->ejecutarConsulta('SELECT * FROM '.$this->conf->tablePrefix.'feeds '.$condition.' ORDER BY id_feed DESC'); - while($feed = mysql_fetch_assoc($this->mid_consulta)){ - $feeds[] = $feed; - } - return $feeds; - } - - - /** - Calculate the seconds until next update - - @param $feed can be an ID, or the raw array from the DB - @raturn int - */ - function getNextUpdate($feed){ - if(is_numeric($feed)){ - $id = (int)$feed; - }elseif(is_array($feed)){ - $id = $feed['id_feed']; - }else{ - return false; - } - $timeToUpdate = trim($this->conf->rssImportFrec). ' ago'; - $delta = time() - strtotime($timeToUpdate); - $this->ejecutarConsulta('SELECT (UNIX_TIMESTAMP(updated_at) - '.$delta.') - UNIX_TIMESTAMP(NOW()) FROM '.$this->conf->tablePrefix.'feeds WHERE id_feed = '.$id); - $time = mysql_fetch_array($this->mid_consulta); - return $time[0]; - - } -} -?> \ No newline at end of file +conf = new configuration(); + } + + public function addFeed($url, $type, $source, $credits) + { + $f = array(); + $f['updated_at'] = '0000-00-00 00:00:00'; + $f['error'] = 0; + $f['title'] = ''; + $f['url'] = ''; + $f['credits'] = $credits; + $f['site_url'] = ''; + $f['id_user'] = $_SESSION['user_id']; + switch ($source) { + case 'Rss': $f['url'] = $url; $f['type'] = $type; break; + case 'VOX': $f['url'] = 'http://{{username}}.vox.com/library/posts/atom.xml'; $f['type'] = 1; break; + case 'Digg': $f['url'] = 'http://digg.com/rss/{{username}}/index2.xml'; $f['type'] = 1; break; + case 'Tumblr': $f['url'] = 'http://{{username}}.tumblr.com/rss'; $f['type'] = 1; break; + case 'Twitter': $f['url'] = 'http://twitter.com/{{username}}'; $f['type'] = 1; break; + case 'Last.fm': $f['url'] = 'http://ws.audioscrobbler.com/1.0/user/{{username}}/recenttracks.rss'; $f['type'] = 1; break; + case 'Blogger': $f['url'] = 'http://{{username}}.blogspot.com/feeds/posts/default'; $f['type'] = 1; break; + case 'Youtube': $f['url'] = 'http://www.youtube.com/rss/user/{{username}}/videos.rss'; $f['type'] = 1; break; + case 'Wordpress.com': $f['url'] = 'http://{{username}}.wordpress.com/feed/'; $f['type'] = 1; break; + case 'Del.icio.us': $f['url'] = 'http://feeds.delicious.com/rss/{{username}}'; $f['type'] = 1; break; + default: $f['url'] = ''; break; + } + if (!empty($f['url'])) { + $f['url'] = str_replace('{{username}}', $url, $f['url']); + return ($this->insertarDeFormulario($this->conf->tablePrefix."feeds", $f)); + } + print_r($_POST); + print_r($f); + } + + public function removeFeed($id) + { + return ($this->ejecutarConsulta("DELETE FROM ".$this->conf->tablePrefix."feeds WHERE id_feed=".$id)); + } + + public function updateFeeds() + { + $timeToUpdate = trim($this->conf->rssImportFrec). ' ago'; + $feeds = $this->getFeedList("WHERE updated_at < '".date("Y-m-d H:i:s", strtotime($timeToUpdate))."'"); + foreach ($feeds as $feed) { + $data = new SimplePie(); + $data->feed_url($feed['url']); + $data->cache_location(Absolute_Path."/uploads/CACHE"); + $data->init(); + $temp = array(); + $temp['updated_at'] = date("Y-m-d H:i:s"); + if (!empty($data->error)) { + // Error report + $temp['error'] = 1; + $this->modificarDeFormulario($this->conf->tablePrefix."feeds", $temp, 'id_feed = '.$feed['id_feed']); + } else { + if ($data->data) { + $timeFilter = strtotime($timeToUpdate); + foreach ($data->get_items() as $post) { + if (strtotime($post->get_date("Y-m-d H:i:s")) > strtotime($feed['updated_at'])) { + $newPost = array(); + $newPost['id_user'] = $feed['id_user']; + $newPost['title'] = $post->get_title(); + $newPost['date'] = $post->get_date("Y-m-d H:i:s"); + if ($feed['type'] == 1) { //TEXT + $newPost['type'] = 1; + if ($post->get_title() != $post->get_description()) { + if (strpos($feed['url'], 'twitter.com') <= 0) { + $newPost['description'] = $post->get_description(); + // Youtube Fix to add a link to the image + if (strpos($feed['url'], 'youtube.com') > 0) { + $newPost['description'] = preg_replace('/\]+)/', 'get_description()); + // Delicious fix to add a link post + } elseif (strpos($feed['url'], 'delicious.com') > 0) { + $newPost['type'] = 4; + $newPost['url'] = $post->get_link(); + } + } + } + } elseif ($feed['type'] == 2) { //IMAGES + $ma = array(); + $url_image = ''; + @preg_match_all('/\]+)/', $post->get_description(), $ma); + @preg_match_all('/src\=\"([^\"]+)\"/', $ma[0][0], $ma); + $url_image = $ma[1][0]; + + if (empty($url_image)) { + /* Theres no image, lets make a text post */ + $newPost['type'] = 1; + if ($post->get_title() != $post->get_description()) { + if (strpos($feed['url'], 'twitter.com') <= 0) { + $newPost['description'] = $post->get_description(); + } + } + } else { + $newPost['type'] = 2; + $newPost['url'] = $url_image; + $newPost['description'] = $post->get_title(); + } + } + if ($feed['credits'] == 1 && !empty($feed['title'])) { + $newPost['description'] .= '

    (via '.$feed['title'].')

    '; + } + $this->insertarDeFormulario($this->conf->tablePrefix."data", $newPost); + } + } + $temp['title'] = (!empty($data->data['info']['title']))? $data->data['info']['title'] : ''; + $temp['site_url'] = (!empty($data->data['info']['link']['alternate'][0]))? $data->data['info']['link']['alternate'][0] : $data->data['info']['link']; + $temp['error'] = 0; + $this->modificarDeFormulario($this->conf->tablePrefix."feeds", $temp, 'id_feed = '.$feed['id_feed']); + } + } + } + } + + + public function getFeedList($condition = '') + { + $feeds = array(); + $this->ejecutarConsulta('SELECT * FROM '.$this->conf->tablePrefix.'feeds '.$condition.' ORDER BY id_feed DESC'); + while ($feed = $this->mid_consulta->fetch(PDO::FETCH_ASSOC)) { + $feeds[] = $feed; + } + return $feeds; + } + + + /** + * Calculate the seconds until next update + + * @param $feed can be an ID, or the raw array from the DB + * @return int + */ + public function getNextUpdate($feed) + { + if (is_numeric($feed)) { + $id = (int)$feed; + } elseif (is_array($feed)) { + $id = $feed['id_feed']; + } else { + return false; + } + $timeToUpdate = trim($this->conf->rssImportFrec). ' ago'; + $delta = time() - strtotime($timeToUpdate); + $this->ejecutarConsulta('SELECT (UNIX_TIMESTAMP(updated_at) - '.$delta.') - UNIX_TIMESTAMP(NOW()) FROM '.$this->conf->tablePrefix.'feeds WHERE id_feed = '.$id); + $time = mysql_fetch_array($this->mid_consulta); + return $time[0]; + } +} +?> diff --git a/classes/gelato.class.php b/classes/gelato.class.php old mode 100644 new mode 100755 index bceab54..f251f1a --- a/classes/gelato.class.php +++ b/classes/gelato.class.php @@ -1,207 +1,227 @@ - - - =========================== */ - -class gelato { - var $db; - var $conf; - - function gelato() { - global $db; - global $conf; - - $this->db = $db; - $this->conf = $conf; - } - - function saveSettings($fieldsArray) { - if ($this->db->modificarDeFormulario($this->conf->tablePrefix."config", $fieldsArray)) { - header("Location: ".$this->conf->urlGelato."/admin/settings.php?modified=true"); - die(); - } else { - header("Location: ".$this->conf->urlGelato."/admin/settings.php?error=1&des=".$this->db->merror); - die(); - } - } - - function saveOption($value, $name) { - $sqlStr = "UPDATE ".$this->conf->tablePrefix."options SET val='".$value."' WHERE name='".$name."' LIMIT 1"; - if ($this->db->ejecutarConsulta($sqlStr)) { - return true; - } else { - return true; - } - } - - function addPost($fieldsArray) { - if ($this->db->insertarDeFormulario($this->conf->tablePrefix."data", $fieldsArray)) { - return true; - } else { - return false; - } - } - - function modifyPost($fieldsArray, $id_post) { - if ($this->db->modificarDeFormulario($this->conf->tablePrefix."data", $fieldsArray, "id_post=$id_post")) { - header("Location: ".$this->conf->urlGelato."/admin/index.php?modified=true"); - die(); - } else { - header("Location: ".$this->conf->urlGelato."/admin/index.php?error=2&des=".$this->db->merror); - die(); - } - } - - function deletePost($idPost) { - $this->db->ejecutarConsulta("DELETE FROM ".$this->conf->tablePrefix."data WHERE id_post=".$idPost); - } - - function getPosts($limit="10", $from="0") { - $sqlStr = "select * from ".$this->conf->tablePrefix."data ORDER BY date DESC LIMIT $from,$limit"; - $this->db->ejecutarConsulta($sqlStr); - return $this->db->mid_consulta; - } - - function getPost($id="") { - $this->db->ejecutarConsulta("select * from ".$this->conf->tablePrefix."data WHERE id_post=".$id); - return mysql_fetch_array($this->db->mid_consulta); - } - - function getPostsNumber() { - $this->db->ejecutarConsulta("select count(*) as total from ".$this->conf->tablePrefix."data"); - $row = mysql_fetch_assoc($this->db->mid_consulta); - return $row['total']; - } - - function getType($id) { - if ($this->db->ejecutarConsulta("select type from ".$this->conf->tablePrefix."data WHERE id_post=".$id)) { - if ($this->db->contarRegistros()>0) { - while($registro = mysql_fetch_array($this->db->mid_consulta)) { - return $registro[0]; - } - } - } else { - return "0"; - } - } - - function formatConversation($text) { - $formatedText = ""; - $odd=true; - - $lines = explode("\n", $text); - - $formatedText .= "
      \n"; - foreach ($lines as $line) { - $pos = strpos($line, ":") + 1; - - $label = substr($line, 0, $pos); - $desc = substr($line, $pos, strlen($line)); - - if ($odd) { - $cssClass = "odd"; - } else { - $cssClass = "even"; - } - $odd=!$odd; - - - $formatedText .= "
    • \n"; - $formatedText .= " ".$label."\n"; - $formatedText .= " ".$desc."\n"; - $formatedText .= "
    • \n"; - } - $formatedText .= "
    \n"; - return $formatedText; - } - - function formatApiConversation($text) { - $formatedText = ""; - - $lines = explode("\n", $text); - - foreach ($lines as $line) { - $pos = strpos($line, ":") + 1; - - $name = substr($line, 0, $pos-1); - $label = substr($line, 0, $pos); - $desc = substr($line, $pos, strlen($line)); - - $formatedText .= "".$desc."\n"; - } - - return $formatedText; - } - - function saveMP3($remoteFileName) { - if (util::getMP3File($remoteFileName)) { - return true; - } else { - return false; - } - } - - function savePhoto($remoteFileName) { - if (util::getPhotoFile($remoteFileName)) { - return true; - } else { - return false; - } - } - - function getVideoPlayer($url) { - if (util::isYoutubeVideo($url)) { - $id_video = util::getYoutubeVideoUrl($url); - return "\t\t\t\n"; - } elseif (util::isVimeoVideo($url)) { - $id_video = util::getVimeoVideoUrl($url); - return "\t\t\t\n"; - } elseif (util::isDailymotionVideo($url)) { - $id_video = util::getDailymotionVideoUrl($url); - return "\t\t\t\n"; - } elseif (util::isYahooVideo($url)) { - $id_video = util::getYahooVideoCode($url); - return "\t\t\t\n"; - } elseif (util::isSlideSharePresentation($url)) { - $id_video = util::getSlideSharePresentationCode($url); - return "\t\t\t\n"; - } elseif (util::isGoogleVideoUrl($url)) { - $id_video = util::getGoogleVideoCode($url); - return "\t\t\t\n"; - } elseif (util::isMTVVideoUrl($url)) { - $id_video = util::getMTVVideoCode($url); - return "\t\t\t\n"; - } else { - return "This URL is not a supported video (YouTube, Google Video, Vimeo, DailyMotion, Yahoo Video, MTV or SlideShare)"; - } - } - function getMp3Player($url) { - if (util::isMP3($url)) { - $playerUrl = $conf->urlGelato."/admin/scripts/player.swf?soundFile=".$url; - return "\t\t\t\n"; - } elseif (util::isGoEar($url)) { - return "\t\t\t\n"; - } elseif (util::isOdeo($url)) { - return "\t\t\t\n"; - } else { - return "This URL is not an MP3 file."; - } - } - - function getPermalink($post_id){ - $strEnd = ($this->conf->urlFriendly) ? "/" : ""; - $out = $this->conf->urlGelato; - $out .= ($this->conf->urlFriendly) ? "/post/" : "/index.php?post="; - $out .= $post_id.$strEnd; - return $out; - } -} -?> + + + =========================== */ +$util_class = new util(); +class gelato +{ + public $db; + public $conf; + + public function __construct() + { + global $db; + global $conf; + + $this->db = $db; + $this->conf = $conf; + } + + public function saveSettings($fieldsArray) + { + if ($this->db->modificarDeFormulario($this->conf->tablePrefix."config", $fieldsArray)) { + header("Location: ".$this->conf->urlGelato."/admin/settings.php?modified=true"); + die(); + } else { + header("Location: ".$this->conf->urlGelato."/admin/settings.php?error=1&des=".$this->db->merror); + die(); + } + } + + public function saveOption($value, $name) + { + $sqlStr = "UPDATE ".$this->conf->tablePrefix."options SET val='".$value."' WHERE name='".$name."' LIMIT 1"; + if ($this->db->ejecutarConsulta($sqlStr)) { + return true; + } else { + return true; + } + } + + public function addPost($fieldsArray) + { + if ($this->db->insertarDeFormulario($this->conf->tablePrefix."data", $fieldsArray)) { + return true; + } else { + return false; + } + } + + public function modifyPost($fieldsArray, $id_post) + { + if ($this->db->modificarDeFormulario($this->conf->tablePrefix."data", $fieldsArray, "id_post=$id_post")) { + header("Location: ".$this->conf->urlGelato."/admin/index.php?modified=true"); + die(); + } else { + header("Location: ".$this->conf->urlGelato."/admin/index.php?error=2&des=".$this->db->merror); + die(); + } + } + + public function deletePost($idPost) + { + $this->db->ejecutarConsulta("DELETE FROM ".$this->conf->tablePrefix."data WHERE id_post=".$idPost); + } + + public function getPosts($limit="10", $from="0") + { + $sqlStr = "select * from ".$this->conf->tablePrefix."data ORDER BY date DESC LIMIT $from,$limit"; + $this->db->ejecutarConsulta($sqlStr); + return $this->db->mid_consulta; + } + + public function getPost($id="") + { + $this->db->ejecutarConsulta("select * from ".$this->conf->tablePrefix."data WHERE id_post=".$id); + return mysql_fetch_array($this->db->mid_consulta); + } + + public function getPostsNumber() + { + $this->db->ejecutarConsulta("select count(*) as total from ".$this->conf->tablePrefix."data"); + $row = mysql_fetch_assoc($this->db->mid_consulta); + return $row['total']; + } + + public function getType($id) + { + if ($this->db->ejecutarConsulta("select type from ".$this->conf->tablePrefix."data WHERE id_post=".$id)) { + if ($this->db->contarRegistros()>0) { + while ($registro = mysql_fetch_array($this->db->mid_consulta)) { + return $registro[0]; + } + } + } else { + return "0"; + } + } + + public function formatConversation($text) + { + $formatedText = ""; + $odd=true; + + $lines = explode("\n", $text); + + $formatedText .= "
      \n"; + foreach ($lines as $line) { + $pos = strpos($line, ":") + 1; + + $label = substr($line, 0, $pos); + $desc = substr($line, $pos, strlen($line)); + + if ($odd) { + $cssClass = "odd"; + } else { + $cssClass = "even"; + } + $odd=!$odd; + + + $formatedText .= "
    • \n"; + $formatedText .= " ".$label."\n"; + $formatedText .= " ".$desc."\n"; + $formatedText .= "
    • \n"; + } + $formatedText .= "
    \n"; + return $formatedText; + } + + public function formatApiConversation($text) + { + $formatedText = ""; + + $lines = explode("\n", $text); + + foreach ($lines as $line) { + $pos = strpos($line, ":") + 1; + + $name = substr($line, 0, $pos-1); + $label = substr($line, 0, $pos); + $desc = substr($line, $pos, strlen($line)); + + $formatedText .= "".$desc."\n"; + } + + return $formatedText; + } + + public function saveMP3($remoteFileName) + { + if ($util_class->getMP3File($remoteFileName)) { + return true; + } else { + return false; + } + } + + public function savePhoto($remoteFileName) + { + if ($util_class->getPhotoFile($remoteFileName)) { + return true; + } else { + return false; + } + } + + public function getVideoPlayer($url) + { + $util_class = new util(); + if ($util_class->isYoutubeVideo($url)) { + $id_video = $util_class->getYoutubeVideoUrl($url); + return "\t\t\t\n"; + } elseif ($util_class->isVimeoVideo($url)) { + $id_video = $util_class->getVimeoVideoUrl($url); + return "\t\t\t\n"; + } elseif ($util_class->isDailymotionVideo($url)) { + $id_video = $util_class->getDailymotionVideoUrl($url); + return "\t\t\t\n"; + } elseif ($util_class->isYahooVideo($url)) { + $id_video = $util_class->getYahooVideoCode($url); + return "\t\t\t\n"; + } elseif ($util_class->isSlideSharePresentation($url)) { + $id_video = $util_class->getSlideSharePresentationCode($url); + return "\t\t\t\n"; + } elseif ($util_class->isGoogleVideoUrl($url)) { + $id_video = $util_class->getGoogleVideoCode($url); + return "\t\t\t\n"; + } elseif ($util_class->isMTVVideoUrl($url)) { + $id_video = $util_class->getMTVVideoCode($url); + return "\t\t\t\n"; + } else { + return "This URL is not a supported video (YouTube, Google Video, Vimeo, DailyMotion, Yahoo Video, MTV or SlideShare)"; + } + } + public function getMp3Player($url) + { + if ($util_class->isMP3($url)) { + $playerUrl = $conf->urlGelato."/admin/scripts/player.swf?soundFile=".$url; + return "\t\t\t\n"; + } elseif ($util_class->isGoEar($url)) { + return "\t\t\tgetGoEarCode($url)."\" />\n"; + } elseif ($util_class->isOdeo($url)) { + return "\t\t\tgetOdeoCode($url)."\" />\n"; + } else { + return "This URL is not an MP3 file."; + } + } + + public function getPermalink($post_id) + { + $strEnd = ($this->conf->urlFriendly) ? "/" : ""; + $out = $this->conf->urlGelato; + $out .= ($this->conf->urlFriendly) ? "/post/" : "/index.php?post="; + $out .= $post_id.$strEnd; + return $out; + } +} diff --git a/classes/gettext.class.php b/classes/gettext.class.php old mode 100644 new mode 100755 index 185f763..8046187 --- a/classes/gettext.class.php +++ b/classes/gettext.class.php @@ -1,360 +1,385 @@ -. - Copyright (c) 2005 Nico Kaiser - - This file is part of PHP-gettext. - - PHP-gettext 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. - - PHP-gettext 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 PHP-gettext; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -*/ - -/** - * Provides a simple gettext replacement that works independently from - * the system's gettext abilities. - * It can read MO files and use them for translating strings. - * The files are passed to gettext_reader as a Stream (see streams.php) - * - * This version has the ability to cache all strings and translations to - * speed up the string lookup. - * While the cache is enabled by default, it can be switched off with the - * second parameter in the constructor (e.g. whenusing very large MO files - * that you don't want to keep in memory) - */ -class gettext_reader { - //public: - var $error = 0; // public variable that holds error code (0 if no error) - - //private: - var $BYTEORDER = 0; // 0: low endian, 1: big endian - var $STREAM = NULL; - var $short_circuit = false; - var $enable_cache = false; - var $originals = NULL; // offset of original table - var $translations = NULL; // offset of translation table - var $pluralheader = NULL; // cache header field for plural forms - var $total = 0; // total string count - var $table_originals = NULL; // table for original strings (offsets) - var $table_translations = NULL; // table for translated strings (offsets) - var $cache_translations = NULL; // original -> translation mapping - - - /* Methods */ - - - /** - * Reads a 32bit Integer from the Stream - * - * @access private - * @return Integer from the Stream - */ - function readint() { - if ($this->BYTEORDER == 0) { - // low endian - return array_shift(unpack('V', $this->STREAM->read(4))); - } else { - // big endian - return array_shift(unpack('N', $this->STREAM->read(4))); - } - } - - /** - * Reads an array of Integers from the Stream - * - * @param int count How many elements should be read - * @return Array of Integers - */ - function readintarray($count) { - if ($this->BYTEORDER == 0) { - // low endian - return unpack('V'.$count, $this->STREAM->read(4 * $count)); - } else { - // big endian - return unpack('N'.$count, $this->STREAM->read(4 * $count)); - } - } - - /** - * Constructor - * - * @param object Reader the StreamReader object - * @param boolean enable_cache Enable or disable caching of strings (default on) - */ - function gettext_reader($Reader, $enable_cache = true) { - // If there isn't a StreamReader, turn on short circuit mode. - if (! $Reader || isset($Reader->error) ) { - $this->short_circuit = true; - return; - } - - // Caching can be turned off - $this->enable_cache = $enable_cache; - - // $MAGIC1 = (int)0x950412de; //bug in PHP 5 - $MAGIC1 = (int) - 1794895138; - // $MAGIC2 = (int)0xde120495; //bug - $MAGIC2 = (int) - 569244523; - - $this->STREAM = $Reader; - $magic = $this->readint(); - if ($magic == $MAGIC1) { - $this->BYTEORDER = 0; - } elseif ($magic == $MAGIC2) { - $this->BYTEORDER = 1; - } else { - $this->error = 1; // not MO file - return false; - } - - // FIXME: Do we care about revision? We should. - $revision = $this->readint(); - - $this->total = $this->readint(); - $this->originals = $this->readint(); - $this->translations = $this->readint(); - } - - /** - * Loads the translation tables from the MO file into the cache - * If caching is enabled, also loads all strings into a cache - * to speed up translation lookups - * - * @access private - */ - function load_tables() { - if (is_array($this->cache_translations) && - is_array($this->table_originals) && - is_array($this->table_translations)) - return; - - /* get original and translations tables */ - $this->STREAM->seekto($this->originals); - $this->table_originals = $this->readintarray($this->total * 2); - $this->STREAM->seekto($this->translations); - $this->table_translations = $this->readintarray($this->total * 2); - - if ($this->enable_cache) { - $this->cache_translations = array (); - /* read all strings in the cache */ - for ($i = 0; $i < $this->total; $i++) { - $this->STREAM->seekto($this->table_originals[$i * 2 + 2]); - $original = $this->STREAM->read($this->table_originals[$i * 2 + 1]); - $this->STREAM->seekto($this->table_translations[$i * 2 + 2]); - $translation = $this->STREAM->read($this->table_translations[$i * 2 + 1]); - $this->cache_translations[$original] = $translation; - } - } - } - - /** - * Returns a string from the "originals" table - * - * @access private - * @param int num Offset number of original string - * @return string Requested string if found, otherwise '' - */ - function get_original_string($num) { - $length = $this->table_originals[$num * 2 + 1]; - $offset = $this->table_originals[$num * 2 + 2]; - if (! $length) - return ''; - $this->STREAM->seekto($offset); - $data = $this->STREAM->read($length); - return (string)$data; - } - - /** - * Returns a string from the "translations" table - * - * @access private - * @param int num Offset number of original string - * @return string Requested string if found, otherwise '' - */ - function get_translation_string($num) { - $length = $this->table_translations[$num * 2 + 1]; - $offset = $this->table_translations[$num * 2 + 2]; - if (! $length) - return ''; - $this->STREAM->seekto($offset); - $data = $this->STREAM->read($length); - return (string)$data; - } - - /** - * Binary search for string - * - * @access private - * @param string string - * @param int start (internally used in recursive function) - * @param int end (internally used in recursive function) - * @return int string number (offset in originals table) - */ - function find_string($string, $start = -1, $end = -1) { - if (($start == -1) or ($end == -1)) { - // find_string is called with only one parameter, set start end end - $start = 0; - $end = $this->total; - } - if (abs($start - $end) <= 1) { - // We're done, now we either found the string, or it doesn't exist - $txt = $this->get_original_string($start); - if ($string == $txt) - return $start; - else - return -1; - } else if ($start > $end) { - // start > end -> turn around and start over - return $this->find_string($string, $end, $start); - } else { - // Divide table in two parts - $half = (int)(($start + $end) / 2); - $cmp = strcmp($string, $this->get_original_string($half)); - if ($cmp == 0) - // string is exactly in the middle => return it - return $half; - else if ($cmp < 0) - // The string is in the upper half - return $this->find_string($string, $start, $half); - else - // The string is in the lower half - return $this->find_string($string, $half, $end); - } - } - - /** - * Translates a string - * - * @access public - * @param string string to be translated - * @return string translated string (or original, if not found) - */ - function translate($string) { - if ($this->short_circuit) - return $string; - $this->load_tables(); - - if ($this->enable_cache) { - // Caching enabled, get translated string from cache - if (array_key_exists($string, $this->cache_translations)) - return $this->cache_translations[$string]; - else - return $string; - } else { - // Caching not enabled, try to find string - $num = $this->find_string($string); - if ($num == -1) - return $string; - else - return $this->get_translation_string($num); - } - } - - /** - * Get possible plural forms from MO header - * - * @access private - * @return string plural form header - */ - function get_plural_forms() { - // lets assume message number 0 is header - // this is true, right? - $this->load_tables(); - - // cache header field for plural forms - if (! is_string($this->pluralheader)) { - if ($this->enable_cache) { - $header = $this->cache_translations[""]; - } else { - $header = $this->get_translation_string(0); - } - if (eregi("plural-forms: ([^\n]*)\n", $header, $regs)) - $expr = $regs[1]; - else - $expr = "nplurals=2; plural=n == 1 ? 0 : 1;"; - $this->pluralheader = $expr; - } - return $this->pluralheader; - } - - /** - * Detects which plural form to take - * - * @access private - * @param n count - * @return int array index of the right plural form - */ - function select_string($n) { - $string = $this->get_plural_forms(); - $string = str_replace('nplurals',"\$total",$string); - $string = str_replace("n",$n,$string); - $string = str_replace('plural',"\$plural",$string); - - $total = 0; - $plural = 0; - - eval("$string"); - if ($plural >= $total) $plural = $total - 1; - return $plural; - } - - /** - * Plural version of gettext - * - * @access public - * @param string single - * @param string plural - * @param string number - * @return translated plural form - */ - function ngettext($single, $plural, $number) { - if ($this->short_circuit) { - if ($number != 1) - return $plural; - else - return $single; - } - - // find out the appropriate form - $select = $this->select_string($number); - - // this should contains all strings separated by NULLs - $key = $single.chr(0).$plural; - - - if ($this->enable_cache) { - if (! array_key_exists($key, $this->cache_translations)) { - return ($number != 1) ? $plural : $single; - } else { - $result = $this->cache_translations[$key]; - $list = explode(chr(0), $result); - return $list[$select]; - } - } else { - $num = $this->find_string($key); - if ($num == -1) { - return ($number != 1) ? $plural : $single; - } else { - $result = $this->get_translation_string($num); - $list = explode(chr(0), $result); - return $list[$select]; - } - } - } - -} - -?> +. + Copyright (c) 2005 Nico Kaiser + + This file is part of PHP-gettext. + + PHP-gettext 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. + + PHP-gettext 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 PHP-gettext; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +*/ + +/** + * Provides a simple gettext replacement that works independently from + * the system's gettext abilities. + * It can read MO files and use them for translating strings. + * The files are passed to gettext_reader as a Stream (see streams.php) + * + * This version has the ability to cache all strings and translations to + * speed up the string lookup. + * While the cache is enabled by default, it can be switched off with the + * second parameter in the constructor (e.g. whenusing very large MO files + * that you don't want to keep in memory) + */ +class gettext_reader +{ + //public: + public $error = 0; // public variable that holds error code (0 if no error) + + //private: + public $BYTEORDER = 0; // 0: low endian, 1: big endian + public $STREAM = null; + public $short_circuit = false; + public $enable_cache = false; + public $originals = null; // offset of original table + public $translations = null; // offset of translation table + public $pluralheader = null; // cache header field for plural forms + public $total = 0; // total string count + public $table_originals = null; // table for original strings (offsets) + public $table_translations = null; // table for translated strings (offsets) + public $cache_translations = null; // original -> translation mapping + + + /* Methods */ + + + /** + * Reads a 32bit Integer from the Stream + * + * @access private + * @return Integer from the Stream + */ + public function readint() + { + if ($this->BYTEORDER == 0) { + // low endian + $unpackinglowendian = unpack('V', $this->STREAM->read(4)); + return array_shift($unpackinglowendian); + } else { + // big endian + $unpackingbigendian = unpack('N', $this->STREAM->read(4)); + return array_shift($unpackingbigendian); + } + } + + /** + * Reads an array of Integers from the Stream + * + * @param int count How many elements should be read + * @return Array of Integers + */ + public function readintarray($count) + { + if ($this->BYTEORDER == 0) { + // low endian + return unpack('V'.$count, $this->STREAM->read(4 * $count)); + } else { + // big endian + return unpack('N'.$count, $this->STREAM->read(4 * $count)); + } + } + + /** + * Constructor + * + * @param object Reader the StreamReader object + * @param boolean enable_cache Enable or disable caching of strings (default on) + */ + public function __construct($Reader, $enable_cache = true) + { + // If there isn't a StreamReader, turn on short circuit mode. + if (! $Reader || isset($Reader->error)) { + $this->short_circuit = true; + return; + } + + // Caching can be turned off + $this->enable_cache = $enable_cache; + + // $MAGIC1 = (int)0x950412de; //bug in PHP 5 + $MAGIC1 = (int) - 1794895138; + // $MAGIC2 = (int)0xde120495; //bug + $MAGIC2 = (int) - 569244523; + + $this->STREAM = $Reader; + $magic = $this->readint(); + if ($magic == $MAGIC1) { + $this->BYTEORDER = 0; + } elseif ($magic == $MAGIC2) { + $this->BYTEORDER = 1; + } else { + $this->error = 1; // not MO file + return false; + } + + // FIXME: Do we care about revision? We should. + $revision = $this->readint(); + + $this->total = $this->readint(); + $this->originals = $this->readint(); + $this->translations = $this->readint(); + } + + /** + * Loads the translation tables from the MO file into the cache + * If caching is enabled, also loads all strings into a cache + * to speed up translation lookups + * + * @access private + */ + public function load_tables() + { + if (is_array($this->cache_translations) && + is_array($this->table_originals) && + is_array($this->table_translations)) { + return; + } + + /* get original and translations tables */ + $this->STREAM->seekto($this->originals); + $this->table_originals = $this->readintarray($this->total * 2); + $this->STREAM->seekto($this->translations); + $this->table_translations = $this->readintarray($this->total * 2); + + if ($this->enable_cache) { + $this->cache_translations = array(); + /* read all strings in the cache */ + for ($i = 0; $i < $this->total; $i++) { + $this->STREAM->seekto($this->table_originals[$i * 2 + 2]); + $original = $this->STREAM->read($this->table_originals[$i * 2 + 1]); + $this->STREAM->seekto($this->table_translations[$i * 2 + 2]); + $translation = $this->STREAM->read($this->table_translations[$i * 2 + 1]); + $this->cache_translations[$original] = $translation; + } + } + } + + /** + * Returns a string from the "originals" table + * + * @access private + * @param int num Offset number of original string + * @return string Requested string if found, otherwise '' + */ + public function get_original_string($num) + { + $length = $this->table_originals[$num * 2 + 1]; + $offset = $this->table_originals[$num * 2 + 2]; + if (! $length) { + return ''; + } + $this->STREAM->seekto($offset); + $data = $this->STREAM->read($length); + return (string)$data; + } + + /** + * Returns a string from the "translations" table + * + * @access private + * @param int num Offset number of original string + * @return string Requested string if found, otherwise '' + */ + public function get_translation_string($num) + { + $length = $this->table_translations[$num * 2 + 1]; + $offset = $this->table_translations[$num * 2 + 2]; + if (! $length) { + return ''; + } + $this->STREAM->seekto($offset); + $data = $this->STREAM->read($length); + return (string)$data; + } + + /** + * Binary search for string + * + * @access private + * @param string string + * @param int start (internally used in recursive function) + * @param int end (internally used in recursive function) + * @return int string number (offset in originals table) + */ + public function find_string($string, $start = -1, $end = -1) + { + if (($start == -1) or ($end == -1)) { + // find_string is called with only one parameter, set start end end + $start = 0; + $end = $this->total; + } + if (abs($start - $end) <= 1) { + // We're done, now we either found the string, or it doesn't exist + $txt = $this->get_original_string($start); + if ($string == $txt) { + return $start; + } else { + return -1; + } + } elseif ($start > $end) { + // start > end -> turn around and start over + return $this->find_string($string, $end, $start); + } else { + // Divide table in two parts + $half = (int)(($start + $end) / 2); + $cmp = strcmp($string, $this->get_original_string($half)); + if ($cmp == 0) { + // string is exactly in the middle => return it + return $half; + } elseif ($cmp < 0) { + // The string is in the upper half + return $this->find_string($string, $start, $half); + } else { + // The string is in the lower half + return $this->find_string($string, $half, $end); + } + } + } + + /** + * Translates a string + * + * @access public + * @param string string to be translated + * @return string translated string (or original, if not found) + */ + public function translate($string) + { + if ($this->short_circuit) { + return $string; + } + $this->load_tables(); + + if ($this->enable_cache) { + // Caching enabled, get translated string from cache + if (array_key_exists($string, $this->cache_translations)) { + return $this->cache_translations[$string]; + } else { + return $string; + } + } else { + // Caching not enabled, try to find string + $num = $this->find_string($string); + if ($num == -1) { + return $string; + } else { + return $this->get_translation_string($num); + } + } + } + + /** + * Get possible plural forms from MO header + * + * @access private + * @return string plural form header + */ + public function get_plural_forms() + { + // lets assume message number 0 is header + // this is true, right? + $this->load_tables(); + + // cache header field for plural forms + if (! is_string($this->pluralheader)) { + if ($this->enable_cache) { + $header = $this->cache_translations[""]; + } else { + $header = $this->get_translation_string(0); + } + if (eregi("plural-forms: ([^\n]*)\n", $header, $regs)) { + $expr = $regs[1]; + } else { + $expr = "nplurals=2; plural=n == 1 ? 0 : 1;"; + } + $this->pluralheader = $expr; + } + return $this->pluralheader; + } + + /** + * Detects which plural form to take + * + * @access private + * @param n count + * @return int array index of the right plural form + */ + public function select_string($n) + { + $string = $this->get_plural_forms(); + $string = str_replace('nplurals', "\$total", $string); + $string = str_replace("n", $n, $string); + $string = str_replace('plural', "\$plural", $string); + + $total = 0; + $plural = 0; + + eval("$string"); + if ($plural >= $total) { + $plural = $total - 1; + } + return $plural; + } + + /** + * Plural version of gettext + * + * @access public + * @param string single + * @param string plural + * @param string number + * @return translated plural form + */ + public function ngettext($single, $plural, $number) + { + if ($this->short_circuit) { + if ($number != 1) { + return $plural; + } else { + return $single; + } + } + + // find out the appropriate form + $select = $this->select_string($number); + + // this should contains all strings separated by NULLs + $key = $single.chr(0).$plural; + + + if ($this->enable_cache) { + if (! array_key_exists($key, $this->cache_translations)) { + return ($number != 1) ? $plural : $single; + } else { + $result = $this->cache_translations[$key]; + $list = explode(chr(0), $result); + return $list[$select]; + } + } else { + $num = $this->find_string($key); + if ($num == -1) { + return ($number != 1) ? $plural : $single; + } else { + $result = $this->get_translation_string($num); + $list = explode(chr(0), $result); + return $list[$select]; + } + } + } +} diff --git a/classes/imgsize.php b/classes/imgsize.php old mode 100644 new mode 100755 index 774eee0..eedea4a --- a/classes/imgsize.php +++ b/classes/imgsize.php @@ -1,101 +1,102 @@ - 0) { - // calculate resized height and width if percent is defined - $percent = $percent * 0.01; - $w = $sw * $percent; - $h = $sh * $percent; -} else { - if (isset ($w) AND !isset ($h)) { - // autocompute height if only width is set - $h = (100 / ($sw / $w)) * .01; - $h = @round ($sh * $h); - } elseif (isset ($h) AND !isset ($w)) { - // autocompute width if only height is set - $w = (100 / ($sh / $h)) * .01; - $w = @round ($sw * $w); - } elseif (isset ($h) AND isset ($w) AND isset ($constrain)) { - // get the smaller resulting image dimension if both height - // and width are set and $constrain is also set - $hx = (100 / ($sw / $w)) * .01; - $hx = @round ($sh * $hx); - - $wx = (100 / ($sh / $h)) * .01; - $wx = @round ($sw * $wx); - - if ($hx < $h) { - $h = (100 / ($sw / $w)) * .01; - $h = @round ($sh * $h); - } else { - $w = (100 / ($sh / $h)) * .01; - $w = @round ($sw * $w); - } - } -} - -$im = @ImageCreateFromJPEG ($img) or // Read JPEG Image -$im = @ImageCreateFromPNG ($img) or // or PNG Image -$im = @ImageCreateFromGIF ($img) or // or GIF Image -$im = false; // If image is not JPEG, PNG, or GIF - -if (!$im) { - // We get errors from PHP's ImageCreate functions... - // So let's echo back the contents of the actual image. - readfile ($img); -} else { - // Create the resized image destination - $thumb = @ImageCreateTrueColor ($w, $h); - // Copy from image source, resize it, and paste to image destination - @ImageCopyResampled ($thumb, $im, 0, 0, 0, 0, $w, $h, $sw, $sh); - // Output resized image - @ImageJPEG ($thumb); -} -?> + 0) { + // calculate resized height and width if percent is defined + $percent = $percent * 0.01; + $w = $sw * $percent; + $h = $sh * $percent; +} else { + if (isset($w) and !isset($h)) { + // autocompute height if only width is set + $h = (100 / ($sw / $w)) * .01; + $h = @round($sh * $h); + } elseif (isset($h) and !isset($w)) { + // autocompute width if only height is set + $w = (100 / ($sh / $h)) * .01; + $w = @round($sw * $w); + } elseif (isset($h) and isset($w) and isset($constrain)) { + // get the smaller resulting image dimension if both height + // and width are set and $constrain is also set + $hx = (100 / ($sw / $w)) * .01; + $hx = @round($sh * $hx); + + $wx = (100 / ($sh / $h)) * .01; + $wx = @round($sw * $wx); + + if ($hx < $h) { + $h = (100 / ($sw / $w)) * .01; + $h = @round($sh * $h); + } else { + $w = (100 / ($sh / $h)) * .01; + $w = @round($sw * $w); + } + } +} + +$im = @ImageCreateFromJPEG($img) or // Read JPEG Image +$im = @ImageCreateFromPNG($img) or // or PNG Image +$im = @ImageCreateFromGIF($img) or // or GIF Image +$im = false; // If image is not JPEG, PNG, or GIF + +if (!$im) { + // We get errors from PHP's ImageCreate functions... + // So let's echo back the contents of the actual image. + readfile($img); +} else { + // Create the resized image destination + $thumb = @ImageCreateTrueColor($w, $h); + // Copy from image source, resize it, and paste to image destination + @ImageCopyResampled($thumb, $im, 0, 0, 0, 0, $w, $h, $sw, $sh); + // Output resized image + @ImageJPEG($thumb); +} diff --git a/classes/install.class.php b/classes/install.class.php old mode 100644 new mode 100755 index 7d33920..5da3d34 --- a/classes/install.class.php +++ b/classes/install.class.php @@ -1,245 +1,238 @@ -errors_d[1]='The login field cannot be empty'; - $this->errors_d[2]='The password field cannot be empty'; - $this->errors_d[3]='Password does not match the confirm password'; - $this->errors_d[4]='The e-mail field cannot be empty'; - $this->errors_d[5]='The installation URL field cannot be empty'; - $this->errors_d[6]='Error establishing a database connection'; - $this->errors_d[9]='For security reasons this field is required. It is the same information that in the config.php file'; - $this->errors_d[10]='The login field cannot be empty'; - } - - function run() { - if (empty($this->data)) false; - $this->create_db(); - if (!$this->install_db()) return false; - return true; - } - - function create_db(){ - $link = mysql_connect(DB_Server, DB_User, DB_Password); - if(!$link) - die('Could not connect: '.mysql_error()); +sql_escape($this->data['posts_limit']).", '".$db->sql_escape($this->data['title'])."', '".$db->sql_escape($this->data['description'])."', '".$db->sql_escape($this->data['lang'])."', '".$db->sql_escape($this->data['template'])."', '".$db->sql_escape($this->data['url_installation'])."');"; - $sqlStr[] = "INSERT INTO `".Table_prefix."users` VALUES ('', '', '".$db->sql_escape($this->data['login'])."', '".md5($this->data['password'])."', '".$db->sql_escape($this->data['email'])."', '".$db->sql_escape($this->data['website'])."', '".$db->sql_escape($this->data['about'])."');"; - $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('url_friendly', '0');"; - $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('rich_text', '0');"; - $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('allow_comments', '0');"; - $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('offset_city', '".$db->sql_escape($this->data['offset_city'])."');"; - $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('offset_time', '".$db->sql_escape($this->data['offset_time'])."');"; - $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('shorten_links', '0');"; - $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('rss_import_frec', '5 minutes');"; - $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('check_version', '1');"; - $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('active_plugins', '[{\"total\":0},[]]');"; - - foreach($sqlStr as $key => $query){ - if(!$db->ejecutarConsulta($query)){ - return false; - } - } - - return true; - } - - function inerrors($n) { - if(strpos($this->errors,(string)$n)===false) - return false; - return true; - } - - function mostrarerror($n) { - if ($this->inerrors($n)) { - return ''.$this->errors_d[$n].''; - } else { - return ""; - } - } - - function is_gelato_installed(){ - if(file_exists(Absolute_Path.'config.php')) { - include_once(Absolute_Path."config.php"); - if (!$this->check_for_config()){ - return false; - } else { - if (!$this->is_db_installed()){ - return false; - } - } - return true; - }else{ - return false; - } - } - - function is_db_installed(){ - $db = new Conexion_Mysql(DB_name, DB_Server, DB_User, DB_Password); - $sqlStr = "SELECT * FROM `".Table_prefix."config`"; - if($db->ejecutarConsulta($sqlStr)) { - return ($db->contarRegistros() > 0); - }else{ - return false; - } - - } - - function check_for_config(){ - if(!defined('DB_Server')) return false; - if(!defined('DB_name')) return false; - if(!defined('DB_User')) return false; - if(!defined('DB_Password')) return false; - return true; - } - - function check_form(){ - $action=""; - - if (isset($this->data['action'])){ - $action=$this->data['action']; - } - - if (!$this->is_gelato_installed()){ - - $this->showForm = true; - - if ($action=="config") { - - $sep_err=""; - $this->errors = false; - - if (!isset($this->data['db_login']) or $this->data['db_login']!=DB_User) { - $this->errors =$this->errors.$sep_err."9"; //7,8 - $sep_err="|"; - } - if (!$this->data['login']) { - $this->errors =$this->errors.$sep_err."1"; - $sep_err="|"; - } - if (!$this->data['password']) { - $this->errors=$this->errors.$sep_err."2"; - $sep_err="|"; - } - if (!$this->data['email']) { - $this->errors=$this->errors.$sep_err."4"; - $sep_err="|"; - } - if (!$this->data['url_installation'] ) { - $this->errors=$this->errors.$sep_err."5"; - $sep_err="|"; - } - if ($this->data['password']!=$_POST['password2']) { - $this->errors=$this->errors.$sep_err."3"; - $sep_err="|"; - } - - $off_r= split("," , $this->data['time_offsets']); - $this->data['offset_time'] = $off_r[0]; - $this->data['offset_city'] = $off_r[1]; - unset($this->data['time_offsets']); - - if(!$this->errors){ - if($this->run($this->data)) - $this->showForm=false; - else{ - $this->errors=$this->errors.$sep_err."6"; - $sep_err="|"; - $this->showForm=true; - } - }else - $this->showForm=true; - } - } - } -} -?> +class Install +{ + public $data = null; + public $errors = null; + public $showForm; + public $errors_d = array(); + + public function __construct() + { + $this->errors_d[1]="The login field cannot be empty"; + $this->errors_d[2]="The password field cannot be empty"; + $this->errors_d[3]="Password does not match the confirm password"; + $this->errors_d[4]="The e-mail field cannot be empty"; + $this->errors_d[5]="The installation URL field cannot be empty"; + $this->errors_d[6]="Error establishing a database connection"; + $this->errors_d[7]="Please add a hostname for the database server"; + $this->errors_d[8]="Please name the database"; + $this->errors_d[9]="Password does not match the confirm password"; + $this->errors_d[10]="The login field cannot be empty"; + } + + public function run() + { + if (empty($this->data)) { + false; + } + + $this->create_db(); + + if (!$this->install_db()) { + return false; + } + + return true; + } + + public function create_db() + { + $db_host = $this->data['db_host']; + $db_name = $this->data['db_name']; + $db_login = $this->data['db_login']; + $db_password = $this->data['db_password']; + + $link = new PDO("mysql:host=$db_host;dbname=$db_name", $db_login, $db_password); + + if (!$link) { + die('Could not connect: ' . $link->errorInfo()); + } + + $sql = 'CREATE DATABASE IF NOT EXISTS ' . $this->data['db_name']; + if (!$link->query($sql)) { + $link = NULL; + return false; + } + + return true; + } + + public function install_db() + { + require_once(Absolute_Path.'config.php'); + $db = new Conexion_Mysql(DB_name, DB_Server, DB_User, DB_Password); + $sqlStr = array(); + + $sqlStr[] = "CREATE TABLE `".Table_prefix."data` ( `id_post` INT(11) NOT NULL AUTO_INCREMENT , `title` TEXT NULL , `url` VARCHAR(250) NULL DEFAULT NULL , `description` TEXT NULL , `type` TINYINT(4) NOT NULL DEFAULT '1' , `date` DATETIME NOT NULL , `id_user` INT(10) NOT NULL , PRIMARY KEY (`id_post`)) ENGINE = MyISAM;"; + + $sqlStr[] = "CREATE TABLE `".Table_prefix."users` ( `id_user` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT , `name` VARCHAR(100) NULL DEFAULT NULL , `login` VARCHAR(100) NOT NULL DEFAULT '' , `password` VARCHAR(64) NOT NULL DEFAULT '' , `email` VARCHAR(100) NULL DEFAULT NULL , `website` VARCHAR(150) NULL DEFAULT NULL , `about` TEXT NOT NULL , PRIMARY KEY (`id_user`)) ENGINE = MyISAM;"; + + $sqlStr[] = "CREATE TABLE `".Table_prefix."config` ( `posts_limit` INT(3) NOT NULL , `title` VARCHAR(250) NOT NULL , `description` TEXT NOT NULL , `lang` VARCHAR(10) NOT NULL , `template` VARCHAR(100) NOT NULL , `url_installation` VARCHAR(250) NOT NULL , PRIMARY KEY (`title`)) ENGINE = MyISAM;"; + + $sqlStr[] = "CREATE TABLE `".Table_prefix."options` ( `name` VARCHAR(100) NOT NULL , `val` VARCHAR(255) NOT NULL , PRIMARY KEY (`name`)) ENGINE = MyISAM;"; + + + $sqlStr[] = "CREATE TABLE `".Table_prefix."comments` ( `id_comment` INT(11) NOT NULL AUTO_INCREMENT , `id_post` INT(11) NOT NULL , `username` VARCHAR(50) NOT NULL , `email` VARCHAR(100) NOT NULL , `web` VARCHAR(250) NULL DEFAULT NULL , `content` TEXT NOT NULL , `ip_user` VARCHAR(50) NOT NULL , `comment_date` DATETIME NOT NULL , `spam` TINYINT(4) NOT NULL , PRIMARY KEY (`id_comment`)) ENGINE = MyISAM;"; + + $sqlStr[] = "CREATE TABLE `".Table_prefix."feeds` ( `id_feed` INT(11) NOT NULL AUTO_INCREMENT , `url` VARCHAR(255) NOT NULL , `title` VARCHAR(255) NOT NULL , `type` TINYINT(4) NOT NULL DEFAULT '1' , `updated_at` DATETIME NOT NULL , `error` TINYINT(1) NOT NULL DEFAULT '0' , `credits` INT(1) NOT NULL DEFAULT '0' , `site_url` VARCHAR(255) NOT NULL , `id_user` INT(10) NOT NULL , PRIMARY KEY (`id_feed`)) ENGINE = MyISAM;"; + + $sqlStr[] = "INSERT INTO `".Table_prefix."config` VALUES (". $db->sql_escape($this->data['posts_limit']).", ".$db->sql_escape($this->data['title']).", ".$db->sql_escape($this->data['description']).", ".$db->sql_escape($this->data['lang']).", ".$db->sql_escape($this->data['template']).", ".$db->sql_escape($this->data['url_installation']).");"; + $sqlStr[] = "INSERT INTO `".Table_prefix."users` VALUES ('', '', ".$db->sql_escape($this->data['login']).", ".md5($this->data['password']).", ".$db->sql_escape($this->data['email']).", ".$db->sql_escape($this->data['website']).", ".$db->sql_escape($this->data['about']).");"; + $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('url_friendly', '0');"; + $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('rich_text', '0');"; + $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('allow_comments', '0');"; + $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('offset_city', ".$db->sql_escape($this->data['offset_city']).");"; + $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('offset_time', ".$db->sql_escape($this->data['offset_time']).");"; + $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('shorten_links', '0');"; + $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('rss_import_frec', '5 minutes');"; + $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('check_version', '1');"; + $sqlStr[] = "INSERT INTO `".Table_prefix."options` VALUES ('active_plugins', '[{\"total\":0},[]]');"; + + foreach ($sqlStr as $key => $query) { + if (!$db->ejecutarConsulta($query)) { + return false; + } + } + + return true; + } + + public function inerrors($n) + { + if (strpos($this->errors, (string)$n)===false) { + return false; + } + return true; + } + + public function mostrarerror($n) + { + if ($this->inerrors($n)) { + return ''.$this->errors_d[$n].''; + } else { + return ""; + } + } + + public function is_gelato_installed() + { + if (file_exists(Absolute_Path.'config.php')) { + include_once(Absolute_Path."config.php"); + if (!$this->check_for_config()) { + return false; + } else { + if (!$this->is_db_installed()) { + return false; + } + } + return true; + } else { + return false; + } + } + + public function is_db_installed() + { + $db = new Conexion_Mysql(DB_name, DB_Server, DB_User, DB_Password); + $sqlStr = "SELECT * FROM `".Table_prefix."config`"; + if ($db->ejecutarConsulta($sqlStr)) { + return ($db->contarRegistros() > 0); + } else { + return false; + } + } + + public function check_for_config() + { + if (!defined('DB_Server')) { + return false; + } + if (!defined('DB_name')) { + return false; + } + if (!defined('DB_User')) { + return false; + } + if (!defined('DB_Password')) { + return false; + } + return true; + } + + public function check_form() + { + $action=""; + + if (isset($this->data['action'])) { + $action=$this->data['action']; + } + + if (!$this->is_gelato_installed()) { + $this->showForm = true; + + if ($action=="config") { + $sep_err=""; + $this->errors = false; + + if (!$this->data['login']) { + $this->errors =$this->errors.$sep_err."1"; + $sep_err="|"; + } + if (!$this->data['db_login']) { + $this->errors =$this->errors.$sep_err."10"; + $sep_err="|"; + } + if (!$this->data['password']) { + $this->errors=$this->errors.$sep_err."2"; + $sep_err="|"; + } + if (!$this->data['email']) { + $this->errors=$this->errors.$sep_err."4"; + $sep_err="|"; + } + if (!$this->data['url_installation']) { + $this->errors=$this->errors.$sep_err."5"; + $sep_err="|"; + } + if (!$this->data['db_host']) { + $this->errors=$this->errors.$sep_err."7"; + $sep_err="|"; + } + if (!$this->data['db_name']) { + $this->errors=$this->errors.$sep_err."8"; + $sep_err="|"; + } + if ($this->data['password']!=$_POST['password2']) { + $this->errors=$this->errors.$sep_err."3"; + $sep_err="|"; + } + if ($_POST['db_password']!=$_POST['db_password2']) { + $this->errors=$this->errors.$sep_err."9"; + $sep_err="|"; + } + + $off_r= explode(",", $this->data['time_offsets']); + $this->data['offset_time'] = $off_r[0]; + $this->data['offset_city'] = $off_r[1]; + unset($this->data['time_offsets']); + + if (!$this->errors) { + if ($this->run($this->data)) { + $this->showForm=false; + } else { + $this->errors=$this->errors.$sep_err."6"; + $sep_err="|"; + $this->showForm=true; + } + } else { + $this->showForm=true; + } + } + } + } +} diff --git a/classes/lang.functions.php b/classes/lang.functions.php old mode 100644 new mode 100755 index b00ea7b..5f99b41 --- a/classes/lang.functions.php +++ b/classes/lang.functions.php @@ -1,36 +1,39 @@ - - - =========================== */ + + + =========================== */ ?> -translate($text); - return $text; -} - -function T_ngettext($single, $plural, $number) { - global $l10n; - return $l10n->ngettext($single, $plural, $number); -} +translate($text); +} + +function T_ngettext($single, $plural, $number) +{ + global $l10n; + return $l10n->ngettext($single, $plural, $number); +} ?> diff --git a/classes/mysql_connection.class.php b/classes/mysql_connection.class.php old mode 100644 new mode 100755 index 721c2dd..972728d --- a/classes/mysql_connection.class.php +++ b/classes/mysql_connection.class.php @@ -1,294 +1,303 @@ -mbase_datos = $bd; - $this->mservidor = $host; - $this->musuario = $user; - $this->mclave = $pass; - - if (!$this->conectar()) { - $mensaje = " +mbase_datos = $bd; + $this->mservidor = $host; + $this->musuario = $user; + $this->mclave = $pass; + + if (!$this->conectar()) { + $mensaje = "

    Error establishing a database connection

    This either means that the username and password information in your config.php file is incorrect or we can't contact the database server at localhost. This could mean your host's database server is down.

    • Are you sure you have the correct username and password?
    • Are you sure that you have typed the correct hostname?
    • Are you sure that the database server is running?
    • -
    "; - die($mensaje); - } - } - - /** Conectar a la base de datos */ - function conectar() { - // Conectamos al servidor - $this->mid_conexion = @mysql_connect($this->mservidor, $this->musuario, $this->mclave); - if (!$this->mid_conexion) { - $this->merror = "No se logr� realizar la conexi�n."; - return false; - } - //seleccionamos la base de datos - if (!@mysql_select_db($this->mbase_datos, $this->mid_conexion)) { - $this->merror = "No se puede abrir la base ".$this->mbase_datos ; - return false; - } - return $this->mid_conexion; // Si todo salio bien regresa el id de la conexi�n - } - - /** Para ejecutar consultas en la conexi�n abierta */ - function ejecutarConsulta($msql = "") { - if ($msql == "") { - $this->merror = "No introdujo la sentencia SQL"; - return false; - } - //ejecutamos la consulta - $this->mid_consulta = mysql_query($msql, $this->mid_conexion); - if (!$this->mid_consulta) { - $this->merror_numero = mysql_errno(); - $this->merror = mysql_error()." error"; - return false; - } - return $this->mid_consulta; // Si todo salio bien regresa el id de la consulta - } - - /** - * Inserta un registro en la DB por cada llave->valor en un arreglo. - * No se debe usar sentencias SQL con esta funcion. - * Para usar sentencias SQL se debe utilizar ejecutarConsulta(). - * - * @param mixed $tabla El nombre de la tabla en la BD. - * @param array $datos Arreglo con los campos que se desean insertar $arreglo['campo'] = 'valor'. - * @return string El ID del insert, verdadero si la tabla no tiene un campo auto_increment o false si ocurre un error. - */ - function insertarDeFormulario($tabla, $datos) { - - if (empty($datos)) { - $this->merror = "Debes de pasar un arreglo como parametro."; - return false; - } - - $cols = '('; - $sqlValues = '('; - - foreach ($datos as $llave=>$valor) { - - $cols .= "$llave,"; - - $tipo_col = $this->obtenerTipoCampo($tabla, $llave); // obtiene el tipo de campo - if (!$tipo_col) return false; // error! - - // determina si se necesita poner comillas al valor. - if (is_null($valor)) { - $sqlValues .= "NULL,"; - } - elseif (substr_count(MYSQL_TYPES_NUMERIC, "$tipo_col ")) { - $sqlValues .= "$valor,"; - } - elseif (substr_count(MYSQL_TYPES_DATE, "$tipo_col ")) { - $valor = $this->formatearFecha($valor, $tipo_col); // formatea las fechas - $sqlValues .= "'$valor',"; - } - elseif (substr_count(MYSQL_TYPES_STRING, "$tipo_col ")) { - $valor = $this->sql_escape($valor); - $sqlValues .= "'$valor',"; - } - } - $cols = rtrim($cols, ',').')'; - $sqlValues = rtrim($sqlValues, ',').')'; - - // inserta los valores en la DB - $sql = "INSERT INTO $tabla $cols VALUES $sqlValues"; - return $this->ejecutarConsulta($sql); - } - - /** - * Modifica un registro en la DB por cada llave->valor en un arreglo. - * No se debe usar sentencias SQL con esta funcion. - * Para usar sentencias SQL se debe utilizar ejecutarConsulta(). - * - * @param mixed $tabla El nombre de la tabla en la BD. - * @param array $datos Arreglo con los campos que se desean insertar $arreglo['campo'] = 'valor'. - * @param mixed $condicion Es basicame una clausula WHERE (sin el WHERE). Por ejemplo, - * "columna=valor AND columna2='otro valor'" seria una condicion. - * @return string El numero de registros afectados o verdadero si no necesitaba actualizarse el registro. - * Falso si ocurrio algun error. - */ - function modificarDeFormulario($tabla, $datos, $condicion="") { - - if (empty($datos)) { - $this->merror = "Debes de pasar un arreglo como parametro."; - return false; - } - - $sql = "UPDATE $tabla SET"; - foreach ($datos as $llave=>$valor) { - $sql .= " $llave="; - - $tipo_col = $this->obtenerTipoCampo($tabla, $llave); // obtiene el tipo de campo - if (!$tipo_col) return false; // error! - - // determina si se necesita poner comillas al valor. - if (is_null($valor)) { - $sql .= "NULL,"; - } - elseif (substr_count(MYSQL_TYPES_NUMERIC, "$tipo_col ")) { - $sql .= "$valor,"; - } - elseif (substr_count(MYSQL_TYPES_DATE, "$tipo_col ")) { - $valor = $this->formatearFecha($valor, $tipo_col); /// formatea las fechas - $sql .= "'$valor',"; - } - elseif (substr_count(MYSQL_TYPES_STRING, "$tipo_col ")) { - $valor = $this->sql_escape($valor); - $sql .= "'$valor',"; - } - } - $sql = rtrim($sql, ','); // elimina la ultima coma - if (!empty($condicion)) $sql .= " WHERE $condicion"; - - // modifica los valores - return $this->ejecutarConsulta($sql); - } - - /** - * Obtiene la informacion sobre un campo usando la funcion mysql_fetch_field. - * - * @param mixed $tabla El nombre de la tabla en la BD. - * @param string $campo El campo del que se desea la informacion. - * @return array Un arreglo con la informacion del campo o false si hay algun error. - */ - function obtenerTipoCampo($tabla, $campo) { - - $r = mysql_query("SELECT $campo FROM $tabla"); - if (!$r) { - $this->merror = mysql_error(); - return false; - } - $ret = mysql_field_type($r, 0); - if (!$ret) { - $this->merror = "No se puede obtener la informacion del campo ".$tabla.$campo."."; - mysql_free_result($r); - return false; - } - mysql_free_result($r); - return $ret; - } - - /** - * Convierte una fecha en formato para DB. - * - * @param mixed $valor Se le puede pasar un valor timestamp como time() o un string como '04/14/2003 5:13 AM'. - * @return date Fecha para insertar en la BD. - */ - function formatearFecha($valor) { - if(!eregi("^.{4}\-.{2}\-.{2}\ .{2}\:.{2}\:.{2}$",$valor)){ - if(eregi("^([0-9]+)$",$valor)){ - $valor = date("Y-m-d H:i:s",$valor); - }else{ - // Estari� en el formato strtotime() - $valor = date("Y-m-d H:i:s",strtotime($valor)); - } - } - return $valor; - /* if (gettype($valor) == 'string') $valor = strtotime($valor); - return date('Y-m-d H:i:s', $valor); - */ - } - - /** - * Obtiene el registro obtenido de una consulta. - */ - function obtenerRegistro() { - return mysql_fetch_assoc($this->mid_consulta); - } - - /** - * Devuelve el n�mero de campos de una consulta. - */ - function contarCampos() { - return mysql_num_fields($this->mid_consulta); - } - - /** - * Devuelve el n�mero de registros de una consulta. - */ - function contarRegistros() { - return @mysql_num_rows($this->mid_consulta); - } - - /** - * Devuelve el nombre de un campo de una consulta. - */ - function obtenerNombreCampo($numero_campo) { - return mysql_field_name($this->mid_consulta, $numero_campo); - } - - /** - * Muestra los datos de una consulta (para debug). - */ - function verConsulta() { - echo "\n"; - // mostramos los nombres de los campos - for ($i = 0; $i < $this->contarCampos(); $i++) { - echo "\n"; - } - echo "\n"; - // mostrarmos los registros - while ($row = mysql_fetch_row($this->mid_consulta)) { - echo " \n"; - for ($i = 0; $i < $this->contarCampos(); $i++) { - echo "\n"; - } - echo "\n"; - } - } - - /** - * Cierra la conexion a la BD. - */ - function cierraConexion() { - mysql_free_result($this->mid_consulta); - } - - function sql_escape($value) { - if(get_magic_quotes_gpc()) { - $value = stripslashes($value); - } - if( function_exists("mysql_real_escape_string")) { - $value = mysql_real_escape_string($value); - } else { - $value = addslashes($value); - } - return $value; - } -} //fin de la Clase conexion_mysql -?> + "; + die($mensaje); + } + } + + /** Conectar a la base de datos */ + public function conectar() + { + // Conectamos al servidor + try { + $this->mid_conexion = new PDO("mysql:host=$this->mservidor;dbname=$this->mbase_datos;charset=utf8", $this->musuario, $this->mclave); + } + catch (Exception $e) { + $this->merror = $e->getMessage(); + return false; + } + return $this->mid_conexion; // Si todo salio bien regresa el id de la conexi�n + } + + /** Para ejecutar consultas en la conexi�n abierta */ + public function ejecutarConsulta($msql = "") + { + if (empty($msql)) { + $this->merror = "No SQL statement entered"; + return false; + } + //ejecutamos la consulta + $this->mid_consulta = $this->mid_conexion->query($msql); + if (!$this->mid_consulta) { + $this->merror_numero = $this->mid_conexion->errorCode(); + $this->merror = $this->mid_conexion->errorInfo(); + die(var_dump($this->merror)); + return false; + } + return $this->mid_consulta; // Si todo salio bien regresa el id de la consulta + } + + /** + * Inserta un registro en la DB por cada llave->valor en un arreglo. + * No se debe usar sentencias SQL con esta funcion. + * Para usar sentencias SQL se debe utilizar ejecutarConsulta(). + * + * @param mixed $tabla El nombre de la tabla en la BD. + * @param array $datos Arreglo con los campos que se desean insertar $arreglo['campo'] = 'valor'. + * @return string El ID del insert, verdadero si la tabla no tiene un campo auto_increment o false si ocurre un error. + */ + public function insertarDeFormulario($tabla, $datos) + { + if (empty($datos)) { + $this->merror = "Debes de pasar un arreglo como parametro."; + return false; + } + + $cols = '('; + $sqlValues = '('; + + foreach ($datos as $llave=>$valor) { + $cols .= "$llave,"; + + $tipo_col = $this->obtenerTipoCampo($tabla, $llave); // obtiene el tipo de campo + if (!$tipo_col) { + return false; + } // error! + + // determina si se necesita poner comillas al valor. + if (is_null($valor)) { + $sqlValues .= "NULL,"; + } elseif (substr_count(MYSQL_TYPES_NUMERIC, "$tipo_col ")) { + $sqlValues .= "$valor,"; + } elseif (substr_count(MYSQL_TYPES_DATE, "$tipo_col ")) { + $valor = $this->formatearFecha($valor, $tipo_col); // formatea las fechas + $sqlValues .= "'$valor',"; + } elseif (substr_count(MYSQL_TYPES_STRING, "$tipo_col ")) { + $valor = $this->sql_escape($valor); + $sqlValues .= "'$valor',"; + } + } + $cols = rtrim($cols, ',').')'; + $sqlValues = rtrim($sqlValues, ',').')'; + + // inserta los valores en la DB + $sql = "INSERT INTO $tabla $cols VALUES $sqlValues"; + return $this->ejecutarConsulta($sql); + } + + /** + * Modifica un registro en la DB por cada llave->valor en un arreglo. + * No se debe usar sentencias SQL con esta funcion. + * Para usar sentencias SQL se debe utilizar ejecutarConsulta(). + * + * @param mixed $tabla El nombre de la tabla en la BD. + * @param array $datos Arreglo con los campos que se desean insertar $arreglo['campo'] = 'valor'. + * @param mixed $condicion Es basicame una clausula WHERE (sin el WHERE). Por ejemplo, + * "columna=valor AND columna2='otro valor'" seria una condicion. + * @return string El numero de registros afectados o verdadero si no necesitaba actualizarse el registro. + * Falso si ocurrio algun error. + */ + public function modificarDeFormulario($tabla, $datos, $condicion="") + { + if (empty($datos)) { + $this->merror = "Debes de pasar un arreglo como parametro."; + return false; + } + + $sql = "UPDATE $tabla SET"; + foreach ($datos as $llave=>$valor) { + $sql .= " $llave="; + + $tipo_col = $this->obtenerTipoCampo($tabla, $llave); // obtiene el tipo de campo + if (!$tipo_col) { + return false; + } // error! + + // determina si se necesita poner comillas al valor. + if (is_null($valor)) { + $sql .= "NULL,"; + } elseif (substr_count(MYSQL_TYPES_NUMERIC, "$tipo_col ")) { + $sql .= "$valor,"; + } elseif (substr_count(MYSQL_TYPES_DATE, "$tipo_col ")) { + $valor = $this->formatearFecha($valor, $tipo_col); /// formatea las fechas + $sql .= "'$valor',"; + } elseif (substr_count(MYSQL_TYPES_STRING, "$tipo_col ")) { + $valor = $this->sql_escape($valor); + $sql .= "'$valor',"; + } + } + $sql = rtrim($sql, ','); // elimina la ultima coma + if (!empty($condicion)) { + $sql .= " WHERE $condicion"; + } + + // modifica los valores + return $this->ejecutarConsulta($sql); + } + + /** + * Obtiene la informacion sobre un campo usando la funcion mysql_fetch_field. + * + * @param mixed $tabla El nombre de la tabla en la BD. + * @param string $campo El campo del que se desea la informacion. + * @return array Un arreglo con la informacion del campo o false si hay algun error. + */ + public function obtenerTipoCampo($tabla, $campo) + { + $r = $this->mid_conexion->query("SELECT $campo FROM $tabla"); + if (!$r) { + $this->merror = $this->mid_conexion->errorInfo(); + return false; + } + $ret = $r->getColumnMeta(0); + if (!$ret) { + $this->merror = "Field information cannot be obtained : ".$tabla.$campo."."; + $r->closeCursor(); + return false; + } + $r->closeCursor(); + return $ret; + } + + /** + * Convierte una fecha en formato para DB. + * + * @param mixed $valor Se le puede pasar un valor timestamp como time() o un string como '04/14/2003 5:13 AM'. + * @return date Fecha para insertar en la BD. + */ + public function formatearFecha($valor) + { + if (!preg_match("/^.{4}\-.{2}\-.{2}\ .{2}\:.{2}\:.{2}$/i", $valor)) { + if (preg_match("/^([0-9]+)$/i", $valor)) { + $valor = date("Y-m-d H:i:s", $valor); + } else { + // Estari� en el formato strtotime() + $valor = date("Y-m-d H:i:s", strtotime($valor)); + } + } + return $valor; + /* if (gettype($valor) == 'string') $valor = strtotime($valor); + return date('Y-m-d H:i:s', $valor); + */ + } + + /** + * Obtiene el registro obtenido de una consulta. + */ + public function obtenerRegistro() + { + return $this->mid_consulta->fetch(PDO::FETCH_ASSOC); + } + + /** + * Devuelve el n�mero de campos de una consulta. + */ + public function contarCampos() + { + return $this->mid_consulta->columnCount(); + } + + /** + * Devuelve el n�mero de registros de una consulta. + */ + public function contarRegistros() + { + return @$this->mid_consulta->rowCount(); + } + + /** + * Devuelve el nombre de un campo de una consulta. + */ + public function obtenerNombreCampo($numero_campo) + { + return $this->mid_consulta->getColumnMeta($numero_campo); + } + + /** + * Muestra los datos de una consulta (para debug). + */ + public function verConsulta() + { + echo "
    ".$this->obtenerNombreCampo($i)."
    ".$row[$i]."
    \n"; + // mostramos los nombres de los campos + for ($i = 0; $i < $this->contarCampos(); $i++) { + echo "\n"; + } + echo "\n"; + // mostrarmos los registros + while ($row = $this->mid_consulta->fetch(PDO::FETCH_NUM)) { + echo " \n"; + for ($i = 0; $i < $this->contarCampos(); $i++) { + echo "\n"; + } + echo "\n"; + } + } + + /** + * Cierra la conexion a la BD. + */ + public function cierraConexion() + { + $this->mid_consulta->closeCursor(); + } + + public function sql_escape($value) + { + if (get_magic_quotes_gpc()) { + $value = stripslashes($value); + } + if (method_exists("PDO", "quote")) { + $value = $this->mid_conexion->quote($value); + } else { + $value = addslashes($value); + } + return $value; + } +} //fin de la Clase conexion_mysql diff --git a/classes/pagination.class.php b/classes/pagination.class.php old mode 100644 new mode 100755 index e9d8e5b..4c173a0 --- a/classes/pagination.class.php +++ b/classes/pagination.class.php @@ -1,204 +1,267 @@ -total_pages = intval($value);} - - #how many items to show per page - function limit($value){$this->limit = intval($value);} - - #Page to sent the page value - function target($value){$this->target = $value;} - - #Current page - function currentPage($value){$this->page = intval($value);} - - #How many adjacent pages should be shown on each side of the current page? - function adjacents($value){$this->adjacents = intval($value);} - - #show counter? - function showCounter($value=""){$this->showCounter=($value===true)?true:false;} - - #to change the class name of the pagination div - function changeClass($value=""){$this->className=$value;} - - function nextLabel($value){$this->nextT = $value;} - function nextIcon($value){$this->nextI = $value;} - function prevLabel($value){$this->prevT = $value;} - function prevIcon($value){$this->prevI = $value;} - - #to change the class name of the pagination div - function parameterName($value=""){$this->parameterName=$value;} - - #to change urlFriendly - function urlFriendly($value="%"){ - if(eregi('^ *$',$value)){ - $this->urlF=false; - return false; - } - $this->urlF=$value; - } - - var $pagination; - - function pagination(){} - function show(){ - if(!$this->calculate) - if($this->calculate()) - echo "
    className\">$this->pagination
    "; - } - function getPagination(){ - if(!$this->calculate) - if($this->calculate()) - return "
    className\">$this->pagination
    "; - } - function get_pagenum_link($id){ - //if(strpos($this->target,'?')===false) - if($this->urlF) - return str_replace($this->urlF,$id,$this->target); - - else - return "$this->target?$this->parameterName=$id"; - //else - //return "$this->target&$this->parameterName=$id"; - - } - - function calculate(){ - $this->pagination = ""; - $this->calculate == true; - $error = false; - if($this->urlF and $this->urlF != '%' and strpos($this->target,$this->urlF)===false){ - //Es necesario especificar el comodin para sustituir - echo "Especificaste un wildcard para sustituir, pero no existe en el target
    "; - $error = true; - }elseif($this->urlF and $this->urlF == '%' and strpos($this->target,$this->urlF)===false){ - echo "Es necesario especificar en el target el comodin % para sustituir el n�mero de p�gina
    "; - $error = true; - } - if($this->total_pages == null){ - echo "It is necessary to specify the number of pages (\$class->items(1000))
    "; - $error = true; - } - if($this->limit == null){ - echo "It is necessary to specify the limit of items to show per page (\$class->limit(10))
    "; - $error = true; - } - if($error)return false; - - $n = trim($this->nextT.' '.$this->nextI); - $p = trim($this->prevI.' '.$this->prevT); - - /* Setup vars for query. */ - if($this->page) - $start = ($this->page - 1) * $this->limit; //first item to display on this page - else - $start = 0; //if no page var is given, set start to 0 - - /* Setup page vars for display. */ - if ($this->page == 0) $this->page = 1; //if no page var is given, default to 1. - $prev = $this->page - 1; //previous page is page - 1 - $next = $this->page + 1; //next page is page + 1 - $lastpage = ceil($this->total_pages/$this->limit); //lastpage is = total pages / items per page, rounded up. - $lpm1 = $lastpage - 1; //last page minus 1 - - /* - Now we apply our rules and draw the pagination object. - We're actually saving the code to a variable in case we want to draw it more than once. - */ - - if($lastpage > 1){ - //anterior button - if($this->page > 1) - $this->pagination .= "get_pagenum_link($prev)."\">$p"; - else - $this->pagination .= "$p"; - //pages - if ($lastpage < 7 + ($this->adjacents * 2)){//not enough pages to bother breaking it up - for ($counter = 1; $counter <= $lastpage; $counter++){ - if ($counter == $this->page) - $this->pagination .= "$counter"; - else - $this->pagination .= "get_pagenum_link($counter)."\">$counter"; - } - } - elseif($lastpage > 5 + ($this->adjacents * 2)){//enough pages to hide some - //close to beginning; only hide later pages - if($this->page < 1 + ($this->adjacents * 2)){ - for ($counter = 1; $counter < 4 + ($this->adjacents * 2); $counter++){ - if ($counter == $this->page) - $this->pagination .= "$counter"; - else - $this->pagination .= "get_pagenum_link($counter)."\">$counter"; - } - $this->pagination .= "..."; - $this->pagination .= "get_pagenum_link($lpm1)."\">$lpm1"; - $this->pagination .= "get_pagenum_link($lastpage)."\">$lastpage"; - } - //in middle; hide some front and some back - elseif($lastpage - ($this->adjacents * 2) > $this->page && $this->page > ($this->adjacents * 2)){ - $this->pagination .= "get_pagenum_link(1)."\">1"; - $this->pagination .= "get_pagenum_link(2)."\">2"; - $this->pagination .= "..."; - for ($counter = $this->page - $this->adjacents; $counter <= $this->page + $this->adjacents; $counter++) - if ($counter == $this->page) - $this->pagination .= "$counter"; - else - $this->pagination .= "get_pagenum_link($counter)."\">$counter"; - $this->pagination .= "..."; - $this->pagination .= "get_pagenum_link($lpm1)."\">$lpm1"; - $this->pagination .= "get_pagenum_link($lastpage)."\">$lastpage"; - } - //close to end; only hide early pages - else{ - $this->pagination .= "get_pagenum_link(1)."\">1"; - $this->pagination .= "get_pagenum_link(2)."\">2"; - $this->pagination .= "..."; - for ($counter = $lastpage - (2 + ($this->adjacents * 2)); $counter <= $lastpage; $counter++) - if ($counter == $this->page) - $this->pagination .= "$counter"; - else - $this->pagination .= "get_pagenum_link($counter)."\">$counter"; - } - } - //siguiente button - if ($this->page < $counter - 1) - $this->pagination .= "get_pagenum_link($next)."\">$n"; - else - $this->pagination .= "$n"; - if($this->showCounter)$this->pagination .= "
    ($this->total_pages Pages)
    "; - } - - return true; - } - } -?> \ No newline at end of file +total_pages = intval($value); + } + + #how many items to show per page + public function limit($value) + { + $this->limit = intval($value); + } + + #Page to sent the page value + public function target($value) + { + $this->target = $value; + } + + #Current page + public function currentPage($value) + { + $this->page = intval($value); + } + + #How many adjacent pages should be shown on each side of the current page? + public function adjacents($value) + { + $this->adjacents = intval($value); + } + + #show counter? + public function showCounter($value="") + { + $this->showCounter=($value===true)?true:false; + } + + #to change the class name of the pagination div + public function changeClass($value="") + { + $this->className=$value; + } + + public function nextLabel($value) + { + $this->nextT = $value; + } + public function nextIcon($value) + { + $this->nextI = $value; + } + public function prevLabel($value) + { + $this->prevT = $value; + } + public function prevIcon($value) + { + $this->prevI = $value; + } + + #to change the class name of the pagination div + public function parameterName($value="") + { + $this->parameterName=$value; + } + + #to change urlFriendly + public function urlFriendly($value="%") + { + if (eregi('^ *$', $value)) { + $this->urlF=false; + return false; + } + $this->urlF=$value; + } + + public $pagination; + + public function __construct() + { + } + public function show() + { + if (!$this->calculate) { + if ($this->calculate()) { + echo "
    className\">$this->pagination
    "; + } + } + } + public function getPagination() + { + if (!$this->calculate) { + if ($this->calculate()) { + return "
    className\">$this->pagination
    "; + } + } + } + public function get_pagenum_link($id) + { + //if(strpos($this->target,'?')===false) + if ($this->urlF) { + return str_replace($this->urlF, $id, $this->target); + } else { + return "$this->target?$this->parameterName=$id"; + } + //else + //return "$this->target&$this->parameterName=$id"; + } + + public function calculate() + { + $this->pagination = ""; + $this->calculate == true; + $error = false; + if ($this->urlF and $this->urlF != '%' and strpos($this->target, $this->urlF)===false) { + //Es necesario especificar el comodin para sustituir + echo "Especificaste un wildcard para sustituir, pero no existe en el target
    "; + $error = true; + } elseif ($this->urlF and $this->urlF == '%' and strpos($this->target, $this->urlF)===false) { + echo "Es necesario especificar en el target el comodin % para sustituir el n�mero de p�gina
    "; + $error = true; + } + if ($this->total_pages == null) { + echo "It is necessary to specify the number of pages (\$class->items(1000))
    "; + $error = true; + } + if ($this->limit == null) { + echo "It is necessary to specify the limit of items to show per page (\$class->limit(10))
    "; + $error = true; + } + if ($error) { + return false; + } + + $n = trim($this->nextT.' '.$this->nextI); + $p = trim($this->prevI.' '.$this->prevT); + + /* Setup vars for query. */ + if ($this->page) { + $start = ($this->page - 1) * $this->limit; + } //first item to display on this page + else { + $start = 0; + } //if no page var is given, set start to 0 + + /* Setup page vars for display. */ + if ($this->page == 0) { + $this->page = 1; + } //if no page var is given, default to 1. + $prev = $this->page - 1; //previous page is page - 1 + $next = $this->page + 1; //next page is page + 1 + $lastpage = ceil($this->total_pages/$this->limit); //lastpage is = total pages / items per page, rounded up. + $lpm1 = $lastpage - 1; //last page minus 1 + + /* + Now we apply our rules and draw the pagination object. + We're actually saving the code to a variable in case we want to draw it more than once. + */ + + if ($lastpage > 1) { + //anterior button + if ($this->page > 1) { + $this->pagination .= "get_pagenum_link($prev)."\">$p"; + } else { + $this->pagination .= "$p"; + } + //pages + if ($lastpage < 7 + ($this->adjacents * 2)) {//not enough pages to bother breaking it up + for ($counter = 1; $counter <= $lastpage; $counter++) { + if ($counter == $this->page) { + $this->pagination .= "$counter"; + } else { + $this->pagination .= "get_pagenum_link($counter)."\">$counter"; + } + } + } elseif ($lastpage > 5 + ($this->adjacents * 2)) {//enough pages to hide some + //close to beginning; only hide later pages + if ($this->page < 1 + ($this->adjacents * 2)) { + for ($counter = 1; $counter < 4 + ($this->adjacents * 2); $counter++) { + if ($counter == $this->page) { + $this->pagination .= "$counter"; + } else { + $this->pagination .= "get_pagenum_link($counter)."\">$counter"; + } + } + $this->pagination .= "..."; + $this->pagination .= "get_pagenum_link($lpm1)."\">$lpm1"; + $this->pagination .= "get_pagenum_link($lastpage)."\">$lastpage"; + } + //in middle; hide some front and some back + elseif ($lastpage - ($this->adjacents * 2) > $this->page && $this->page > ($this->adjacents * 2)) { + $this->pagination .= "get_pagenum_link(1)."\">1"; + $this->pagination .= "get_pagenum_link(2)."\">2"; + $this->pagination .= "..."; + for ($counter = $this->page - $this->adjacents; $counter <= $this->page + $this->adjacents; $counter++) { + if ($counter == $this->page) { + $this->pagination .= "$counter"; + } else { + $this->pagination .= "get_pagenum_link($counter)."\">$counter"; + } + } + $this->pagination .= "..."; + $this->pagination .= "get_pagenum_link($lpm1)."\">$lpm1"; + $this->pagination .= "get_pagenum_link($lastpage)."\">$lastpage"; + } + //close to end; only hide early pages + else { + $this->pagination .= "get_pagenum_link(1)."\">1"; + $this->pagination .= "get_pagenum_link(2)."\">2"; + $this->pagination .= "..."; + for ($counter = $lastpage - (2 + ($this->adjacents * 2)); $counter <= $lastpage; $counter++) { + if ($counter == $this->page) { + $this->pagination .= "$counter"; + } else { + $this->pagination .= "get_pagenum_link($counter)."\">$counter"; + } + } + } + } + //siguiente button + if ($this->page < $counter - 1) { + $this->pagination .= "get_pagenum_link($next)."\">$n"; + } else { + $this->pagination .= "$n"; + } + if ($this->showCounter) { + $this->pagination .= "
    ($this->total_pages Pages)
    "; + } + } + + return true; + } +} diff --git a/classes/plugin.class.php b/classes/plugin.class.php old mode 100644 new mode 100755 index ef5b5bb..d3793e3 --- a/classes/plugin.class.php +++ b/classes/plugin.class.php @@ -1,65 +1,68 @@ - - - =========================== */ + + + =========================== */ ?> -exists($name)) { - return false; - } - - $index = 0; - - foreach ($GLOBALS['plugins::$instances'] as $plugin) { - if(array_key_exists($index,$this->actions[$name])){ - $action = $this->actions[$name][$index][1]; - if (is_callable(array($plugin, $action))) { - $plugin->$action(); - $index++; - } - } - } - } - - function exists($name) { - if (isset($this->exists[$name])) { - return $this->exists[$name]; - } - - foreach ($GLOBALS['plugins::$instances'] as $plugin) { - if(array_key_exists($name,$this->actions)){ - if (is_callable(array($plugin, $this->actions[$name][0][1]))) { - return $this->exists[$name] = true; - } - } - } - - return $this->exists[$name] = false; - } - - //I really hate you PHP4's OOP implementation - function &instance() { - static $instance; - if (!isset($instance)) { - $instance = new plugin(); - } - return $instance; - } - - } +exists($name)) { + return false; + } + + $index = 0; + + foreach ($GLOBALS['plugins::$instances'] as $plugin) { + if (array_key_exists($index, $this->actions[$name])) { + $action = $this->actions[$name][$index][1]; + if (is_callable(array($plugin, $action))) { + $plugin->$action(); + $index++; + } + } + } + } + + public function exists($name) + { + if (isset($this->exists[$name])) { + return $this->exists[$name]; + } + + foreach ($GLOBALS['plugins::$instances'] as $plugin) { + if (array_key_exists($name, $this->actions)) { + if (is_callable(array($plugin, $this->actions[$name][0][1]))) { + return $this->exists[$name] = true; + } + } + } + + return $this->exists[$name] = false; + } + + //I really hate you PHP4's OOP implementation + public function &instance() + { + static $instance; + if (!isset($instance)) { + $instance = new plugin(); + } + return $instance; + } + } ?> diff --git a/classes/plugins.class.php b/classes/plugins.class.php old mode 100644 new mode 100755 index 41dd6eb..7858365 --- a/classes/plugins.class.php +++ b/classes/plugins.class.php @@ -1,26 +1,28 @@ - - - =========================== */ + + + =========================== */ ?> -actions[$name][] = array($this, $function); - } - - } +actions[$name][] = array($this, $function); + } + } ?> diff --git a/classes/simplepie.class.php b/classes/simplepie.class.php old mode 100644 new mode 100755 index 1efb6b7..de514a7 --- a/classes/simplepie.class.php +++ b/classes/simplepie.class.php @@ -1,5449 +1,4548 @@ -useragent = $this->name . '/' . $this->version . ' (Feed Parser; ' . $this->url . '; Allow like Gecko) Build/' . $this->build; - $this->linkback = '' . $this->name . ''; - - // Other objects, instances created here so we can set options on them - $this->sanitize = new SimplePie_Sanitize; - - // Set options if they're passed to the constructor - if (!is_null($feed_url)) - { - $this->feed_url($feed_url); - } - - if (!is_null($cache_location)) - { - $this->cache_location($cache_location); - } - - if (!is_null($cache_max_minutes)) - { - $this->cache_max_minutes($cache_max_minutes); - } - - // If we've passed an xmldump variable in the URL, snap into XMLdump mode - if (isset($_GET['xmldump'])) - { - $this->enable_xmldump(true); - } - - // Only init the script if we're passed a feed URL - if (!is_null($feed_url)) - { - return $this->init(); - } - } - - function feed_url($url) - { - $this->rss_url = SimplePie_Misc::fix_protocol($url, 1); - } - - function set_file(&$file) - { - if (is_a($file, 'SimplePie_File')) - { - $this->rss_url = $file->url; - $this->file =& $file; - } - } - - function set_timeout($timeout = 10) - { - $this->timeout = (int) $timeout; - } - - function set_raw_data($data) - { - $this->raw_data = trim((string) $data); - } - - function enable_xmldump($enable = false) - { - $this->xml_dump = (bool) $enable; - } - - function enable_caching($enable = true) - { - $this->enable_cache = (bool) $enable; - } - - function cache_max_minutes($minutes = 60) - { - $this->max_minutes = (float) $minutes; - } - - function cache_location($location = './cache') - { - $this->cache_location = (string) $location; - } - - function order_by_date($enable = true) - { - $this->order_by_date = (bool) $enable; - } - - function input_encoding($encoding = false) - { - if ($encoding) - { - $this->input_encoding = (string) $encoding; - } - else - { - $this->input_encoding = false; - } - } - - function set_cache_class($class = 'SimplePie_Cache') - { - if (SimplePie_Misc::is_a_class($class, 'SimplePie_Cache')) - { - $this->cache_class = $class; - return true; - } - return false; - } - - function set_locator_class($class = 'SimplePie_Locator') - { - if (SimplePie_Misc::is_a_class($class, 'SimplePie_Locator')) - { - $this->locator_class = $class; - return true; - } - return false; - } - - function set_parser_class($class = 'SimplePie_Parser') - { - if (SimplePie_Misc::is_a_class($class, 'SimplePie_Parser')) - { - $this->parser_class = $class; - return true; - } - return false; - } - - function set_file_class($class = 'SimplePie_File') - { - if (SimplePie_Misc::is_a_class($class, 'SimplePie_File')) - { - $this->file_class = $class; - return true; - } - return false; - } - - function set_sanitize_class($object = 'SimplePie_Sanitize') - { - if (class_exists($object)) - { - $this->sanitize = new $object; - return true; - } - return false; - } - - function set_useragent($ua) - { - $this->useragent = (string) $ua; - } - - function force_fsockopen($enable = false) - { - $this->force_fsockopen = (bool) $enable; - } - - function set_cache_name_type($type = 'sha1') - { - $type = strtolower(trim($type)); - switch ($type) - { - case 'crc32': - $this->cache_name_type = 'crc32'; - break; - - case 'md5': - $this->cache_name_type = 'md5'; - break; - - case 'rawurlencode': - $this->cache_name_type = 'rawurlencode'; - break; - - case 'urlencode': - $this->cache_name_type = 'urlencode'; - break; - - default: - $this->cache_name_type = 'sha1'; - break; - } - } - - function bypass_image_hotlink($get = false) - { - $this->sanitize->bypass_image_hotlink($get); - } - - function bypass_image_hotlink_page($page = false) - { - $this->sanitize->bypass_image_hotlink_page($page); - } - - function replace_headers($enable = false) - { - $this->sanitize->replace_headers($enable); - } - - function remove_div($enable = true) - { - $this->sanitize->remove_div($enable); - } - - function strip_ads($enable = false) - { - $this->sanitize->strip_ads($enable); - } - - function strip_htmltags($tags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'), $encode = null) - { - $this->sanitize->strip_htmltags($tags); - if (!is_null($encode)) - { - $this->sanitize->encode_instead_of_strip($tags); - } - } - - function encode_instead_of_strip($enable = true) - { - $this->sanitize->encode_instead_of_strip($enable); - } - - function strip_attributes($attribs = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur')) - { - $this->sanitize->strip_attributes($attribs); - } - - function output_encoding($encoding = 'UTF-8') - { - $this->sanitize->output_encoding($encoding); - } - - function set_item_class($class = 'SimplePie_Item') - { - return $this->sanitize->set_item_class($class); - } - - function set_author_class($class = 'SimplePie_Author') - { - return $this->sanitize->set_author_class($class); - } - - function set_enclosure_class($class = 'SimplePie_Enclosure') - { - return $this->sanitize->set_enclosure_class($class); - } - - function init() - { - if (!(function_exists('version_compare') && ((version_compare(phpversion(), '4.3.2', '>=') && version_compare(phpversion(), '5', '<')) || version_compare(phpversion(), '5.0.3', '>='))) || !extension_loaded('xml') || !extension_loaded('pcre')) - { - return false; - } - if ($this->sanitize->bypass_image_hotlink && !empty($_GET[$this->sanitize->bypass_image_hotlink])) - { - if (get_magic_quotes_gpc()) - { - $_GET[$this->sanitize->bypass_image_hotlink] = stripslashes($_GET[$this->sanitize->bypass_image_hotlink]); - } - SimplePie_Misc::display_file($_GET[$this->sanitize->bypass_image_hotlink], 10, $this->useragent); - } - - if (isset($_GET['js'])) - { - $embed = <<'); -} - -function embed_quicktime(type, bgcolor, width, height, link, placeholder, loop) { - if (placeholder != '') { - document.writeln(''); - } - else { - document.writeln(''); - } -} - -function embed_flash(bgcolor, width, height, link, loop, type) { - document.writeln(''); -} - -function embed_wmedia(width, height, link) { - document.writeln(''); -} -EOT; - - if (function_exists('ob_gzhandler')) - { - ob_start('ob_gzhandler'); - } - header('Content-type: text/javascript; charset: UTF-8'); - header('Cache-Control: must-revalidate'); - header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 86400) . ' GMT'); - echo $embed; - exit; - } - - if (!empty($this->rss_url) || !empty($this->raw_data)) - { - $this->data = array(); - $cache = false; - - if (!empty($this->rss_url)) - { - // Decide whether to enable caching - if ($this->enable_cache && preg_match('/^http(s)?:\/\//i', $this->rss_url)) - { - $cache = new $this->cache_class($this->cache_location, call_user_func($this->cache_name_type, $this->rss_url), 'spc'); - } - // If it's enabled and we don't want an XML dump, use the cache - if ($cache && !$this->xml_dump) - { - // Load the Cache - $this->data = $cache->load(); - if (!empty($this->data)) - { - // If we've hit a collision just rerun it with caching disabled - if (isset($this->data['url']) && $this->data['url'] != $this->rss_url) - { - $cache = false; - } - // If we've got a feed_url stored (if the page isn't actually a feed, or is a redirect) use that URL - else if (!empty($this->data['feed_url'])) - { - if ($this->data['feed_url'] == $this->data['url']) - { - $cache->unlink(); - } - else - { - $this->feed_url($this->data['feed_url']); - return $this->init(); - } - } - // If the cache is new enough - else if ($cache->mtime() + $this->max_minutes * 60 < time()) - { - // If we have last-modified and/or etag set - if (!empty($this->data['last-modified']) || !empty($this->data['etag'])) - { - $headers = array(); - if (!empty($this->data['last-modified'])) - { - $headers['if-modified-since'] = $this->data['last-modified']; - } - if (!empty($this->data['etag'])) - { - $headers['if-none-match'] = $this->data['etag']; - } - $file = new $this->file_class($this->rss_url, $this->timeout/10, 5, $headers, $this->useragent, $this->force_fsockopen); - if ($file->success) - { - $headers = $file->headers(); - if ($headers['status']['code'] == 304) - { - $cache->touch(); - return true; - } - } - else - { - unset($file); - } - } - // If we don't have last-modified or etag set, just clear the cache - else - { - $cache->unlink(); - } - } - // If the cache is still valid, just return true - else - { - return true; - } - } - // If the cache is empty, delete it - else - { - $cache->unlink(); - } - } - $this->data = array(); - // If we don't already have the file (it'll only exist if we've opened it to check if the cache has been modified), open it. - if (!isset($file)) - { - if (is_a($this->file, 'SimplePie_File') && $this->file->url == $this->rss_url) - { - $file =& $this->file; - } - else - { - $file = new $this->file_class($this->rss_url, $this->timeout, 5, null, $this->useragent, $this->force_fsockopen); - } - } - // If the file connection has an error, set SimplePie::error to that and quit - if (!$file->success) - { - $this->error = $file->error; - return false; - } - - // Check if the supplied URL is a feed, if it isn't, look for it. - $locate = new $this->locator_class($file, $this->timeout, $this->useragent); - if (!$locate->is_feed($file)) - { - $feed = $locate->find(); - if ($feed) - { - if ($cache && !$cache->save(array('url' => $this->rss_url, 'feed_url' => $feed))) - { - $this->error = "$cache->name is not writeable"; - SimplePie_Misc::error($this->error, E_USER_WARNING, __FILE__, __LINE__); - } - $this->rss_url = $feed; - return $this->init(); - } - else - { - $this->error = "A feed could not be found at $this->rss_url"; - SimplePie_Misc::error($this->error, E_USER_WARNING, __FILE__, __LINE__); - return false; - } - } - - $headers = $file->headers(); - $data = trim($file->body()); - $file->close(); - unset($file); - } - else - { - $data = $this->raw_data; - } - - // First check to see if input has been overridden. - if (!empty($this->input_encoding)) - { - $encoding = $this->input_encoding; - } - // Second try HTTP headers - else if (!empty($headers['content-type']) && preg_match('/charset\s*=\s*([^;]*)/i', $headers['content-type'], $charset)) - { - $encoding = $charset[1]; - } - // Then prolog, if at the very start of the document - else if (preg_match('/^<\?xml(.*)?>/msiU', $data, $prolog) && preg_match('/encoding\s*=\s*("([^"]*)"|\'([^\']*)\')/Ui', $prolog[1], $encoding)) - { - $encoding = substr($encoding[1], 1, -1); - } - // UTF-32 Big Endian BOM - else if (strpos($data, sprintf('%c%c%c%c', 0x00, 0x00, 0xFE, 0xFF)) === 0) - { - $encoding = 'UTF-32be'; - } - // UTF-32 Little Endian BOM - else if (strpos($data, sprintf('%c%c%c%c', 0xFF, 0xFE, 0x00, 0x00)) === 0) - { - $encoding = 'UTF-32'; - } - // UTF-16 Big Endian BOM - else if (strpos($data, sprintf('%c%c', 0xFE, 0xFF)) === 0) - { - $encoding = 'UTF-16be'; - } - // UTF-16 Little Endian BOM - else if (strpos($data, sprintf('%c%c', 0xFF, 0xFE)) === 0) - { - $encoding = 'UTF-16le'; - } - // UTF-8 BOM - else if (strpos($data, sprintf('%c%c%c', 0xEF, 0xBB, 0xBF)) === 0) - { - $encoding = 'UTF-8'; - } - // Fallback to the default - else - { - $encoding = null; - } - - // Change the encoding to UTF-8 (as we always use UTF-8 internally) - $data = SimplePie_Misc::change_encoding($data, $encoding, 'UTF-8'); - - // Strip illegal characters (if on less than PHP5, as on PHP5 expat can manage fine) - if (version_compare(phpversion(), '5', '<')) - { - if (function_exists('iconv')) - { - $data = iconv('UTF-8', 'UTF-8//IGNORE', $data); - } - else if (function_exists('mb_convert_encoding')) - { - $data = mb_convert_encoding($data, 'UTF-8', 'UTF-8'); - } - else - { - $data = SimplePie_Misc::utf8_bad_replace($data); - } - } - - // Start parsing - $data = new $this->parser_class($data, 'UTF-8', $this->xml_dump); - // If we want the XML, just output that and quit - if ($this->xml_dump) - { - header('Content-type: text/xml; charset=UTF-8'); - echo $data->data; - exit; - } - // If it's parsed fine - else if (!$data->error_code) - { - // Parse the data, and make it sane - $this->sanitize->parse_data_array($data->data, $this->rss_url); - unset($data); - // Get the sane data - $this->data['feedinfo'] = $this->sanitize->feedinfo; - unset($this->sanitize->feedinfo); - $this->data['info'] = $this->sanitize->info; - unset($this->sanitize->info); - $this->data['items'] = $this->sanitize->items; - unset($this->sanitize->items); - $this->data['feedinfo']['encoding'] = $this->sanitize->output_encoding; - $this->data['url'] = $this->rss_url; - - // Store the headers that we need - if (!empty($headers['last-modified'])) - { - $this->data['last-modified'] = $headers['last-modified']; - } - if (!empty($headers['etag'])) - { - $this->data['etag'] = $headers['etag']; - } - - // If we want to order it by date, check if all items have a date, and then sort it - if ($this->order_by_date && !empty($this->data['items'])) - { - $do_sort = true; - foreach ($this->data['items'] as $item) - { - if (!$item->get_date('U')) - { - $do_sort = false; - break; - } - } - if ($do_sort) - { - usort($this->data['items'], create_function('$a, $b', 'if ($a->get_date(\'U\') == $b->get_date(\'U\')) return 1; return ($a->get_date(\'U\') < $b->get_date(\'U\')) ? 1 : -1;')); - } - } - - // Cache the file if caching is enabled - if ($cache && !$cache->save($this->data)) - { - $this->error = "$cache->name is not writeable"; - SimplePie_Misc::error($this->error, E_USER_WARNING, __FILE__, __LINE__); - } - return true; - } - // If we have an error, just set SimplePie::error to it and quit - else - { - $this->error = "XML error: $data->error_string at line $data->current_line, column $data->current_column"; - SimplePie_Misc::error($this->error, E_USER_WARNING, __FILE__, __LINE__); - return false; - } - } - } - - function get_encoding() - { - if (!empty($this->data['feedinfo']['encoding'])) - { - return $this->data['feedinfo']['encoding']; - } - else - { - return false; - } - } - - function handle_content_type($mime = 'text/html') - { - if (!headers_sent()) - { - $header = "Content-type: $mime;"; - if ($this->get_encoding()) - { - $header .= ' charset=' . $this->get_encoding(); - } - else - { - $header .= ' charset=UTF-8'; - } - header($header); - } - } - - function get_type() - { - if (!empty($this->data['feedinfo']['type'])) - { - return $this->data['feedinfo']['type']; - } - else - { - return false; - } - } - - function get_version() - { - if (!empty($this->data['feedinfo']['version'])) - { - return $this->data['feedinfo']['version']; - } - else - { - return false; - } - } - - function get_favicon($check = false, $alternate = null) - { - if (!empty($this->data['info']['link']['alternate'][0])) - { - $favicon = SimplePie_Misc::absolutize_url('/favicon.ico', $this->get_feed_link()); - - if ($check) - { - $file = new $this->file_class($favicon, $this->timeout/10, 5, null, $this->useragent, $this->force_fsockopen); - $headers = $file->headers(); - $file->close(); - - if ($headers['status']['code'] == 200) - { - return $favicon; - } - } - else - { - return $favicon; - } - } - if (!is_null($alternate)) - { - return $alternate; - } - else - { - return false; - } - } - - function subscribe_url() - { - if (!empty($this->rss_url)) - { - return $this->rss_url; - } - else - { - return false; - } - } - - function subscribe_feed() - { - if (!empty($this->rss_url)) - { - return SimplePie_Misc::fix_protocol($this->rss_url, 2); - } - else - { - return false; - } - } - - function subscribe_outlook() - { - if (!empty($this->rss_url)) - { - return 'outlook' . SimplePie_Misc::fix_protocol($this->rss_url, 2); - } - else - { - return false; - } - } - - function subscribe_podcast() - { - if (!empty($this->rss_url)) - { - return SimplePie_Misc::fix_protocol($this->rss_url, 3); - } - else - { - return false; - } - } - - function subscribe_aol() - { - if ($this->subscribe_url()) - { - return 'http://feeds.my.aol.com/add.jsp?url=' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function subscribe_bloglines() - { - if ($this->subscribe_url()) - { - return 'http://www.bloglines.com/sub/' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function subscribe_eskobo() - { - if ($this->subscribe_url()) - { - return 'http://www.eskobo.com/?AddToMyPage=' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function subscribe_feedfeeds() - { - if ($this->subscribe_url()) - { - return 'http://www.feedfeeds.com/add?feed=' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function subscribe_feedlounge() - { - if ($this->subscribe_url()) - { - return 'http://my.feedlounge.com/external/subscribe?url=' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function subscribe_feedster() - { - if ($this->subscribe_url()) - { - return 'http://www.feedster.com/myfeedster.php?action=addrss&confirm=no&rssurl=' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function subscribe_google() - { - if ($this->subscribe_url()) - { - return 'http://fusion.google.com/add?feedurl=' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function subscribe_gritwire() - { - if ($this->subscribe_url()) - { - return 'http://my.gritwire.com/feeds/addExternalFeed.aspx?FeedUrl=' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function subscribe_msn() - { - if ($this->subscribe_url()) - { - $url = 'http://my.msn.com/addtomymsn.armx?id=rss&ut=' . rawurlencode($this->subscribe_url()); - if ($this->get_feed_link()) - { - $url .= '&ru=' . rawurlencode($this->get_feed_link()); - } - return $url; - } - else - { - return false; - } - } - - function subscribe_netvibes() - { - if ($this->subscribe_url()) - { - return 'http://www.netvibes.com/subscribe.php?url=' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function subscribe_newsburst() - { - if ($this->subscribe_url()) - { - return 'http://www.newsburst.com/Source/?add=' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function subscribe_newsgator() - { - if ($this->subscribe_url()) - { - return 'http://www.newsgator.com/ngs/subscriber/subext.aspx?url=' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function subscribe_odeo() - { - if ($this->subscribe_url()) - { - return 'http://www.odeo.com/listen/subscribe?feed=' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function subscribe_pluck() - { - if ($this->subscribe_url()) - { - return 'http://client.pluck.com/pluckit/prompt.aspx?GCID=C12286x053&a=' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function subscribe_podnova() - { - if ($this->subscribe_url()) - { - return 'http://www.podnova.com/index_your_podcasts.srf?action=add&url=' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function subscribe_rojo() - { - if ($this->subscribe_url()) - { - return 'http://www.rojo.com/add-subscription?resource=' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function subscribe_yahoo() - { - if ($this->subscribe_url()) - { - return 'http://add.my.yahoo.com/rss?url=' . rawurlencode($this->subscribe_url()); - } - else - { - return false; - } - } - - function get_feed_title() - { - if (!empty($this->data['info']['title'])) - { - return $this->data['info']['title']; - } - else - { - return false; - } - } - - function get_feed_link() - { - if (!empty($this->data['info']['link']['alternate'][0])) - { - return $this->data['info']['link']['alternate'][0]; - } - else - { - return false; - } - } - - function get_feed_links() - { - if (!empty($this->data['info']['link'])) - { - return $this->data['info']['link']; - } - else - { - return false; - } - } - - function get_feed_description() - { - if (!empty($this->data['info']['description'])) - { - return $this->data['info']['description']; - } - else if (!empty($this->data['info']['dc:description'])) - { - return $this->data['info']['dc:description']; - } - else if (!empty($this->data['info']['tagline'])) - { - return $this->data['info']['tagline']; - } - else if (!empty($this->data['info']['subtitle'])) - { - return $this->data['info']['subtitle']; - } - else - { - return false; - } - } - - function get_feed_copyright() - { - if (!empty($this->data['info']['copyright'])) - { - return $this->data['info']['copyright']; - } - else - { - return false; - } - } - - function get_feed_language() - { - if (!empty($this->data['info']['language'])) - { - return $this->data['info']['language']; - } - else if (!empty($this->data['info']['xml:lang'])) - { - return $this->data['info']['xml:lang']; - } - else - { - return false; - } - } - - function get_image_exist() - { - if (!empty($this->data['info']['image']['url']) || !empty($this->data['info']['image']['logo'])) - { - return true; - } - else - { - return false; - } - } - - function get_image_title() - { - if (!empty($this->data['info']['image']['title'])) - { - return $this->data['info']['image']['title']; - } - else - { - return false; - } - } - - function get_image_url() - { - if (!empty($this->data['info']['image']['url'])) - { - return $this->data['info']['image']['url']; - } - else if (!empty($this->data['info']['image']['logo'])) - { - return $this->data['info']['image']['logo']; - } - else - { - return false; - } - } - - function get_image_link() - { - if (!empty($this->data['info']['image']['link'])) - { - return $this->data['info']['image']['link']; - } - else - { - return false; - } - } - - function get_image_width() - { - if (!empty($this->data['info']['image']['width'])) - { - return $this->data['info']['image']['width']; - } - else - { - return false; - } - } - - function get_image_height() - { - if (!empty($this->data['info']['image']['height'])) - { - return $this->data['info']['image']['height']; - } - else - { - return false; - } - } - - function get_item_quantity($max = 0) - { - if (!empty($this->data['items'])) - { - $qty = sizeof($this->data['items']); - } - else - { - $qty = 0; - } - if ($max == 0) - { - return $qty; - } - else - { - return ($qty > $max) ? $max : $qty; - } - } - - function get_item($key = 0) - { - if (!empty($this->data['items'][$key])) - { - return $this->data['items'][$key]; - } - else - { - return false; - } - } - - function get_items($start = 0, $end = 0) - { - if ($this->get_item_quantity() > 0) - { - if ($end == 0) - { - return array_slice($this->data['items'], $start); - } - else - { - return array_slice($this->data['items'], $start, $end); - } - } - else - { - return false; - } - } -} - -class SimplePie_Item -{ - var $data; - - function SimplePie_Item($data) - { - $this->data =& $data; - } - - function get_id() - { - if (!empty($this->data['guid']['data'])) - { - return $this->data['guid']['data']; - } - else if (!empty($this->data['id'])) - { - return $this->data['id']; - } - else - { - return false; - } - } - - function get_title() - { - if (!empty($this->data['title'])) - { - return $this->data['title']; - } - else if (!empty($this->data['dc:title'])) - { - return $this->data['dc:title']; - } - else - { - return false; - } - } - - function get_description() - { - if (!empty($this->data['content'])) - { - return $this->data['content']; - } - else if (!empty($this->data['encoded'])) - { - return $this->data['encoded']; - } - else if (!empty($this->data['summary'])) - { - return $this->data['summary']; - } - else if (!empty($this->data['description'])) - { - return $this->data['description']; - } - else if (!empty($this->data['dc:description'])) - { - return $this->data['dc:description']; - } - else if (!empty($this->data['longdesc'])) - { - return $this->data['longdesc']; - } - else - { - return false; - } - } - - function get_category($key = 0) - { - $categories = $this->get_categories(); - if (!empty($categories[$key])) - { - return $categories[$key]; - } - else - { - return false; - } - } - - function get_categories() - { - $categories = array(); - if (!empty($this->data['category'])) - { - $categories = array_merge($categories, $this->data['category']); - } - if (!empty($this->data['subject'])) - { - $categories = array_merge($categories, $this->data['subject']); - } - if (!empty($this->data['term'])) - { - $categories = array_merge($categories, $this->data['term']); - } - if (!empty($categories)) - { - return array_unique($categories); - } - else - { - return false; - } - } - - function get_author($key = 0) - { - $authors = $this->get_authors(); - if (!empty($authors[$key])) - { - return $authors[$key]; - } - else - { - return false; - } - } - - function get_authors() - { - $authors = array(); - if (!empty($this->data['author'])) - { - $authors = array_merge($authors, $this->data['author']); - } - if (!empty($this->data['creator'])) - { - $authors = array_merge($authors, $this->data['creator']); - } - if (!empty($authors)) - { - return array_unique($authors); - } - else - { - return false; - } - } - - function get_date($date_format = 'j F Y, g:i a') - { - if (!empty($this->data['pubdate'])) - { - return date($date_format, $this->data['pubdate']); - } - else if (!empty($this->data['dc:date'])) - { - return date($date_format, $this->data['dc:date']); - } - else if (!empty($this->data['issued'])) - { - return date($date_format, $this->data['issued']); - } - else if (!empty($this->data['published'])) - { - return date($date_format, $this->data['published']); - } - else if (!empty($this->data['modified'])) - { - return date($date_format, $this->data['modified']); - } - else if (!empty($this->data['updated'])) - { - return date($date_format, $this->data['updated']); - } - else - { - return false; - } - } - - function get_permalink() - { - $link = $this->get_link(0); - $enclosure = $this->get_enclosure(0); - if (!empty($link)) - { - return $link; - } - else if (!empty($enclosure)) - { - return $enclosure->get_link(); - } - else - { - return false; - } - } - - function get_link($key = 0, $rel = 'alternate') - { - $links = $this->get_links($rel); - if (!empty($links[$key])) - { - return $links[$key]; - } - else - { - return false; - } - } - - function get_links($rel = 'alternate') - { - if ($rel == 'alternate') - { - $links = array(); - if (!empty($this->data['link'][$rel])) - { - $links = $this->data['link'][$rel]; - } - if (!empty($this->data['guid']['data']) && $this->data['guid']['permalink'] == true) - { - $links[] = $this->data['guid']['data']; - } - return $links; - } - else if (!empty($this->data['link'][$rel])) - { - return $this->data['link'][$rel]; - } - else - { - return false; - } - } - - function get_enclosure($key = 0) - { - $enclosures = $this->get_enclosures(); - if (!empty($enclosures[$key])) - { - return $enclosures[$key]; - } - else - { - return false; - } - } - - function get_enclosures() - { - $enclosures = array(); - $links = $this->get_links('enclosure'); - if (!empty($this->data['enclosures'])) - { - $enclosures = array_merge($enclosures, $this->data['enclosures']); - } - if (!empty($links)) - { - $enclosures = array_merge($enclosures, $links); - } - if (!empty($enclosures)) - { - return array_unique($enclosures); - } - else - { - return false; - } - } - - function add_to_blinklist() - { - if ($this->get_permalink()) - { - $url = 'http://www.blinklist.com/index.php?Action=Blink/addblink.php&Description=&Url=' . rawurlencode($this->get_permalink()); - if ($this->get_title()) - { - $url .= '&Title=' . rawurlencode($this->get_title()); - } - return $url; - } - else - { - return false; - } - } - - function add_to_blogmarks() - { - if ($this->get_permalink()) - { - $url = 'http://blogmarks.net/my/new.php?mini=1&simple=1&url=' . rawurlencode($this->get_permalink()); - if ($this->get_title()) - { - $url .= '&title=' . rawurlencode($this->get_title()); - } - return $url; - } - else - { - return false; - } - } - - function add_to_delicious() - { - if ($this->get_permalink()) - { - $url = 'http://del.icio.us/post/?v=3&url=' . rawurlencode($this->get_permalink()); - if ($this->get_title()) - { - $url .= '&title=' . rawurlencode($this->get_title()); - } - return $url; - } - else - { - return false; - } - } - - function add_to_digg() - { - if ($this->get_permalink()) - { - return 'http://digg.com/submit?phase=2&URL=' . rawurlencode($this->get_permalink()); - } - else - { - return false; - } - } - - function add_to_furl() - { - if ($this->get_permalink()) - { - $url = 'http://www.furl.net/storeIt.jsp?u=' . rawurlencode($this->get_permalink()); - if ($this->get_title()) - { - $url .= '&t=' . rawurlencode($this->get_title()); - } - return $url; - } - else - { - return false; - } - } - - function add_to_magnolia() - { - if ($this->get_permalink()) - { - $url = 'http://ma.gnolia.com/bookmarklet/add?url=' . rawurlencode($this->get_permalink()); - if ($this->get_title()) - { - $url .= '&title=' . rawurlencode($this->get_title()); - } - return $url; - } - else - { - return false; - } - } - - function add_to_myweb20() - { - if ($this->get_permalink()) - { - $url = 'http://myweb2.search.yahoo.com/myresults/bookmarklet?u=' . rawurlencode($this->get_permalink()); - if ($this->get_title()) - { - $url .= '&t=' . rawurlencode($this->get_title()); - } - return $url; - } - else - { - return false; - } - } - - function add_to_newsvine() - { - if ($this->get_permalink()) - { - $url = 'http://www.newsvine.com/_wine/save?u=' . rawurlencode($this->get_permalink()); - if ($this->get_title()) - { - $url .= '&h=' . rawurlencode($this->get_title()); - } - return $url; - } - else - { - return false; - } - } - - function add_to_reddit() - { - if ($this->get_permalink()) - { - $url = 'http://reddit.com/submit?url=' . rawurlencode($this->get_permalink()); - if ($this->get_title()) - { - $url .= '&title=' . rawurlencode($this->get_title()); - } - return $url; - } - else - { - return false; - } - } - - function add_to_segnalo() - { - if ($this->get_permalink()) - { - $url = 'http://segnalo.com/post.html.php?url=' . rawurlencode($this->get_permalink()); - if ($this->get_title()) - { - $url .= '&title=' . rawurlencode($this->get_title()); - } - return $url; - } - else - { - return false; - } - } - - function add_to_simpy() - { - if ($this->get_permalink()) - { - $url = 'http://www.simpy.com/simpy/LinkAdd.do?href=' . rawurlencode($this->get_permalink()); - if ($this->get_title()) - { - $url .= '&title=' . rawurlencode($this->get_title()); - } - return $url; - } - else - { - return false; - } - } - - function add_to_smarking() - { - if ($this->get_permalink()) - { - return 'http://smarking.com/editbookmark/?url=' . rawurlencode($this->get_permalink()); - } - else - { - return false; - } - } - - function add_to_spurl() - { - if ($this->get_permalink()) - { - $url = 'http://www.spurl.net/spurl.php?v=3&url=' . rawurlencode($this->get_permalink()); - if ($this->get_title()) - { - $url .= '&title=' . rawurlencode($this->get_title()); - } - return $url; - } - else - { - return false; - } - } - - function add_to_wists() - { - if ($this->get_permalink()) - { - $url = 'http://wists.com/r.php?c=&r=' . rawurlencode($this->get_permalink()); - if ($this->get_title()) - { - $url .= '&title=' . rawurlencode($this->get_title()); - } - return $url; - } - else - { - return false; - } - } - - function search_technorati() - { - if ($this->get_permalink()) - { - return 'http://www.technorati.com/search/' . rawurlencode($this->get_permalink()); - } - else - { - return false; - } - } -} - -class SimplePie_Author -{ - var $name; - var $link; - var $email; - - // Constructor, used to input the data - function SimplePie_Author($name, $link, $email) - { - $this->name = $name; - $this->link = $link; - $this->email = $email; - } - - function get_name() - { - if (!empty($this->name)) - { - return $this->name; - } - else - { - return false; - } - } - - function get_link() - { - if (!empty($this->link)) - { - return $this->link; - } - else - { - return false; - } - } - - function get_email() - { - if (!empty($this->email)) - { - return $this->email; - } - else - { - return false; - } - } -} - -class SimplePie_Enclosure -{ - var $link; - var $type; - var $length; - - // Constructor, used to input the data - function SimplePie_Enclosure($link, $type, $length) - { - $this->link = $link; - $this->type = $type; - $this->length = $length; - } - - function get_link() - { - if (!empty($this->link)) - { - if (class_exists('idna_convert')) - { - $idn = new idna_convert; - $this->link = $idn->encode($this->link); - } - return $this->link; - } - else - { - return false; - } - } - - function get_extension() - { - if (!empty($this->link)) - { - return pathinfo($this->link, PATHINFO_EXTENSION); - } - else - { - return false; - } - } - - function get_type() - { - if (!empty($this->type)) - { - return $this->type; - } - else - { - return false; - } - } - - function get_length() - { - if (!empty($this->length)) - { - return $this->length; - } - else - { - return false; - } - } - - function get_size() - { - $length = $this->get_length(); - if (!empty($length)) - { - return round($length/1048576, 2); - } - else - { - return false; - } - } - - function native_embed($options='') - { - return $this->embed($options, true); - } - - function embed($options = '', $native = false) - { - // Set up defaults - $audio = ''; - $video = ''; - $alt = ''; - $altclass = ''; - $loop = 'false'; - $width = 'auto'; - $height = 'auto'; - $bgcolor = '#ffffff'; - - // Process options and reassign values as necessary - if (is_array($options)) - { - extract($options); - } - else - { - $options = explode(',', $options); - foreach($options as $option) - { - $opt = explode(':', $option, 2); - if (isset($opt[0], $opt[1])) - { - $opt[0] = trim($opt[0]); - $opt[1] = trim($opt[1]); - switch ($opt[0]) - { - case 'audio': - $audio = $opt[1]; - break; - - case 'video': - $video = $opt[1]; - break; - - case 'alt': - $alt = $opt[1]; - break; - - case 'altclass': - $altclass = $opt[1]; - break; - - case 'loop': - $loop = $opt[1]; - break; - - case 'width': - $width = $opt[1]; - break; - - case 'height': - $height = $opt[1]; - break; - - case 'bgcolor': - $bgcolor = $opt[1]; - break; - } - } - } - } - - $type = strtolower($this->get_type()); - - // If we encounter an unsupported mime-type, check the file extension and guess intelligently. - if (!in_array($type, array('audio/3gpp', 'audio/3gpp2', 'audio/aac', 'audio/x-aac', 'audio/aiff', 'audio/x-aiff', 'audio/mid', 'audio/midi', 'audio/x-midi', 'audio/mpeg', 'audio/x-mpeg', 'audio/mp3', 'x-audio/mp3', 'audio/mp4', 'audio/m4a', 'audio/x-m4a', 'audio/wav', 'audio/x-wav', 'video/3gpp', 'video/3gpp2', 'video/m4v', 'video/x-m4v', 'video/mp4', 'video/mpeg', 'video/x-mpeg', 'video/quicktime', 'video/sd-video', 'application/x-shockwave-flash', 'application/futuresplash', 'application/asx', 'application/x-mplayer2', 'audio/x-ms-wma', 'audio/x-ms-wax', 'video/x-ms-asf-plugin', 'video/x-ms-asf', 'video/x-ms-wm', 'video/x-ms-wmv', 'video/x-ms-wvx'))) - { - switch (strtolower($this->get_extension())) - { - // Audio mime-types - case 'aac': - case 'adts': - $type = 'audio/acc'; - break; - - case 'aif': - case 'aifc': - case 'aiff': - case 'cdda': - $type = 'audio/aiff'; - break; - - case 'bwf': - $type = 'audio/wav'; - break; - - case 'kar': - case 'mid': - case 'midi': - case 'smf': - $type = 'audio/midi'; - break; - - case 'm4a': - $type = 'audio/x-m4a'; - break; - - case 'mp3': - case 'swa': - $type = 'audio/mp3'; - break; - - case 'wav': - $type = 'audio/wav'; - break; - - case 'wax': - $type = 'audio/x-ms-wax'; - break; - - case 'wma': - $type = 'audio/x-ms-wma'; - break; - - // Video mime-types - case '3gp': - case '3gpp': - $type = 'video/3gpp'; - break; - - case '3g2': - case '3gp2': - $type = 'video/3gpp2'; - break; - - case 'asf': - $type = 'video/x-ms-asf'; - break; - - case 'm1a': - case 'm1s': - case 'm1v': - case 'm15': - case 'm75': - case 'mp2': - case 'mpa': - case 'mpeg': - case 'mpg': - case 'mpm': - case 'mpv': - $type = 'video/mpeg'; - break; - - case 'm4v': - $type = 'video/x-m4v'; - break; - - case 'mov': - case 'qt': - $type = 'video/quicktime'; - break; - - case 'mp4': - case 'mpg4': - $type = 'video/mp4'; - break; - - case 'sdv': - $type = 'video/sd-video'; - break; - - case 'wm': - $type = 'video/x-ms-wm'; - break; - - case 'wmv': - $type = 'video/x-ms-wmv'; - break; - - case 'wvx': - $type = 'video/x-ms-wvx'; - break; - - // Flash mime-types - case 'spl': - $type = 'application/futuresplash'; - break; - - case 'swf': - $type = 'application/x-shockwave-flash'; - break; - } - } - - $mime = explode('/', $type, 2); - $mime = $mime[0]; - - // Process values for 'auto' - if ($width == 'auto') - { - if ($mime == 'video') - { - $width = '320'; - } - else - { - $width = '100%'; - } - } - if ($height == 'auto') - { - if ($mime == 'audio') - { - $height = 0; - } - else if ($mime == 'video') - { - $height = 240; - } - else - { - $height = 256; - } - } - - // Set proper placeholder value - if ($mime == 'audio') - { - $placeholder = $audio; - } - else if ($mime == 'video') - { - $placeholder = $video; - } - - $embed = ''; - - // Make sure the JS library is included - // (I know it'll be included multiple times, but I can't think of a better way to do this automatically) - if (!$native) - { - $embed .= ''; - } - - // Odeo Feed MP3's - if (substr(strtolower($this->get_link()), 0, 15) == 'http://odeo.com') { - if ($native) - { - $embed .= ''; - } - else - { - $embed .= ''; - } - } - - // QuickTime 7 file types. Need to test with QuickTime 6. - else if (in_array($type, array('audio/3gpp', 'audio/3gpp2', 'audio/aac', 'audio/x-aac', 'audio/aiff', 'audio/x-aiff', 'audio/mid', 'audio/midi', 'audio/x-midi', 'audio/mpeg', 'audio/x-mpeg', 'audio/mp3', 'x-audio/mp3', 'audio/mp4', 'audio/m4a', 'audio/x-m4a', 'audio/wav', 'audio/x-wav', 'video/3gpp', 'video/3gpp2', 'video/m4v', 'video/x-m4v', 'video/mp4', 'video/mpeg', 'video/x-mpeg', 'video/quicktime', 'video/sd-video'))) - { - $height += 16; - if ($native) - { - if ($placeholder != "") { - $embed .= "get_link() . "\" src=\"$placeholder\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"false\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://www.apple.com/quicktime/download/\">"; - } - else { - $embed .= "get_link() . "\" width=\"$width+\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"true\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://www.apple.com/quicktime/download/\">"; - } - } - else - { - $embed .= ""; - } - } - - // Flash - else if (in_array($type, array('application/x-shockwave-flash', 'application/futuresplash'))) - { - if ($native) - { - $embed .= "get_link() . "\" pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\" type=\"$type\" quality=\"high\" width=\"$width\" height=\"$height\" bgcolor=\"$bgcolor\" loop=\"$loop\">"; - } - else - { - $embed .= ""; - } - } - - // Windows Media - else if (in_array($type, array('application/asx', 'application/x-mplayer2', 'audio/x-ms-wma', 'audio/x-ms-wax', 'video/x-ms-asf-plugin', 'video/x-ms-asf', 'video/x-ms-wm', 'video/x-ms-wmv', 'video/x-ms-wvx'))) - { - $height += 45; - if ($native) - { - $embed .= "get_link() . "\" autosize=\"1\" width=\"$width\" height=\"$height\" showcontrols=\"1\" showstatusbar=\"0\" showdisplay=\"0\" autostart=\"0\">"; - } - else - { - $embed .= ""; - } - } - - // Everything else - else $embed .= '' . $alt . ''; - - return $embed; - } -} - -class SimplePie_File -{ - var $url; - var $useragent; - var $success = true; - var $headers = array(); - var $body; - var $fp; - var $redirects = 0; - var $error; - var $method; - - function SimplePie_File($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false) - { - if (class_exists('idna_convert')) - { - $idn = new idna_convert; - $url = $idn->encode($url); - } - $this->url = $url; - $this->useragent = $useragent; - if (preg_match('/^http(s)?:\/\//i', $url)) - { - if (empty($useragent)) - { - $useragent = ini_get('user_agent'); - $this->useragent = $useragent; - } - if (!is_array($headers)) - { - $headers = array(); - } - if (extension_loaded('curl') && version_compare(SimplePie_Misc::get_curl_version(), '7.10.5', '>=') && !$force_fsockopen) - { - $this->method = 'curl'; - $fp = curl_init(); - $headers2 = array(); - foreach ($headers as $key => $value) - { - $headers2[] = "$key: $value"; - } - curl_setopt($fp, CURLOPT_ENCODING, ''); - curl_setopt($fp, CURLOPT_URL, $url); - curl_setopt($fp, CURLOPT_HEADER, 1); - curl_setopt($fp, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($fp, CURLOPT_TIMEOUT, $timeout); - curl_setopt($fp, CURLOPT_REFERER, $url); - curl_setopt($fp, CURLOPT_USERAGENT, $useragent); - curl_setopt($fp, CURLOPT_HTTPHEADER, $headers2); - if (!ini_get('open_basedir') && !ini_get('safe_mode')) - { - curl_setopt($fp, CURLOPT_FOLLOWLOCATION, 1); - curl_setopt($fp, CURLOPT_MAXREDIRS, $redirects); - } - - $this->headers = trim(curl_exec($fp)); - if (curl_errno($fp) == 23 || curl_errno($fp) == 61) - { - curl_setopt($fp, CURLOPT_ENCODING, 'none'); - $this->headers = trim(curl_exec($fp)); - } - if (curl_errno($fp)) - { - $this->error = 'cURL error ' . curl_errno($fp) . ': ' . curl_error($fp); - $this->success = false; - return false; - } - $info = curl_getinfo($fp); - $this->headers = explode("\r\n\r\n", $this->headers, $info['redirect_count'] + 2); - if (count($this->headers) == $info['redirect_count'] + 1) - { - $this->headers = array_pop($this->headers); - $this->body = ''; - } - else - { - $this->body = array_pop($this->headers); - $this->headers = array_pop($this->headers); - } - $this->headers = $this->parse_headers($this->headers); - if (($this->headers['status']['code'] == 301 || $this->headers['status']['code'] == 302 || $this->headers['status']['code'] == 303 || $this->headers['status']['code'] == 307) && !empty($this->headers['location']) && $this->redirects < $redirects) - { - $this->redirects++; - return $this->SimplePie_File($this->headers['location'], $timeout, $redirects, $headers, $useragent, $force_fsockopen); - } - } - else - { - $this->method = 'fsockopen'; - $url_parts = parse_url($url); - if (isset($url_parts['scheme']) && strtolower($url_parts['scheme']) == 'https') - { - $url_parts['host'] = "ssl://$url_parts[host]"; - $url_parts['port'] = 443; - } - if (!isset($url_parts['port'])) - { - $url_parts['port'] = 80; - } - $this->fp = @fsockopen($url_parts['host'], $url_parts['port'], $errno, $errstr, $timeout); - if (!$this->fp) - { - $this->error = 'fsockopen error: ' . $errstr; - $this->success = false; - return false; - } - else - { - stream_set_timeout($this->fp, $timeout); - $get = (isset($url_parts['query'])) ? "$url_parts[path]?$url_parts[query]" : $url_parts['path']; - $out = "GET $get HTTP/1.0\r\n"; - $out .= "Host: $url_parts[host]\r\n"; - $out .= "User-Agent: $useragent\r\n"; - if (function_exists('gzinflate')) - { - $out .= "Accept-Encoding: gzip,deflate\r\n"; - } - - if (!empty($url_parts['user']) && !empty($url_parts['pass'])) - { - $out .= "Authorization: Basic " . base64_encode("$url_parts[user]:$url_parts[pass]") . "\r\n"; - } - foreach ($headers as $key => $value) - { - $out .= "$key: $value\r\n"; - } - $out .= "Connection: Close\r\n\r\n"; - fwrite($this->fp, $out); - - $info = stream_get_meta_data($this->fp); - $data = ''; - while (strpos($data, "\r\n\r\n") === false && !$info['timed_out']) - { - $data .= fgets($this->fp, 128); - $info = @stream_get_meta_data($this->fp); - } - if (!$info['timed_out']) - { - $this->headers = $this->parse_headers($data); - if (($this->headers['status']['code'] == 301 || $this->headers['status']['code'] == 302 || $this->headers['status']['code'] == 303 || $this->headers['status']['code'] == 307) && !empty($this->headers['location']) && $this->redirects < $redirects) - { - $this->redirects++; - return $this->SimplePie_File($this->headers['location'], $timeout, $redirects, $headers, $useragent, $force_fsockopen); - } - } - else - { - $this->close(); - $this->error = 'fsocket timed out'; - $this->success = false; - return false; - } - } - } - return $this->headers['status']['code']; - } - else - { - $this->method = 'fopen'; - if ($this->fp = fopen($url, 'r')) - { - return true; - } - else - { - $this->error = 'fopen could not open the file'; - $this->success = false; - return false; - } - } - } - - function headers() - { - return $this->headers; - } - - function body() - { - if (is_null($this->body)) - { - if ($this->fp) - { - $info = stream_get_meta_data($this->fp); - $this->body = ''; - while (!$info['eof'] && !$info['timed_out']) - { - $this->body .= fread($this->fp, 1024); - $info = stream_get_meta_data($this->fp); - } - if (!$info['timed_out']) - { - $this->body = trim($this->body); - if ($this->method == 'fsockopen' && !empty($this->headers['content-encoding']) && ($this->headers['content-encoding'] == 'gzip' || $this->headers['content-encoding'] == 'deflate')) - { - if (substr($this->body, 0, 8) == "\x1f\x8b\x08\x00\x00\x00\x00\x00") - { - $this->body = substr($this->body, 10); - } - $this->body = gzinflate($this->body); - } - $this->close(); - } - else - { - return false; - } - } - else - { - return false; - } - } - return $this->body; - } - - function close() - { - if (!is_null($this->fp)) - { - if (fclose($this->fp)) - { - $this->fp = null; - return true; - } - else - { - return false; - } - } - else - { - return false; - } - } - - function parse_headers($headers) - { - $headers = explode("\r\n", trim($headers)); - $status = array_shift($headers); - foreach ($headers as $header) - { - $data = explode(':', $header, 2); - $head[strtolower(trim($data[0]))] = trim($data[1]); - } - if (preg_match('/HTTP\/[0-9\.]+ ([0-9]+)(.*)$/i', $status, $matches)) - { - if (isset($head['status'])) - { - unset($head['status']); - } - $head['status']['code'] = $matches[1]; - $head['status']['name'] = trim($matches[2]); - } - return $head; - } -} - -class SimplePie_Cache -{ - var $location; - var $filename; - var $extension; - var $name; - - function SimplePie_Cache($location, $filename, $extension) - { - $this->location = $location; - $this->filename = rawurlencode($filename); - $this->extension = rawurlencode($extension); - $this->name = "$location/$this->filename.$this->extension"; - } - - function save($data) - { - if (file_exists($this->name) && is_writeable($this->name) || file_exists($this->location) && is_writeable($this->location)) - { - $fp = fopen($this->name, 'w'); - if ($fp) - { - fwrite($fp, serialize($data)); - fclose($fp); - return true; - } - } - return false; - } - - function load() - { - if (file_exists($this->name) && is_readable($this->name)) - { - return unserialize(file_get_contents($this->name)); - } - return false; - } - - function mtime() - { - if (file_exists($this->name)) - { - return filemtime($this->name); - } - return false; - } - - function touch() - { - if (file_exists($this->name)) - { - return touch($this->name); - } - return false; - } - - function unlink() - { - if (file_exists($this->name)) - { - return unlink($this->name); - } - return false; - } -} - -class SimplePie_Misc -{ - function absolutize_url($relative, $base) - { - $relative = trim($relative); - $base = trim($base); - if (!empty($relative)) - { - $relative = SimplePie_Misc::parse_url($relative, false); - $relative = array('scheme' => $relative[2], 'authority' => $relative[3], 'path' => $relative[5], 'query' => $relative[7], 'fragment' => $relative[9]); - if (!empty($relative['scheme'])) - { - $target = $relative; - } - else if (!empty($base)) - { - $base = SimplePie_Misc::parse_url($base, false); - $base = array('scheme' => $base[2], 'authority' => $base[3], 'path' => $base[5], 'query' => $base[7], 'fragment' => $base[9]); - $target['scheme'] = $base['scheme']; - if (!empty($relative['authority'])) - { - $target = array_merge($relative, $target); - } - else - { - $target['authority'] = $base['authority']; - if (!empty($relative['path'])) - { - if (strpos($relative['path'], '/') === 0) - { - $target['path'] = $relative['path']; - } - else - { - if (!empty($base['path'])) - { - $target['path'] = dirname("$base[path].") . '/' . $relative['path']; - } - else - { - $target['path'] = '/' . $relative['path']; - } - } - if (!empty($relative['query'])) - { - $target['query'] = $relative['query']; - } - $input = $target['path']; - $target['path'] = ''; - while (!empty($input)) - { - if (strpos($input, '../') === 0) - { - $input = substr($input, 3); - } - else if (strpos($input, './') === 0) - { - $input = substr($input, 2); - } - else if (strpos($input, '/./') === 0) - { - $input = substr_replace($input, '/', 0, 3); - } - else if (strpos($input, '/.') === 0 && SimplePie_Misc::strendpos($input, '/.') === 0) - { - $input = substr_replace($input, '/', -2); - } - else if (strpos($input, '/../') === 0) - { - $input = substr_replace($input, '/', 0, 4); - $target['path'] = preg_replace('/(\/)?([^\/]+)$/msiU', '', $target['path']); - } - else if (strpos($input, '/..') === 0 && SimplePie_Misc::strendpos($input, '/..') === 0) - { - $input = substr_replace($input, '/', 0, 3); - $target['path'] = preg_replace('/(\/)?([^\/]+)$/msiU', '', $target['path']); - } - else if ($input == '.' || $input == '..') - { - $input = ''; - } - else - { - if (preg_match('/^(.+)(\/|$)/msiU', $input, $match)) - { - $target['path'] .= $match[1]; - $input = substr_replace($input, '', 0, strlen($match[1])); - } - } - } - } - else - { - if (!empty($base['path'])) - { - $target['path'] = $base['path']; - } - else - { - $target['path'] = '/'; - } - if (!empty($relative['query'])) - { - $target['query'] = $relative['query']; - } - else if (!empty($base['query'])) - { - $target['query'] = $base['query']; - } - } - } - if (!empty($relative['fragment'])) - { - $target['fragment'] = $relative['fragment']; - } - } - else - { - return false; - } - $return = ''; - if (!empty($target['scheme'])) - { - $return .= "$target[scheme]:"; - } - if (!empty($target['authority'])) - { - $return .= $target['authority']; - } - if (!empty($target['path'])) - { - $return .= $target['path']; - } - if (!empty($target['query'])) - { - $return .= "?$target[query]"; - } - if (!empty($target['fragment'])) - { - $return .= "#$target[fragment]"; - } - } - else - { - $return = $base; - } - return $return; - } - - function strendpos($haystack, $needle) - { - return strlen($haystack) - strpos($haystack, $needle) - strlen($needle); - } - - function get_element($realname, $string) - { - $return = array(); - $name = preg_quote($realname, '/'); - preg_match_all("/<($name)((\s*((\w+:)?\w+)\s*=\s*(\"([^\"]*)\"|'([^']*)'|(.*)))*)\s*((\/)?>|>(.*)<\/$name>)/msiU", $string, $matches, PREG_SET_ORDER); - for ($i = 0; $i < count($matches); $i++) - { - $return[$i]['tag'] = $realname; - $return[$i]['full'] = $matches[$i][0]; - if (strlen($matches[$i][10]) <= 2) - { - $return[$i]['self_closing'] = true; - } - else - { - $return[$i]['self_closing'] = false; - $return[$i]['content'] = $matches[$i][12]; - } - $return[$i]['attribs'] = array(); - if (!empty($matches[$i][2])) - { - preg_match_all('/((\w+:)?\w+)\s*=\s*("([^"]*)"|\'([^\']*)\'|(\S+))\s/msiU', ' ' . $matches[$i][2] . ' ', $attribs, PREG_SET_ORDER); - for ($j = 0; $j < count($attribs); $j++) - { - $return[$i]['attribs'][strtoupper($attribs[$j][1])]['data'] = $attribs[$j][count($attribs[$j])-1]; - $first = substr($attribs[$j][2], 0, 1); - $return[$i]['attribs'][strtoupper($attribs[$j][1])]['split'] = ($first == '"' || $first == "'") ? $first : '"'; - } - } - } - return $return; - } - - function element_implode($element) - { - $full = "<$element[tag]"; - foreach ($element['attribs'] as $key => $value) - { - $key = strtolower($key); - $full .= " $key=$value[split]$value[data]$value[split]"; - } - if ($element['self_closing']) - { - $full .= ' />'; - } - else - { - $full .= ">$element[content]"; - } - return $full; - } - - function error($message, $level, $file, $line) - { - switch ($level) - { - case E_USER_ERROR: - $note = 'PHP Error'; - break; - case E_USER_WARNING: - $note = 'PHP Warning'; - break; - case E_USER_NOTICE: - $note = 'PHP Notice'; - break; - default: - $note = 'Unknown Error'; - break; - } - error_log("$note: $message in $file on line $line", 0); - return $message; - } - - function display_file($url, $timeout = 10, $useragent = null) - { - $file = new SimplePie_File($url, $timeout, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $useragent); - $headers = $file->headers(); - if ($file->body() !== false) - { - header('Content-type: ' . $headers['content-type']); - echo $file->body(); - exit; - } - } - - function fix_protocol($url, $http = 1) - { - $parsed = SimplePie_Misc::parse_url($url); - if (!empty($parsed['scheme']) && strtolower($parsed['scheme']) != 'http' && strtolower($parsed['scheme']) != 'https') - { - return SimplePie_Misc::fix_protocol("$parsed[authority]$parsed[path]$parsed[query]$parsed[fragment]", $http); - } - if (!file_exists($url) && empty($parsed['scheme'])) - { - return SimplePie_Misc::fix_protocol("http://$url", $http); - } - - if ($http == 2 && !empty($parsed['scheme'])) - { - return "feed:$url"; - } - else if ($http == 3 && strtolower($parsed['scheme']) == 'http') - { - return substr_replace($url, 'podcast', 0, 4); - } - else - { - return $url; - } - } - - function parse_url($url, $parse_match = true) - { - preg_match('/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/i', $url, $match); - if (empty($match[0])) - { - return false; - } - else - { - for ($i = 6; $i < 10; $i++) - { - if (!isset($match[$i])) - { - $match[$i] = ''; - } - } - if ($parse_match) - { - $match = array('scheme' => $match[2], 'authority' => $match[4], 'path' => $match[5], 'query' => $match[6], 'fragment' => $match[8]); - } - return $match; - } - } - - /** - * Replace bad bytes - * - * PCRE Pattern to locate bad bytes in a UTF-8 string - * Comes from W3 FAQ: Multilingual Forms - * Note: modified to include full ASCII range including control chars - * - * Modified by Geoffrey Sneddon 2006-11-19 to remove functionality - * to choose what the replace string is, and to use a variable for - * the output instead of PHP's output buffer - */ - function utf8_bad_replace($str) - { - $UTF8_BAD = - '([\x00-\x7F]' . # ASCII (including control chars) - '|[\xC2-\xDF][\x80-\xBF]' . # non-overlong 2-byte - '|\xE0[\xA0-\xBF][\x80-\xBF]' . # excluding overlongs - '|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}' . # straight 3-byte - '|\xED[\x80-\x9F][\x80-\xBF]' . # excluding surrogates - '|\xF0[\x90-\xBF][\x80-\xBF]{2}' . # planes 1-3 - '|[\xF1-\xF3][\x80-\xBF]{3}' . # planes 4-15 - '|\xF4[\x80-\x8F][\x80-\xBF]{2}' . # plane 16 - '|(.{1}))'; # invalid byte - $output = ''; - while (preg_match('/' . $UTF8_BAD . '/S', $str, $matches)) - { - if (!isset($matches[2])) - { - $output .= $matches[0]; - } - $str = substr($str, strlen($matches[0])); - } - return $output; - } - - function change_encoding($data, $input, $output) - { - $input = SimplePie_Misc::encoding($input); - $output = SimplePie_Misc::encoding($output); - - if ($input != $output) - { - if (function_exists('iconv') && $input['use_iconv'] && $output['use_iconv'] && iconv($input['encoding'], "$output[encoding]//TRANSLIT", $data)) - { - return iconv($input['encoding'], "$output[encoding]//TRANSLIT", $data); - } - else if (function_exists('iconv') && $input['use_iconv'] && $output['use_iconv'] && iconv($input['encoding'], $output['encoding'], $data)) - { - return iconv($input['encoding'], $output['encoding'], $data); - } - else if (function_exists('mb_convert_encoding') && $input['use_mbstring'] && $output['use_mbstring']) - { - return mb_convert_encoding($data, $output['encoding'], $input['encoding']); - } - else if ($input['encoding'] == 'ISO-8859-1' && $output['encoding'] == 'UTF-8') - { - return utf8_encode($data); - } - else if ($input['encoding'] == 'UTF-8' && $output['encoding'] == 'ISO-8859-1') - { - return utf8_decode($data); - } - } - return $data; - } - - function encoding($encoding) - { - $return['use_mbstring'] = false; - $return['use_iconv'] = false; - switch (strtolower($encoding)) - { - - // 7bit - case '7bit': - case '7-bit': - $return['encoding'] = '7bit'; - $return['use_mbstring'] = true; - break; - - // 8bit - case '8bit': - case '8-bit': - $return['encoding'] = '8bit'; - $return['use_mbstring'] = true; - break; - - // ARMSCII-8 - case 'armscii-8': - case 'armscii': - $return['encoding'] = 'ARMSCII-8'; - $return['use_iconv'] = true; - break; - - // ASCII - case 'us-ascii': - case 'ascii': - $return['encoding'] = 'US-ASCII'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // BASE64 - case 'base64': - case 'base-64': - $return['encoding'] = 'BASE64'; - $return['use_mbstring'] = true; - break; - - // Big5 - Traditional Chinese, mainly used in Taiwan - case 'big5': - case '950': - $return['encoding'] = 'BIG5'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // Big5 with Hong Kong extensions, Traditional Chinese - case 'big5-hkscs': - $return['encoding'] = 'BIG5-HKSCS'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // byte2be - case 'byte2be': - $return['encoding'] = 'byte2be'; - $return['use_mbstring'] = true; - break; - - // byte2le - case 'byte2le': - $return['encoding'] = 'byte2le'; - $return['use_mbstring'] = true; - break; - - // byte4be - case 'byte4be': - $return['encoding'] = 'byte4be'; - $return['use_mbstring'] = true; - break; - - // byte4le - case 'byte4le': - $return['encoding'] = 'byte4le'; - $return['use_mbstring'] = true; - break; - - // EUC-CN - case 'euc-cn': - case 'euccn': - $return['encoding'] = 'EUC-CN'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // EUC-JISX0213 - case 'euc-jisx0213': - case 'eucjisx0213': - $return['encoding'] = 'EUC-JISX0213'; - $return['use_iconv'] = true; - break; - - // EUC-JP - case 'euc-jp': - case 'eucjp': - $return['encoding'] = 'EUC-JP'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // EUCJP-win - case 'euc-jp-win': - case 'eucjp-win': - case 'eucjpwin': - $return['encoding'] = 'EUCJP-win'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // EUC-KR - case 'euc-kr': - case 'euckr': - $return['encoding'] = 'EUC-KR'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // EUC-TW - case 'euc-tw': - case 'euctw': - $return['encoding'] = 'EUC-TW'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // GB18030 - Simplified Chinese, national standard character set - case 'gb18030-2000': - case 'gb18030': - $return['encoding'] = 'GB18030'; - $return['use_iconv'] = true; - break; - - // GB2312 - Simplified Chinese, national standard character set - case 'gb2312': - case '936': - $return['encoding'] = 'GB2312'; - $return['use_mbstring'] = true; - break; - - // GBK - case 'gbk': - $return['encoding'] = 'GBK'; - $return['use_iconv'] = true; - break; - - // Georgian-Academy - case 'georgian-academy': - $return['encoding'] = 'Georgian-Academy'; - $return['use_iconv'] = true; - break; - - // Georgian-PS - case 'georgian-ps': - $return['encoding'] = 'Georgian-PS'; - $return['use_iconv'] = true; - break; - - // HTML-ENTITIES - case 'html-entities': - case 'htmlentities': - $return['encoding'] = 'HTML-ENTITIES'; - $return['use_mbstring'] = true; - break; - - // HZ - case 'hz': - $return['encoding'] = 'HZ'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // ISO-2022-CN - case 'iso-2022-cn': - case 'iso2022-cn': - case 'iso2022cn': - $return['encoding'] = 'ISO-2022-CN'; - $return['use_iconv'] = true; - break; - - // ISO-2022-CN-EXT - case 'iso-2022-cn-ext': - case 'iso2022-cn-ext': - case 'iso2022cn-ext': - case 'iso2022cnext': - $return['encoding'] = 'ISO-2022-CN'; - $return['use_iconv'] = true; - break; - - // ISO-2022-JP - case 'iso-2022-jp': - case 'iso2022-jp': - case 'iso2022jp': - $return['encoding'] = 'ISO-2022-JP'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // ISO-2022-JP-1 - case 'iso-2022-jp-1': - case 'iso2022-jp-1': - case 'iso2022jp-1': - case 'iso2022jp1': - $return['encoding'] = 'ISO-2022-JP-1'; - $return['use_iconv'] = true; - break; - - // ISO-2022-JP-2 - case 'iso-2022-jp-2': - case 'iso2022-jp-2': - case 'iso2022jp-2': - case 'iso2022jp2': - $return['encoding'] = 'ISO-2022-JP-2'; - $return['use_iconv'] = true; - break; - - // ISO-2022-JP-3 - case 'iso-2022-jp-3': - case 'iso2022-jp-3': - case 'iso2022jp-3': - case 'iso2022jp3': - $return['encoding'] = 'ISO-2022-JP-3'; - $return['use_iconv'] = true; - break; - - // ISO-2022-KR - case 'iso-2022-kr': - case 'iso2022-kr': - case 'iso2022kr': - $return['encoding'] = 'ISO-2022-KR'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // ISO-8859-1 - case 'iso-8859-1': - case 'iso8859-1': - $return['encoding'] = 'ISO-8859-1'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // ISO-8859-2 - case 'iso-8859-2': - case 'iso8859-2': - $return['encoding'] = 'ISO-8859-2'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // ISO-8859-3 - case 'iso-8859-3': - case 'iso8859-3': - $return['encoding'] = 'ISO-8859-3'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // ISO-8859-4 - case 'iso-8859-4': - case 'iso8859-4': - $return['encoding'] = 'ISO-8859-4'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // ISO-8859-5 - case 'iso-8859-5': - case 'iso8859-5': - $return['encoding'] = 'ISO-8859-5'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // ISO-8859-6 - case 'iso-8859-6': - case 'iso8859-6': - $return['encoding'] = 'ISO-8859-6'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // ISO-8859-7 - case 'iso-8859-7': - case 'iso8859-7': - $return['encoding'] = 'ISO-8859-7'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // ISO-8859-8 - case 'iso-8859-8': - case 'iso8859-8': - $return['encoding'] = 'ISO-8859-8'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // ISO-8859-9 - case 'iso-8859-9': - case 'iso8859-9': - $return['encoding'] = 'ISO-8859-9'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // ISO-8859-10 - case 'iso-8859-10': - case 'iso8859-10': - $return['encoding'] = 'ISO-8859-10'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // mbstring/iconv functions don't appear to support 11 & 12 - - // ISO-8859-13 - case 'iso-8859-13': - case 'iso8859-13': - $return['encoding'] = 'ISO-8859-13'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // ISO-8859-14 - case 'iso-8859-14': - case 'iso8859-14': - $return['encoding'] = 'ISO-8859-14'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // ISO-8859-15 - case 'iso-8859-15': - case 'iso8859-15': - $return['encoding'] = 'ISO-8859-15'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // ISO-8859-16 - case 'iso-8859-16': - case 'iso8859-16': - $return['encoding'] = 'ISO-8859-16'; - $return['use_iconv'] = true; - break; - - // JIS - case 'jis': - $return['encoding'] = 'JIS'; - $return['use_mbstring'] = true; - break; - - // JOHAB - Korean - case 'johab': - $return['encoding'] = 'JOHAB'; - $return['use_iconv'] = true; - break; - - // Russian - case 'koi8-r': - case 'koi8r': - $return['encoding'] = 'KOI8-R'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // Turkish - case 'koi8-t': - case 'koi8t': - $return['encoding'] = 'KOI8-T'; - $return['use_iconv'] = true; - break; - - // Ukrainian - case 'koi8-u': - case 'koi8u': - $return['encoding'] = 'KOI8-U'; - $return['use_iconv'] = true; - break; - - // Russian+Ukrainian - case 'koi8-ru': - case 'koi8ru': - $return['encoding'] = 'KOI8-RU'; - $return['use_iconv'] = true; - break; - - // Macintosh (Mac OS Classic) - case 'macintosh': - $return['encoding'] = 'Macintosh'; - $return['use_iconv'] = true; - break; - - // MacArabic (Mac OS Classic) - case 'macarabic': - $return['encoding'] = 'MacArabic'; - $return['use_iconv'] = true; - break; - - // MacCentralEurope (Mac OS Classic) - case 'maccentraleurope': - $return['encoding'] = 'MacCentralEurope'; - $return['use_iconv'] = true; - break; - - // MacCroatian (Mac OS Classic) - case 'maccroatian': - $return['encoding'] = 'MacCroatian'; - $return['use_iconv'] = true; - break; - - // MacCyrillic (Mac OS Classic) - case 'maccyrillic': - $return['encoding'] = 'MacCyrillic'; - $return['use_iconv'] = true; - break; - - // MacGreek (Mac OS Classic) - case 'macgreek': - $return['encoding'] = 'MacGreek'; - $return['use_iconv'] = true; - break; - - // MacHebrew (Mac OS Classic) - case 'machebrew': - $return['encoding'] = 'MacHebrew'; - $return['use_iconv'] = true; - break; - - // MacIceland (Mac OS Classic) - case 'maciceland': - $return['encoding'] = 'MacIceland'; - $return['use_iconv'] = true; - break; - - // MacRoman (Mac OS Classic) - case 'macroman': - $return['encoding'] = 'MacRoman'; - $return['use_iconv'] = true; - break; - - // MacRomania (Mac OS Classic) - case 'macromania': - $return['encoding'] = 'MacRomania'; - $return['use_iconv'] = true; - break; - - // MacThai (Mac OS Classic) - case 'macthai': - $return['encoding'] = 'MacThai'; - $return['use_iconv'] = true; - break; - - // MacTurkish (Mac OS Classic) - case 'macturkish': - $return['encoding'] = 'MacTurkish'; - $return['use_iconv'] = true; - break; - - // MacUkraine (Mac OS Classic) - case 'macukraine': - $return['encoding'] = 'MacUkraine'; - $return['use_iconv'] = true; - break; - - // MuleLao-1 - case 'mulelao-1': - case 'mulelao1': - $return['encoding'] = 'MuleLao-1'; - $return['use_iconv'] = true; - break; - - // Shift_JIS - case 'shift_jis': - case 'sjis': - case '932': - $return['encoding'] = 'Shift_JIS'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // Shift_JISX0213 - case 'shift-jisx0213': - case 'shiftjisx0213': - $return['encoding'] = 'Shift_JISX0213'; - $return['use_iconv'] = true; - break; - - // SJIS-win - case 'sjis-win': - case 'sjiswin': - case 'shift_jis-win': - $return['encoding'] = 'SJIS-win'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // TCVN - Vietnamese - case 'tcvn': - $return['encoding'] = 'TCVN'; - $return['use_iconv'] = true; - break; - - // TDS565 - Turkish - case 'tds565': - $return['encoding'] = 'TDS565'; - $return['use_iconv'] = true; - break; - - // TIS-620 Thai - case 'tis-620': - case 'tis620': - $return['encoding'] = 'TIS-620'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // UCS-2 - case 'ucs-2': - case 'ucs2': - case 'utf-16': - case 'utf16': - $return['encoding'] = 'UCS-2'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // UCS-2BE - case 'ucs-2be': - case 'ucs2be': - case 'utf-16be': - case 'utf16be': - $return['encoding'] = 'UCS-2BE'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // UCS-2LE - case 'ucs-2le': - case 'ucs2le': - case 'utf-16le': - case 'utf16le': - $return['encoding'] = 'UCS-2LE'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // UCS-2-INTERNAL - case 'ucs-2-internal': - case 'ucs2internal': - $return['encoding'] = 'UCS-2-INTERNAL'; - $return['use_iconv'] = true; - break; - - // UCS-4 - case 'ucs-4': - case 'ucs4': - case 'utf-32': - case 'utf32': - $return['encoding'] = 'UCS-4'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // UCS-4BE - case 'ucs-4be': - case 'ucs4be': - case 'utf-32be': - case 'utf32be': - $return['encoding'] = 'UCS-4BE'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // UCS-4LE - case 'ucs-4le': - case 'ucs4le': - case 'utf-32le': - case 'utf32le': - $return['encoding'] = 'UCS-4LE'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // UCS-4-INTERNAL - case 'ucs-4-internal': - case 'ucs4internal': - $return['encoding'] = 'UCS-4-INTERNAL'; - $return['use_iconv'] = true; - break; - - // UCS-16 - case 'ucs-16': - case 'ucs16': - $return['encoding'] = 'UCS-16'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // UCS-16BE - case 'ucs-16be': - case 'ucs16be': - $return['encoding'] = 'UCS-16BE'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // UCS-16LE - case 'ucs-16le': - case 'ucs16le': - $return['encoding'] = 'UCS-16LE'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // UCS-32 - case 'ucs-32': - case 'ucs32': - $return['encoding'] = 'UCS-32'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // UCS-32BE - case 'ucs-32be': - case 'ucs32be': - $return['encoding'] = 'UCS-32BE'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // UCS-32LE - case 'ucs-32le': - case 'ucs32le': - $return['encoding'] = 'UCS-32LE'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // UTF-7 - case 'utf-7': - case 'utf7': - $return['encoding'] = 'UTF-7'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // UTF7-IMAP - case 'utf-7-imap': - case 'utf7-imap': - case 'utf7imap': - $return['encoding'] = 'UTF7-IMAP'; - $return['use_mbstring'] = true; - break; - - // VISCII - Vietnamese ASCII - case 'viscii': - $return['encoding'] = 'VISCII'; - $return['use_iconv'] = true; - break; - - // Windows-specific Central & Eastern Europe - case 'cp1250': - case 'windows-1250': - case 'win-1250': - case '1250': - $return['encoding'] = 'Windows-1250'; - $return['use_iconv'] = true; - break; - - // Windows-specific Cyrillic - case 'cp1251': - case 'windows-1251': - case 'win-1251': - case '1251': - $return['encoding'] = 'Windows-1251'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // Windows-specific Western Europe - case 'cp1252': - case 'windows-1252': - case '1252': - $return['encoding'] = 'Windows-1252'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - - // Windows-specific Greek - case 'cp1253': - case 'windows-1253': - case '1253': - $return['encoding'] = 'Windows-1253'; - $return['use_iconv'] = true; - break; - - // Windows-specific Turkish - case 'cp1254': - case 'windows-1254': - case '1254': - $return['encoding'] = 'Windows-1254'; - $return['use_iconv'] = true; - break; - - // Windows-specific Hebrew - case 'cp1255': - case 'windows-1255': - case '1255': - $return['encoding'] = 'Windows-1255'; - $return['use_iconv'] = true; - break; - - // Windows-specific Arabic - case 'cp1256': - case 'windows-1256': - case '1256': - $return['encoding'] = 'Windows-1256'; - $return['use_iconv'] = true; - break; - - // Windows-specific Baltic - case 'cp1257': - case 'windows-1257': - case '1257': - $return['encoding'] = 'Windows-1257'; - $return['use_iconv'] = true; - break; - - // Windows-specific Vietnamese - case 'cp1258': - case 'windows-1258': - case '1258': - $return['encoding'] = 'Windows-1258'; - $return['use_iconv'] = true; - break; - - // Default to UTF-8 - default: - $return['encoding'] = 'UTF-8'; - $return['use_iconv'] = true; - $return['use_mbstring'] = true; - break; - } - - // Then, return it. - return $return; - } - - function get_curl_version() - { - $curl = 0; - if (is_array(curl_version())) - { - $curl = curl_version(); - $curl = $curl['version']; - } - else - { - $curl = curl_version(); - $curl = explode(' ', $curl); - $curl = explode('/', $curl[0]); - $curl = $curl[1]; - } - return $curl; - } - - function is_a_class($class1, $class2) - { - if (class_exists($class1)) - { - $classes = array(strtolower($class1)); - while ($class1 = get_parent_class($class1)) - { - $classes[] = strtolower($class1); - } - return in_array(strtolower($class2), $classes); - } - else - { - return false; - } - } -} - -class SimplePie_Locator -{ - var $useragent; - var $timeout; - var $file; - var $local; - var $elsewhere; - var $file_class = 'SimplePie_File'; - - function SimplePie_Locator(&$file, $timeout = 10, $useragent = null, $file_class = 'SimplePie_File') - { - if (!is_a($file, 'SimplePie_File')) - { - $this->file = new $this->file_class($file, $timeout, $useragent); - } - else - { - $this->file =& $file; - } - $this->file_class = $file_class; - $this->useragent = $useragent; - $this->timeout = $timeout; - } - - - function find() - { - if ($this->is_feed($this->file)) - { - return $this->file->url; - } - - $autodiscovery = $this->autodiscovery($this->file); - if ($autodiscovery) - { - return $autodiscovery; - } - - if ($this->get_links($this->file)) - { - if (!empty($this->local)) - { - $extension_local = $this->extension($this->local); - if ($extension_local) - { - return $extension_local; - } - - $body_local = $this->body($this->local); - if ($body_local) - { - return $body_local; - } - } - - if (!empty($this->elsewhere)) - { - $extension_elsewhere = $this->extension($this->elsewhere); - if ($extension_elsewhere) - { - return $extension_elsewhere; - } - - $body_elsewhere = $this->body($this->elsewhere); - if ($body_elsewhere) - { - return $body_elsewhere; - } - } - } - return false; - } - - function is_feed(&$file) - { - if (!is_a($file, 'SimplePie_File')) - { - if (isset($this)) - { - $file2 = new $this->file_class($file, $this->timeout, 5, null, $this->useragent); - } - else - { - $file2 = new $this->file_class($file); - } - $file2->body(); - $file2->close(); - } - else - { - $file2 =& $file; - } - $body = preg_replace('/<\!-(.*)-\>/msiU', '', $file2->body()); - if (preg_match('/<(\w+\:)?rss/msiU', $body) || preg_match('/<(\w+\:)?RDF/mi', $body) || preg_match('/<(\w+\:)?feed/mi', $body)) - { - return true; - } - return false; - } - - function autodiscovery(&$file) - { - $links = SimplePie_Misc::get_element('link', $file->body()); - $done = array(); - foreach ($links as $link) - { - if (!empty($link['attribs']['TYPE']['data']) && !empty($link['attribs']['HREF']['data']) && !empty($link['attribs']['REL']['data'])) - { - $rel = preg_split('/\s+/', strtolower(trim($link['attribs']['REL']['data']))); - $type = preg_match('/^(application\/rss\+xml|application\/atom\+xml|application\/rdf\+xml|application\/xml\+rss|application\/xml\+atom|application\/xml\+rdf|application\/xml|application\/x\.atom\+xml|text\/xml)(;|$)/msiU', trim($link['attribs']['TYPE']['data'])); - $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['HREF']['data']), $this->file->url); - if (!in_array($href, $done) && in_array('alternate', $rel) && $type) - { - $feed = $this->is_feed($href); - if ($feed) - { - return $href; - } - } - $done[] = $href; - } - } - return false; - } - - function get_links(&$file) - { - $links = SimplePie_Misc::get_element('a', $file->body()); - foreach ($links as $link) - { - if (!empty($link['attribs']['HREF']['data'])) - { - $href = trim($link['attribs']['HREF']['data']); - $parsed = SimplePie_Misc::parse_url($href); - if (empty($parsed['scheme']) || $parsed['scheme'] != 'javascript') - { - $current = SimplePie_Misc::parse_url($this->file->url); - if (empty($parsed['authority']) || $parsed['authority'] == $current['authority']) - { - $this->local[] = SimplePie_Misc::absolutize_url($href, $this->file->url); - } - else - { - $this->elsewhere[] = SimplePie_Misc::absolutize_url($href, $this->file->url); - } - } - } - } - if (!empty($this->local)) - { - $this->local = array_unique($this->local); - } - if (!empty($this->elsewhere)) - { - $this->elsewhere = array_unique($this->elsewhere); - } - if (!empty($this->local) || !empty($this->elsewhere)) - { - return true; - } - return false; - } - - function extension(&$array) - { - foreach ($array as $key => $value) - { - $value = SimplePie_Misc::absolutize_url($value, $this->file->url); - if (in_array(strrchr($value, '.'), array('.rss', '.rdf', '.atom', '.xml'))) - { - if ($this->is_feed($value)) - { - return $value; - } - else - { - unset($array[$key]); - } - } - } - return false; - } - - function body(&$array) - { - foreach ($array as $key => $value) - { - $value = SimplePie_Misc::absolutize_url($value, $this->file->url); - if (preg_match('/(rss|rdf|atom|xml)/i', $value)) - { - if ($this->is_feed($value)) - { - return $value; - } - else - { - unset($array[$key]); - } - } - } - return false; - } -} - -class SimplePie_Parser -{ - var $encoding; - var $data; - var $namespaces = array('xml' => 'HTTP://WWW.W3.ORG/XML/1998/NAMESPACE', 'atom' => 'ATOM', 'rss2' => 'RSS', 'rdf' => 'RDF', 'rss1' => 'RSS', 'dc' => 'DC', 'xhtml' => 'XHTML', 'content' => 'CONTENT'); - var $xml; - var $error_code; - var $error_string; - var $current_line; - var $current_column; - var $current_byte; - var $tag_name; - var $inside_item; - var $item_number = 0; - var $inside_channel; - var $author_number= 0; - var $category_number = 0; - var $enclosure_number = 0; - var $link_number = 0; - var $item_link_number = 0; - var $inside_image; - var $attribs; - var $is_first; - var $inside_author; - var $depth_inside_item = 0; - - function SimplePie_Parser($data, $encoding, $return_xml = false) - { - $this->encoding = $encoding; - - // Strip BOM: - // UTF-32 Big Endian BOM - if (strpos($data, sprintf('%c%c%c%c', 0x00, 0x00, 0xFE, 0xFF)) === 0) - { - $data = substr($data, 4); - } - // UTF-32 Little Endian BOM - else if (strpos($data, sprintf('%c%c%c%c', 0xFF, 0xFE, 0x00, 0x00)) === 0) - { - $data = substr($data, 4); - } - // UTF-16 Big Endian BOM - else if (strpos($data, sprintf('%c%c', 0xFE, 0xFF)) === 0) - { - $data = substr($data, 2); - } - // UTF-16 Little Endian BOM - else if (strpos($data, sprintf('%c%c', 0xFF, 0xFE)) === 0) - { - $data = substr($data, 2); - } - // UTF-8 BOM - else if (strpos($data, sprintf('%c%c%c', 0xEF, 0xBB, 0xBF)) === 0) - { - $data = substr($data, 3); - } - - // Make sure the XML prolog is sane and has the correct encoding - if (preg_match('/^<\?xml(.*)?>/msiU', $data, $prolog)) - { - $data = substr_replace($data, '', 0, strlen($prolog[0])); - } - $data = "\n" . $data; - - // Put some data into CDATA blocks - // If we're RSS - if ((stristr($data, '|>(.*)<\/$full>)/msiU", array(&$this, 'add_cdata'), $data); - } - foreach ($sp_elements as $full) - { - // Deal with CDATA within CDATA (this can be caused by us inserting CDATA above) - $data = preg_replace_callback("/<($full)((\s*((\w+:)?\w+)\s*=\s*(\"([^\"]*)\"|'([^']*)'))*)\s*(\/>|><\/$full>)/msiU", array(&$this, 'cdata_in_cdata'), $data); - } - - // Return the XML, if so desired - if ($return_xml) - { - $this->data =& $data; - return; - } - - // Create the parser - $this->xml = xml_parser_create_ns($encoding); - xml_parser_set_option($this->xml, XML_OPTION_SKIP_WHITE, 1); - xml_set_object($this->xml, $this); - xml_set_character_data_handler($this->xml, 'data_handler'); - xml_set_element_handler($this->xml, 'start_handler', 'end_handler'); - xml_set_start_namespace_decl_handler($this->xml, 'start_name_space'); - xml_set_end_namespace_decl_handler($this->xml, 'end_name_space'); - - // Parse! - if (!xml_parse($this->xml, $data)) - { - $this->data = null; - $this->error_code = xml_get_error_code($this->xml); - $this->error_string = xml_error_string($this->error_code); - } - $this->current_line = xml_get_current_line_number($this->xml); - $this->current_column = xml_get_current_column_number($this->xml); - $this->current_byte = xml_get_current_byte_index($this->xml); - xml_parser_free($this->xml); - return; - } - - function add_cdata($match) - { - if (isset($match[10])) - { - return "<$match[1]$match[2]>"; - } - return $match[0]; - } - - function cdata_in_cdata($match) - { - if (isset($match[10])) - { - $match[10] = preg_replace_callback('//msiU', array(&$this, 'real_cdata_in_cdata'), $match[10]); - return "<$match[1]$match[2]>"; - } - return $match[0]; - } - - function real_cdata_in_cdata($match) - { - return htmlspecialchars($match[1], ENT_NOQUOTES); - } - - function do_add_content(&$array, $data) - { - if ($this->is_first) - { - $array['data'] = $data; - $array['attribs'] = $this->attribs; - } - else - { - $array['data'] .= $data; - } - } - - function start_handler($parser, $name, $attribs) - { - $this->tag_name = $name; - $this->attribs = $attribs; - $this->is_first = true; - - if ($this->inside_item) - { - $this->depth_inside_item++; - } - - switch ($this->tag_name) - { - case 'ITEM': - case $this->namespaces['rss2'] . ':ITEM': - case $this->namespaces['rss1'] . ':ITEM': - case 'ENTRY': - case $this->namespaces['atom'] . ':ENTRY': - $this->inside_item = true; - $this->do_add_content($this->data['items'][$this->item_number], ''); - break; - - case 'CHANNEL': - case $this->namespaces['rss2'] . ':CHANNEL': - case $this->namespaces['rss1'] . ':CHANNEL': - $this->inside_channel = true; - break; - - case 'RSS': - case $this->namespaces['rss2'] . ':RSS': - $this->data['feedinfo']['type'] = 'RSS'; - $this->do_add_content($this->data['feeddata'], ''); - if (!empty($attribs['VERSION'])) - { - $this->data['feedinfo']['version'] = trim($attribs['VERSION']); - } - break; - - case $this->namespaces['rdf'] . ':RDF': - $this->data['feedinfo']['type'] = 'RSS'; - $this->do_add_content($this->data['feeddata'], ''); - $this->data['feedinfo']['version'] = 1; - break; - - case 'FEED': - case $this->namespaces['atom'] . ':FEED': - $this->data['feedinfo']['type'] = 'Atom'; - $this->do_add_content($this->data['feeddata'], ''); - if (!empty($attribs['VERSION'])) - { - $this->data['feedinfo']['version'] = trim($attribs['VERSION']); - } - break; - - case 'IMAGE': - case $this->namespaces['rss2'] . ':IMAGE': - case $this->namespaces['rss1'] . ':IMAGE': - if ($this->inside_channel) - { - $this->inside_image = true; - } - break; - } - - if (!empty($this->data['feedinfo']['type']) && $this->data['feedinfo']['type'] == 'Atom' && ($this->tag_name == 'AUTHOR' || $this->tag_name == $this->namespaces['atom'] . ':AUTHOR')) - { - $this->inside_author = true; - } - $this->data_handler($this->xml, ''); - } - - function data_handler($parser, $data) - { - if ($this->inside_item && $this->depth_inside_item == 1) - { - switch ($this->tag_name) - { - case 'TITLE': - case $this->namespaces['rss1'] . ':TITLE': - case $this->namespaces['rss2'] . ':TITLE': - case $this->namespaces['atom'] . ':TITLE': - $this->do_add_content($this->data['items'][$this->item_number]['title'], $data); - break; - - case $this->namespaces['dc'] . ':TITLE': - $this->do_add_content($this->data['items'][$this->item_number]['dc:title'], $data); - break; - - case 'CONTENT': - case $this->namespaces['atom'] . ':CONTENT': - $this->do_add_content($this->data['items'][$this->item_number]['content'], $data); - break; - - case $this->namespaces['content'] . ':ENCODED': - $this->do_add_content($this->data['items'][$this->item_number]['encoded'], $data); - break; - - case 'SUMMARY': - case $this->namespaces['atom'] . ':SUMMARY': - $this->do_add_content($this->data['items'][$this->item_number]['summary'], $data); - break; - - case 'LONGDESC': - $this->do_add_content($this->data['items'][$this->item_number]['longdesc'], $data); - break; - - case 'DESCRIPTION': - case $this->namespaces['rss1'] . ':DESCRIPTION': - case $this->namespaces['rss2'] . ':DESCRIPTION': - $this->do_add_content($this->data['items'][$this->item_number]['description'], $data); - break; - - case $this->namespaces['dc'] . ':DESCRIPTION': - $this->do_add_content($this->data['items'][$this->item_number]['dc:description'], $data); - break; - - case 'LINK': - case $this->namespaces['rss1'] . ':LINK': - case $this->namespaces['rss2'] . ':LINK': - case $this->namespaces['atom'] . ':LINK': - $this->do_add_content($this->data['items'][$this->item_number]['link'][$this->item_link_number], $data); - break; - - case 'ENCLOSURE': - case $this->namespaces['rss1'] . ':ENCLOSURE': - case $this->namespaces['rss2'] . ':ENCLOSURE': - case $this->namespaces['atom'] . ':ENCLOSURE': - $this->do_add_content($this->data['items'][$this->item_number]['enclosure'][$this->enclosure_number], $data); - break; - - case 'GUID': - case $this->namespaces['rss1'] . ':GUID': - case $this->namespaces['rss2'] . ':GUID': - $this->do_add_content($this->data['items'][$this->item_number]['guid'], $data); - break; - - case 'ID': - case $this->namespaces['atom'] . ':ID': - $this->do_add_content($this->data['items'][$this->item_number]['id'], $data); - break; - - case 'PUBDATE': - case $this->namespaces['rss1'] . ':PUBDATE': - case $this->namespaces['rss2'] . ':PUBDATE': - $this->do_add_content($this->data['items'][$this->item_number]['pubdate'], $data); - break; - - case $this->namespaces['dc'] . ':DATE': - $this->do_add_content($this->data['items'][$this->item_number]['dc:date'], $data); - break; - - case 'ISSUED': - case $this->namespaces['atom'] . ':ISSUED': - $this->do_add_content($this->data['items'][$this->item_number]['issued'], $data); - break; - - case 'PUBLISHED': - case $this->namespaces['atom'] . ':PUBLISHED': - $this->do_add_content($this->data['items'][$this->item_number]['published'], $data); - break; - - case 'MODIFIED': - case $this->namespaces['atom'] . ':MODIFIED': - $this->do_add_content($this->data['items'][$this->item_number]['modified'], $data); - break; - - case 'UPDATED': - case $this->namespaces['atom'] . ':UPDATED': - $this->do_add_content($this->data['items'][$this->item_number]['updated'], $data); - break; - - case 'CATEGORY': - case $this->namespaces['rss1'] . ':CATEGORY': - case $this->namespaces['rss2'] . ':CATEGORY': - case $this->namespaces['atom'] . ':CATEGORY': - $this->do_add_content($this->data['items'][$this->item_number]['category'][$this->category_number], $data); - break; - - case $this->namespaces['dc'] . ':SUBJECT': - $this->do_add_content($this->data['items'][$this->item_number]['subject'][$this->category_number], $data); - break; - - case $this->namespaces['dc'] . ':CREATOR': - $this->do_add_content($this->data['items'][$this->item_number]['creator'][$this->author_number], $data); - break; - - case 'AUTHOR': - case $this->namespaces['rss1'] . ':AUTHOR': - case $this->namespaces['rss2'] . ':AUTHOR': - $this->do_add_content($this->data['items'][$this->item_number]['author'][$this->author_number]['rss'], $data); - break; - } - - if ($this->inside_author) - { - switch ($this->tag_name) - { - case 'NAME': - case $this->namespaces['atom'] . ':NAME': - $this->do_add_content($this->data['items'][$this->item_number]['author'][$this->author_number]['name'], $data); - break; - - case 'URL': - case $this->namespaces['atom'] . ':URL': - $this->do_add_content($this->data['items'][$this->item_number]['author'][$this->author_number]['url'], $data); - break; - - case 'URI': - case $this->namespaces['atom'] . ':URI': - $this->do_add_content($this->data['items'][$this->item_number]['author'][$this->author_number]['uri'], $data); - break; - - case 'HOMEPAGE': - case $this->namespaces['atom'] . ':HOMEPAGE': - $this->do_add_content($this->data['items'][$this->item_number]['author'][$this->author_number]['homepage'], $data); - break; - - case 'EMAIL': - case $this->namespaces['atom'] . ':EMAIL': - $this->do_add_content($this->data['items'][$this->item_number]['author'][$this->author_number]['email'], $data); - break; - } - } - } - - else if (($this->inside_channel && !$this->inside_image) || (isset($this->data['feedinfo']['type']) && $this->data['feedinfo']['type'] == 'Atom')) - { - switch ($this->tag_name) - { - case 'TITLE': - case $this->namespaces['rss1'] . ':TITLE': - case $this->namespaces['rss2'] . ':TITLE': - case $this->namespaces['atom'] . ':TITLE': - $this->do_add_content($this->data['info']['title'], $data); - break; - - case 'LINK': - case $this->namespaces['rss1'] . ':LINK': - case $this->namespaces['rss2'] . ':LINK': - case $this->namespaces['atom'] . ':LINK': - $this->do_add_content($this->data['info']['link'][$this->link_number], $data); - break; - - case 'DESCRIPTION': - case $this->namespaces['rss1'] . ':DESCRIPTION': - case $this->namespaces['rss2'] . ':DESCRIPTION': - $this->do_add_content($this->data['info']['description'], $data); - break; - - case $this->namespaces['dc'] . ':DESCRIPTION': - $this->do_add_content($this->data['info']['dc:description'], $data); - break; - - case 'TAGLINE': - case $this->namespaces['atom'] . ':TAGLINE': - $this->do_add_content($this->data['info']['tagline'], $data); - break; - - case 'SUBTITLE': - case $this->namespaces['atom'] . ':SUBTITLE': - $this->do_add_content($this->data['info']['subtitle'], $data); - break; - - case 'COPYRIGHT': - case $this->namespaces['rss1'] . ':COPYRIGHT': - case $this->namespaces['rss2'] . ':COPYRIGHT': - case $this->namespaces['atom'] . ':COPYRIGHT': - $this->do_add_content($this->data['info']['copyright'], $data); - break; - - case 'LANGUAGE': - case $this->namespaces['rss1'] . ':LANGUAGE': - case $this->namespaces['rss2'] . ':LANGUAGE': - $this->do_add_content($this->data['info']['language'], $data); - break; - - case 'LOGO': - case $this->namespaces['atom'] . ':LOGO': - $this->do_add_content($this->data['info']['logo'], $data); - break; - - } - } - - else if ($this->inside_channel && $this->inside_image) - { - switch ($this->tag_name) - { - case 'TITLE': - case $this->namespaces['rss1'] . ':TITLE': - case $this->namespaces['rss2'] . ':TITLE': - $this->do_add_content($this->data['info']['image']['title'], $data); - break; - - case 'URL': - case $this->namespaces['rss1'] . ':URL': - case $this->namespaces['rss2'] . ':URL': - $this->do_add_content($this->data['info']['image']['url'], $data); - break; - - case 'LINK': - case $this->namespaces['rss1'] . ':LINK': - case $this->namespaces['rss2'] . ':LINK': - $this->do_add_content($this->data['info']['image']['link'], $data); - break; - - case 'WIDTH': - case $this->namespaces['rss1'] . ':WIDTH': - case $this->namespaces['rss2'] . ':WIDTH': - $this->do_add_content($this->data['info']['image']['width'], $data); - break; - - case 'HEIGHT': - case $this->namespaces['rss1'] . ':HEIGHT': - case $this->namespaces['rss2'] . ':HEIGHT': - $this->do_add_content($this->data['info']['image']['height'], $data); - break; - } - } - $this->is_first = false; - } - - function end_handler($parser, $name) - { - $this->tag_name = ''; - switch ($name) - { - case 'ITEM': - case $this->namespaces['rss1'] . ':ITEM': - case $this->namespaces['rss2'] . ':ITEM': - case 'ENTRY': - case $this->namespaces['atom'] . ':ENTRY': - $this->inside_item = false; - $this->item_number++; - $this->author_number = 0; - $this->category_number = 0; - $this->enclosure_number = 0; - $this->item_link_number = 0; - break; - - case 'CHANNEL': - case $this->namespaces['rss1'] . ':CHANNEL': - case $this->namespaces['rss2'] . ':CHANNEL': - $this->inside_channel = false; - break; - - case 'IMAGE': - case $this->namespaces['rss1'] . ':IMAGE': - case $this->namespaces['rss2'] . ':IMAGE': - $this->inside_image = false; - break; - - case 'AUTHOR': - case $this->namespaces['rss1'] . ':AUTHOR': - case $this->namespaces['rss2'] . ':AUTHOR': - case $this->namespaces['atom'] . ':AUTHOR': - $this->author_number++; - $this->inside_author = false; - break; - - case 'CATEGORY': - case $this->namespaces['rss1'] . ':CATEGORY': - case $this->namespaces['rss2'] . ':CATEGORY': - case $this->namespaces['atom'] . ':CATEGORY': - case $this->namespaces['dc'] . ':SUBJECT': - $this->category_number++; - break; - - case 'ENCLOSURE': - case $this->namespaces['rss1'] . ':ENCLOSURE': - case $this->namespaces['rss2'] . ':ENCLOSURE': - $this->enclosure_number++; - break; - - case 'LINK': - case $this->namespaces['rss1'] . ':LINK': - case $this->namespaces['rss2'] . ':LINK': - case $this->namespaces['atom'] . ':LINK': - if ($this->inside_item) - { - $this->item_link_number++; - } - else - { - $this->link_number++; - } - break; - } - if ($this->inside_item) - { - $this->depth_inside_item--; - } - } - - function start_name_space($parser, $prefix, $uri = null) - { - $prefix = strtoupper($prefix); - $uri = strtoupper($uri); - if ($prefix == 'ATOM' || $uri == 'HTTP://WWW.W3.ORG/2005/ATOM' || $uri == 'HTTP://PURL.ORG/ATOM/NS#') - { - $this->namespaces['atom'] = $uri; - } - else if ($prefix == 'RSS2' || $uri == 'HTTP://BACKEND.USERLAND.COM/RSS2') - { - $this->namespaces['rss2'] = $uri; - } - else if ($prefix == 'RDF' || $uri == 'HTTP://WWW.W3.ORG/1999/02/22-RDF-SYNTAX-NS#') - { - $this->namespaces['rdf'] = $uri; - } - else if ($prefix == 'RSS' || $uri == 'HTTP://PURL.ORG/RSS/1.0/' || $uri == 'HTTP://MY.NETSCAPE.COM/RDF/SIMPLE/0.9/') - { - $this->namespaces['rss1'] = $uri; - } - else if ($prefix == 'DC' || $uri == 'HTTP://PURL.ORG/DC/ELEMENTS/1.1/') - { - $this->namespaces['dc'] = $uri; - } - else if ($prefix == 'XHTML' || $uri == 'HTTP://WWW.W3.ORG/1999/XHTML') - { - $this->namespaces['xhtml'] = $uri; - $this->xhtml_prefix = $prefix; - } - else if ($prefix == 'CONTENT' || $uri == 'HTTP://PURL.ORG/RSS/1.0/MODULES/CONTENT/') - { - $this->namespaces['content'] = $uri; - } - } - - function end_name_space($parser, $prefix) - { - if ($key = array_search(strtoupper($prefix), $this->namespaces)) - { - if ($key == 'atom') - { - $this->namespaces['atom'] = 'ATOM'; - } - else if ($key == 'rss2') - { - $this->namespaces['rss2'] = 'RSS'; - } - else if ($key == 'rdf') - { - $this->namespaces['rdf'] = 'RDF'; - } - else if ($key == 'rss1') - { - $this->namespaces['rss1'] = 'RSS'; - } - else if ($key == 'dc') - { - $this->namespaces['dc'] = 'DC'; - } - else if ($key == 'xhtml') - { - $this->namespaces['xhtml'] = 'XHTML'; - $this->xhtml_prefix = 'XHTML'; - } - else if ($key == 'content') - { - $this->namespaces['content'] = 'CONTENT'; - } - } - } -} - -class SimplePie_Sanitize -{ - // Private vars - var $feedinfo; - var $info; - var $items; - var $feed_xmlbase; - var $item_xmlbase; - var $attribs; - var $cached_entities; - var $cache_convert_entities; - - // Options - var $remove_div = true; - var $strip_ads = false; - var $replace_headers = false; - var $bypass_image_hotlink = false; - var $bypass_image_hotlink_page = false; - var $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'); - var $encode_instead_of_strip = false; - var $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur'); - var $input_encoding = 'UTF-8'; - var $output_encoding = 'UTF-8'; - var $item_class = 'SimplePie_Item'; - var $author_class = 'SimplePie_Author'; - var $enclosure_class = 'SimplePie_Enclosure'; - - function remove_div($enable = true) - { - $this->remove_div = (bool) $enable; - } - - function strip_ads($enable = false) - { - $this->strip_ads = (bool) $enable; - } - - function replace_headers($enable = false) - { - $this->enable_headers = (bool) $enable; - } - - function bypass_image_hotlink($get = false) - { - if ($get) - { - $this->bypass_image_hotlink = (string) $get; - } - else - { - $this->bypass_image_hotlink = false; - } - } - - function bypass_image_hotlink_page($page = false) - { - if ($page) - { - $this->bypass_image_hotlink_page = (string) $page; - } - else - { - $this->bypass_image_hotlink_page = false; - } - } - - function strip_htmltags($tags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style')) - { - if ($tags) - { - if (is_array($tags)) - { - $this->strip_htmltags = $tags; - } - else - { - $this->strip_htmltags = explode(',', $tags); - } - } - else - { - $this->strip_htmltags = false; - } - } - - function encode_instead_of_strip($enable = false) - { - $this->encode_instead_of_strip = (bool) $enable; - } - - function strip_attributes($attribs = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur')) - { - if ($attribs) - { - if (is_array($attribs)) - { - $this->strip_attributes = $attribs; - } - else - { - $this->strip_attributes = explode(',', $attribs); - } - } - else - { - $this->strip_attributes = false; - } - } - - function input_encoding($encoding = 'UTF-8') - { - $this->input_encoding = (string) $encoding; - } - - function output_encoding($encoding = 'UTF-8') - { - $this->output_encoding = (string) $encoding; - } - - function set_item_class($class = 'SimplePie_Item') - { - if (SimplePie_Misc::is_a_class($class, 'SimplePie_Item')) - { - $this->item_class = $class; - return true; - } - return false; - } - - function set_author_class($class = 'SimplePie_Author') - { - if (SimplePie_Misc::is_a_class($class, 'SimplePie_Author')) - { - $this->author_class = $class; - return true; - } - return false; - } - - function set_enclosure_class($class = 'SimplePie_Enclosure') - { - if (SimplePie_Misc::is_a_class($class, 'SimplePie_Enclosure')) - { - $this->enclosure_class = $class; - return true; - } - return false; - } - - function parse_data_array(&$data, $url) - { - // Feed Info (Type and Version) - if (!empty($data['feedinfo']['type'])) - { - $this->feedinfo = $data['feedinfo']; - } - - // Feed level xml:base - if (!empty($data['feeddata']['attribs']['XML:BASE'])) - { - $this->feed_xmlbase = $data['feeddata']['attribs']['XML:BASE']; - } - else if (!empty($data['feeddata']['attribs']['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:BASE'])) - { - $this->feed_xmlbase = $data['feeddata']['attribs']['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:BASE']; - } - // FeedBurner feeds use alternate link - else if (strpos($url, 'http://feeds.feedburner.com/') !== 0) - { - $this->feed_xmlbase = SimplePie_Misc::parse_url($url); - if (empty($this->feed_xmlbase['authority'])) - { - $this->feed_xmlbase = preg_replace('/^' . preg_quote(realpath($_SERVER['DOCUMENT_ROOT']), '/') . '/', '', realpath($url)); - } - else - { - $this->feed_xmlbase = $url; - } - } - - - // Feed link(s) - if (!empty($data['info']['link'])) - { - foreach ($data['info']['link'] as $link) - { - if (empty($link['attribs']['REL'])) - { - $rel = 'alternate'; - } - else - { - $rel = strtolower($link['attribs']['REL']); - } - if ($rel == 'enclosure') - { - $href = null; - $type = null; - $length = null; - if (!empty($link['data'])) - { - $href = $this->sanitize($link['data'], $link['attribs'], true); - } - else if (!empty($link['attribs']['HREF'])) - { - $href = $this->sanitize($link['attribs']['HREF'], $link['attribs'], true); - } - if (!empty($link['attribs']['TYPE'])) { - $type = $this->sanitize($link['attribs']['TYPE'], $link['attribs']); - } - if (!empty($link['attribs']['LENGTH'])) { - $length = $this->sanitize($link['attribs']['LENGTH'], $link['attribs']); - } - $this->info['link']['enclosure'][] = new $this->enclosure_class($href, $type, $length); - } - else - { - if (!empty($link['data'])) - { - $this->info['link'][$rel][] = $this->sanitize($link['data'], $link['attribs'], true); - } - else if (!empty($link['attribs']['HREF'])) - { - $this->info['link'][$rel][] = $this->sanitize($link['attribs']['HREF'], $link['attribs'], true); - } - } - } - } - - // Use the first alternate link if we don't have any feed xml:base - if (empty($this->feed_xmlbase) && !empty($this->info['link']['alternate'][0])) - { - $this->feed_xmlbase = $this->info['link']['alternate'][0]; - } - - // Feed Title - if (!empty($data['info']['title']['data'])) - { - $this->info['title'] = $this->sanitize($data['info']['title']['data'], $data['info']['title']['attribs']); - } - - // Feed Descriptions - if (!empty($data['info']['description']['data'])) - { - $this->info['description'] = $this->sanitize($data['info']['description']['data'], $data['info']['description']['attribs'], false, true); - } - if (!empty($data['info']['dc:description']['data'])) - { - $this->info['dc:description'] = $this->sanitize($data['info']['dc:description']['data'], $data['info']['dc:description']['attribs']); - } - if (!empty($data['info']['tagline']['data'])) - { - $this->info['tagline'] = $this->sanitize($data['info']['tagline']['data'], $data['info']['tagline']['attribs']); - } - if (!empty($data['info']['subtitle']['data'])) - { - $this->info['subtitle'] = $this->sanitize($data['info']['subtitle']['data'], $data['info']['subtitle']['attribs']); - } - - // Feed Language - if (!empty($data['info']['language']['data'])) - { - $this->info['language'] = $this->sanitize($data['info']['language']['data'], $data['info']['language']['attribs']); - } - if (!empty($data['feeddata']['attribs']['XML:LANG'])) - { - $this->info['xml:lang'] = $this->sanitize($data['feeddata']['attribs']['XML:LANG'], null); - } - else if (!empty($data['feeddata']['attribs']['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:LANG'])) - { - $this->info['xml:lang'] = $this->sanitize($data['feeddata']['attribs']['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:LANG'], null); - } - - // Feed Copyright - if (!empty($data['info']['copyright']['data'])) - { - $this->info['copyright'] = $this->sanitize($data['info']['copyright']['data'], $data['info']['copyright']['attribs']); - } - - // Feed Image - if (!empty($data['info']['image']['title']['data'])) - { - $this->info['image']['title'] = $this->sanitize($data['info']['image']['title']['data'], $data['info']['image']['title']['attribs']); - } - if (!empty($data['info']['image']['url']['data'])) - { - $this->info['image']['url'] = $this->sanitize($data['info']['image']['url']['data'], $data['info']['image']['url']['attribs'], true); - } - if (!empty($data['info']['logo']['data'])) - { - $this->info['image']['logo'] = $this->sanitize($data['info']['logo']['data'], $data['info']['logo']['attribs'], true); - } - if (!empty($data['info']['image']['link']['data'])) - { - $this->info['image']['link'] = $this->sanitize($data['info']['image']['link']['data'], $data['info']['image']['link']['attribs'], true); - } - if (!empty($data['info']['image']['width']['data'])) - { - $this->info['image']['width'] = $this->sanitize($data['info']['image']['width']['data'], $data['info']['image']['width']['attribs']); - } - if (!empty($data['info']['image']['height']['data'])) - { - $this->info['image']['height'] = $this->sanitize($data['info']['image']['height']['data'], $data['info']['image']['height']['attribs']); - } - - // Items - if (!empty($data['items'])) - { - foreach ($data['items'] as $key => $item) - { - $newitem = null; - - // Item level xml:base - if (!empty($item['attribs']['XML:BASE'])) - { - $this->item_xmlbase = SimplePie_Misc::absolutize_url($item['attribs']['XML:BASE'], $this->feed_xmlbase); - } - else if (!empty($item['attribs']['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:BASE'])) - { - $this->item_xmlbase = SimplePie_Misc::absolutize_url($item['attribs']['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:BASE'], $this->feed_xmlbase); - } - else - { - $this->item_xmlbase = null; - } - - // Title - if (!empty($item['title']['data'])) { - $newitem['title'] = $this->sanitize($item['title']['data'], $item['title']['attribs']); - } - if (!empty($item['dc:title']['data'])) - { - $newitem['dc:title'] = $this->sanitize($item['dc:title']['data'], $item['dc:title']['attribs']); - } - - // Description - if (!empty($item['content']['data'])) - { - $newitem['content'] = $this->sanitize($item['content']['data'], $item['content']['attribs']); - } - if (!empty($item['encoded']['data'])) - { - $newitem['encoded'] = $this->sanitize($item['encoded']['data'], $item['encoded']['attribs']); - } - if (!empty($item['summary']['data'])) - { - $newitem['summary'] = $this->sanitize($item['summary']['data'], $item['summary']['attribs']); - } - if (!empty($item['description']['data'])) - { - $newitem['description'] = $this->sanitize($item['description']['data'], $item['description']['attribs'], false, true); - } - if (!empty($item['dc:description']['data'])) - { - $newitem['dc:description'] = $this->sanitize($item['dc:description']['data'], $item['dc:description']['attribs']); - } - if (!empty($item['longdesc']['data'])) - { - $newitem['longdesc'] = $this->sanitize($item['longdesc']['data'], $item['longdesc']['attribs']); - } - - // Link(s) - if (!empty($item['link'])) - { - foreach ($item['link'] as $link) - { - if (empty($link['attribs']['REL'])) - { - $rel = 'alternate'; - } - else - { - $rel = strtolower($link['attribs']['REL']); - } - if ($rel == 'enclosure') - { - $href = null; - $type = null; - $length = null; - if (!empty($link['data'])) - { - $href = $this->sanitize($link['data'], $link['attribs'], true); - } - else if (!empty($link['attribs']['HREF'])) - { - $href = $this->sanitize($link['attribs']['HREF'], $link['attribs'], true); - } - if (!empty($link['attribs']['TYPE'])) { - $type = $this->sanitize($link['attribs']['TYPE'], $link['attribs']); - } - if (!empty($link['attribs']['LENGTH'])) { - $length = $this->sanitize($link['attribs']['LENGTH'], $link['attribs']); - } - if (!empty($href)) - { - $newitem['link'][$rel][] = new $this->enclosure_class($href, $type, $length); - } - } - else - { - if (!empty($link['data'])) - { - $newitem['link'][$rel][] = $this->sanitize($link['data'], $link['attribs'], true); - } - else if (!empty($link['attribs']['HREF'])) - { - $newitem['link'][$rel][] = $this->sanitize($link['attribs']['HREF'], $link['attribs'], true); - } - } - } - } - - // Enclosure(s) - if (!empty($item['enclosure'])) - { - foreach ($item['enclosure'] as $enclosure) - { - if (!empty($enclosure['attribs']['URL'])) - { - $type = null; - $length = null; - $href = $this->sanitize($enclosure['attribs']['URL'], $enclosure['attribs'], true); - if (!empty($enclosure['attribs']['TYPE'])) - { - $type = $this->sanitize($enclosure['attribs']['TYPE'], $enclosure['attribs']); - } - if (!empty($enclosure['attribs']['LENGTH'])) - { - $length = $this->sanitize($enclosure['attribs']['LENGTH'], $enclosure['attribs']); - } - $newitem['enclosures'][] = new $this->enclosure_class($href, $type, $length); - } - } - } - - // ID - if (!empty($item['guid']['data'])) - { - if (!empty($item['guid']['attribs']['ISPERMALINK']) && strtolower($item['guid']['attribs']['ISPERMALINK']) == 'false') - { - $newitem['guid']['permalink'] = false; - } - else - { - $newitem['guid']['permalink'] = true; - } - $newitem['guid']['data'] = $this->sanitize($item['guid']['data'], $item['guid']['attribs']); - } - if (!empty($item['id']['data'])) - { - $newitem['id'] = $this->sanitize($item['id']['data'], $item['id']['attribs']); - } - - // Date - if (!empty($item['pubdate']['data'])) - { - $newitem['pubdate'] = $this->parse_date($this->sanitize($item['pubdate']['data'], $item['pubdate']['attribs'])); - } - if (!empty($item['dc:date']['data'])) - { - $newitem['dc:date'] = $this->parse_date($this->sanitize($item['dc:date']['data'], $item['dc:date']['attribs'])); - } - if (!empty($item['issued']['data'])) - { - $newitem['issued'] = $this->parse_date($this->sanitize($item['issued']['data'], $item['issued']['attribs'])); - } - if (!empty($item['published']['data'])) - { - $newitem['published'] = $this->parse_date($this->sanitize($item['published']['data'], $item['published']['attribs'])); - } - if (!empty($item['modified']['data'])) - { - $newitem['modified'] = $this->parse_date($this->sanitize($item['modified']['data'], $item['modified']['attribs'])); - } - if (!empty($item['updated']['data'])) - { - $newitem['updated'] = $this->parse_date($this->sanitize($item['updated']['data'], $item['updated']['attribs'])); - } - - // Categories - if (!empty($item['category'])) - { - foreach ($item['category'] as $category) - { - if (!empty($category['data'])) - { - $newitem['category'][] = $this->sanitize($category['data'], $category['attribs']); - } - else if (!empty($category['attribs']['TERM'])) - { - $newitem['term'][] = $this->sanitize($category['attribs']['TERM'], $category['attribs']); - } - } - } - if (!empty($item['subject'])) - { - foreach ($item['subject'] as $category) - { - if (!empty($category['data'])) - { - $newitem['subject'][] = $this->sanitize($category['data'], $category['attribs']); - } - } - } - - // Author - if (!empty($item['creator'])) - { - foreach ($item['creator'] as $creator) - { - if (!empty($creator['data'])) - { - $newitem['creator'][] = new $this->author_class($this->sanitize($creator['data'], $creator['attribs']), null, null); - } - } - } - if (!empty($item['author'])) - { - foreach ($item['author'] as $author) - { - $name = null; - $link = null; - $email = null; - if (!empty($author['rss'])) - { - $sane = $this->sanitize($author['rss']['data'], $author['rss']['attribs']); - if (preg_match('/(.*)@(.*) \((.*)\)/msiU', $sane, $matches)) { - $name = trim($matches[3]); - $email = trim("$matches[1]@$matches[2]"); - } else { - $email = $sane; - } - } - else - { - if (!empty($author['name'])) - { - $name = $this->sanitize($author['name']['data'], $author['name']['attribs']); - } - if (!empty($author['url'])) - { - $link = $this->sanitize($author['url']['data'], $author['url']['attribs'], true); - } - else if (!empty($author['uri'])) - { - $link = $this->sanitize($author['uri']['data'], $author['uri']['attribs'], true); - } - else if (!empty($author['homepage'])) - { - $link = $this->sanitize($author['homepage']['data'], $author['homepage']['attribs'], true); - } - if (!empty($author['email'])) { - $email = $this->sanitize($author['email']['data'], $author['email']['attribs']); - } - } - $newitem['author'][] = new $this->author_class($name, $link, $email); - } - } - unset($data['items'][$key]); - $this->items[] = new $this->item_class($newitem); - } - } - } - - function sanitize($data, $attribs, $is_url = false, $force_decode = false) - { - $this->attribs = $attribs; - if (isset($this->feedinfo['type']) && $this->feedinfo['type'] == 'Atom') - { - if ((!empty($attribs['MODE']) && $attribs['MODE'] == 'base64') || (!empty($attribs['TYPE']) && $attribs['TYPE'] == 'application/octet-stream')) - { - $data = trim($data); - $data = base64_decode($data); - } - else if ((!empty($attribs['MODE']) && $attribs['MODE'] == 'escaped' || !empty($attribs['TYPE']) && ($attribs['TYPE'] == 'html' || $attribs['TYPE'] == 'text/html'))) - { - $data = $this->entities_decode($data); - } - if (!empty($attribs['TYPE']) && ($attribs['TYPE'] == 'xhtml' || $attribs['TYPE'] == 'application/xhtml+xml')) - { - if ($this->remove_div) - { - $data = preg_replace('//msiU', '', strrev(preg_replace('/>vid\//msiU', '
    ', $data, 1); - } - $data = $this->convert_entities($data); - } - } - else - { - $data = $this->convert_entities($data); - } - if ($force_decode) - { - $data = $this->entities_decode($data); - } - $data = trim($data); - $data = preg_replace('/<\!--([^-]|-[^-])*-->/msiU', '', $data); - - // If Strip Ads is enabled, strip them. - if ($this->strip_ads) - { - $data = preg_replace('//msiU', '', $data); // Pheedo links (tested with Dooce.com) - $data = preg_replace('/(.*)/msiU', '', $data); - $data = preg_replace('/<\/h[1-3]>/i', '', $data); - } - - if ($is_url) - { - $data = $this->replace_urls($data, true); - } - else - { - $data = preg_replace_callback('/<(\S+)((\s*((\w+:)?\w+)\s*=\s*("([^"]*)"|\'([^\']*)\'|(.*)))*)\s*(\/>|>(.*)<\/\S+>)/msiU', array(&$this, 'replace_urls'), $data); - } - - // If Bypass Image Hotlink is enabled, rewrite all the image tags. - if ($this->bypass_image_hotlink) - { - $images = SimplePie_Misc::get_element('img', $data); - foreach ($images as $img) - { - if (!empty($img['attribs']['SRC']['data'])) - { - $pre = ''; - if ($this->bypass_image_hotlink_page) - { - $pre = $this->bypass_image_hotlink_page; - } - $pre .= "?$this->bypass_image_hotlink="; - $img['attribs']['SRC']['data'] = $pre . rawurlencode(strtr($img['attribs']['SRC']['data'], array_flip(get_html_translation_table(HTML_SPECIALCHARS, ENT_QUOTES)))); - $data = str_replace($img['full'], SimplePie_Misc::element_implode($img), $data); - } - } - } - - // Strip out HTML tags and attributes that might cause various security problems. - // Based on recommendations by Mark Pilgrim at: - // http://diveintomark.org/archives/2003/06/12/how_to_consume_rss_safely - if ($this->strip_htmltags) - { - foreach ($this->strip_htmltags as $tag) - { - $data = preg_replace_callback("/<($tag)((\s*((\w+:)?\w+)(\s*=\s*(\"([^\"]*)\"|'([^']*)'|(.*)))?)*)\s*(\/>|>(.*)<\/($tag)((\s*((\w+:)?\w+)(\s*=\s*(\"([^\"]*)\"|'([^']*)'|(.*)))?)*)\s*>)/msiU", array(&$this, 'do_strip_htmltags'), $data); - } - } - - if ($this->strip_attributes) - { - foreach ($this->strip_attributes as $attrib) - { - $data = preg_replace('/ '. trim($attrib) .'=("|")(\w|\s|=|-|:|;|\/|\.|\?|&|,|#|!|\(|\)|\'|'|<|>|\+|{|})*("|")/i', '', $data); - $data = preg_replace('/ '. trim($attrib) .'=(\'|')(\w|\s|=|-|:|;|\/|\.|\?|&|,|#|!|\(|\)|"|"|<|>|\+|{|})*(\'|')/i', '', $data); - $data = preg_replace('/ '. trim($attrib) .'=(\w|\s|=|-|:|;|\/|\.|\?|&|,|#|!|\(|\)|\+|{|})*/i', '', $data); - } - } - - // Convert encoding - $data = SimplePie_Misc::change_encoding($data, $this->input_encoding, $this->output_encoding); - - return $data; - } - - function do_strip_htmltags($match) - { - if ($this->encode_instead_of_strip) - { - if (isset($match[12]) && !in_array(strtolower($match[1]), array('script', 'style'))) - { - return "<$match[1]$match[2]>$match[12]</$match[1]>"; - } - else if (isset($match[12])) - { - return "<$match[1]$match[2]></$match[1]>"; - } - else - { - return "<$match[1]$match[2]/>"; - } - } - else - { - if (isset($match[12]) && !in_array(strtolower($match[1]), array('script', 'style'))) - { - return $match[12]; - } - else - { - return ''; - } - } - } - - function replace_urls($data, $raw_url = false) - { - if (!empty($this->attribs['XML:BASE'])) - { - $xmlbase = $attribs['XML:BASE']; - } - else if (!empty($this->attribs['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:BASE'])) - { - $xmlbase = $this->attribs['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:BASE']; - } - if (!empty($xmlbase)) - { - if (!empty($this->item_xmlbase)) - { - $xmlbase = SimplePie_Misc::absolutize_url($xmlbase, $this->item_xmlbase); - } - else - { - $xmlbase = SimplePie_Misc::absolutize_url($xmlbase, $this->feed_xmlbase); - } - } - else if (!empty($this->item_xmlbase)) - { - $xmlbase = $this->item_xmlbase; - } - else - { - $xmlbase = $this->feed_xmlbase; - } - - if ($raw_url) - { - return SimplePie_Misc::absolutize_url($data, $xmlbase); - } - else - { - $attributes = array( - 'background', - 'href', - 'src', - 'longdesc', - 'usemap', - 'codebase', - 'data', - 'classid', - 'cite', - 'action', - 'profile', - 'for' - ); - foreach ($attributes as $attribute) - { - if (preg_match("/$attribute='(.*)'/siU", $data[0], $attrib) || preg_match("/$attribute=\"(.*)\"/siU", $data[0], $attrib) || preg_match("/$attribute=(.*)[ |\/|>]/siU", $data[0], $attrib)) - { - $new_tag = str_replace($attrib[1], SimplePie_Misc::absolutize_url($attrib[1], $xmlbase), $attrib[0]); - $data[0] = str_replace($attrib[0], $new_tag, $data[0]); - } - } - return $data[0]; - } - } - - function entities_decode($data) - { - return preg_replace_callback('/&(#)?(x)?([0-9a-z]+);/mi', array(&$this, 'do_entites_decode'), $data); - } - - function do_entites_decode($data) - { - if (isset($this->cached_entities[$data[0]])) - { - return $this->cached_entities[$data[0]]; - } - else - { - $return = SimplePie_Misc::change_encoding(html_entity_decode($data[0], ENT_QUOTES), 'ISO-8859-1', $this->input_encoding); - if ($return == $data[0]) - { - $return = SimplePie_Misc::change_encoding(preg_replace_callback('/&#([x]?[0-9a-f]+);/mi', array(&$this, 'replace_num_entity'), $data[0]), 'UTF-8', $this->input_encoding); - } - $this->cached_entities[$data[0]] = $return; - return $return; - } - } - - function convert_entities($data) - { - return preg_replace_callback('/&#(x)?([0-9a-z]+);/mi', array(&$this, 'do_convert_entities'), $data); - } - - function do_convert_entities($data) - { - if (isset($this->cache_convert_entities[$data[0]])) - { - return $this->cache_convert_entities[$data[0]]; - } - else if (isset($this->cached_entities[$data[0]])) - { - $return = htmlentities($this->cached_entities[$data[0]], ENT_QUOTES, 'UTF-8'); - } - else - { - $return = htmlentities(preg_replace_callback('/&#([x]?[0-9a-f]+);/mi', array(&$this, 'replace_num_entity'), $data[0]), ENT_QUOTES, 'UTF-8'); - } - $this->cache_convert_entities[$data[0]] = $return; - return $return; - } - - /* - * Escape numeric entities - * From a PHP Manual note (on html_entity_decode()) - * Copyright (c) 2005 by "php dot net at c dash ovidiu dot tk", - * "emilianomartinezluque at yahoo dot com" and "hurricane at cyberworldz dot org". - * - * This material may be distributed only subject to the terms and conditions set forth in - * the Open Publication License, v1.0 or later (the latest version is presently available at - * http://www.opencontent.org/openpub/). - */ - function replace_num_entity($ord) - { - $ord = $ord[1]; - if (preg_match('/^x([0-9a-f]+)$/i', $ord, $match)) - { - $ord = hexdec($match[1]); - } - else - { - $ord = intval($ord); - } - - $no_bytes = 0; - $byte = array(); - if ($ord < 128) - { - return chr($ord); - } - if ($ord < 2048) - { - $no_bytes = 2; - } - else if ($ord < 65536) - { - $no_bytes = 3; - } - else if ($ord < 1114112) - { - $no_bytes = 4; - } - else - { - return; - } - switch ($no_bytes) - { - case 2: - $prefix = array(31, 192); - break; - - case 3: - $prefix = array(15, 224); - break; - - case 4: - $prefix = array(7, 240); - break; - } - - for ($i = 0; $i < $no_bytes; $i++) - { - $byte[$no_bytes-$i-1] = (($ord & (63 * pow(2,6*$i))) / pow(2,6*$i)) & 63 | 128; - } - $byte[0] = ($byte[0] & $prefix[0]) | $prefix[1]; - - $ret = ''; - for ($i = 0; $i < $no_bytes; $i++) - { - $ret .= chr($byte[$i]); - } - return $ret; - } - - function parse_date($date) - { - $military_timezone = array('A' => '-0100', 'B' => '-0200', 'C' => '-0300', 'D' => '-0400', 'E' => '-0500', 'F' => '-0600', 'G' => '-0700', 'H' => '-0800', 'I' => '-0900', 'K' => '-1000', 'L' => '-1100', 'M' => '-1200', 'N' => '+0100', 'O' => '+0200', 'P' => '+0300', 'Q' => '+0400', 'R' => '+0500', 'S' => '+0600', 'T' => '+0700', 'U' => '+0800', 'V' => '+0900', 'W' => '+1000', 'X' => '+1100', 'Y' => '+1200', 'Z' => '-0000'); - $north_american_timezone = array('GMT' => '-0000', 'EST' => '-0500', 'EDT' => '-0400', 'CST' => '-0600', 'CDT' => '-0500', 'MST' => '-0700', 'MDT' => '-0600', 'PST' => '-0800', 'PDT' => '-0700'); - if (preg_match('/([0-9]{2,4})-?([0-9]{2})-?([0-9]{2})T([0-9]{2}):?([0-9]{2})(:?([0-9]{2}(\.[0-9]*)?))?(UT|GMT|EST|EDT|CST|CDT|MST|MDT|PST|PDT|[a-z]|(\\+|-)[0-9]{4}|(\\+|-)[0-9]{2}:[0-9]{2})?/i', $date, $matches)) - { - if (!isset($matches[7])) - { - $matches[7] = ''; - } - if (!isset($matches[9])) - { - $matches[9] = ''; - } - $matches[7] = str_pad(round($matches[7]), 2, '0', STR_PAD_LEFT); - switch (strlen($matches[9])) - { - case 0: - $timezone = ''; - break; - - case 1: - $timezone = $military_timezone[strtoupper($matches[9])]; - break; - - case 2: - $timezone = '-0000'; - break; - - case 3: - $timezone = $north_american_timezone[strtoupper($matches[9])]; - break; - - case 5: - $timezone = $matches[9]; - break; - - case 6: - $timezone = substr_replace($matches[9], '', 3, 1); - break; - } - $date = strtotime("$matches[1]-$matches[2]-$matches[3] $matches[4]:$matches[5]:$matches[7] $timezone"); - } - else if (preg_match('/([0-9]{1,2})\s*(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s*([0-9]{2}|[0-9]{4})\s*([0-9]{2}):([0-9]{2})(:([0-9]{2}(\.[0-9]*)?))?\s*(UT|GMT|EST|EDT|CST|CDT|MST|MDT|PST|PDT|[a-z]|(\\+|-)[0-9]{4}|(\\+|-)[0-9]{2}:[0-9]{2})?/i', $date, $matches)) - { - $three_month = array('Jan' => 1, 'Feb' => 2, 'Mar' => 3, 'Apr' => 4, 'May' => 5, 'Jun' => 6, 'Jul' => 7, 'Aug' => 8, 'Sep' => 9, 'Oct' => 10, 'Nov' => 11, 'Dec' => 12); - $month = $three_month[$matches[2]]; - if (strlen($matches[3]) == 2) - { - $year = ($matches[3] < 70) ? "20$matches[3]" : "19$matches[3]"; - } - else - { - $year = $matches[3]; - } - if (!isset($matches[7])) - { - $matches[7] = ''; - } - if (!isset($matches[9])) - { - $matches[9] = ''; - } - $second = str_pad(round($matches[7]), 2, '0', STR_PAD_LEFT); - switch (strlen($matches[9])) - { - case 0: - $timezone = ''; - break; - - case 1: - $timezone = $military_timezone[strtoupper($matches[9])]; - break; - - case 2: - $timezone = '-0000'; - break; - - case 3: - $timezone = $north_american_timezone[strtoupper($matches[9])]; - break; - - case 5: - $timezone = $matches[9]; - break; - - case 6: - $timezone = substr_replace($matches[9], '', 3, 1); - break; - } - $date = strtotime("$year-$month-$matches[1] $matches[4]:$matches[5]:$second $timezone"); - } - else - { - $date = strtotime($date); - } - if ($date !== false && $date !== -1) - { - return $date; - } - else - { - return false; - } - } -} - -?> \ No newline at end of file +useragent = $this->name . '/' . $this->version . ' (Feed Parser; ' . $this->url . '; Allow like Gecko) Build/' . $this->build; + $this->linkback = '' . $this->name . ''; + + // Other objects, instances created here so we can set options on them + $this->sanitize = new SimplePie_Sanitize; + + // Set options if they're passed to the constructor + if (!is_null($feed_url)) { + $this->feed_url($feed_url); + } + + if (!is_null($cache_location)) { + $this->cache_location($cache_location); + } + + if (!is_null($cache_max_minutes)) { + $this->cache_max_minutes($cache_max_minutes); + } + + // If we've passed an xmldump variable in the URL, snap into XMLdump mode + if (isset($_GET['xmldump'])) { + $this->enable_xmldump(true); + } + + // Only init the script if we're passed a feed URL + if (!is_null($feed_url)) { + return $this->init(); + } + } + + public function feed_url($url) + { + $this->rss_url = SimplePie_Misc::fix_protocol($url, 1); + } + + public function set_file(&$file) + { + if (is_a($file, 'SimplePie_File')) { + $this->rss_url = $file->url; + $this->file =& $file; + } + } + + public function set_timeout($timeout = 10) + { + $this->timeout = (int) $timeout; + } + + public function set_raw_data($data) + { + $this->raw_data = trim((string) $data); + } + + public function enable_xmldump($enable = false) + { + $this->xml_dump = (bool) $enable; + } + + public function enable_caching($enable = true) + { + $this->enable_cache = (bool) $enable; + } + + public function cache_max_minutes($minutes = 60) + { + $this->max_minutes = (float) $minutes; + } + + public function cache_location($location = './cache') + { + $this->cache_location = (string) $location; + } + + public function order_by_date($enable = true) + { + $this->order_by_date = (bool) $enable; + } + + public function input_encoding($encoding = false) + { + if ($encoding) { + $this->input_encoding = (string) $encoding; + } else { + $this->input_encoding = false; + } + } + + public function set_cache_class($class = 'SimplePie_Cache') + { + if (SimplePie_Misc::is_a_class($class, 'SimplePie_Cache')) { + $this->cache_class = $class; + return true; + } + return false; + } + + public function set_locator_class($class = 'SimplePie_Locator') + { + if (SimplePie_Misc::is_a_class($class, 'SimplePie_Locator')) { + $this->locator_class = $class; + return true; + } + return false; + } + + public function set_parser_class($class = 'SimplePie_Parser') + { + if (SimplePie_Misc::is_a_class($class, 'SimplePie_Parser')) { + $this->parser_class = $class; + return true; + } + return false; + } + + public function set_file_class($class = 'SimplePie_File') + { + if (SimplePie_Misc::is_a_class($class, 'SimplePie_File')) { + $this->file_class = $class; + return true; + } + return false; + } + + public function set_sanitize_class($object = 'SimplePie_Sanitize') + { + if (class_exists($object)) { + $this->sanitize = new $object; + return true; + } + return false; + } + + public function set_useragent($ua) + { + $this->useragent = (string) $ua; + } + + public function force_fsockopen($enable = false) + { + $this->force_fsockopen = (bool) $enable; + } + + public function set_cache_name_type($type = 'sha1') + { + $type = strtolower(trim($type)); + switch ($type) { + case 'crc32': + $this->cache_name_type = 'crc32'; + break; + + case 'md5': + $this->cache_name_type = 'md5'; + break; + + case 'rawurlencode': + $this->cache_name_type = 'rawurlencode'; + break; + + case 'urlencode': + $this->cache_name_type = 'urlencode'; + break; + + default: + $this->cache_name_type = 'sha1'; + break; + } + } + + public function bypass_image_hotlink($get = false) + { + $this->sanitize->bypass_image_hotlink($get); + } + + public function bypass_image_hotlink_page($page = false) + { + $this->sanitize->bypass_image_hotlink_page($page); + } + + public function replace_headers($enable = false) + { + $this->sanitize->replace_headers($enable); + } + + public function remove_div($enable = true) + { + $this->sanitize->remove_div($enable); + } + + public function strip_ads($enable = false) + { + $this->sanitize->strip_ads($enable); + } + + public function strip_htmltags($tags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'), $encode = null) + { + $this->sanitize->strip_htmltags($tags); + if (!is_null($encode)) { + $this->sanitize->encode_instead_of_strip($tags); + } + } + + public function encode_instead_of_strip($enable = true) + { + $this->sanitize->encode_instead_of_strip($enable); + } + + public function strip_attributes($attribs = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur')) + { + $this->sanitize->strip_attributes($attribs); + } + + public function output_encoding($encoding = 'UTF-8') + { + $this->sanitize->output_encoding($encoding); + } + + public function set_item_class($class = 'SimplePie_Item') + { + return $this->sanitize->set_item_class($class); + } + + public function set_author_class($class = 'SimplePie_Author') + { + return $this->sanitize->set_author_class($class); + } + + public function set_enclosure_class($class = 'SimplePie_Enclosure') + { + return $this->sanitize->set_enclosure_class($class); + } + + public function init() + { + if (!(function_exists('version_compare') && ((version_compare(phpversion(), '4.3.2', '>=') && version_compare(phpversion(), '5', '<')) || version_compare(phpversion(), '5.0.3', '>='))) || !extension_loaded('xml') || !extension_loaded('pcre')) { + return false; + } + if ($this->sanitize->bypass_image_hotlink && !empty($_GET[$this->sanitize->bypass_image_hotlink])) { + if (get_magic_quotes_gpc()) { + $_GET[$this->sanitize->bypass_image_hotlink] = stripslashes($_GET[$this->sanitize->bypass_image_hotlink]); + } + SimplePie_Misc::display_file($_GET[$this->sanitize->bypass_image_hotlink], 10, $this->useragent); + } + + if (isset($_GET['js'])) { + $embed = <<'); +} + +function embed_quicktime(type, bgcolor, width, height, link, placeholder, loop) { + if (placeholder != '') { + document.writeln(''); + } + else { + document.writeln(''); + } +} + +function embed_flash(bgcolor, width, height, link, loop, type) { + document.writeln(''); +} + +function embed_wmedia(width, height, link) { + document.writeln(''); +} +EOT; + + if (function_exists('ob_gzhandler')) { + ob_start('ob_gzhandler'); + } + header('Content-type: text/javascript; charset: UTF-8'); + header('Cache-Control: must-revalidate'); + header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 86400) . ' GMT'); + echo $embed; + exit; + } + + if (!empty($this->rss_url) || !empty($this->raw_data)) { + $this->data = array(); + $cache = false; + + if (!empty($this->rss_url)) { + // Decide whether to enable caching + if ($this->enable_cache && preg_match('/^http(s)?:\/\//i', $this->rss_url)) { + $cache = new $this->cache_class($this->cache_location, call_user_func($this->cache_name_type, $this->rss_url), 'spc'); + } + // If it's enabled and we don't want an XML dump, use the cache + if ($cache && !$this->xml_dump) { + // Load the Cache + $this->data = $cache->load(); + if (!empty($this->data)) { + // If we've hit a collision just rerun it with caching disabled + if (isset($this->data['url']) && $this->data['url'] != $this->rss_url) { + $cache = false; + } + // If we've got a feed_url stored (if the page isn't actually a feed, or is a redirect) use that URL + elseif (!empty($this->data['feed_url'])) { + if ($this->data['feed_url'] == $this->data['url']) { + $cache->unlink(); + } else { + $this->feed_url($this->data['feed_url']); + return $this->init(); + } + } + // If the cache is new enough + elseif ($cache->mtime() + $this->max_minutes * 60 < time()) { + // If we have last-modified and/or etag set + if (!empty($this->data['last-modified']) || !empty($this->data['etag'])) { + $headers = array(); + if (!empty($this->data['last-modified'])) { + $headers['if-modified-since'] = $this->data['last-modified']; + } + if (!empty($this->data['etag'])) { + $headers['if-none-match'] = $this->data['etag']; + } + $file = new $this->file_class($this->rss_url, $this->timeout/10, 5, $headers, $this->useragent, $this->force_fsockopen); + if ($file->success) { + $headers = $file->headers(); + if ($headers['status']['code'] == 304) { + $cache->touch(); + return true; + } + } else { + unset($file); + } + } + // If we don't have last-modified or etag set, just clear the cache + else { + $cache->unlink(); + } + } + // If the cache is still valid, just return true + else { + return true; + } + } + // If the cache is empty, delete it + else { + $cache->unlink(); + } + } + $this->data = array(); + // If we don't already have the file (it'll only exist if we've opened it to check if the cache has been modified), open it. + if (!isset($file)) { + if (is_a($this->file, 'SimplePie_File') && $this->file->url == $this->rss_url) { + $file =& $this->file; + } else { + $file = new $this->file_class($this->rss_url, $this->timeout, 5, null, $this->useragent, $this->force_fsockopen); + } + } + // If the file connection has an error, set SimplePie::error to that and quit + if (!$file->success) { + $this->error = $file->error; + return false; + } + + // Check if the supplied URL is a feed, if it isn't, look for it. + $locate = new $this->locator_class($file, $this->timeout, $this->useragent); + if (!$locate->is_feed($file)) { + $feed = $locate->find(); + if ($feed) { + if ($cache && !$cache->save(array('url' => $this->rss_url, 'feed_url' => $feed))) { + $this->error = "$cache->name is not writeable"; + SimplePie_Misc::error($this->error, E_USER_WARNING, __FILE__, __LINE__); + } + $this->rss_url = $feed; + return $this->init(); + } else { + $this->error = "A feed could not be found at $this->rss_url"; + SimplePie_Misc::error($this->error, E_USER_WARNING, __FILE__, __LINE__); + return false; + } + } + + $headers = $file->headers(); + $data = trim($file->body()); + $file->close(); + unset($file); + } else { + $data = $this->raw_data; + } + + // First check to see if input has been overridden. + if (!empty($this->input_encoding)) { + $encoding = $this->input_encoding; + } + // Second try HTTP headers + elseif (!empty($headers['content-type']) && preg_match('/charset\s*=\s*([^;]*)/i', $headers['content-type'], $charset)) { + $encoding = $charset[1]; + } + // Then prolog, if at the very start of the document + elseif (preg_match('/^<\?xml(.*)?>/msiU', $data, $prolog) && preg_match('/encoding\s*=\s*("([^"]*)"|\'([^\']*)\')/Ui', $prolog[1], $encoding)) { + $encoding = substr($encoding[1], 1, -1); + } + // UTF-32 Big Endian BOM + elseif (strpos($data, sprintf('%c%c%c%c', 0x00, 0x00, 0xFE, 0xFF)) === 0) { + $encoding = 'UTF-32be'; + } + // UTF-32 Little Endian BOM + elseif (strpos($data, sprintf('%c%c%c%c', 0xFF, 0xFE, 0x00, 0x00)) === 0) { + $encoding = 'UTF-32'; + } + // UTF-16 Big Endian BOM + elseif (strpos($data, sprintf('%c%c', 0xFE, 0xFF)) === 0) { + $encoding = 'UTF-16be'; + } + // UTF-16 Little Endian BOM + elseif (strpos($data, sprintf('%c%c', 0xFF, 0xFE)) === 0) { + $encoding = 'UTF-16le'; + } + // UTF-8 BOM + elseif (strpos($data, sprintf('%c%c%c', 0xEF, 0xBB, 0xBF)) === 0) { + $encoding = 'UTF-8'; + } + // Fallback to the default + else { + $encoding = null; + } + + // Change the encoding to UTF-8 (as we always use UTF-8 internally) + $data = SimplePie_Misc::change_encoding($data, $encoding, 'UTF-8'); + + // Strip illegal characters (if on less than PHP5, as on PHP5 expat can manage fine) + if (version_compare(phpversion(), '5', '<')) { + if (function_exists('iconv')) { + $data = iconv('UTF-8', 'UTF-8//IGNORE', $data); + } elseif (function_exists('mb_convert_encoding')) { + $data = mb_convert_encoding($data, 'UTF-8', 'UTF-8'); + } else { + $data = SimplePie_Misc::utf8_bad_replace($data); + } + } + + // Start parsing + $data = new $this->parser_class($data, 'UTF-8', $this->xml_dump); + // If we want the XML, just output that and quit + if ($this->xml_dump) { + header('Content-type: text/xml; charset=UTF-8'); + echo $data->data; + exit; + } + // If it's parsed fine + elseif (!$data->error_code) { + // Parse the data, and make it sane + $this->sanitize->parse_data_array($data->data, $this->rss_url); + unset($data); + // Get the sane data + $this->data['feedinfo'] = $this->sanitize->feedinfo; + unset($this->sanitize->feedinfo); + $this->data['info'] = $this->sanitize->info; + unset($this->sanitize->info); + $this->data['items'] = $this->sanitize->items; + unset($this->sanitize->items); + $this->data['feedinfo']['encoding'] = $this->sanitize->output_encoding; + $this->data['url'] = $this->rss_url; + + // Store the headers that we need + if (!empty($headers['last-modified'])) { + $this->data['last-modified'] = $headers['last-modified']; + } + if (!empty($headers['etag'])) { + $this->data['etag'] = $headers['etag']; + } + + // If we want to order it by date, check if all items have a date, and then sort it + if ($this->order_by_date && !empty($this->data['items'])) { + $do_sort = true; + foreach ($this->data['items'] as $item) { + if (!$item->get_date('U')) { + $do_sort = false; + break; + } + } + if ($do_sort) { + usort($this->data['items'], create_function('$a, $b', 'if ($a->get_date(\'U\') == $b->get_date(\'U\')) return 1; return ($a->get_date(\'U\') < $b->get_date(\'U\')) ? 1 : -1;')); + } + } + + // Cache the file if caching is enabled + if ($cache && !$cache->save($this->data)) { + $this->error = "$cache->name is not writeable"; + SimplePie_Misc::error($this->error, E_USER_WARNING, __FILE__, __LINE__); + } + return true; + } + // If we have an error, just set SimplePie::error to it and quit + else { + $this->error = "XML error: $data->error_string at line $data->current_line, column $data->current_column"; + SimplePie_Misc::error($this->error, E_USER_WARNING, __FILE__, __LINE__); + return false; + } + } + } + + public function get_encoding() + { + if (!empty($this->data['feedinfo']['encoding'])) { + return $this->data['feedinfo']['encoding']; + } else { + return false; + } + } + + public function handle_content_type($mime = 'text/html') + { + if (!headers_sent()) { + $header = "Content-type: $mime;"; + if ($this->get_encoding()) { + $header .= ' charset=' . $this->get_encoding(); + } else { + $header .= ' charset=UTF-8'; + } + header($header); + } + } + + public function get_type() + { + if (!empty($this->data['feedinfo']['type'])) { + return $this->data['feedinfo']['type']; + } else { + return false; + } + } + + public function get_version() + { + if (!empty($this->data['feedinfo']['version'])) { + return $this->data['feedinfo']['version']; + } else { + return false; + } + } + + public function get_favicon($check = false, $alternate = null) + { + if (!empty($this->data['info']['link']['alternate'][0])) { + $favicon = SimplePie_Misc::absolutize_url('/favicon.ico', $this->get_feed_link()); + + if ($check) { + $file = new $this->file_class($favicon, $this->timeout/10, 5, null, $this->useragent, $this->force_fsockopen); + $headers = $file->headers(); + $file->close(); + + if ($headers['status']['code'] == 200) { + return $favicon; + } + } else { + return $favicon; + } + } + if (!is_null($alternate)) { + return $alternate; + } else { + return false; + } + } + + public function subscribe_url() + { + if (!empty($this->rss_url)) { + return $this->rss_url; + } else { + return false; + } + } + + public function subscribe_feed() + { + if (!empty($this->rss_url)) { + return SimplePie_Misc::fix_protocol($this->rss_url, 2); + } else { + return false; + } + } + + public function subscribe_outlook() + { + if (!empty($this->rss_url)) { + return 'outlook' . SimplePie_Misc::fix_protocol($this->rss_url, 2); + } else { + return false; + } + } + + public function subscribe_podcast() + { + if (!empty($this->rss_url)) { + return SimplePie_Misc::fix_protocol($this->rss_url, 3); + } else { + return false; + } + } + + public function subscribe_aol() + { + if ($this->subscribe_url()) { + return 'http://feeds.my.aol.com/add.jsp?url=' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function subscribe_bloglines() + { + if ($this->subscribe_url()) { + return 'http://www.bloglines.com/sub/' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function subscribe_eskobo() + { + if ($this->subscribe_url()) { + return 'http://www.eskobo.com/?AddToMyPage=' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function subscribe_feedfeeds() + { + if ($this->subscribe_url()) { + return 'http://www.feedfeeds.com/add?feed=' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function subscribe_feedlounge() + { + if ($this->subscribe_url()) { + return 'http://my.feedlounge.com/external/subscribe?url=' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function subscribe_feedster() + { + if ($this->subscribe_url()) { + return 'http://www.feedster.com/myfeedster.php?action=addrss&confirm=no&rssurl=' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function subscribe_google() + { + if ($this->subscribe_url()) { + return 'http://fusion.google.com/add?feedurl=' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function subscribe_gritwire() + { + if ($this->subscribe_url()) { + return 'http://my.gritwire.com/feeds/addExternalFeed.aspx?FeedUrl=' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function subscribe_msn() + { + if ($this->subscribe_url()) { + $url = 'http://my.msn.com/addtomymsn.armx?id=rss&ut=' . rawurlencode($this->subscribe_url()); + if ($this->get_feed_link()) { + $url .= '&ru=' . rawurlencode($this->get_feed_link()); + } + return $url; + } else { + return false; + } + } + + public function subscribe_netvibes() + { + if ($this->subscribe_url()) { + return 'http://www.netvibes.com/subscribe.php?url=' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function subscribe_newsburst() + { + if ($this->subscribe_url()) { + return 'http://www.newsburst.com/Source/?add=' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function subscribe_newsgator() + { + if ($this->subscribe_url()) { + return 'http://www.newsgator.com/ngs/subscriber/subext.aspx?url=' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function subscribe_odeo() + { + if ($this->subscribe_url()) { + return 'http://www.odeo.com/listen/subscribe?feed=' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function subscribe_pluck() + { + if ($this->subscribe_url()) { + return 'http://client.pluck.com/pluckit/prompt.aspx?GCID=C12286x053&a=' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function subscribe_podnova() + { + if ($this->subscribe_url()) { + return 'http://www.podnova.com/index_your_podcasts.srf?action=add&url=' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function subscribe_rojo() + { + if ($this->subscribe_url()) { + return 'http://www.rojo.com/add-subscription?resource=' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function subscribe_yahoo() + { + if ($this->subscribe_url()) { + return 'http://add.my.yahoo.com/rss?url=' . rawurlencode($this->subscribe_url()); + } else { + return false; + } + } + + public function get_feed_title() + { + if (!empty($this->data['info']['title'])) { + return $this->data['info']['title']; + } else { + return false; + } + } + + public function get_feed_link() + { + if (!empty($this->data['info']['link']['alternate'][0])) { + return $this->data['info']['link']['alternate'][0]; + } else { + return false; + } + } + + public function get_feed_links() + { + if (!empty($this->data['info']['link'])) { + return $this->data['info']['link']; + } else { + return false; + } + } + + public function get_feed_description() + { + if (!empty($this->data['info']['description'])) { + return $this->data['info']['description']; + } elseif (!empty($this->data['info']['dc:description'])) { + return $this->data['info']['dc:description']; + } elseif (!empty($this->data['info']['tagline'])) { + return $this->data['info']['tagline']; + } elseif (!empty($this->data['info']['subtitle'])) { + return $this->data['info']['subtitle']; + } else { + return false; + } + } + + public function get_feed_copyright() + { + if (!empty($this->data['info']['copyright'])) { + return $this->data['info']['copyright']; + } else { + return false; + } + } + + public function get_feed_language() + { + if (!empty($this->data['info']['language'])) { + return $this->data['info']['language']; + } elseif (!empty($this->data['info']['xml:lang'])) { + return $this->data['info']['xml:lang']; + } else { + return false; + } + } + + public function get_image_exist() + { + if (!empty($this->data['info']['image']['url']) || !empty($this->data['info']['image']['logo'])) { + return true; + } else { + return false; + } + } + + public function get_image_title() + { + if (!empty($this->data['info']['image']['title'])) { + return $this->data['info']['image']['title']; + } else { + return false; + } + } + + public function get_image_url() + { + if (!empty($this->data['info']['image']['url'])) { + return $this->data['info']['image']['url']; + } elseif (!empty($this->data['info']['image']['logo'])) { + return $this->data['info']['image']['logo']; + } else { + return false; + } + } + + public function get_image_link() + { + if (!empty($this->data['info']['image']['link'])) { + return $this->data['info']['image']['link']; + } else { + return false; + } + } + + public function get_image_width() + { + if (!empty($this->data['info']['image']['width'])) { + return $this->data['info']['image']['width']; + } else { + return false; + } + } + + public function get_image_height() + { + if (!empty($this->data['info']['image']['height'])) { + return $this->data['info']['image']['height']; + } else { + return false; + } + } + + public function get_item_quantity($max = 0) + { + if (!empty($this->data['items'])) { + $qty = sizeof($this->data['items']); + } else { + $qty = 0; + } + if ($max == 0) { + return $qty; + } else { + return ($qty > $max) ? $max : $qty; + } + } + + public function get_item($key = 0) + { + if (!empty($this->data['items'][$key])) { + return $this->data['items'][$key]; + } else { + return false; + } + } + + public function get_items($start = 0, $end = 0) + { + if ($this->get_item_quantity() > 0) { + if ($end == 0) { + return array_slice($this->data['items'], $start); + } else { + return array_slice($this->data['items'], $start, $end); + } + } else { + return false; + } + } +} + +class SimplePie_Item +{ + public $data; + + public function __construct($data) + { + $this->data =& $data; + } + + public function get_id() + { + if (!empty($this->data['guid']['data'])) { + return $this->data['guid']['data']; + } elseif (!empty($this->data['id'])) { + return $this->data['id']; + } else { + return false; + } + } + + public function get_title() + { + if (!empty($this->data['title'])) { + return $this->data['title']; + } elseif (!empty($this->data['dc:title'])) { + return $this->data['dc:title']; + } else { + return false; + } + } + + public function get_description() + { + if (!empty($this->data['content'])) { + return $this->data['content']; + } elseif (!empty($this->data['encoded'])) { + return $this->data['encoded']; + } elseif (!empty($this->data['summary'])) { + return $this->data['summary']; + } elseif (!empty($this->data['description'])) { + return $this->data['description']; + } elseif (!empty($this->data['dc:description'])) { + return $this->data['dc:description']; + } elseif (!empty($this->data['longdesc'])) { + return $this->data['longdesc']; + } else { + return false; + } + } + + public function get_category($key = 0) + { + $categories = $this->get_categories(); + if (!empty($categories[$key])) { + return $categories[$key]; + } else { + return false; + } + } + + public function get_categories() + { + $categories = array(); + if (!empty($this->data['category'])) { + $categories = array_merge($categories, $this->data['category']); + } + if (!empty($this->data['subject'])) { + $categories = array_merge($categories, $this->data['subject']); + } + if (!empty($this->data['term'])) { + $categories = array_merge($categories, $this->data['term']); + } + if (!empty($categories)) { + return array_unique($categories); + } else { + return false; + } + } + + public function get_author($key = 0) + { + $authors = $this->get_authors(); + if (!empty($authors[$key])) { + return $authors[$key]; + } else { + return false; + } + } + + public function get_authors() + { + $authors = array(); + if (!empty($this->data['author'])) { + $authors = array_merge($authors, $this->data['author']); + } + if (!empty($this->data['creator'])) { + $authors = array_merge($authors, $this->data['creator']); + } + if (!empty($authors)) { + return array_unique($authors); + } else { + return false; + } + } + + public function get_date($date_format = 'j F Y, g:i a') + { + if (!empty($this->data['pubdate'])) { + return date($date_format, $this->data['pubdate']); + } elseif (!empty($this->data['dc:date'])) { + return date($date_format, $this->data['dc:date']); + } elseif (!empty($this->data['issued'])) { + return date($date_format, $this->data['issued']); + } elseif (!empty($this->data['published'])) { + return date($date_format, $this->data['published']); + } elseif (!empty($this->data['modified'])) { + return date($date_format, $this->data['modified']); + } elseif (!empty($this->data['updated'])) { + return date($date_format, $this->data['updated']); + } else { + return false; + } + } + + public function get_permalink() + { + $link = $this->get_link(0); + $enclosure = $this->get_enclosure(0); + if (!empty($link)) { + return $link; + } elseif (!empty($enclosure)) { + return $enclosure->get_link(); + } else { + return false; + } + } + + public function get_link($key = 0, $rel = 'alternate') + { + $links = $this->get_links($rel); + if (!empty($links[$key])) { + return $links[$key]; + } else { + return false; + } + } + + public function get_links($rel = 'alternate') + { + if ($rel == 'alternate') { + $links = array(); + if (!empty($this->data['link'][$rel])) { + $links = $this->data['link'][$rel]; + } + if (!empty($this->data['guid']['data']) && $this->data['guid']['permalink'] == true) { + $links[] = $this->data['guid']['data']; + } + return $links; + } elseif (!empty($this->data['link'][$rel])) { + return $this->data['link'][$rel]; + } else { + return false; + } + } + + public function get_enclosure($key = 0) + { + $enclosures = $this->get_enclosures(); + if (!empty($enclosures[$key])) { + return $enclosures[$key]; + } else { + return false; + } + } + + public function get_enclosures() + { + $enclosures = array(); + $links = $this->get_links('enclosure'); + if (!empty($this->data['enclosures'])) { + $enclosures = array_merge($enclosures, $this->data['enclosures']); + } + if (!empty($links)) { + $enclosures = array_merge($enclosures, $links); + } + if (!empty($enclosures)) { + return array_unique($enclosures); + } else { + return false; + } + } + + public function add_to_blinklist() + { + if ($this->get_permalink()) { + $url = 'http://www.blinklist.com/index.php?Action=Blink/addblink.php&Description=&Url=' . rawurlencode($this->get_permalink()); + if ($this->get_title()) { + $url .= '&Title=' . rawurlencode($this->get_title()); + } + return $url; + } else { + return false; + } + } + + public function add_to_blogmarks() + { + if ($this->get_permalink()) { + $url = 'http://blogmarks.net/my/new.php?mini=1&simple=1&url=' . rawurlencode($this->get_permalink()); + if ($this->get_title()) { + $url .= '&title=' . rawurlencode($this->get_title()); + } + return $url; + } else { + return false; + } + } + + public function add_to_delicious() + { + if ($this->get_permalink()) { + $url = 'http://del.icio.us/post/?v=3&url=' . rawurlencode($this->get_permalink()); + if ($this->get_title()) { + $url .= '&title=' . rawurlencode($this->get_title()); + } + return $url; + } else { + return false; + } + } + + public function add_to_digg() + { + if ($this->get_permalink()) { + return 'http://digg.com/submit?phase=2&URL=' . rawurlencode($this->get_permalink()); + } else { + return false; + } + } + + public function add_to_furl() + { + if ($this->get_permalink()) { + $url = 'http://www.furl.net/storeIt.jsp?u=' . rawurlencode($this->get_permalink()); + if ($this->get_title()) { + $url .= '&t=' . rawurlencode($this->get_title()); + } + return $url; + } else { + return false; + } + } + + public function add_to_magnolia() + { + if ($this->get_permalink()) { + $url = 'http://ma.gnolia.com/bookmarklet/add?url=' . rawurlencode($this->get_permalink()); + if ($this->get_title()) { + $url .= '&title=' . rawurlencode($this->get_title()); + } + return $url; + } else { + return false; + } + } + + public function add_to_myweb20() + { + if ($this->get_permalink()) { + $url = 'http://myweb2.search.yahoo.com/myresults/bookmarklet?u=' . rawurlencode($this->get_permalink()); + if ($this->get_title()) { + $url .= '&t=' . rawurlencode($this->get_title()); + } + return $url; + } else { + return false; + } + } + + public function add_to_newsvine() + { + if ($this->get_permalink()) { + $url = 'http://www.newsvine.com/_wine/save?u=' . rawurlencode($this->get_permalink()); + if ($this->get_title()) { + $url .= '&h=' . rawurlencode($this->get_title()); + } + return $url; + } else { + return false; + } + } + + public function add_to_reddit() + { + if ($this->get_permalink()) { + $url = 'http://reddit.com/submit?url=' . rawurlencode($this->get_permalink()); + if ($this->get_title()) { + $url .= '&title=' . rawurlencode($this->get_title()); + } + return $url; + } else { + return false; + } + } + + public function add_to_segnalo() + { + if ($this->get_permalink()) { + $url = 'http://segnalo.com/post.html.php?url=' . rawurlencode($this->get_permalink()); + if ($this->get_title()) { + $url .= '&title=' . rawurlencode($this->get_title()); + } + return $url; + } else { + return false; + } + } + + public function add_to_simpy() + { + if ($this->get_permalink()) { + $url = 'http://www.simpy.com/simpy/LinkAdd.do?href=' . rawurlencode($this->get_permalink()); + if ($this->get_title()) { + $url .= '&title=' . rawurlencode($this->get_title()); + } + return $url; + } else { + return false; + } + } + + public function add_to_smarking() + { + if ($this->get_permalink()) { + return 'http://smarking.com/editbookmark/?url=' . rawurlencode($this->get_permalink()); + } else { + return false; + } + } + + public function add_to_spurl() + { + if ($this->get_permalink()) { + $url = 'http://www.spurl.net/spurl.php?v=3&url=' . rawurlencode($this->get_permalink()); + if ($this->get_title()) { + $url .= '&title=' . rawurlencode($this->get_title()); + } + return $url; + } else { + return false; + } + } + + public function add_to_wists() + { + if ($this->get_permalink()) { + $url = 'http://wists.com/r.php?c=&r=' . rawurlencode($this->get_permalink()); + if ($this->get_title()) { + $url .= '&title=' . rawurlencode($this->get_title()); + } + return $url; + } else { + return false; + } + } + + public function search_technorati() + { + if ($this->get_permalink()) { + return 'http://www.technorati.com/search/' . rawurlencode($this->get_permalink()); + } else { + return false; + } + } +} + +class SimplePie_Author +{ + public $name; + public $link; + public $email; + + // Constructor, used to input the data + public function __construct($name, $link, $email) + { + $this->name = $name; + $this->link = $link; + $this->email = $email; + } + + public function get_name() + { + if (!empty($this->name)) { + return $this->name; + } else { + return false; + } + } + + public function get_link() + { + if (!empty($this->link)) { + return $this->link; + } else { + return false; + } + } + + public function get_email() + { + if (!empty($this->email)) { + return $this->email; + } else { + return false; + } + } +} + +class SimplePie_Enclosure +{ + public $link; + public $type; + public $length; + + // Constructor, used to input the data + public function __construct($link, $type, $length) + { + $this->link = $link; + $this->type = $type; + $this->length = $length; + } + + public function get_link() + { + if (!empty($this->link)) { + if (class_exists('idna_convert')) { + $idn = new idna_convert; + $this->link = $idn->encode($this->link); + } + return $this->link; + } else { + return false; + } + } + + public function get_extension() + { + if (!empty($this->link)) { + return pathinfo($this->link, PATHINFO_EXTENSION); + } else { + return false; + } + } + + public function get_type() + { + if (!empty($this->type)) { + return $this->type; + } else { + return false; + } + } + + public function get_length() + { + if (!empty($this->length)) { + return $this->length; + } else { + return false; + } + } + + public function get_size() + { + $length = $this->get_length(); + if (!empty($length)) { + return round($length/1048576, 2); + } else { + return false; + } + } + + public function native_embed($options='') + { + return $this->embed($options, true); + } + + public function embed($options = '', $native = false) + { + // Set up defaults + $audio = ''; + $video = ''; + $alt = ''; + $altclass = ''; + $loop = 'false'; + $width = 'auto'; + $height = 'auto'; + $bgcolor = '#ffffff'; + + // Process options and reassign values as necessary + if (is_array($options)) { + extract($options); + } else { + $options = explode(',', $options); + foreach ($options as $option) { + $opt = explode(':', $option, 2); + if (isset($opt[0], $opt[1])) { + $opt[0] = trim($opt[0]); + $opt[1] = trim($opt[1]); + switch ($opt[0]) { + case 'audio': + $audio = $opt[1]; + break; + + case 'video': + $video = $opt[1]; + break; + + case 'alt': + $alt = $opt[1]; + break; + + case 'altclass': + $altclass = $opt[1]; + break; + + case 'loop': + $loop = $opt[1]; + break; + + case 'width': + $width = $opt[1]; + break; + + case 'height': + $height = $opt[1]; + break; + + case 'bgcolor': + $bgcolor = $opt[1]; + break; + } + } + } + } + + $type = strtolower($this->get_type()); + + // If we encounter an unsupported mime-type, check the file extension and guess intelligently. + if (!in_array($type, array('audio/3gpp', 'audio/3gpp2', 'audio/aac', 'audio/x-aac', 'audio/aiff', 'audio/x-aiff', 'audio/mid', 'audio/midi', 'audio/x-midi', 'audio/mpeg', 'audio/x-mpeg', 'audio/mp3', 'x-audio/mp3', 'audio/mp4', 'audio/m4a', 'audio/x-m4a', 'audio/wav', 'audio/x-wav', 'video/3gpp', 'video/3gpp2', 'video/m4v', 'video/x-m4v', 'video/mp4', 'video/mpeg', 'video/x-mpeg', 'video/quicktime', 'video/sd-video', 'application/x-shockwave-flash', 'application/futuresplash', 'application/asx', 'application/x-mplayer2', 'audio/x-ms-wma', 'audio/x-ms-wax', 'video/x-ms-asf-plugin', 'video/x-ms-asf', 'video/x-ms-wm', 'video/x-ms-wmv', 'video/x-ms-wvx'))) { + switch (strtolower($this->get_extension())) { + // Audio mime-types + case 'aac': + case 'adts': + $type = 'audio/acc'; + break; + + case 'aif': + case 'aifc': + case 'aiff': + case 'cdda': + $type = 'audio/aiff'; + break; + + case 'bwf': + $type = 'audio/wav'; + break; + + case 'kar': + case 'mid': + case 'midi': + case 'smf': + $type = 'audio/midi'; + break; + + case 'm4a': + $type = 'audio/x-m4a'; + break; + + case 'mp3': + case 'swa': + $type = 'audio/mp3'; + break; + + case 'wav': + $type = 'audio/wav'; + break; + + case 'wax': + $type = 'audio/x-ms-wax'; + break; + + case 'wma': + $type = 'audio/x-ms-wma'; + break; + + // Video mime-types + case '3gp': + case '3gpp': + $type = 'video/3gpp'; + break; + + case '3g2': + case '3gp2': + $type = 'video/3gpp2'; + break; + + case 'asf': + $type = 'video/x-ms-asf'; + break; + + case 'm1a': + case 'm1s': + case 'm1v': + case 'm15': + case 'm75': + case 'mp2': + case 'mpa': + case 'mpeg': + case 'mpg': + case 'mpm': + case 'mpv': + $type = 'video/mpeg'; + break; + + case 'm4v': + $type = 'video/x-m4v'; + break; + + case 'mov': + case 'qt': + $type = 'video/quicktime'; + break; + + case 'mp4': + case 'mpg4': + $type = 'video/mp4'; + break; + + case 'sdv': + $type = 'video/sd-video'; + break; + + case 'wm': + $type = 'video/x-ms-wm'; + break; + + case 'wmv': + $type = 'video/x-ms-wmv'; + break; + + case 'wvx': + $type = 'video/x-ms-wvx'; + break; + + // Flash mime-types + case 'spl': + $type = 'application/futuresplash'; + break; + + case 'swf': + $type = 'application/x-shockwave-flash'; + break; + } + } + + $mime = explode('/', $type, 2); + $mime = $mime[0]; + + // Process values for 'auto' + if ($width == 'auto') { + if ($mime == 'video') { + $width = '320'; + } else { + $width = '100%'; + } + } + if ($height == 'auto') { + if ($mime == 'audio') { + $height = 0; + } elseif ($mime == 'video') { + $height = 240; + } else { + $height = 256; + } + } + + // Set proper placeholder value + if ($mime == 'audio') { + $placeholder = $audio; + } elseif ($mime == 'video') { + $placeholder = $video; + } + + $embed = ''; + + // Make sure the JS library is included + // (I know it'll be included multiple times, but I can't think of a better way to do this automatically) + if (!$native) { + $embed .= ''; + } + + // Odeo Feed MP3's + if (substr(strtolower($this->get_link()), 0, 15) == 'http://odeo.com') { + if ($native) { + $embed .= ''; + } else { + $embed .= ''; + } + } + + // QuickTime 7 file types. Need to test with QuickTime 6. + elseif (in_array($type, array('audio/3gpp', 'audio/3gpp2', 'audio/aac', 'audio/x-aac', 'audio/aiff', 'audio/x-aiff', 'audio/mid', 'audio/midi', 'audio/x-midi', 'audio/mpeg', 'audio/x-mpeg', 'audio/mp3', 'x-audio/mp3', 'audio/mp4', 'audio/m4a', 'audio/x-m4a', 'audio/wav', 'audio/x-wav', 'video/3gpp', 'video/3gpp2', 'video/m4v', 'video/x-m4v', 'video/mp4', 'video/mpeg', 'video/x-mpeg', 'video/quicktime', 'video/sd-video'))) { + $height += 16; + if ($native) { + if ($placeholder != "") { + $embed .= "get_link() . "\" src=\"$placeholder\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"false\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://www.apple.com/quicktime/download/\">"; + } else { + $embed .= "get_link() . "\" width=\"$width+\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"true\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://www.apple.com/quicktime/download/\">"; + } + } else { + $embed .= ""; + } + } + + // Flash + elseif (in_array($type, array('application/x-shockwave-flash', 'application/futuresplash'))) { + if ($native) { + $embed .= "get_link() . "\" pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\" type=\"$type\" quality=\"high\" width=\"$width\" height=\"$height\" bgcolor=\"$bgcolor\" loop=\"$loop\">"; + } else { + $embed .= ""; + } + } + + // Windows Media + elseif (in_array($type, array('application/asx', 'application/x-mplayer2', 'audio/x-ms-wma', 'audio/x-ms-wax', 'video/x-ms-asf-plugin', 'video/x-ms-asf', 'video/x-ms-wm', 'video/x-ms-wmv', 'video/x-ms-wvx'))) { + $height += 45; + if ($native) { + $embed .= "get_link() . "\" autosize=\"1\" width=\"$width\" height=\"$height\" showcontrols=\"1\" showstatusbar=\"0\" showdisplay=\"0\" autostart=\"0\">"; + } else { + $embed .= ""; + } + } + + // Everything else + else { + $embed .= '' . $alt . ''; + } + + return $embed; + } +} + +class SimplePie_File +{ + public $url; + public $useragent; + public $success = true; + public $headers = array(); + public $body; + public $fp; + public $redirects = 0; + public $error; + public $method; + + public function __construct($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false) + { + if (class_exists('idna_convert')) { + $idn = new idna_convert; + $url = $idn->encode($url); + } + $this->url = $url; + $this->useragent = $useragent; + if (preg_match('/^http(s)?:\/\//i', $url)) { + if (empty($useragent)) { + $useragent = ini_get('user_agent'); + $this->useragent = $useragent; + } + if (!is_array($headers)) { + $headers = array(); + } + if (extension_loaded('curl') && version_compare(SimplePie_Misc::get_curl_version(), '7.10.5', '>=') && !$force_fsockopen) { + $this->method = 'curl'; + $fp = curl_init(); + $headers2 = array(); + foreach ($headers as $key => $value) { + $headers2[] = "$key: $value"; + } + curl_setopt($fp, CURLOPT_ENCODING, ''); + curl_setopt($fp, CURLOPT_URL, $url); + curl_setopt($fp, CURLOPT_HEADER, 1); + curl_setopt($fp, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($fp, CURLOPT_TIMEOUT, $timeout); + curl_setopt($fp, CURLOPT_REFERER, $url); + curl_setopt($fp, CURLOPT_USERAGENT, $useragent); + curl_setopt($fp, CURLOPT_HTTPHEADER, $headers2); + if (!ini_get('open_basedir') && !ini_get('safe_mode')) { + curl_setopt($fp, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($fp, CURLOPT_MAXREDIRS, $redirects); + } + + $this->headers = trim(curl_exec($fp)); + if (curl_errno($fp) == 23 || curl_errno($fp) == 61) { + curl_setopt($fp, CURLOPT_ENCODING, 'none'); + $this->headers = trim(curl_exec($fp)); + } + if (curl_errno($fp)) { + $this->error = 'cURL error ' . curl_errno($fp) . ': ' . curl_error($fp); + $this->success = false; + return false; + } + $info = curl_getinfo($fp); + $this->headers = explode("\r\n\r\n", $this->headers, $info['redirect_count'] + 2); + if (count($this->headers) == $info['redirect_count'] + 1) { + $this->headers = array_pop($this->headers); + $this->body = ''; + } else { + $this->body = array_pop($this->headers); + $this->headers = array_pop($this->headers); + } + $this->headers = $this->parse_headers($this->headers); + if (($this->headers['status']['code'] == 301 || $this->headers['status']['code'] == 302 || $this->headers['status']['code'] == 303 || $this->headers['status']['code'] == 307) && !empty($this->headers['location']) && $this->redirects < $redirects) { + $this->redirects++; + return $this->SimplePie_File($this->headers['location'], $timeout, $redirects, $headers, $useragent, $force_fsockopen); + } + } else { + $this->method = 'fsockopen'; + $url_parts = parse_url($url); + if (isset($url_parts['scheme']) && strtolower($url_parts['scheme']) == 'https') { + $url_parts['host'] = "ssl://$url_parts[host]"; + $url_parts['port'] = 443; + } + if (!isset($url_parts['port'])) { + $url_parts['port'] = 80; + } + $this->fp = @fsockopen($url_parts['host'], $url_parts['port'], $errno, $errstr, $timeout); + if (!$this->fp) { + $this->error = 'fsockopen error: ' . $errstr; + $this->success = false; + return false; + } else { + stream_set_timeout($this->fp, $timeout); + $get = (isset($url_parts['query'])) ? "$url_parts[path]?$url_parts[query]" : $url_parts['path']; + $out = "GET $get HTTP/1.0\r\n"; + $out .= "Host: $url_parts[host]\r\n"; + $out .= "User-Agent: $useragent\r\n"; + if (function_exists('gzinflate')) { + $out .= "Accept-Encoding: gzip,deflate\r\n"; + } + + if (!empty($url_parts['user']) && !empty($url_parts['pass'])) { + $out .= "Authorization: Basic " . base64_encode("$url_parts[user]:$url_parts[pass]") . "\r\n"; + } + foreach ($headers as $key => $value) { + $out .= "$key: $value\r\n"; + } + $out .= "Connection: Close\r\n\r\n"; + fwrite($this->fp, $out); + + $info = stream_get_meta_data($this->fp); + $data = ''; + while (strpos($data, "\r\n\r\n") === false && !$info['timed_out']) { + $data .= fgets($this->fp, 128); + $info = @stream_get_meta_data($this->fp); + } + if (!$info['timed_out']) { + $this->headers = $this->parse_headers($data); + if (($this->headers['status']['code'] == 301 || $this->headers['status']['code'] == 302 || $this->headers['status']['code'] == 303 || $this->headers['status']['code'] == 307) && !empty($this->headers['location']) && $this->redirects < $redirects) { + $this->redirects++; + return $this->SimplePie_File($this->headers['location'], $timeout, $redirects, $headers, $useragent, $force_fsockopen); + } + } else { + $this->close(); + $this->error = 'fsocket timed out'; + $this->success = false; + return false; + } + } + } + return $this->headers['status']['code']; + } else { + $this->method = 'fopen'; + if ($this->fp = fopen($url, 'r')) { + return true; + } else { + $this->error = 'fopen could not open the file'; + $this->success = false; + return false; + } + } + } + + public function headers() + { + return $this->headers; + } + + public function body() + { + if (is_null($this->body)) { + if ($this->fp) { + $info = stream_get_meta_data($this->fp); + $this->body = ''; + while (!$info['eof'] && !$info['timed_out']) { + $this->body .= fread($this->fp, 1024); + $info = stream_get_meta_data($this->fp); + } + if (!$info['timed_out']) { + $this->body = trim($this->body); + if ($this->method == 'fsockopen' && !empty($this->headers['content-encoding']) && ($this->headers['content-encoding'] == 'gzip' || $this->headers['content-encoding'] == 'deflate')) { + if (substr($this->body, 0, 8) == "\x1f\x8b\x08\x00\x00\x00\x00\x00") { + $this->body = substr($this->body, 10); + } + $this->body = gzinflate($this->body); + } + $this->close(); + } else { + return false; + } + } else { + return false; + } + } + return $this->body; + } + + public function close() + { + if (!is_null($this->fp)) { + if (fclose($this->fp)) { + $this->fp = null; + return true; + } else { + return false; + } + } else { + return false; + } + } + + public function parse_headers($headers) + { + $headers = explode("\r\n", trim($headers)); + $status = array_shift($headers); + foreach ($headers as $header) { + $data = explode(':', $header, 2); + $head[strtolower(trim($data[0]))] = trim($data[1]); + } + if (preg_match('/HTTP\/[0-9\.]+ ([0-9]+)(.*)$/i', $status, $matches)) { + if (isset($head['status'])) { + unset($head['status']); + } + $head['status']['code'] = $matches[1]; + $head['status']['name'] = trim($matches[2]); + } + return $head; + } +} + +class SimplePie_Cache +{ + public $location; + public $filename; + public $extension; + public $name; + + public function __construct($location, $filename, $extension) + { + $this->location = $location; + $this->filename = rawurlencode($filename); + $this->extension = rawurlencode($extension); + $this->name = "$location/$this->filename.$this->extension"; + } + + public function save($data) + { + if (file_exists($this->name) && is_writeable($this->name) || file_exists($this->location) && is_writeable($this->location)) { + $fp = fopen($this->name, 'w'); + if ($fp) { + fwrite($fp, serialize($data)); + fclose($fp); + return true; + } + } + return false; + } + + public function load() + { + if (file_exists($this->name) && is_readable($this->name)) { + return unserialize(file_get_contents($this->name)); + } + return false; + } + + public function mtime() + { + if (file_exists($this->name)) { + return filemtime($this->name); + } + return false; + } + + public function touch() + { + if (file_exists($this->name)) { + return touch($this->name); + } + return false; + } + + public function unlink() + { + if (file_exists($this->name)) { + return unlink($this->name); + } + return false; + } +} + +class SimplePie_Misc +{ + public function absolutize_url($relative, $base) + { + $relative = trim($relative); + $base = trim($base); + if (!empty($relative)) { + $relative = SimplePie_Misc::parse_url($relative, false); + $relative = array('scheme' => $relative[2], 'authority' => $relative[3], 'path' => $relative[5], 'query' => $relative[7], 'fragment' => $relative[9]); + if (!empty($relative['scheme'])) { + $target = $relative; + } elseif (!empty($base)) { + $base = SimplePie_Misc::parse_url($base, false); + $base = array('scheme' => $base[2], 'authority' => $base[3], 'path' => $base[5], 'query' => $base[7], 'fragment' => $base[9]); + $target['scheme'] = $base['scheme']; + if (!empty($relative['authority'])) { + $target = array_merge($relative, $target); + } else { + $target['authority'] = $base['authority']; + if (!empty($relative['path'])) { + if (strpos($relative['path'], '/') === 0) { + $target['path'] = $relative['path']; + } else { + if (!empty($base['path'])) { + $target['path'] = dirname("$base[path].") . '/' . $relative['path']; + } else { + $target['path'] = '/' . $relative['path']; + } + } + if (!empty($relative['query'])) { + $target['query'] = $relative['query']; + } + $input = $target['path']; + $target['path'] = ''; + while (!empty($input)) { + if (strpos($input, '../') === 0) { + $input = substr($input, 3); + } elseif (strpos($input, './') === 0) { + $input = substr($input, 2); + } elseif (strpos($input, '/./') === 0) { + $input = substr_replace($input, '/', 0, 3); + } elseif (strpos($input, '/.') === 0 && SimplePie_Misc::strendpos($input, '/.') === 0) { + $input = substr_replace($input, '/', -2); + } elseif (strpos($input, '/../') === 0) { + $input = substr_replace($input, '/', 0, 4); + $target['path'] = preg_replace('/(\/)?([^\/]+)$/msiU', '', $target['path']); + } elseif (strpos($input, '/..') === 0 && SimplePie_Misc::strendpos($input, '/..') === 0) { + $input = substr_replace($input, '/', 0, 3); + $target['path'] = preg_replace('/(\/)?([^\/]+)$/msiU', '', $target['path']); + } elseif ($input == '.' || $input == '..') { + $input = ''; + } else { + if (preg_match('/^(.+)(\/|$)/msiU', $input, $match)) { + $target['path'] .= $match[1]; + $input = substr_replace($input, '', 0, strlen($match[1])); + } + } + } + } else { + if (!empty($base['path'])) { + $target['path'] = $base['path']; + } else { + $target['path'] = '/'; + } + if (!empty($relative['query'])) { + $target['query'] = $relative['query']; + } elseif (!empty($base['query'])) { + $target['query'] = $base['query']; + } + } + } + if (!empty($relative['fragment'])) { + $target['fragment'] = $relative['fragment']; + } + } else { + return false; + } + $return = ''; + if (!empty($target['scheme'])) { + $return .= "$target[scheme]:"; + } + if (!empty($target['authority'])) { + $return .= $target['authority']; + } + if (!empty($target['path'])) { + $return .= $target['path']; + } + if (!empty($target['query'])) { + $return .= "?$target[query]"; + } + if (!empty($target['fragment'])) { + $return .= "#$target[fragment]"; + } + } else { + $return = $base; + } + return $return; + } + + public function strendpos($haystack, $needle) + { + return strlen($haystack) - strpos($haystack, $needle) - strlen($needle); + } + + public function get_element($realname, $string) + { + $return = array(); + $name = preg_quote($realname, '/'); + preg_match_all("/<($name)((\s*((\w+:)?\w+)\s*=\s*(\"([^\"]*)\"|'([^']*)'|(.*)))*)\s*((\/)?>|>(.*)<\/$name>)/msiU", $string, $matches, PREG_SET_ORDER); + for ($i = 0; $i < count($matches); $i++) { + $return[$i]['tag'] = $realname; + $return[$i]['full'] = $matches[$i][0]; + if (strlen($matches[$i][10]) <= 2) { + $return[$i]['self_closing'] = true; + } else { + $return[$i]['self_closing'] = false; + $return[$i]['content'] = $matches[$i][12]; + } + $return[$i]['attribs'] = array(); + if (!empty($matches[$i][2])) { + preg_match_all('/((\w+:)?\w+)\s*=\s*("([^"]*)"|\'([^\']*)\'|(\S+))\s/msiU', ' ' . $matches[$i][2] . ' ', $attribs, PREG_SET_ORDER); + for ($j = 0; $j < count($attribs); $j++) { + $return[$i]['attribs'][strtoupper($attribs[$j][1])]['data'] = $attribs[$j][count($attribs[$j])-1]; + $first = substr($attribs[$j][2], 0, 1); + $return[$i]['attribs'][strtoupper($attribs[$j][1])]['split'] = ($first == '"' || $first == "'") ? $first : '"'; + } + } + } + return $return; + } + + public function element_implode($element) + { + $full = "<$element[tag]"; + foreach ($element['attribs'] as $key => $value) { + $key = strtolower($key); + $full .= " $key=$value[split]$value[data]$value[split]"; + } + if ($element['self_closing']) { + $full .= ' />'; + } else { + $full .= ">$element[content]"; + } + return $full; + } + + public function error($message, $level, $file, $line) + { + switch ($level) { + case E_USER_ERROR: + $note = 'PHP Error'; + break; + case E_USER_WARNING: + $note = 'PHP Warning'; + break; + case E_USER_NOTICE: + $note = 'PHP Notice'; + break; + default: + $note = 'Unknown Error'; + break; + } + error_log("$note: $message in $file on line $line", 0); + return $message; + } + + public function display_file($url, $timeout = 10, $useragent = null) + { + $file = new SimplePie_File($url, $timeout, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $useragent); + $headers = $file->headers(); + if ($file->body() !== false) { + header('Content-type: ' . $headers['content-type']); + echo $file->body(); + exit; + } + } + + public function fix_protocol($url, $http = 1) + { + $parsed = SimplePie_Misc::parse_url($url); + if (!empty($parsed['scheme']) && strtolower($parsed['scheme']) != 'http' && strtolower($parsed['scheme']) != 'https') { + return SimplePie_Misc::fix_protocol("$parsed[authority]$parsed[path]$parsed[query]$parsed[fragment]", $http); + } + if (!file_exists($url) && empty($parsed['scheme'])) { + return SimplePie_Misc::fix_protocol("http://$url", $http); + } + + if ($http == 2 && !empty($parsed['scheme'])) { + return "feed:$url"; + } elseif ($http == 3 && strtolower($parsed['scheme']) == 'http') { + return substr_replace($url, 'podcast', 0, 4); + } else { + return $url; + } + } + + public function parse_url($url, $parse_match = true) + { + preg_match('/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/i', $url, $match); + if (empty($match[0])) { + return false; + } else { + for ($i = 6; $i < 10; $i++) { + if (!isset($match[$i])) { + $match[$i] = ''; + } + } + if ($parse_match) { + $match = array('scheme' => $match[2], 'authority' => $match[4], 'path' => $match[5], 'query' => $match[6], 'fragment' => $match[8]); + } + return $match; + } + } + + /** + * Replace bad bytes + * + * PCRE Pattern to locate bad bytes in a UTF-8 string + * Comes from W3 FAQ: Multilingual Forms + * Note: modified to include full ASCII range including control chars + * + * Modified by Geoffrey Sneddon 2006-11-19 to remove functionality + * to choose what the replace string is, and to use a variable for + * the output instead of PHP's output buffer + */ + public function utf8_bad_replace($str) + { + $UTF8_BAD = + '([\x00-\x7F]' . # ASCII (including control chars) + '|[\xC2-\xDF][\x80-\xBF]' . # non-overlong 2-byte + '|\xE0[\xA0-\xBF][\x80-\xBF]' . # excluding overlongs + '|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}' . # straight 3-byte + '|\xED[\x80-\x9F][\x80-\xBF]' . # excluding surrogates + '|\xF0[\x90-\xBF][\x80-\xBF]{2}' . # planes 1-3 + '|[\xF1-\xF3][\x80-\xBF]{3}' . # planes 4-15 + '|\xF4[\x80-\x8F][\x80-\xBF]{2}' . # plane 16 + '|(.{1}))'; # invalid byte + $output = ''; + while (preg_match('/' . $UTF8_BAD . '/S', $str, $matches)) { + if (!isset($matches[2])) { + $output .= $matches[0]; + } + $str = substr($str, strlen($matches[0])); + } + return $output; + } + + public function change_encoding($data, $input, $output) + { + $input = SimplePie_Misc::encoding($input); + $output = SimplePie_Misc::encoding($output); + + if ($input != $output) { + if (function_exists('iconv') && $input['use_iconv'] && $output['use_iconv'] && iconv($input['encoding'], "$output[encoding]//TRANSLIT", $data)) { + return iconv($input['encoding'], "$output[encoding]//TRANSLIT", $data); + } elseif (function_exists('iconv') && $input['use_iconv'] && $output['use_iconv'] && iconv($input['encoding'], $output['encoding'], $data)) { + return iconv($input['encoding'], $output['encoding'], $data); + } elseif (function_exists('mb_convert_encoding') && $input['use_mbstring'] && $output['use_mbstring']) { + return mb_convert_encoding($data, $output['encoding'], $input['encoding']); + } elseif ($input['encoding'] == 'ISO-8859-1' && $output['encoding'] == 'UTF-8') { + return utf8_encode($data); + } elseif ($input['encoding'] == 'UTF-8' && $output['encoding'] == 'ISO-8859-1') { + return utf8_decode($data); + } + } + return $data; + } + + public function encoding($encoding) + { + $return['use_mbstring'] = false; + $return['use_iconv'] = false; + switch (strtolower($encoding)) { + + // 7bit + case '7bit': + case '7-bit': + $return['encoding'] = '7bit'; + $return['use_mbstring'] = true; + break; + + // 8bit + case '8bit': + case '8-bit': + $return['encoding'] = '8bit'; + $return['use_mbstring'] = true; + break; + + // ARMSCII-8 + case 'armscii-8': + case 'armscii': + $return['encoding'] = 'ARMSCII-8'; + $return['use_iconv'] = true; + break; + + // ASCII + case 'us-ascii': + case 'ascii': + $return['encoding'] = 'US-ASCII'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // BASE64 + case 'base64': + case 'base-64': + $return['encoding'] = 'BASE64'; + $return['use_mbstring'] = true; + break; + + // Big5 - Traditional Chinese, mainly used in Taiwan + case 'big5': + case '950': + $return['encoding'] = 'BIG5'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // Big5 with Hong Kong extensions, Traditional Chinese + case 'big5-hkscs': + $return['encoding'] = 'BIG5-HKSCS'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // byte2be + case 'byte2be': + $return['encoding'] = 'byte2be'; + $return['use_mbstring'] = true; + break; + + // byte2le + case 'byte2le': + $return['encoding'] = 'byte2le'; + $return['use_mbstring'] = true; + break; + + // byte4be + case 'byte4be': + $return['encoding'] = 'byte4be'; + $return['use_mbstring'] = true; + break; + + // byte4le + case 'byte4le': + $return['encoding'] = 'byte4le'; + $return['use_mbstring'] = true; + break; + + // EUC-CN + case 'euc-cn': + case 'euccn': + $return['encoding'] = 'EUC-CN'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // EUC-JISX0213 + case 'euc-jisx0213': + case 'eucjisx0213': + $return['encoding'] = 'EUC-JISX0213'; + $return['use_iconv'] = true; + break; + + // EUC-JP + case 'euc-jp': + case 'eucjp': + $return['encoding'] = 'EUC-JP'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // EUCJP-win + case 'euc-jp-win': + case 'eucjp-win': + case 'eucjpwin': + $return['encoding'] = 'EUCJP-win'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // EUC-KR + case 'euc-kr': + case 'euckr': + $return['encoding'] = 'EUC-KR'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // EUC-TW + case 'euc-tw': + case 'euctw': + $return['encoding'] = 'EUC-TW'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // GB18030 - Simplified Chinese, national standard character set + case 'gb18030-2000': + case 'gb18030': + $return['encoding'] = 'GB18030'; + $return['use_iconv'] = true; + break; + + // GB2312 - Simplified Chinese, national standard character set + case 'gb2312': + case '936': + $return['encoding'] = 'GB2312'; + $return['use_mbstring'] = true; + break; + + // GBK + case 'gbk': + $return['encoding'] = 'GBK'; + $return['use_iconv'] = true; + break; + + // Georgian-Academy + case 'georgian-academy': + $return['encoding'] = 'Georgian-Academy'; + $return['use_iconv'] = true; + break; + + // Georgian-PS + case 'georgian-ps': + $return['encoding'] = 'Georgian-PS'; + $return['use_iconv'] = true; + break; + + // HTML-ENTITIES + case 'html-entities': + case 'htmlentities': + $return['encoding'] = 'HTML-ENTITIES'; + $return['use_mbstring'] = true; + break; + + // HZ + case 'hz': + $return['encoding'] = 'HZ'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // ISO-2022-CN + case 'iso-2022-cn': + case 'iso2022-cn': + case 'iso2022cn': + $return['encoding'] = 'ISO-2022-CN'; + $return['use_iconv'] = true; + break; + + // ISO-2022-CN-EXT + case 'iso-2022-cn-ext': + case 'iso2022-cn-ext': + case 'iso2022cn-ext': + case 'iso2022cnext': + $return['encoding'] = 'ISO-2022-CN'; + $return['use_iconv'] = true; + break; + + // ISO-2022-JP + case 'iso-2022-jp': + case 'iso2022-jp': + case 'iso2022jp': + $return['encoding'] = 'ISO-2022-JP'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // ISO-2022-JP-1 + case 'iso-2022-jp-1': + case 'iso2022-jp-1': + case 'iso2022jp-1': + case 'iso2022jp1': + $return['encoding'] = 'ISO-2022-JP-1'; + $return['use_iconv'] = true; + break; + + // ISO-2022-JP-2 + case 'iso-2022-jp-2': + case 'iso2022-jp-2': + case 'iso2022jp-2': + case 'iso2022jp2': + $return['encoding'] = 'ISO-2022-JP-2'; + $return['use_iconv'] = true; + break; + + // ISO-2022-JP-3 + case 'iso-2022-jp-3': + case 'iso2022-jp-3': + case 'iso2022jp-3': + case 'iso2022jp3': + $return['encoding'] = 'ISO-2022-JP-3'; + $return['use_iconv'] = true; + break; + + // ISO-2022-KR + case 'iso-2022-kr': + case 'iso2022-kr': + case 'iso2022kr': + $return['encoding'] = 'ISO-2022-KR'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // ISO-8859-1 + case 'iso-8859-1': + case 'iso8859-1': + $return['encoding'] = 'ISO-8859-1'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // ISO-8859-2 + case 'iso-8859-2': + case 'iso8859-2': + $return['encoding'] = 'ISO-8859-2'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // ISO-8859-3 + case 'iso-8859-3': + case 'iso8859-3': + $return['encoding'] = 'ISO-8859-3'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // ISO-8859-4 + case 'iso-8859-4': + case 'iso8859-4': + $return['encoding'] = 'ISO-8859-4'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // ISO-8859-5 + case 'iso-8859-5': + case 'iso8859-5': + $return['encoding'] = 'ISO-8859-5'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // ISO-8859-6 + case 'iso-8859-6': + case 'iso8859-6': + $return['encoding'] = 'ISO-8859-6'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // ISO-8859-7 + case 'iso-8859-7': + case 'iso8859-7': + $return['encoding'] = 'ISO-8859-7'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // ISO-8859-8 + case 'iso-8859-8': + case 'iso8859-8': + $return['encoding'] = 'ISO-8859-8'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // ISO-8859-9 + case 'iso-8859-9': + case 'iso8859-9': + $return['encoding'] = 'ISO-8859-9'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // ISO-8859-10 + case 'iso-8859-10': + case 'iso8859-10': + $return['encoding'] = 'ISO-8859-10'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // mbstring/iconv functions don't appear to support 11 & 12 + + // ISO-8859-13 + case 'iso-8859-13': + case 'iso8859-13': + $return['encoding'] = 'ISO-8859-13'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // ISO-8859-14 + case 'iso-8859-14': + case 'iso8859-14': + $return['encoding'] = 'ISO-8859-14'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // ISO-8859-15 + case 'iso-8859-15': + case 'iso8859-15': + $return['encoding'] = 'ISO-8859-15'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // ISO-8859-16 + case 'iso-8859-16': + case 'iso8859-16': + $return['encoding'] = 'ISO-8859-16'; + $return['use_iconv'] = true; + break; + + // JIS + case 'jis': + $return['encoding'] = 'JIS'; + $return['use_mbstring'] = true; + break; + + // JOHAB - Korean + case 'johab': + $return['encoding'] = 'JOHAB'; + $return['use_iconv'] = true; + break; + + // Russian + case 'koi8-r': + case 'koi8r': + $return['encoding'] = 'KOI8-R'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // Turkish + case 'koi8-t': + case 'koi8t': + $return['encoding'] = 'KOI8-T'; + $return['use_iconv'] = true; + break; + + // Ukrainian + case 'koi8-u': + case 'koi8u': + $return['encoding'] = 'KOI8-U'; + $return['use_iconv'] = true; + break; + + // Russian+Ukrainian + case 'koi8-ru': + case 'koi8ru': + $return['encoding'] = 'KOI8-RU'; + $return['use_iconv'] = true; + break; + + // Macintosh (Mac OS Classic) + case 'macintosh': + $return['encoding'] = 'Macintosh'; + $return['use_iconv'] = true; + break; + + // MacArabic (Mac OS Classic) + case 'macarabic': + $return['encoding'] = 'MacArabic'; + $return['use_iconv'] = true; + break; + + // MacCentralEurope (Mac OS Classic) + case 'maccentraleurope': + $return['encoding'] = 'MacCentralEurope'; + $return['use_iconv'] = true; + break; + + // MacCroatian (Mac OS Classic) + case 'maccroatian': + $return['encoding'] = 'MacCroatian'; + $return['use_iconv'] = true; + break; + + // MacCyrillic (Mac OS Classic) + case 'maccyrillic': + $return['encoding'] = 'MacCyrillic'; + $return['use_iconv'] = true; + break; + + // MacGreek (Mac OS Classic) + case 'macgreek': + $return['encoding'] = 'MacGreek'; + $return['use_iconv'] = true; + break; + + // MacHebrew (Mac OS Classic) + case 'machebrew': + $return['encoding'] = 'MacHebrew'; + $return['use_iconv'] = true; + break; + + // MacIceland (Mac OS Classic) + case 'maciceland': + $return['encoding'] = 'MacIceland'; + $return['use_iconv'] = true; + break; + + // MacRoman (Mac OS Classic) + case 'macroman': + $return['encoding'] = 'MacRoman'; + $return['use_iconv'] = true; + break; + + // MacRomania (Mac OS Classic) + case 'macromania': + $return['encoding'] = 'MacRomania'; + $return['use_iconv'] = true; + break; + + // MacThai (Mac OS Classic) + case 'macthai': + $return['encoding'] = 'MacThai'; + $return['use_iconv'] = true; + break; + + // MacTurkish (Mac OS Classic) + case 'macturkish': + $return['encoding'] = 'MacTurkish'; + $return['use_iconv'] = true; + break; + + // MacUkraine (Mac OS Classic) + case 'macukraine': + $return['encoding'] = 'MacUkraine'; + $return['use_iconv'] = true; + break; + + // MuleLao-1 + case 'mulelao-1': + case 'mulelao1': + $return['encoding'] = 'MuleLao-1'; + $return['use_iconv'] = true; + break; + + // Shift_JIS + case 'shift_jis': + case 'sjis': + case '932': + $return['encoding'] = 'Shift_JIS'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // Shift_JISX0213 + case 'shift-jisx0213': + case 'shiftjisx0213': + $return['encoding'] = 'Shift_JISX0213'; + $return['use_iconv'] = true; + break; + + // SJIS-win + case 'sjis-win': + case 'sjiswin': + case 'shift_jis-win': + $return['encoding'] = 'SJIS-win'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // TCVN - Vietnamese + case 'tcvn': + $return['encoding'] = 'TCVN'; + $return['use_iconv'] = true; + break; + + // TDS565 - Turkish + case 'tds565': + $return['encoding'] = 'TDS565'; + $return['use_iconv'] = true; + break; + + // TIS-620 Thai + case 'tis-620': + case 'tis620': + $return['encoding'] = 'TIS-620'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // UCS-2 + case 'ucs-2': + case 'ucs2': + case 'utf-16': + case 'utf16': + $return['encoding'] = 'UCS-2'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // UCS-2BE + case 'ucs-2be': + case 'ucs2be': + case 'utf-16be': + case 'utf16be': + $return['encoding'] = 'UCS-2BE'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // UCS-2LE + case 'ucs-2le': + case 'ucs2le': + case 'utf-16le': + case 'utf16le': + $return['encoding'] = 'UCS-2LE'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // UCS-2-INTERNAL + case 'ucs-2-internal': + case 'ucs2internal': + $return['encoding'] = 'UCS-2-INTERNAL'; + $return['use_iconv'] = true; + break; + + // UCS-4 + case 'ucs-4': + case 'ucs4': + case 'utf-32': + case 'utf32': + $return['encoding'] = 'UCS-4'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // UCS-4BE + case 'ucs-4be': + case 'ucs4be': + case 'utf-32be': + case 'utf32be': + $return['encoding'] = 'UCS-4BE'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // UCS-4LE + case 'ucs-4le': + case 'ucs4le': + case 'utf-32le': + case 'utf32le': + $return['encoding'] = 'UCS-4LE'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // UCS-4-INTERNAL + case 'ucs-4-internal': + case 'ucs4internal': + $return['encoding'] = 'UCS-4-INTERNAL'; + $return['use_iconv'] = true; + break; + + // UCS-16 + case 'ucs-16': + case 'ucs16': + $return['encoding'] = 'UCS-16'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // UCS-16BE + case 'ucs-16be': + case 'ucs16be': + $return['encoding'] = 'UCS-16BE'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // UCS-16LE + case 'ucs-16le': + case 'ucs16le': + $return['encoding'] = 'UCS-16LE'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // UCS-32 + case 'ucs-32': + case 'ucs32': + $return['encoding'] = 'UCS-32'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // UCS-32BE + case 'ucs-32be': + case 'ucs32be': + $return['encoding'] = 'UCS-32BE'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // UCS-32LE + case 'ucs-32le': + case 'ucs32le': + $return['encoding'] = 'UCS-32LE'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // UTF-7 + case 'utf-7': + case 'utf7': + $return['encoding'] = 'UTF-7'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // UTF7-IMAP + case 'utf-7-imap': + case 'utf7-imap': + case 'utf7imap': + $return['encoding'] = 'UTF7-IMAP'; + $return['use_mbstring'] = true; + break; + + // VISCII - Vietnamese ASCII + case 'viscii': + $return['encoding'] = 'VISCII'; + $return['use_iconv'] = true; + break; + + // Windows-specific Central & Eastern Europe + case 'cp1250': + case 'windows-1250': + case 'win-1250': + case '1250': + $return['encoding'] = 'Windows-1250'; + $return['use_iconv'] = true; + break; + + // Windows-specific Cyrillic + case 'cp1251': + case 'windows-1251': + case 'win-1251': + case '1251': + $return['encoding'] = 'Windows-1251'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // Windows-specific Western Europe + case 'cp1252': + case 'windows-1252': + case '1252': + $return['encoding'] = 'Windows-1252'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + + // Windows-specific Greek + case 'cp1253': + case 'windows-1253': + case '1253': + $return['encoding'] = 'Windows-1253'; + $return['use_iconv'] = true; + break; + + // Windows-specific Turkish + case 'cp1254': + case 'windows-1254': + case '1254': + $return['encoding'] = 'Windows-1254'; + $return['use_iconv'] = true; + break; + + // Windows-specific Hebrew + case 'cp1255': + case 'windows-1255': + case '1255': + $return['encoding'] = 'Windows-1255'; + $return['use_iconv'] = true; + break; + + // Windows-specific Arabic + case 'cp1256': + case 'windows-1256': + case '1256': + $return['encoding'] = 'Windows-1256'; + $return['use_iconv'] = true; + break; + + // Windows-specific Baltic + case 'cp1257': + case 'windows-1257': + case '1257': + $return['encoding'] = 'Windows-1257'; + $return['use_iconv'] = true; + break; + + // Windows-specific Vietnamese + case 'cp1258': + case 'windows-1258': + case '1258': + $return['encoding'] = 'Windows-1258'; + $return['use_iconv'] = true; + break; + + // Default to UTF-8 + default: + $return['encoding'] = 'UTF-8'; + $return['use_iconv'] = true; + $return['use_mbstring'] = true; + break; + } + + // Then, return it. + return $return; + } + + public function get_curl_version() + { + $curl = 0; + if (is_array(curl_version())) { + $curl = curl_version(); + $curl = $curl['version']; + } else { + $curl = curl_version(); + $curl = explode(' ', $curl); + $curl = explode('/', $curl[0]); + $curl = $curl[1]; + } + return $curl; + } + + public function is_a_class($class1, $class2) + { + if (class_exists($class1)) { + $classes = array(strtolower($class1)); + while ($class1 = get_parent_class($class1)) { + $classes[] = strtolower($class1); + } + return in_array(strtolower($class2), $classes); + } else { + return false; + } + } +} + +class SimplePie_Locator +{ + public $useragent; + public $timeout; + public $file; + public $local; + public $elsewhere; + public $file_class = 'SimplePie_File'; + + public function __construct(&$file, $timeout = 10, $useragent = null, $file_class = 'SimplePie_File') + { + if (!is_a($file, 'SimplePie_File')) { + $this->file = new $this->file_class($file, $timeout, $useragent); + } else { + $this->file =& $file; + } + $this->file_class = $file_class; + $this->useragent = $useragent; + $this->timeout = $timeout; + } + + + public function find() + { + if ($this->is_feed($this->file)) { + return $this->file->url; + } + + $autodiscovery = $this->autodiscovery($this->file); + if ($autodiscovery) { + return $autodiscovery; + } + + if ($this->get_links($this->file)) { + if (!empty($this->local)) { + $extension_local = $this->extension($this->local); + if ($extension_local) { + return $extension_local; + } + + $body_local = $this->body($this->local); + if ($body_local) { + return $body_local; + } + } + + if (!empty($this->elsewhere)) { + $extension_elsewhere = $this->extension($this->elsewhere); + if ($extension_elsewhere) { + return $extension_elsewhere; + } + + $body_elsewhere = $this->body($this->elsewhere); + if ($body_elsewhere) { + return $body_elsewhere; + } + } + } + return false; + } + + public function is_feed(&$file) + { + if (!is_a($file, 'SimplePie_File')) { + if (isset($this)) { + $file2 = new $this->file_class($file, $this->timeout, 5, null, $this->useragent); + } else { + $file2 = new $this->file_class($file); + } + $file2->body(); + $file2->close(); + } else { + $file2 =& $file; + } + $body = preg_replace('/<\!-(.*)-\>/msiU', '', $file2->body()); + if (preg_match('/<(\w+\:)?rss/msiU', $body) || preg_match('/<(\w+\:)?RDF/mi', $body) || preg_match('/<(\w+\:)?feed/mi', $body)) { + return true; + } + return false; + } + + public function autodiscovery(&$file) + { + $links = SimplePie_Misc::get_element('link', $file->body()); + $done = array(); + foreach ($links as $link) { + if (!empty($link['attribs']['TYPE']['data']) && !empty($link['attribs']['HREF']['data']) && !empty($link['attribs']['REL']['data'])) { + $rel = preg_split('/\s+/', strtolower(trim($link['attribs']['REL']['data']))); + $type = preg_match('/^(application\/rss\+xml|application\/atom\+xml|application\/rdf\+xml|application\/xml\+rss|application\/xml\+atom|application\/xml\+rdf|application\/xml|application\/x\.atom\+xml|text\/xml)(;|$)/msiU', trim($link['attribs']['TYPE']['data'])); + $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['HREF']['data']), $this->file->url); + if (!in_array($href, $done) && in_array('alternate', $rel) && $type) { + $feed = $this->is_feed($href); + if ($feed) { + return $href; + } + } + $done[] = $href; + } + } + return false; + } + + public function get_links(&$file) + { + $links = SimplePie_Misc::get_element('a', $file->body()); + foreach ($links as $link) { + if (!empty($link['attribs']['HREF']['data'])) { + $href = trim($link['attribs']['HREF']['data']); + $parsed = SimplePie_Misc::parse_url($href); + if (empty($parsed['scheme']) || $parsed['scheme'] != 'javascript') { + $current = SimplePie_Misc::parse_url($this->file->url); + if (empty($parsed['authority']) || $parsed['authority'] == $current['authority']) { + $this->local[] = SimplePie_Misc::absolutize_url($href, $this->file->url); + } else { + $this->elsewhere[] = SimplePie_Misc::absolutize_url($href, $this->file->url); + } + } + } + } + if (!empty($this->local)) { + $this->local = array_unique($this->local); + } + if (!empty($this->elsewhere)) { + $this->elsewhere = array_unique($this->elsewhere); + } + if (!empty($this->local) || !empty($this->elsewhere)) { + return true; + } + return false; + } + + public function extension(&$array) + { + foreach ($array as $key => $value) { + $value = SimplePie_Misc::absolutize_url($value, $this->file->url); + if (in_array(strrchr($value, '.'), array('.rss', '.rdf', '.atom', '.xml'))) { + if ($this->is_feed($value)) { + return $value; + } else { + unset($array[$key]); + } + } + } + return false; + } + + public function body(&$array) + { + foreach ($array as $key => $value) { + $value = SimplePie_Misc::absolutize_url($value, $this->file->url); + if (preg_match('/(rss|rdf|atom|xml)/i', $value)) { + if ($this->is_feed($value)) { + return $value; + } else { + unset($array[$key]); + } + } + } + return false; + } +} + +class SimplePie_Parser +{ + public $encoding; + public $data; + public $namespaces = array('xml' => 'HTTP://WWW.W3.ORG/XML/1998/NAMESPACE', 'atom' => 'ATOM', 'rss2' => 'RSS', 'rdf' => 'RDF', 'rss1' => 'RSS', 'dc' => 'DC', 'xhtml' => 'XHTML', 'content' => 'CONTENT'); + public $xml; + public $error_code; + public $error_string; + public $current_line; + public $current_column; + public $current_byte; + public $tag_name; + public $inside_item; + public $item_number = 0; + public $inside_channel; + public $author_number= 0; + public $category_number = 0; + public $enclosure_number = 0; + public $link_number = 0; + public $item_link_number = 0; + public $inside_image; + public $attribs; + public $is_first; + public $inside_author; + public $depth_inside_item = 0; + + public function __construct($data, $encoding, $return_xml = false) + { + $this->encoding = $encoding; + + // Strip BOM: + // UTF-32 Big Endian BOM + if (strpos($data, sprintf('%c%c%c%c', 0x00, 0x00, 0xFE, 0xFF)) === 0) { + $data = substr($data, 4); + } + // UTF-32 Little Endian BOM + elseif (strpos($data, sprintf('%c%c%c%c', 0xFF, 0xFE, 0x00, 0x00)) === 0) { + $data = substr($data, 4); + } + // UTF-16 Big Endian BOM + elseif (strpos($data, sprintf('%c%c', 0xFE, 0xFF)) === 0) { + $data = substr($data, 2); + } + // UTF-16 Little Endian BOM + elseif (strpos($data, sprintf('%c%c', 0xFF, 0xFE)) === 0) { + $data = substr($data, 2); + } + // UTF-8 BOM + elseif (strpos($data, sprintf('%c%c%c', 0xEF, 0xBB, 0xBF)) === 0) { + $data = substr($data, 3); + } + + // Make sure the XML prolog is sane and has the correct encoding + if (preg_match('/^<\?xml(.*)?>/msiU', $data, $prolog)) { + $data = substr_replace($data, '', 0, strlen($prolog[0])); + } + $data = "\n" . $data; + + // Put some data into CDATA blocks + // If we're RSS + if ((stristr($data, '|>(.*)<\/$full>)/msiU", array(&$this, 'add_cdata'), $data); + } + foreach ($sp_elements as $full) { + // Deal with CDATA within CDATA (this can be caused by us inserting CDATA above) + $data = preg_replace_callback("/<($full)((\s*((\w+:)?\w+)\s*=\s*(\"([^\"]*)\"|'([^']*)'))*)\s*(\/>|><\/$full>)/msiU", array(&$this, 'cdata_in_cdata'), $data); + } + + // Return the XML, if so desired + if ($return_xml) { + $this->data =& $data; + return; + } + + // Create the parser + $this->xml = xml_parser_create_ns($encoding); + xml_parser_set_option($this->xml, XML_OPTION_SKIP_WHITE, 1); + xml_set_object($this->xml, $this); + xml_set_character_data_handler($this->xml, 'data_handler'); + xml_set_element_handler($this->xml, 'start_handler', 'end_handler'); + xml_set_start_namespace_decl_handler($this->xml, 'start_name_space'); + xml_set_end_namespace_decl_handler($this->xml, 'end_name_space'); + + // Parse! + if (!xml_parse($this->xml, $data)) { + $this->data = null; + $this->error_code = xml_get_error_code($this->xml); + $this->error_string = xml_error_string($this->error_code); + } + $this->current_line = xml_get_current_line_number($this->xml); + $this->current_column = xml_get_current_column_number($this->xml); + $this->current_byte = xml_get_current_byte_index($this->xml); + xml_parser_free($this->xml); + return; + } + + public function add_cdata($match) + { + if (isset($match[10])) { + return "<$match[1]$match[2]>"; + } + return $match[0]; + } + + public function cdata_in_cdata($match) + { + if (isset($match[10])) { + $match[10] = preg_replace_callback('//msiU', array(&$this, 'real_cdata_in_cdata'), $match[10]); + return "<$match[1]$match[2]>"; + } + return $match[0]; + } + + public function real_cdata_in_cdata($match) + { + return htmlspecialchars($match[1], ENT_NOQUOTES); + } + + public function do_add_content(&$array, $data) + { + if ($this->is_first) { + $array['data'] = $data; + $array['attribs'] = $this->attribs; + } else { + $array['data'] .= $data; + } + } + + public function start_handler($parser, $name, $attribs) + { + $this->tag_name = $name; + $this->attribs = $attribs; + $this->is_first = true; + + if ($this->inside_item) { + $this->depth_inside_item++; + } + + switch ($this->tag_name) { + case 'ITEM': + case $this->namespaces['rss2'] . ':ITEM': + case $this->namespaces['rss1'] . ':ITEM': + case 'ENTRY': + case $this->namespaces['atom'] . ':ENTRY': + $this->inside_item = true; + $this->do_add_content($this->data['items'][$this->item_number], ''); + break; + + case 'CHANNEL': + case $this->namespaces['rss2'] . ':CHANNEL': + case $this->namespaces['rss1'] . ':CHANNEL': + $this->inside_channel = true; + break; + + case 'RSS': + case $this->namespaces['rss2'] . ':RSS': + $this->data['feedinfo']['type'] = 'RSS'; + $this->do_add_content($this->data['feeddata'], ''); + if (!empty($attribs['VERSION'])) { + $this->data['feedinfo']['version'] = trim($attribs['VERSION']); + } + break; + + case $this->namespaces['rdf'] . ':RDF': + $this->data['feedinfo']['type'] = 'RSS'; + $this->do_add_content($this->data['feeddata'], ''); + $this->data['feedinfo']['version'] = 1; + break; + + case 'FEED': + case $this->namespaces['atom'] . ':FEED': + $this->data['feedinfo']['type'] = 'Atom'; + $this->do_add_content($this->data['feeddata'], ''); + if (!empty($attribs['VERSION'])) { + $this->data['feedinfo']['version'] = trim($attribs['VERSION']); + } + break; + + case 'IMAGE': + case $this->namespaces['rss2'] . ':IMAGE': + case $this->namespaces['rss1'] . ':IMAGE': + if ($this->inside_channel) { + $this->inside_image = true; + } + break; + } + + if (!empty($this->data['feedinfo']['type']) && $this->data['feedinfo']['type'] == 'Atom' && ($this->tag_name == 'AUTHOR' || $this->tag_name == $this->namespaces['atom'] . ':AUTHOR')) { + $this->inside_author = true; + } + $this->data_handler($this->xml, ''); + } + + public function data_handler($parser, $data) + { + if ($this->inside_item && $this->depth_inside_item == 1) { + switch ($this->tag_name) { + case 'TITLE': + case $this->namespaces['rss1'] . ':TITLE': + case $this->namespaces['rss2'] . ':TITLE': + case $this->namespaces['atom'] . ':TITLE': + $this->do_add_content($this->data['items'][$this->item_number]['title'], $data); + break; + + case $this->namespaces['dc'] . ':TITLE': + $this->do_add_content($this->data['items'][$this->item_number]['dc:title'], $data); + break; + + case 'CONTENT': + case $this->namespaces['atom'] . ':CONTENT': + $this->do_add_content($this->data['items'][$this->item_number]['content'], $data); + break; + + case $this->namespaces['content'] . ':ENCODED': + $this->do_add_content($this->data['items'][$this->item_number]['encoded'], $data); + break; + + case 'SUMMARY': + case $this->namespaces['atom'] . ':SUMMARY': + $this->do_add_content($this->data['items'][$this->item_number]['summary'], $data); + break; + + case 'LONGDESC': + $this->do_add_content($this->data['items'][$this->item_number]['longdesc'], $data); + break; + + case 'DESCRIPTION': + case $this->namespaces['rss1'] . ':DESCRIPTION': + case $this->namespaces['rss2'] . ':DESCRIPTION': + $this->do_add_content($this->data['items'][$this->item_number]['description'], $data); + break; + + case $this->namespaces['dc'] . ':DESCRIPTION': + $this->do_add_content($this->data['items'][$this->item_number]['dc:description'], $data); + break; + + case 'LINK': + case $this->namespaces['rss1'] . ':LINK': + case $this->namespaces['rss2'] . ':LINK': + case $this->namespaces['atom'] . ':LINK': + $this->do_add_content($this->data['items'][$this->item_number]['link'][$this->item_link_number], $data); + break; + + case 'ENCLOSURE': + case $this->namespaces['rss1'] . ':ENCLOSURE': + case $this->namespaces['rss2'] . ':ENCLOSURE': + case $this->namespaces['atom'] . ':ENCLOSURE': + $this->do_add_content($this->data['items'][$this->item_number]['enclosure'][$this->enclosure_number], $data); + break; + + case 'GUID': + case $this->namespaces['rss1'] . ':GUID': + case $this->namespaces['rss2'] . ':GUID': + $this->do_add_content($this->data['items'][$this->item_number]['guid'], $data); + break; + + case 'ID': + case $this->namespaces['atom'] . ':ID': + $this->do_add_content($this->data['items'][$this->item_number]['id'], $data); + break; + + case 'PUBDATE': + case $this->namespaces['rss1'] . ':PUBDATE': + case $this->namespaces['rss2'] . ':PUBDATE': + $this->do_add_content($this->data['items'][$this->item_number]['pubdate'], $data); + break; + + case $this->namespaces['dc'] . ':DATE': + $this->do_add_content($this->data['items'][$this->item_number]['dc:date'], $data); + break; + + case 'ISSUED': + case $this->namespaces['atom'] . ':ISSUED': + $this->do_add_content($this->data['items'][$this->item_number]['issued'], $data); + break; + + case 'PUBLISHED': + case $this->namespaces['atom'] . ':PUBLISHED': + $this->do_add_content($this->data['items'][$this->item_number]['published'], $data); + break; + + case 'MODIFIED': + case $this->namespaces['atom'] . ':MODIFIED': + $this->do_add_content($this->data['items'][$this->item_number]['modified'], $data); + break; + + case 'UPDATED': + case $this->namespaces['atom'] . ':UPDATED': + $this->do_add_content($this->data['items'][$this->item_number]['updated'], $data); + break; + + case 'CATEGORY': + case $this->namespaces['rss1'] . ':CATEGORY': + case $this->namespaces['rss2'] . ':CATEGORY': + case $this->namespaces['atom'] . ':CATEGORY': + $this->do_add_content($this->data['items'][$this->item_number]['category'][$this->category_number], $data); + break; + + case $this->namespaces['dc'] . ':SUBJECT': + $this->do_add_content($this->data['items'][$this->item_number]['subject'][$this->category_number], $data); + break; + + case $this->namespaces['dc'] . ':CREATOR': + $this->do_add_content($this->data['items'][$this->item_number]['creator'][$this->author_number], $data); + break; + + case 'AUTHOR': + case $this->namespaces['rss1'] . ':AUTHOR': + case $this->namespaces['rss2'] . ':AUTHOR': + $this->do_add_content($this->data['items'][$this->item_number]['author'][$this->author_number]['rss'], $data); + break; + } + + if ($this->inside_author) { + switch ($this->tag_name) { + case 'NAME': + case $this->namespaces['atom'] . ':NAME': + $this->do_add_content($this->data['items'][$this->item_number]['author'][$this->author_number]['name'], $data); + break; + + case 'URL': + case $this->namespaces['atom'] . ':URL': + $this->do_add_content($this->data['items'][$this->item_number]['author'][$this->author_number]['url'], $data); + break; + + case 'URI': + case $this->namespaces['atom'] . ':URI': + $this->do_add_content($this->data['items'][$this->item_number]['author'][$this->author_number]['uri'], $data); + break; + + case 'HOMEPAGE': + case $this->namespaces['atom'] . ':HOMEPAGE': + $this->do_add_content($this->data['items'][$this->item_number]['author'][$this->author_number]['homepage'], $data); + break; + + case 'EMAIL': + case $this->namespaces['atom'] . ':EMAIL': + $this->do_add_content($this->data['items'][$this->item_number]['author'][$this->author_number]['email'], $data); + break; + } + } + } elseif (($this->inside_channel && !$this->inside_image) || (isset($this->data['feedinfo']['type']) && $this->data['feedinfo']['type'] == 'Atom')) { + switch ($this->tag_name) { + case 'TITLE': + case $this->namespaces['rss1'] . ':TITLE': + case $this->namespaces['rss2'] . ':TITLE': + case $this->namespaces['atom'] . ':TITLE': + $this->do_add_content($this->data['info']['title'], $data); + break; + + case 'LINK': + case $this->namespaces['rss1'] . ':LINK': + case $this->namespaces['rss2'] . ':LINK': + case $this->namespaces['atom'] . ':LINK': + $this->do_add_content($this->data['info']['link'][$this->link_number], $data); + break; + + case 'DESCRIPTION': + case $this->namespaces['rss1'] . ':DESCRIPTION': + case $this->namespaces['rss2'] . ':DESCRIPTION': + $this->do_add_content($this->data['info']['description'], $data); + break; + + case $this->namespaces['dc'] . ':DESCRIPTION': + $this->do_add_content($this->data['info']['dc:description'], $data); + break; + + case 'TAGLINE': + case $this->namespaces['atom'] . ':TAGLINE': + $this->do_add_content($this->data['info']['tagline'], $data); + break; + + case 'SUBTITLE': + case $this->namespaces['atom'] . ':SUBTITLE': + $this->do_add_content($this->data['info']['subtitle'], $data); + break; + + case 'COPYRIGHT': + case $this->namespaces['rss1'] . ':COPYRIGHT': + case $this->namespaces['rss2'] . ':COPYRIGHT': + case $this->namespaces['atom'] . ':COPYRIGHT': + $this->do_add_content($this->data['info']['copyright'], $data); + break; + + case 'LANGUAGE': + case $this->namespaces['rss1'] . ':LANGUAGE': + case $this->namespaces['rss2'] . ':LANGUAGE': + $this->do_add_content($this->data['info']['language'], $data); + break; + + case 'LOGO': + case $this->namespaces['atom'] . ':LOGO': + $this->do_add_content($this->data['info']['logo'], $data); + break; + + } + } elseif ($this->inside_channel && $this->inside_image) { + switch ($this->tag_name) { + case 'TITLE': + case $this->namespaces['rss1'] . ':TITLE': + case $this->namespaces['rss2'] . ':TITLE': + $this->do_add_content($this->data['info']['image']['title'], $data); + break; + + case 'URL': + case $this->namespaces['rss1'] . ':URL': + case $this->namespaces['rss2'] . ':URL': + $this->do_add_content($this->data['info']['image']['url'], $data); + break; + + case 'LINK': + case $this->namespaces['rss1'] . ':LINK': + case $this->namespaces['rss2'] . ':LINK': + $this->do_add_content($this->data['info']['image']['link'], $data); + break; + + case 'WIDTH': + case $this->namespaces['rss1'] . ':WIDTH': + case $this->namespaces['rss2'] . ':WIDTH': + $this->do_add_content($this->data['info']['image']['width'], $data); + break; + + case 'HEIGHT': + case $this->namespaces['rss1'] . ':HEIGHT': + case $this->namespaces['rss2'] . ':HEIGHT': + $this->do_add_content($this->data['info']['image']['height'], $data); + break; + } + } + $this->is_first = false; + } + + public function end_handler($parser, $name) + { + $this->tag_name = ''; + switch ($name) { + case 'ITEM': + case $this->namespaces['rss1'] . ':ITEM': + case $this->namespaces['rss2'] . ':ITEM': + case 'ENTRY': + case $this->namespaces['atom'] . ':ENTRY': + $this->inside_item = false; + $this->item_number++; + $this->author_number = 0; + $this->category_number = 0; + $this->enclosure_number = 0; + $this->item_link_number = 0; + break; + + case 'CHANNEL': + case $this->namespaces['rss1'] . ':CHANNEL': + case $this->namespaces['rss2'] . ':CHANNEL': + $this->inside_channel = false; + break; + + case 'IMAGE': + case $this->namespaces['rss1'] . ':IMAGE': + case $this->namespaces['rss2'] . ':IMAGE': + $this->inside_image = false; + break; + + case 'AUTHOR': + case $this->namespaces['rss1'] . ':AUTHOR': + case $this->namespaces['rss2'] . ':AUTHOR': + case $this->namespaces['atom'] . ':AUTHOR': + $this->author_number++; + $this->inside_author = false; + break; + + case 'CATEGORY': + case $this->namespaces['rss1'] . ':CATEGORY': + case $this->namespaces['rss2'] . ':CATEGORY': + case $this->namespaces['atom'] . ':CATEGORY': + case $this->namespaces['dc'] . ':SUBJECT': + $this->category_number++; + break; + + case 'ENCLOSURE': + case $this->namespaces['rss1'] . ':ENCLOSURE': + case $this->namespaces['rss2'] . ':ENCLOSURE': + $this->enclosure_number++; + break; + + case 'LINK': + case $this->namespaces['rss1'] . ':LINK': + case $this->namespaces['rss2'] . ':LINK': + case $this->namespaces['atom'] . ':LINK': + if ($this->inside_item) { + $this->item_link_number++; + } else { + $this->link_number++; + } + break; + } + if ($this->inside_item) { + $this->depth_inside_item--; + } + } + + public function start_name_space($parser, $prefix, $uri = null) + { + $prefix = strtoupper($prefix); + $uri = strtoupper($uri); + if ($prefix == 'ATOM' || $uri == 'HTTP://WWW.W3.ORG/2005/ATOM' || $uri == 'HTTP://PURL.ORG/ATOM/NS#') { + $this->namespaces['atom'] = $uri; + } elseif ($prefix == 'RSS2' || $uri == 'HTTP://BACKEND.USERLAND.COM/RSS2') { + $this->namespaces['rss2'] = $uri; + } elseif ($prefix == 'RDF' || $uri == 'HTTP://WWW.W3.ORG/1999/02/22-RDF-SYNTAX-NS#') { + $this->namespaces['rdf'] = $uri; + } elseif ($prefix == 'RSS' || $uri == 'HTTP://PURL.ORG/RSS/1.0/' || $uri == 'HTTP://MY.NETSCAPE.COM/RDF/SIMPLE/0.9/') { + $this->namespaces['rss1'] = $uri; + } elseif ($prefix == 'DC' || $uri == 'HTTP://PURL.ORG/DC/ELEMENTS/1.1/') { + $this->namespaces['dc'] = $uri; + } elseif ($prefix == 'XHTML' || $uri == 'HTTP://WWW.W3.ORG/1999/XHTML') { + $this->namespaces['xhtml'] = $uri; + $this->xhtml_prefix = $prefix; + } elseif ($prefix == 'CONTENT' || $uri == 'HTTP://PURL.ORG/RSS/1.0/MODULES/CONTENT/') { + $this->namespaces['content'] = $uri; + } + } + + public function end_name_space($parser, $prefix) + { + if ($key = array_search(strtoupper($prefix), $this->namespaces)) { + if ($key == 'atom') { + $this->namespaces['atom'] = 'ATOM'; + } elseif ($key == 'rss2') { + $this->namespaces['rss2'] = 'RSS'; + } elseif ($key == 'rdf') { + $this->namespaces['rdf'] = 'RDF'; + } elseif ($key == 'rss1') { + $this->namespaces['rss1'] = 'RSS'; + } elseif ($key == 'dc') { + $this->namespaces['dc'] = 'DC'; + } elseif ($key == 'xhtml') { + $this->namespaces['xhtml'] = 'XHTML'; + $this->xhtml_prefix = 'XHTML'; + } elseif ($key == 'content') { + $this->namespaces['content'] = 'CONTENT'; + } + } + } +} + +class SimplePie_Sanitize +{ + // Private vars + public $feedinfo; + public $info; + public $items; + public $feed_xmlbase; + public $item_xmlbase; + public $attribs; + public $cached_entities; + public $cache_convert_entities; + + // Options + public $remove_div = true; + public $strip_ads = false; + public $replace_headers = false; + public $bypass_image_hotlink = false; + public $bypass_image_hotlink_page = false; + public $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'); + public $encode_instead_of_strip = false; + public $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur'); + public $input_encoding = 'UTF-8'; + public $output_encoding = 'UTF-8'; + public $item_class = 'SimplePie_Item'; + public $author_class = 'SimplePie_Author'; + public $enclosure_class = 'SimplePie_Enclosure'; + + public function remove_div($enable = true) + { + $this->remove_div = (bool) $enable; + } + + public function strip_ads($enable = false) + { + $this->strip_ads = (bool) $enable; + } + + public function replace_headers($enable = false) + { + $this->enable_headers = (bool) $enable; + } + + public function bypass_image_hotlink($get = false) + { + if ($get) { + $this->bypass_image_hotlink = (string) $get; + } else { + $this->bypass_image_hotlink = false; + } + } + + public function bypass_image_hotlink_page($page = false) + { + if ($page) { + $this->bypass_image_hotlink_page = (string) $page; + } else { + $this->bypass_image_hotlink_page = false; + } + } + + public function strip_htmltags($tags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style')) + { + if ($tags) { + if (is_array($tags)) { + $this->strip_htmltags = $tags; + } else { + $this->strip_htmltags = explode(',', $tags); + } + } else { + $this->strip_htmltags = false; + } + } + + public function encode_instead_of_strip($enable = false) + { + $this->encode_instead_of_strip = (bool) $enable; + } + + public function strip_attributes($attribs = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur')) + { + if ($attribs) { + if (is_array($attribs)) { + $this->strip_attributes = $attribs; + } else { + $this->strip_attributes = explode(',', $attribs); + } + } else { + $this->strip_attributes = false; + } + } + + public function input_encoding($encoding = 'UTF-8') + { + $this->input_encoding = (string) $encoding; + } + + public function output_encoding($encoding = 'UTF-8') + { + $this->output_encoding = (string) $encoding; + } + + public function set_item_class($class = 'SimplePie_Item') + { + if (SimplePie_Misc::is_a_class($class, 'SimplePie_Item')) { + $this->item_class = $class; + return true; + } + return false; + } + + public function set_author_class($class = 'SimplePie_Author') + { + if (SimplePie_Misc::is_a_class($class, 'SimplePie_Author')) { + $this->author_class = $class; + return true; + } + return false; + } + + public function set_enclosure_class($class = 'SimplePie_Enclosure') + { + if (SimplePie_Misc::is_a_class($class, 'SimplePie_Enclosure')) { + $this->enclosure_class = $class; + return true; + } + return false; + } + + public function parse_data_array(&$data, $url) + { + // Feed Info (Type and Version) + if (!empty($data['feedinfo']['type'])) { + $this->feedinfo = $data['feedinfo']; + } + + // Feed level xml:base + if (!empty($data['feeddata']['attribs']['XML:BASE'])) { + $this->feed_xmlbase = $data['feeddata']['attribs']['XML:BASE']; + } elseif (!empty($data['feeddata']['attribs']['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:BASE'])) { + $this->feed_xmlbase = $data['feeddata']['attribs']['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:BASE']; + } + // FeedBurner feeds use alternate link + elseif (strpos($url, 'http://feeds.feedburner.com/') !== 0) { + $this->feed_xmlbase = SimplePie_Misc::parse_url($url); + if (empty($this->feed_xmlbase['authority'])) { + $this->feed_xmlbase = preg_replace('/^' . preg_quote(realpath($_SERVER['DOCUMENT_ROOT']), '/') . '/', '', realpath($url)); + } else { + $this->feed_xmlbase = $url; + } + } + + + // Feed link(s) + if (!empty($data['info']['link'])) { + foreach ($data['info']['link'] as $link) { + if (empty($link['attribs']['REL'])) { + $rel = 'alternate'; + } else { + $rel = strtolower($link['attribs']['REL']); + } + if ($rel == 'enclosure') { + $href = null; + $type = null; + $length = null; + if (!empty($link['data'])) { + $href = $this->sanitize($link['data'], $link['attribs'], true); + } elseif (!empty($link['attribs']['HREF'])) { + $href = $this->sanitize($link['attribs']['HREF'], $link['attribs'], true); + } + if (!empty($link['attribs']['TYPE'])) { + $type = $this->sanitize($link['attribs']['TYPE'], $link['attribs']); + } + if (!empty($link['attribs']['LENGTH'])) { + $length = $this->sanitize($link['attribs']['LENGTH'], $link['attribs']); + } + $this->info['link']['enclosure'][] = new $this->enclosure_class($href, $type, $length); + } else { + if (!empty($link['data'])) { + $this->info['link'][$rel][] = $this->sanitize($link['data'], $link['attribs'], true); + } elseif (!empty($link['attribs']['HREF'])) { + $this->info['link'][$rel][] = $this->sanitize($link['attribs']['HREF'], $link['attribs'], true); + } + } + } + } + + // Use the first alternate link if we don't have any feed xml:base + if (empty($this->feed_xmlbase) && !empty($this->info['link']['alternate'][0])) { + $this->feed_xmlbase = $this->info['link']['alternate'][0]; + } + + // Feed Title + if (!empty($data['info']['title']['data'])) { + $this->info['title'] = $this->sanitize($data['info']['title']['data'], $data['info']['title']['attribs']); + } + + // Feed Descriptions + if (!empty($data['info']['description']['data'])) { + $this->info['description'] = $this->sanitize($data['info']['description']['data'], $data['info']['description']['attribs'], false, true); + } + if (!empty($data['info']['dc:description']['data'])) { + $this->info['dc:description'] = $this->sanitize($data['info']['dc:description']['data'], $data['info']['dc:description']['attribs']); + } + if (!empty($data['info']['tagline']['data'])) { + $this->info['tagline'] = $this->sanitize($data['info']['tagline']['data'], $data['info']['tagline']['attribs']); + } + if (!empty($data['info']['subtitle']['data'])) { + $this->info['subtitle'] = $this->sanitize($data['info']['subtitle']['data'], $data['info']['subtitle']['attribs']); + } + + // Feed Language + if (!empty($data['info']['language']['data'])) { + $this->info['language'] = $this->sanitize($data['info']['language']['data'], $data['info']['language']['attribs']); + } + if (!empty($data['feeddata']['attribs']['XML:LANG'])) { + $this->info['xml:lang'] = $this->sanitize($data['feeddata']['attribs']['XML:LANG'], null); + } elseif (!empty($data['feeddata']['attribs']['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:LANG'])) { + $this->info['xml:lang'] = $this->sanitize($data['feeddata']['attribs']['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:LANG'], null); + } + + // Feed Copyright + if (!empty($data['info']['copyright']['data'])) { + $this->info['copyright'] = $this->sanitize($data['info']['copyright']['data'], $data['info']['copyright']['attribs']); + } + + // Feed Image + if (!empty($data['info']['image']['title']['data'])) { + $this->info['image']['title'] = $this->sanitize($data['info']['image']['title']['data'], $data['info']['image']['title']['attribs']); + } + if (!empty($data['info']['image']['url']['data'])) { + $this->info['image']['url'] = $this->sanitize($data['info']['image']['url']['data'], $data['info']['image']['url']['attribs'], true); + } + if (!empty($data['info']['logo']['data'])) { + $this->info['image']['logo'] = $this->sanitize($data['info']['logo']['data'], $data['info']['logo']['attribs'], true); + } + if (!empty($data['info']['image']['link']['data'])) { + $this->info['image']['link'] = $this->sanitize($data['info']['image']['link']['data'], $data['info']['image']['link']['attribs'], true); + } + if (!empty($data['info']['image']['width']['data'])) { + $this->info['image']['width'] = $this->sanitize($data['info']['image']['width']['data'], $data['info']['image']['width']['attribs']); + } + if (!empty($data['info']['image']['height']['data'])) { + $this->info['image']['height'] = $this->sanitize($data['info']['image']['height']['data'], $data['info']['image']['height']['attribs']); + } + + // Items + if (!empty($data['items'])) { + foreach ($data['items'] as $key => $item) { + $newitem = null; + + // Item level xml:base + if (!empty($item['attribs']['XML:BASE'])) { + $this->item_xmlbase = SimplePie_Misc::absolutize_url($item['attribs']['XML:BASE'], $this->feed_xmlbase); + } elseif (!empty($item['attribs']['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:BASE'])) { + $this->item_xmlbase = SimplePie_Misc::absolutize_url($item['attribs']['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:BASE'], $this->feed_xmlbase); + } else { + $this->item_xmlbase = null; + } + + // Title + if (!empty($item['title']['data'])) { + $newitem['title'] = $this->sanitize($item['title']['data'], $item['title']['attribs']); + } + if (!empty($item['dc:title']['data'])) { + $newitem['dc:title'] = $this->sanitize($item['dc:title']['data'], $item['dc:title']['attribs']); + } + + // Description + if (!empty($item['content']['data'])) { + $newitem['content'] = $this->sanitize($item['content']['data'], $item['content']['attribs']); + } + if (!empty($item['encoded']['data'])) { + $newitem['encoded'] = $this->sanitize($item['encoded']['data'], $item['encoded']['attribs']); + } + if (!empty($item['summary']['data'])) { + $newitem['summary'] = $this->sanitize($item['summary']['data'], $item['summary']['attribs']); + } + if (!empty($item['description']['data'])) { + $newitem['description'] = $this->sanitize($item['description']['data'], $item['description']['attribs'], false, true); + } + if (!empty($item['dc:description']['data'])) { + $newitem['dc:description'] = $this->sanitize($item['dc:description']['data'], $item['dc:description']['attribs']); + } + if (!empty($item['longdesc']['data'])) { + $newitem['longdesc'] = $this->sanitize($item['longdesc']['data'], $item['longdesc']['attribs']); + } + + // Link(s) + if (!empty($item['link'])) { + foreach ($item['link'] as $link) { + if (empty($link['attribs']['REL'])) { + $rel = 'alternate'; + } else { + $rel = strtolower($link['attribs']['REL']); + } + if ($rel == 'enclosure') { + $href = null; + $type = null; + $length = null; + if (!empty($link['data'])) { + $href = $this->sanitize($link['data'], $link['attribs'], true); + } elseif (!empty($link['attribs']['HREF'])) { + $href = $this->sanitize($link['attribs']['HREF'], $link['attribs'], true); + } + if (!empty($link['attribs']['TYPE'])) { + $type = $this->sanitize($link['attribs']['TYPE'], $link['attribs']); + } + if (!empty($link['attribs']['LENGTH'])) { + $length = $this->sanitize($link['attribs']['LENGTH'], $link['attribs']); + } + if (!empty($href)) { + $newitem['link'][$rel][] = new $this->enclosure_class($href, $type, $length); + } + } else { + if (!empty($link['data'])) { + $newitem['link'][$rel][] = $this->sanitize($link['data'], $link['attribs'], true); + } elseif (!empty($link['attribs']['HREF'])) { + $newitem['link'][$rel][] = $this->sanitize($link['attribs']['HREF'], $link['attribs'], true); + } + } + } + } + + // Enclosure(s) + if (!empty($item['enclosure'])) { + foreach ($item['enclosure'] as $enclosure) { + if (!empty($enclosure['attribs']['URL'])) { + $type = null; + $length = null; + $href = $this->sanitize($enclosure['attribs']['URL'], $enclosure['attribs'], true); + if (!empty($enclosure['attribs']['TYPE'])) { + $type = $this->sanitize($enclosure['attribs']['TYPE'], $enclosure['attribs']); + } + if (!empty($enclosure['attribs']['LENGTH'])) { + $length = $this->sanitize($enclosure['attribs']['LENGTH'], $enclosure['attribs']); + } + $newitem['enclosures'][] = new $this->enclosure_class($href, $type, $length); + } + } + } + + // ID + if (!empty($item['guid']['data'])) { + if (!empty($item['guid']['attribs']['ISPERMALINK']) && strtolower($item['guid']['attribs']['ISPERMALINK']) == 'false') { + $newitem['guid']['permalink'] = false; + } else { + $newitem['guid']['permalink'] = true; + } + $newitem['guid']['data'] = $this->sanitize($item['guid']['data'], $item['guid']['attribs']); + } + if (!empty($item['id']['data'])) { + $newitem['id'] = $this->sanitize($item['id']['data'], $item['id']['attribs']); + } + + // Date + if (!empty($item['pubdate']['data'])) { + $newitem['pubdate'] = $this->parse_date($this->sanitize($item['pubdate']['data'], $item['pubdate']['attribs'])); + } + if (!empty($item['dc:date']['data'])) { + $newitem['dc:date'] = $this->parse_date($this->sanitize($item['dc:date']['data'], $item['dc:date']['attribs'])); + } + if (!empty($item['issued']['data'])) { + $newitem['issued'] = $this->parse_date($this->sanitize($item['issued']['data'], $item['issued']['attribs'])); + } + if (!empty($item['published']['data'])) { + $newitem['published'] = $this->parse_date($this->sanitize($item['published']['data'], $item['published']['attribs'])); + } + if (!empty($item['modified']['data'])) { + $newitem['modified'] = $this->parse_date($this->sanitize($item['modified']['data'], $item['modified']['attribs'])); + } + if (!empty($item['updated']['data'])) { + $newitem['updated'] = $this->parse_date($this->sanitize($item['updated']['data'], $item['updated']['attribs'])); + } + + // Categories + if (!empty($item['category'])) { + foreach ($item['category'] as $category) { + if (!empty($category['data'])) { + $newitem['category'][] = $this->sanitize($category['data'], $category['attribs']); + } elseif (!empty($category['attribs']['TERM'])) { + $newitem['term'][] = $this->sanitize($category['attribs']['TERM'], $category['attribs']); + } + } + } + if (!empty($item['subject'])) { + foreach ($item['subject'] as $category) { + if (!empty($category['data'])) { + $newitem['subject'][] = $this->sanitize($category['data'], $category['attribs']); + } + } + } + + // Author + if (!empty($item['creator'])) { + foreach ($item['creator'] as $creator) { + if (!empty($creator['data'])) { + $newitem['creator'][] = new $this->author_class($this->sanitize($creator['data'], $creator['attribs']), null, null); + } + } + } + if (!empty($item['author'])) { + foreach ($item['author'] as $author) { + $name = null; + $link = null; + $email = null; + if (!empty($author['rss'])) { + $sane = $this->sanitize($author['rss']['data'], $author['rss']['attribs']); + if (preg_match('/(.*)@(.*) \((.*)\)/msiU', $sane, $matches)) { + $name = trim($matches[3]); + $email = trim("$matches[1]@$matches[2]"); + } else { + $email = $sane; + } + } else { + if (!empty($author['name'])) { + $name = $this->sanitize($author['name']['data'], $author['name']['attribs']); + } + if (!empty($author['url'])) { + $link = $this->sanitize($author['url']['data'], $author['url']['attribs'], true); + } elseif (!empty($author['uri'])) { + $link = $this->sanitize($author['uri']['data'], $author['uri']['attribs'], true); + } elseif (!empty($author['homepage'])) { + $link = $this->sanitize($author['homepage']['data'], $author['homepage']['attribs'], true); + } + if (!empty($author['email'])) { + $email = $this->sanitize($author['email']['data'], $author['email']['attribs']); + } + } + $newitem['author'][] = new $this->author_class($name, $link, $email); + } + } + unset($data['items'][$key]); + $this->items[] = new $this->item_class($newitem); + } + } + } + + public function sanitize($data, $attribs, $is_url = false, $force_decode = false) + { + $this->attribs = $attribs; + if (isset($this->feedinfo['type']) && $this->feedinfo['type'] == 'Atom') { + if ((!empty($attribs['MODE']) && $attribs['MODE'] == 'base64') || (!empty($attribs['TYPE']) && $attribs['TYPE'] == 'application/octet-stream')) { + $data = trim($data); + $data = base64_decode($data); + } elseif ((!empty($attribs['MODE']) && $attribs['MODE'] == 'escaped' || !empty($attribs['TYPE']) && ($attribs['TYPE'] == 'html' || $attribs['TYPE'] == 'text/html'))) { + $data = $this->entities_decode($data); + } + if (!empty($attribs['TYPE']) && ($attribs['TYPE'] == 'xhtml' || $attribs['TYPE'] == 'application/xhtml+xml')) { + if ($this->remove_div) { + $data = preg_replace('//msiU', '', strrev(preg_replace('/>vid\//msiU', '
    ', $data, 1); + } + $data = $this->convert_entities($data); + } + } else { + $data = $this->convert_entities($data); + } + if ($force_decode) { + $data = $this->entities_decode($data); + } + $data = trim($data); + $data = preg_replace('/<\!--([^-]|-[^-])*-->/msiU', '', $data); + + // If Strip Ads is enabled, strip them. + if ($this->strip_ads) { + $data = preg_replace('//msiU', '', $data); // Pheedo links (tested with Dooce.com) + $data = preg_replace('/(.*)/msiU', '', $data); + $data = preg_replace('/<\/h[1-3]>/i', '', $data); + } + + if ($is_url) { + $data = $this->replace_urls($data, true); + } else { + $data = preg_replace_callback('/<(\S+)((\s*((\w+:)?\w+)\s*=\s*("([^"]*)"|\'([^\']*)\'|(.*)))*)\s*(\/>|>(.*)<\/\S+>)/msiU', array(&$this, 'replace_urls'), $data); + } + + // If Bypass Image Hotlink is enabled, rewrite all the image tags. + if ($this->bypass_image_hotlink) { + $images = SimplePie_Misc::get_element('img', $data); + foreach ($images as $img) { + if (!empty($img['attribs']['SRC']['data'])) { + $pre = ''; + if ($this->bypass_image_hotlink_page) { + $pre = $this->bypass_image_hotlink_page; + } + $pre .= "?$this->bypass_image_hotlink="; + $img['attribs']['SRC']['data'] = $pre . rawurlencode(strtr($img['attribs']['SRC']['data'], array_flip(get_html_translation_table(HTML_SPECIALCHARS, ENT_QUOTES)))); + $data = str_replace($img['full'], SimplePie_Misc::element_implode($img), $data); + } + } + } + + // Strip out HTML tags and attributes that might cause various security problems. + // Based on recommendations by Mark Pilgrim at: + // http://diveintomark.org/archives/2003/06/12/how_to_consume_rss_safely + if ($this->strip_htmltags) { + foreach ($this->strip_htmltags as $tag) { + $data = preg_replace_callback("/<($tag)((\s*((\w+:)?\w+)(\s*=\s*(\"([^\"]*)\"|'([^']*)'|(.*)))?)*)\s*(\/>|>(.*)<\/($tag)((\s*((\w+:)?\w+)(\s*=\s*(\"([^\"]*)\"|'([^']*)'|(.*)))?)*)\s*>)/msiU", array(&$this, 'do_strip_htmltags'), $data); + } + } + + if ($this->strip_attributes) { + foreach ($this->strip_attributes as $attrib) { + $data = preg_replace('/ '. trim($attrib) .'=("|")(\w|\s|=|-|:|;|\/|\.|\?|&|,|#|!|\(|\)|\'|'|<|>|\+|{|})*("|")/i', '', $data); + $data = preg_replace('/ '. trim($attrib) .'=(\'|')(\w|\s|=|-|:|;|\/|\.|\?|&|,|#|!|\(|\)|"|"|<|>|\+|{|})*(\'|')/i', '', $data); + $data = preg_replace('/ '. trim($attrib) .'=(\w|\s|=|-|:|;|\/|\.|\?|&|,|#|!|\(|\)|\+|{|})*/i', '', $data); + } + } + + // Convert encoding + $data = SimplePie_Misc::change_encoding($data, $this->input_encoding, $this->output_encoding); + + return $data; + } + + public function do_strip_htmltags($match) + { + if ($this->encode_instead_of_strip) { + if (isset($match[12]) && !in_array(strtolower($match[1]), array('script', 'style'))) { + return "<$match[1]$match[2]>$match[12]</$match[1]>"; + } elseif (isset($match[12])) { + return "<$match[1]$match[2]></$match[1]>"; + } else { + return "<$match[1]$match[2]/>"; + } + } else { + if (isset($match[12]) && !in_array(strtolower($match[1]), array('script', 'style'))) { + return $match[12]; + } else { + return ''; + } + } + } + + public function replace_urls($data, $raw_url = false) + { + if (!empty($this->attribs['XML:BASE'])) { + $xmlbase = $attribs['XML:BASE']; + } elseif (!empty($this->attribs['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:BASE'])) { + $xmlbase = $this->attribs['HTTP://WWW.W3.ORG/XML/1998/NAMESPACE:BASE']; + } + if (!empty($xmlbase)) { + if (!empty($this->item_xmlbase)) { + $xmlbase = SimplePie_Misc::absolutize_url($xmlbase, $this->item_xmlbase); + } else { + $xmlbase = SimplePie_Misc::absolutize_url($xmlbase, $this->feed_xmlbase); + } + } elseif (!empty($this->item_xmlbase)) { + $xmlbase = $this->item_xmlbase; + } else { + $xmlbase = $this->feed_xmlbase; + } + + if ($raw_url) { + return SimplePie_Misc::absolutize_url($data, $xmlbase); + } else { + $attributes = array( + 'background', + 'href', + 'src', + 'longdesc', + 'usemap', + 'codebase', + 'data', + 'classid', + 'cite', + 'action', + 'profile', + 'for' + ); + foreach ($attributes as $attribute) { + if (preg_match("/$attribute='(.*)'/siU", $data[0], $attrib) || preg_match("/$attribute=\"(.*)\"/siU", $data[0], $attrib) || preg_match("/$attribute=(.*)[ |\/|>]/siU", $data[0], $attrib)) { + $new_tag = str_replace($attrib[1], SimplePie_Misc::absolutize_url($attrib[1], $xmlbase), $attrib[0]); + $data[0] = str_replace($attrib[0], $new_tag, $data[0]); + } + } + return $data[0]; + } + } + + public function entities_decode($data) + { + return preg_replace_callback('/&(#)?(x)?([0-9a-z]+);/mi', array(&$this, 'do_entites_decode'), $data); + } + + public function do_entites_decode($data) + { + if (isset($this->cached_entities[$data[0]])) { + return $this->cached_entities[$data[0]]; + } else { + $return = SimplePie_Misc::change_encoding(html_entity_decode($data[0], ENT_QUOTES), 'ISO-8859-1', $this->input_encoding); + if ($return == $data[0]) { + $return = SimplePie_Misc::change_encoding(preg_replace_callback('/&#([x]?[0-9a-f]+);/mi', array(&$this, 'replace_num_entity'), $data[0]), 'UTF-8', $this->input_encoding); + } + $this->cached_entities[$data[0]] = $return; + return $return; + } + } + + public function convert_entities($data) + { + return preg_replace_callback('/&#(x)?([0-9a-z]+);/mi', array(&$this, 'do_convert_entities'), $data); + } + + public function do_convert_entities($data) + { + if (isset($this->cache_convert_entities[$data[0]])) { + return $this->cache_convert_entities[$data[0]]; + } elseif (isset($this->cached_entities[$data[0]])) { + $return = htmlentities($this->cached_entities[$data[0]], ENT_QUOTES, 'UTF-8'); + } else { + $return = htmlentities(preg_replace_callback('/&#([x]?[0-9a-f]+);/mi', array(&$this, 'replace_num_entity'), $data[0]), ENT_QUOTES, 'UTF-8'); + } + $this->cache_convert_entities[$data[0]] = $return; + return $return; + } + + /* + * Escape numeric entities + * From a PHP Manual note (on html_entity_decode()) + * Copyright (c) 2005 by "php dot net at c dash ovidiu dot tk", + * "emilianomartinezluque at yahoo dot com" and "hurricane at cyberworldz dot org". + * + * This material may be distributed only subject to the terms and conditions set forth in + * the Open Publication License, v1.0 or later (the latest version is presently available at + * http://www.opencontent.org/openpub/). + */ + public function replace_num_entity($ord) + { + $ord = $ord[1]; + if (preg_match('/^x([0-9a-f]+)$/i', $ord, $match)) { + $ord = hexdec($match[1]); + } else { + $ord = intval($ord); + } + + $no_bytes = 0; + $byte = array(); + if ($ord < 128) { + return chr($ord); + } + if ($ord < 2048) { + $no_bytes = 2; + } elseif ($ord < 65536) { + $no_bytes = 3; + } elseif ($ord < 1114112) { + $no_bytes = 4; + } else { + return; + } + switch ($no_bytes) { + case 2: + $prefix = array(31, 192); + break; + + case 3: + $prefix = array(15, 224); + break; + + case 4: + $prefix = array(7, 240); + break; + } + + for ($i = 0; $i < $no_bytes; $i++) { + $byte[$no_bytes-$i-1] = (($ord & (63 * pow(2, 6*$i))) / pow(2, 6*$i)) & 63 | 128; + } + $byte[0] = ($byte[0] & $prefix[0]) | $prefix[1]; + + $ret = ''; + for ($i = 0; $i < $no_bytes; $i++) { + $ret .= chr($byte[$i]); + } + return $ret; + } + + public function parse_date($date) + { + $military_timezone = array('A' => '-0100', 'B' => '-0200', 'C' => '-0300', 'D' => '-0400', 'E' => '-0500', 'F' => '-0600', 'G' => '-0700', 'H' => '-0800', 'I' => '-0900', 'K' => '-1000', 'L' => '-1100', 'M' => '-1200', 'N' => '+0100', 'O' => '+0200', 'P' => '+0300', 'Q' => '+0400', 'R' => '+0500', 'S' => '+0600', 'T' => '+0700', 'U' => '+0800', 'V' => '+0900', 'W' => '+1000', 'X' => '+1100', 'Y' => '+1200', 'Z' => '-0000'); + $north_american_timezone = array('GMT' => '-0000', 'EST' => '-0500', 'EDT' => '-0400', 'CST' => '-0600', 'CDT' => '-0500', 'MST' => '-0700', 'MDT' => '-0600', 'PST' => '-0800', 'PDT' => '-0700'); + if (preg_match('/([0-9]{2,4})-?([0-9]{2})-?([0-9]{2})T([0-9]{2}):?([0-9]{2})(:?([0-9]{2}(\.[0-9]*)?))?(UT|GMT|EST|EDT|CST|CDT|MST|MDT|PST|PDT|[a-z]|(\\+|-)[0-9]{4}|(\\+|-)[0-9]{2}:[0-9]{2})?/i', $date, $matches)) { + if (!isset($matches[7])) { + $matches[7] = ''; + } + if (!isset($matches[9])) { + $matches[9] = ''; + } + $matches[7] = str_pad(round($matches[7]), 2, '0', STR_PAD_LEFT); + switch (strlen($matches[9])) { + case 0: + $timezone = ''; + break; + + case 1: + $timezone = $military_timezone[strtoupper($matches[9])]; + break; + + case 2: + $timezone = '-0000'; + break; + + case 3: + $timezone = $north_american_timezone[strtoupper($matches[9])]; + break; + + case 5: + $timezone = $matches[9]; + break; + + case 6: + $timezone = substr_replace($matches[9], '', 3, 1); + break; + } + $date = strtotime("$matches[1]-$matches[2]-$matches[3] $matches[4]:$matches[5]:$matches[7] $timezone"); + } elseif (preg_match('/([0-9]{1,2})\s*(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s*([0-9]{2}|[0-9]{4})\s*([0-9]{2}):([0-9]{2})(:([0-9]{2}(\.[0-9]*)?))?\s*(UT|GMT|EST|EDT|CST|CDT|MST|MDT|PST|PDT|[a-z]|(\\+|-)[0-9]{4}|(\\+|-)[0-9]{2}:[0-9]{2})?/i', $date, $matches)) { + $three_month = array('Jan' => 1, 'Feb' => 2, 'Mar' => 3, 'Apr' => 4, 'May' => 5, 'Jun' => 6, 'Jul' => 7, 'Aug' => 8, 'Sep' => 9, 'Oct' => 10, 'Nov' => 11, 'Dec' => 12); + $month = $three_month[$matches[2]]; + if (strlen($matches[3]) == 2) { + $year = ($matches[3] < 70) ? "20$matches[3]" : "19$matches[3]"; + } else { + $year = $matches[3]; + } + if (!isset($matches[7])) { + $matches[7] = ''; + } + if (!isset($matches[9])) { + $matches[9] = ''; + } + $second = str_pad(round($matches[7]), 2, '0', STR_PAD_LEFT); + switch (strlen($matches[9])) { + case 0: + $timezone = ''; + break; + + case 1: + $timezone = $military_timezone[strtoupper($matches[9])]; + break; + + case 2: + $timezone = '-0000'; + break; + + case 3: + $timezone = $north_american_timezone[strtoupper($matches[9])]; + break; + + case 5: + $timezone = $matches[9]; + break; + + case 6: + $timezone = substr_replace($matches[9], '', 3, 1); + break; + } + $date = strtotime("$year-$month-$matches[1] $matches[4]:$matches[5]:$second $timezone"); + } else { + $date = strtotime($date); + } + if ($date !== false && $date !== -1) { + return $date; + } else { + return false; + } + } +} diff --git a/classes/streams.class.php b/classes/streams.class.php old mode 100644 new mode 100755 index 2750170..535ca53 --- a/classes/streams.class.php +++ b/classes/streams.class.php @@ -1,167 +1,187 @@ -. - - This file is part of PHP-gettext. - - PHP-gettext 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. - - PHP-gettext 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 PHP-gettext; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -*/ - - -// Simple class to wrap file streams, string streams, etc. -// seek is essential, and it should be byte stream -class StreamReader { - // should return a string [FIXME: perhaps return array of bytes?] - function read($bytes) { - return false; - } - - // should return new position - function seekto($position) { - return false; - } - - // returns current position - function currentpos() { - return false; - } - - // returns length of entire stream (limit for seekto()s) - function length() { - return false; - } -} - -class StringReader { - var $_pos; - var $_str; - - function StringReader($str='') { - $this->_str = $str; - $this->_pos = 0; - } - - function read($bytes) { - $data = substr($this->_str, $this->_pos, $bytes); - $this->_pos += $bytes; - if (strlen($this->_str)<$this->_pos) - $this->_pos = strlen($this->_str); - - return $data; - } - - function seekto($pos) { - $this->_pos = $pos; - if (strlen($this->_str)<$this->_pos) - $this->_pos = strlen($this->_str); - return $this->_pos; - } - - function currentpos() { - return $this->_pos; - } - - function length() { - return strlen($this->_str); - } - -} - - -class FileReader { - var $_pos; - var $_fd; - var $_length; - - function FileReader($filename) { - if (file_exists($filename)) { - - $this->_length=filesize($filename); - $this->_pos = 0; - $this->_fd = fopen($filename,'rb'); - if (!$this->_fd) { - $this->error = 3; // Cannot read file, probably permissions - return false; - } - } else { - $this->error = 2; // File doesn't exist - return false; - } - } - - function read($bytes) { - if ($bytes) { - fseek($this->_fd, $this->_pos); - - // PHP 5.1.1 does not read more than 8192 bytes in one fread() - // the discussions at PHP Bugs suggest it's the intended behaviour - $data=""; - while ($bytes > 0) { - $chunk = fread($this->_fd, $bytes); - $data .= $chunk; - $bytes -= strlen($chunk); - } - $this->_pos = ftell($this->_fd); - - return $data; - } else return ''; - } - - function seekto($pos) { - fseek($this->_fd, $pos); - $this->_pos = ftell($this->_fd); - return $this->_pos; - } - - function currentpos() { - return $this->_pos; - } - - function length() { - return $this->_length; - } - - function close() { - fclose($this->_fd); - } - -} - -// Preloads entire file in memory first, then creates a StringReader -// over it (it assumes knowledge of StringReader internals) -class CachedFileReader extends StringReader { - function CachedFileReader($filename) { - if (file_exists($filename)) { - - $length=filesize($filename); - $fd = fopen($filename,'rb'); - - if (!$fd) { - $this->error = 3; // Cannot read file, probably permissions - return false; - } - $this->_str = fread($fd, $length); - fclose($fd); - - } else { - $this->error = 2; // File doesn't exist - return false; - } - } -} -?> \ No newline at end of file +. + + This file is part of PHP-gettext. + + PHP-gettext 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. + + PHP-gettext 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 PHP-gettext; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +*/ + + +// Simple class to wrap file streams, string streams, etc. +// seek is essential, and it should be byte stream +class StreamReader +{ + // should return a string [FIXME: perhaps return array of bytes?] + public function read($bytes) + { + return false; + } + + // should return new position + public function seekto($position) + { + return false; + } + + // returns current position + public function currentpos() + { + return false; + } + + // returns length of entire stream (limit for seekto()s) + public function length() + { + return false; + } +} + +class StringReader +{ + public $_pos; + public $_str; + + public function __construct($str='') + { + $this->_str = $str; + $this->_pos = 0; + } + + public function read($bytes) + { + $data = substr($this->_str, $this->_pos, $bytes); + $this->_pos += $bytes; + if (strlen($this->_str)<$this->_pos) { + $this->_pos = strlen($this->_str); + } + + return $data; + } + + public function seekto($pos) + { + $this->_pos = $pos; + if (strlen($this->_str)<$this->_pos) { + $this->_pos = strlen($this->_str); + } + return $this->_pos; + } + + public function currentpos() + { + return $this->_pos; + } + + public function length() + { + return strlen($this->_str); + } +} + + +class FileReader +{ + public $_pos; + public $_fd; + public $_length; + + public function __construct($filename) + { + if (file_exists($filename)) { + $this->_length=filesize($filename); + $this->_pos = 0; + $this->_fd = fopen($filename, 'rb'); + if (!$this->_fd) { + $this->error = 3; // Cannot read file, probably permissions + return false; + } + } else { + $this->error = 2; // File doesn't exist + return false; + } + } + + public function read($bytes) + { + if ($bytes) { + fseek($this->_fd, $this->_pos); + + // PHP 5.1.1 does not read more than 8192 bytes in one fread() + // the discussions at PHP Bugs suggest it's the intended behaviour + $data=""; + while ($bytes > 0) { + $chunk = fread($this->_fd, $bytes); + $data .= $chunk; + $bytes -= strlen($chunk); + } + $this->_pos = ftell($this->_fd); + + return $data; + } else { + return ''; + } + } + + public function seekto($pos) + { + fseek($this->_fd, $pos); + $this->_pos = ftell($this->_fd); + return $this->_pos; + } + + public function currentpos() + { + return $this->_pos; + } + + public function length() + { + return $this->_length; + } + + public function close() + { + fclose($this->_fd); + } +} + +// Preloads entire file in memory first, then creates a StringReader +// over it (it assumes knowledge of StringReader internals) +class CachedFileReader extends StringReader +{ + public function __construct($filename) + { + if (file_exists($filename)) { + $length=filesize($filename); + $fd = fopen($filename, 'rb'); + + if (!$fd) { + $this->error = 3; // Cannot read file, probably permissions + return false; + } + $this->_str = fread($fd, $length); + fclose($fd); + } else { + $this->error = 2; // File doesn't exist + return false; + } + } +} diff --git a/classes/templates.class.php b/classes/templates.class.php old mode 100644 new mode 100755 index eb65659..c3ec699 --- a/classes/templates.class.php +++ b/classes/templates.class.php @@ -1,137 +1,150 @@ - - - =========================== */ - -class plantillas { - - var $plantilla; - var $plantilla_cargada; - var $texto_plantilla; - - var $antesBloque; - var $bloque; - var $despuesBloque; - var $bloqueFinal=""; - - function plantillas($plantilla) { - $this->plantilla = ($plantilla == "") ? "tumblr" : $plantilla; - } - - function cargarPlantilla($entrada, $salida, $plantilla_usar) { - $plantilla_usar = "themes/".$this->plantilla."/".$plantilla_usar.".htm"; - - if (!file_exists($plantilla_usar)) { - die("No se encuentra la plantilla :".$plantilla_usar); - } else { - if(!$fd = fopen($plantilla_usar, "r")) { - die("Error en la plantilla"); - } else { - $salida_xhtml = fread($fd, filesize ($plantilla_usar)); - fclose ($fd); - $salida_xhtml = stripslashes($salida_xhtml); - $this->texto_plantilla = $salida_xhtml; - for ($i = 0; $i < count($entrada); $i++) { - $salida_xhtml = str_replace($entrada[$i], $salida[$i], $salida_xhtml); - } - $this->plantilla_cargada = $salida_xhtml; - } - } - } - - function precargarPlantillaConBloque($entrada, $salida, $plantilla_usar, $nombreBloque) { - $plantilla_usar = "themes/".$this->plantilla."/".$plantilla_usar.".htm"; - - if (!file_exists($plantilla_usar)) { - die("No se encuentra la plantilla :".$plantilla_usar); - } else { - if(!$fd = fopen($plantilla_usar, "r")) { - die("Error en la plantilla"); - } else { - $salida_xhtml = fread($fd, filesize ($plantilla_usar)); - fclose ($fd); - $salida_xhtml = stripslashes($salida_xhtml); - $this->texto_plantilla = $salida_xhtml; - - $this->cargaAntesBloque($nombreBloque); - $this->cargaDespuesBloque($nombreBloque); - - $this->antesBloque = $this->procesaBloque($entrada, $salida, $this->antesBloque); - $this->despuesBloque = $this->procesaBloque($entrada, $salida, $this->despuesBloque); - } - } - } - - function cargarPlantillaConBloque($entrada, $salida, $plantilla_usar, $nombreBloque) { - $plantilla_usar = "themes/".$this->plantilla."/".$plantilla_usar.".htm"; - - if (!file_exists($plantilla_usar)) { - die("No se encuentra la plantilla :".$plantilla_usar); - } else { - if(!$fd = fopen($plantilla_usar, "r")) { - die("Error en la plantilla"); - } else { - $salida_xhtml = fread($fd, filesize ($plantilla_usar)); - fclose ($fd); - $salida_xhtml = stripslashes($salida_xhtml); - $this->texto_plantilla = $salida_xhtml; - - $this->cargaBloque($nombreBloque); - - $this->bloqueFinal .= $this->procesaBloque($entrada, $salida, $this->bloque); - } - } - } - - function procesaBloque($entrada, $salida, $bloque) { - for ($i = 0; $i < count($entrada); $i++) { - $bloque = str_replace($entrada[$i], $salida[$i], $bloque); - } - return $bloque; - } - - function cargaBloque($nombreBloque) { - $inicioBloque = "[bloque: ".$nombreBloque."]"; - $finBloque = "[/bloque: ".$nombreBloque."]"; - $ini = strpos($this->texto_plantilla,$inicioBloque)+strlen($inicioBloque); - $fin = strpos($this->texto_plantilla,$finBloque); - $this->bloque = substr($this->texto_plantilla,$ini,($fin-$ini)); - } - - function cargaAntesBloque($nombreBloque) { - $inicioBloque = "[bloque: ".$nombreBloque."]"; - $ini = strpos($this->texto_plantilla,$inicioBloque); - $this->antesBloque = substr($this->texto_plantilla,0,$ini); - } - - function cargaDespuesBloque($nombreBloque) { - $finBloque = "[/bloque: ".$nombreBloque."]"; - $fin = strpos($this->texto_plantilla,$finBloque); - $this->despuesBloque = substr($this->texto_plantilla,($fin+strlen($finBloque)),strlen($this->texto_plantilla)); - } - - function mostrarPlantillaConBloque() { - echo $this->antesBloque.$this->bloqueFinal.$this->despuesBloque; - } - - function mostrarPlantilla() { - echo $this->plantilla_cargada; - } - - function renderizaEtiqueta($texto="", $etiquetaHtml="p", $claseCss="") { - echo "<".$etiquetaHtml." class=\"".$claseCss."\">".$texto.""; - } - - function renderizaTexto($texto="") { - echo $texto; - } -} -?> \ No newline at end of file + + + =========================== */ + +class plantillas +{ + public $plantilla; + public $plantilla_cargada; + public $texto_plantilla; + + public $antesBloque; + public $bloque; + public $despuesBloque; + public $bloqueFinal=""; + + public function __construct($plantilla) + { + $this->plantilla = ($plantilla == "") ? "tumblr" : $plantilla; + } + + public function cargarPlantilla($entrada, $salida, $plantilla_usar) + { + $plantilla_usar = "themes/".$this->plantilla."/".$plantilla_usar.".htm"; + + if (!file_exists($plantilla_usar)) { + die("No se encuentra la plantilla :".$plantilla_usar); + } else { + if (!$fd = fopen($plantilla_usar, "r")) { + die("Error en la plantilla"); + } else { + $salida_xhtml = fread($fd, filesize($plantilla_usar)); + fclose($fd); + $salida_xhtml = stripslashes($salida_xhtml); + $this->texto_plantilla = $salida_xhtml; + for ($i = 0; $i < count($entrada); $i++) { + $salida_xhtml = str_replace($entrada[$i], $salida[$i], $salida_xhtml); + } + $this->plantilla_cargada = $salida_xhtml; + } + } + } + + public function precargarPlantillaConBloque($entrada, $salida, $plantilla_usar, $nombreBloque) + { + $plantilla_usar = "themes/".$this->plantilla."/".$plantilla_usar.".htm"; + + if (!file_exists($plantilla_usar)) { + die("No se encuentra la plantilla :".$plantilla_usar); + } else { + if (!$fd = fopen($plantilla_usar, "r")) { + die("Error en la plantilla"); + } else { + $salida_xhtml = fread($fd, filesize($plantilla_usar)); + fclose($fd); + $salida_xhtml = stripslashes($salida_xhtml); + $this->texto_plantilla = $salida_xhtml; + + $this->cargaAntesBloque($nombreBloque); + $this->cargaDespuesBloque($nombreBloque); + + $this->antesBloque = $this->procesaBloque($entrada, $salida, $this->antesBloque); + $this->despuesBloque = $this->procesaBloque($entrada, $salida, $this->despuesBloque); + } + } + } + + public function cargarPlantillaConBloque($entrada, $salida, $plantilla_usar, $nombreBloque) + { + $plantilla_usar = "themes/".$this->plantilla."/".$plantilla_usar.".htm"; + + if (!file_exists($plantilla_usar)) { + die("No se encuentra la plantilla :".$plantilla_usar); + } else { + if (!$fd = fopen($plantilla_usar, "r")) { + die("Error en la plantilla"); + } else { + $salida_xhtml = fread($fd, filesize($plantilla_usar)); + fclose($fd); + $salida_xhtml = stripslashes($salida_xhtml); + $this->texto_plantilla = $salida_xhtml; + + $this->cargaBloque($nombreBloque); + + $this->bloqueFinal .= $this->procesaBloque($entrada, $salida, $this->bloque); + } + } + } + + public function procesaBloque($entrada, $salida, $bloque) + { + for ($i = 0; $i < count($entrada); $i++) { + $bloque = str_replace($entrada[$i], $salida[$i], $bloque); + } + return $bloque; + } + + public function cargaBloque($nombreBloque) + { + $inicioBloque = "[bloque: ".$nombreBloque."]"; + $finBloque = "[/bloque: ".$nombreBloque."]"; + $ini = strpos($this->texto_plantilla, $inicioBloque)+strlen($inicioBloque); + $fin = strpos($this->texto_plantilla, $finBloque); + $this->bloque = substr($this->texto_plantilla, $ini, ($fin-$ini)); + } + + public function cargaAntesBloque($nombreBloque) + { + $inicioBloque = "[bloque: ".$nombreBloque."]"; + $ini = strpos($this->texto_plantilla, $inicioBloque); + $this->antesBloque = substr($this->texto_plantilla, 0, $ini); + } + + public function cargaDespuesBloque($nombreBloque) + { + $finBloque = "[/bloque: ".$nombreBloque."]"; + $fin = strpos($this->texto_plantilla, $finBloque); + $this->despuesBloque = substr($this->texto_plantilla, ($fin+strlen($finBloque)), strlen($this->texto_plantilla)); + } + + public function mostrarPlantillaConBloque() + { + echo $this->antesBloque.$this->bloqueFinal.$this->despuesBloque; + } + + public function mostrarPlantilla() + { + echo $this->plantilla_cargada; + } + + public function renderizaEtiqueta($texto="", $etiquetaHtml="p", $claseCss="") + { + echo "<".$etiquetaHtml." class=\"".$claseCss."\">".$texto.""; + } + + public function renderizaTexto($texto="") + { + echo $texto; + } +} diff --git a/classes/textile.class.php b/classes/textile.class.php old mode 100644 new mode 100755 index a9f4418..98e0676 --- a/classes/textile.class.php +++ b/classes/textile.class.php @@ -1,5 +1,7 @@ hlgn = "(?:\<(?!>)|(?|\<\>|\=|[()]+(?! ))"; $this->vlgn = "[\-^~]"; @@ -268,26 +270,26 @@ class Textile 'copyright' => txt_copyright, ); - if (defined('hu')) + if (defined('hu')) { $this->hu = hu; - + } } // ------------------------------------------------------------- - function TextileThis($text, $lite='', $encode='', $noimage='', $strict='', $rel='') + public function TextileThis($text, $lite='', $encode='', $noimage='', $strict='', $rel='') { - if ($rel) - $this->rel = ' rel="'.$rel.'" '; + if ($rel) { + $this->rel = ' rel="'.$rel.'" '; + } $this->lite = $lite; $this->noimage = $noimage; if ($encode) { - $text = $this->incomingEntities($text); + $text = $this->incomingEntities($text); $text = str_replace("x%x%", "&", $text); return $text; } else { - - if(!$strict) { + if (!$strict) { $text = $this->cleanWhiteSpace($text); } @@ -307,37 +309,37 @@ class Textile } // ------------------------------------------------------------- - function TextileRestricted($text, $lite=1, $noimage=1, $rel='nofollow') + public function TextileRestricted($text, $lite=1, $noimage=1, $rel='nofollow') { $this->restricted = true; $this->lite = $lite; $this->noimage = $noimage; - if ($rel) - $this->rel = ' rel="'.$rel.'" '; + if ($rel) { + $this->rel = ' rel="'.$rel.'" '; + } // escape any raw html $text = $this->encode_html($text, 0); - $text = $this->cleanWhiteSpace($text); - $text = $this->getRefs($text); + $text = $this->cleanWhiteSpace($text); + $text = $this->getRefs($text); - if ($lite) { - $text = $this->blockLite($text); - } - else { - $text = $this->block($text); - } + if ($lite) { + $text = $this->blockLite($text); + } else { + $text = $this->block($text); + } - $text = $this->retrieve($text); + $text = $this->retrieve($text); // just to be tidy $text = str_replace("
    ", "
    \n", $text); - return $text; + return $text; } // ------------------------------------------------------------- - function pba($in, $element = "") // "parse block attributes" + public function pba($in, $element = "") // "parse block attributes" { $style = ''; $class = ''; @@ -350,13 +352,18 @@ class Textile if (!empty($in)) { $matched = $in; if ($element == 'td') { - if (preg_match("/\\\\(\d+)/", $matched, $csp)) $colspan = $csp[1]; - if (preg_match("/\/(\d+)/", $matched, $rsp)) $rowspan = $rsp[1]; + if (preg_match("/\\\\(\d+)/", $matched, $csp)) { + $colspan = $csp[1]; + } + if (preg_match("/\/(\d+)/", $matched, $rsp)) { + $rowspan = $rsp[1]; + } } if ($element == 'td' or $element == 'tr') { - if (preg_match("/($this->vlgn)/", $matched, $vert)) + if (preg_match("/($this->vlgn)/", $matched, $vert)) { $style[] = "vertical-align:" . $this->vAlign($vert[1]) . ";"; + } } if (preg_match("/\{([^}]*)\}/", $matched, $sty)) { @@ -385,18 +392,20 @@ class Textile $matched = str_replace($pr[0], '', $matched); } - if (preg_match("/($this->hlgn)/", $matched, $horiz)) + if (preg_match("/($this->hlgn)/", $matched, $horiz)) { $style[] = "text-align:" . $this->hAlign($horiz[1]) . ";"; + } if (preg_match("/^(.*)#(.*)$/", $class, $ids)) { $id = $ids[2]; $class = $ids[1]; } - if ($this->restricted) + if ($this->restricted) { return ($lang) ? ' lang="' . $lang .'"':''; + } - return join('',array( + return join('', array( ($style) ? ' style="' . join("", $style) .'"':'', ($class) ? ' class="' . $class .'"':'', ($lang) ? ' lang="' . $lang .'"':'', @@ -409,7 +418,7 @@ class Textile } // ------------------------------------------------------------- - function hasRawText($text) + public function hasRawText($text) { // checks whether the text has text not already enclosed by a block tag $r = trim(preg_replace('@<(p|blockquote|div|form|table|ul|ol|pre|h\d)[^>]*?>.*@s', '', trim($text))); @@ -418,7 +427,7 @@ class Textile } // ------------------------------------------------------------- - function table($text) + public function table($text) { $text = $text . "\n\n"; return preg_replace_callback("/^(?:table(_?{$this->s}{$this->a}{$this->c})\. ?\n)?^({$this->a}{$this->c}\.? ?\|.*\|)\n\n/smU", @@ -426,29 +435,36 @@ class Textile } // ------------------------------------------------------------- - function fTable($matches) + public function fTable($matches) { $tatts = $this->pba($matches[1], 'table'); - foreach(preg_split("/\|$/m", $matches[2], -1, PREG_SPLIT_NO_EMPTY) as $row) { + foreach (preg_split("/\|$/m", $matches[2], -1, PREG_SPLIT_NO_EMPTY) as $row) { if (preg_match("/^($this->a$this->c\. )(.*)/m", ltrim($row), $rmtch)) { $ratts = $this->pba($rmtch[1], 'tr'); $row = $rmtch[2]; - } else $ratts = ''; + } else { + $ratts = ''; + } - $cells = array(); - foreach(explode("|", $row) as $cell) { + $cells = array(); + foreach (explode("|", $row) as $cell) { $ctyp = "d"; - if (preg_match("/^_/", $cell)) $ctyp = "h"; + if (preg_match("/^_/", $cell)) { + $ctyp = "h"; + } if (preg_match("/^(_?$this->s$this->a$this->c\. )(.*)/", $cell, $cmtch)) { $catts = $this->pba($cmtch[1], 'td'); $cell = $cmtch[2]; - } else $catts = ''; + } else { + $catts = ''; + } $cell = $this->graf($this->span($cell)); - if (trim($cell) != '') + if (trim($cell) != '') { $cells[] = "\t\t\t$cell"; + } } $rows[] = "\t\t\n" . join("\n", $cells) . ($cells ? "\n" : "") . "\t\t"; unset($cells, $catts); @@ -457,22 +473,23 @@ class Textile } // ------------------------------------------------------------- - function lists($text) + public function lists($text) { return preg_replace_callback("/^([#*]+$this->c .*)$(?![^#*])/smU", array(&$this, "fList"), $text); } // ------------------------------------------------------------- - function fList($m) + public function fList($m) { $text = explode("\n", $m[0]); - foreach($text as $line) { + foreach ($text as $line) { $nextline = next($text); if (preg_match("/^([#*]+)($this->a$this->c) (.*)$/s", $line, $m)) { list(, $tl, $atts, $content) = $m; $nl = ''; - if (preg_match("/^([#*]+)\s.*/", $nextline, $nm)) - $nl = $nm[1]; + if (preg_match("/^([#*]+)\s.*/", $nextline, $nm)) { + $nl = $nm[1]; + } if (!isset($lists[$tl])) { $lists[$tl] = true; $atts = $this->pba($atts); @@ -481,12 +498,15 @@ class Textile $line = "\t\t
  • " . $this->graf($content); } - if(strlen($nl) <= strlen($tl)) $line .= "
  • "; - foreach(array_reverse($lists) as $k => $v) { - if(strlen($k) > strlen($nl)) { + if (strlen($nl) <= strlen($tl)) { + $line .= ""; + } + foreach (array_reverse($lists) as $k => $v) { + if (strlen($k) > strlen($nl)) { $line .= "\n\tlT($k) . "l>"; - if(strlen($k) > 1) + if (strlen($k) > 1) { $line .= ""; + } unset($lists[$k]); } } @@ -497,26 +517,26 @@ class Textile } // ------------------------------------------------------------- - function lT($in) + public function lT($in) { return preg_match("/^#+/", $in) ? 'o' : 'u'; } // ------------------------------------------------------------- - function doPBr($in) + public function doPBr($in) { return preg_replace_callback('@<(p)([^>]*?)>(.*)()@s', array(&$this, 'doBr'), $in); } // ------------------------------------------------------------- - function doBr($m) + public function doBr($m) { $content = preg_replace("@(.+)(?|
    )\n(?![#*\s|])@", '$1
    ', $m[3]); return '<'.$m[1].$m[2].'>'.$content.$m[4]; } // ------------------------------------------------------------- - function block($text) + public function block($text) { $find = $this->btag; $tre = join('|', $find); @@ -526,23 +546,24 @@ class Textile $tag = 'p'; $atts = $cite = $graf = $ext = ''; - foreach($text as $line) { + foreach ($text as $line) { $anon = 0; if (preg_match("/^($tre)($this->a$this->c)\.(\.?)(?::(\S+))? (.*)$/s", $line, $m)) { // last block was extended, so close it - if ($ext) + if ($ext) { $out[count($out)-1] .= $c1; + } // new block - list(,$tag,$atts,$ext,$cite,$graf) = $m; + list(, $tag, $atts, $ext, $cite, $graf) = $m; list($o1, $o2, $content, $c2, $c1) = $this->fBlock(array(0,$tag,$atts,$ext,$cite,$graf)); // leave off c1 if this block is extended, we'll close it at the start of the next block - if ($ext) + if ($ext) { $line = $o1.$o2.$content.$c2; - else + } else { $line = $o1.$o2.$content.$c2.$c1; - } - else { + } + } else { // anonymous block $anon = 1; if ($ext or !preg_match('/^ /', $line)) { @@ -550,23 +571,22 @@ class Textile // skip $o1/$c1 because this is part of a continuing extended block if ($tag == 'p' and !$this->hasRawText($content)) { $line = $content; - } - else { + } else { $line = $o2.$content.$c2; } - } - else { - $line = $this->graf($line); + } else { + $line = $this->graf($line); } } $line = $this->doPBr($line); $line = preg_replace('/
    /', '
    ', $line); - if ($ext and $anon) + if ($ext and $anon) { $out[count($out)-1] .= "\n".$line; - else + } else { $out[] = $line; + } if (!$ext) { $tag = 'p'; @@ -575,14 +595,16 @@ class Textile $graf = ''; } } - if ($ext) $out[count($out)-1] .= $c1; + if ($ext) { + $out[count($out)-1] .= $c1; + } return join("\n\n", $out); } // ------------------------------------------------------------- - function fBlock($m) + public function fBlock($m) { // $this->dump($m); list(, $tag, $atts, $ext, $cite, $content) = $m; @@ -594,8 +616,9 @@ class Textile $tag = 'p'; $fnid = empty($this->fn[$fns[1]]) ? $fns[1] : $this->fn[$fns[1]]; $atts .= ' id="fn' . $fnid . '"'; - if (strpos($atts, 'class=') === false) + if (strpos($atts, 'class=') === false) { $atts .= ' class="footnote"'; + } $content = '' . $fns[1] . ' ' . $content; } @@ -606,29 +629,25 @@ class Textile $o2 = "\t\t"; $c2 = "

    "; $c1 = "\n\t"; - } - elseif ($tag == 'bc') { + } elseif ($tag == 'bc') { $o1 = ""; $o2 = ""; $c2 = ""; $c1 = ""; $content = $this->shelve($this->encode_html(rtrim($content, "\n")."\n")); - } - elseif ($tag == 'notextile') { + } elseif ($tag == 'notextile') { $content = $this->shelve($content); $o1 = $o2 = ''; $c1 = $c2 = ''; - } - elseif ($tag == 'pre') { + } elseif ($tag == 'pre') { $content = $this->shelve($this->encode_html(rtrim($content, "\n")."\n")); $o1 = ""; $o2 = $c2 = ''; $c1 = ""; - } - else { + } else { $o2 = "\t<$tag$atts>"; $c2 = ""; - } + } $content = $this->graf($content); @@ -636,7 +655,7 @@ class Textile } // ------------------------------------------------------------- - function graf($text) + public function graf($text) { // handle normal paragraph text if (!$this->lite) { @@ -645,8 +664,9 @@ class Textile } $text = $this->links($text); - if (!$this->noimage) + if (!$this->noimage) { $text = $this->image($text); + } if (!$this->lite) { $text = $this->lists($text); @@ -660,12 +680,12 @@ class Textile } // ------------------------------------------------------------- - function span($text) + public function span($text) { $qtags = array('\*\*','\*','\?\?','-','__','_','%','\+','~','\^'); $pnct = ".,\"'?!;:"; - foreach($qtags as $f) { + foreach ($qtags as $f) { $text = preg_replace_callback("/ (?:^|(?<=[\s>$pnct])|([{[])) ($f)(?!$f) @@ -681,7 +701,7 @@ class Textile } // ------------------------------------------------------------- - function fSpan($m) + public function fSpan($m) { $qtags = array( '*' => 'strong', @@ -696,7 +716,7 @@ class Textile '^' => 'sup', ); - list(,, $tag, $atts, $cite, $content, $end) = $m; + list(, , $tag, $atts, $cite, $content, $end) = $m; $tag = $qtags[$tag]; $atts = $this->pba($atts); $atts .= ($cite != '') ? 'cite="' . $cite . '"' : ''; @@ -706,11 +726,10 @@ class Textile // $this->dump($out); return $out; - } // ------------------------------------------------------------- - function links($text) + public function links($text) { return preg_replace_callback('/ (?:^|(?<=[\s>.$pnct\(])|([{[])) # $pre @@ -728,7 +747,7 @@ class Textile } // ------------------------------------------------------------- - function fLink($m) + public function fLink($m) { list(, $pre, $atts, $text, $title, $url, $slash, $post) = $m; @@ -737,8 +756,9 @@ class Textile $atts = $this->pba($atts); $atts .= ($title != '') ? ' title="' . $this->encode_html($title) . '"' : ''; - if (!$this->noimage) + if (!$this->noimage) { $text = $this->image($text); + } $text = $this->span($text); $text = $this->glyphs($text); @@ -749,18 +769,17 @@ class Textile // $this->dump($out); return $this->shelve($out); - } // ------------------------------------------------------------- - function getRefs($text) + public function getRefs($text) { return preg_replace_callback("/(?<=^|\s)\[(.+)\]((?:http:\/\/|\/)\S+)(?=\s|$)/U", array(&$this, "refs"), $text); } // ------------------------------------------------------------- - function refs($m) + public function refs($m) { list(, $flag, $url) = $m; $this->urlrefs[$flag] = $url; @@ -768,27 +787,29 @@ class Textile } // ------------------------------------------------------------- - function checkRefs($text) + public function checkRefs($text) { return (isset($this->urlrefs[$text])) ? $this->urlrefs[$text] : $text; } // ------------------------------------------------------------- - function relURL($url) + public function relURL($url) { $parts = parse_url($url); if ((empty($parts['scheme']) or @$parts['scheme'] == 'http') and empty($parts['host']) and - preg_match('/^\w/', @$parts['path'])) + preg_match('/^\w/', @$parts['path'])) { $url = $this->hu.$url; + } if ($this->restricted and !empty($parts['scheme']) and - !in_array($parts['scheme'], $this->url_schemes)) + !in_array($parts['scheme'], $this->url_schemes)) { return '#'; + } return $url; } // ------------------------------------------------------------- - function image($text) + public function image($text) { return preg_replace_callback("/ (?:[[{])? # pre @@ -806,7 +827,7 @@ class Textile } // ------------------------------------------------------------- - function fImage($m) + public function fImage($m) { list(, $algn, $atts, $url) = $m; $atts = $this->pba($atts); @@ -814,7 +835,9 @@ class Textile $atts .= (isset($m[4])) ? ' title="' . $m[4] . '"' : ''; $atts .= (isset($m[4])) ? ' alt="' . $m[4] . '"' : ' alt=""'; $size = @getimagesize($url); - if ($size) $atts .= " $size[3]"; + if ($size) { + $atts .= " $size[3]"; + } $href = (isset($m[5])) ? $this->checkRefs($m[5]) : ''; $url = $this->checkRefs($url); @@ -827,11 +850,11 @@ class Textile ($href) ? '
    ' : '' ); - return join('',$out); + return join('', $out); } // ------------------------------------------------------------- - function code($text) + public function code($text) { $text = $this->doSpecial($text, '', '', 'fCode'); $text = $this->doSpecial($text, '@', '@', 'fCode'); @@ -840,28 +863,30 @@ class Textile } // ------------------------------------------------------------- - function fCode($m) + public function fCode($m) { - @list(, $before, $text, $after) = $m; - if ($this->restricted) - // $text is already escaped + @list(, $before, $text, $after) = $m; + if ($this->restricted) { + // $text is already escaped return $before.$this->shelve(''.$text.'').$after; - else + } else { return $before.$this->shelve(''.$this->encode_html($text).'').$after; + } } // ------------------------------------------------------------- - function fPre($m) + public function fPre($m) { - @list(, $before, $text, $after) = $m; - if ($this->restricted) - // $text is already escaped + @list(, $before, $text, $after) = $m; + if ($this->restricted) { + // $text is already escaped return $before.'
    '.$this->shelve($text).'
    '.$after; - else + } else { return $before.'
    '.$this->shelve($this->encode_html($text)).'
    '.$after; + } } // ------------------------------------------------------------- - function shelve($val) + public function shelve($val) { $i = uniqid(rand()); $this->shelf[$i] = $val; @@ -869,27 +894,29 @@ class Textile } // ------------------------------------------------------------- - function retrieve($text) + public function retrieve($text) { - if (is_array($this->shelf)) + if (is_array($this->shelf)) { do { $old = $text; $text = strtr($text, $this->shelf); - } while ($text != $old); + } + } + while ($text != $old); return $text; } // ------------------------------------------------------------- // NOTE: deprecated - function incomingEntities($text) + public function incomingEntities($text) { return preg_replace("/&(?![#a-z0-9]+;)/i", "x%x%", $text); } // ------------------------------------------------------------- // NOTE: deprecated - function encodeEntities($text) + public function encodeEntities($text) { return (function_exists('mb_encode_numericentity')) ? $this->encode_high($text) @@ -898,7 +925,7 @@ class Textile // ------------------------------------------------------------- // NOTE: deprecated - function fixEntities($text) + public function fixEntities($text) { /* de-entify any remaining angle brackets or ampersands */ return str_replace(array(">", "<", "&"), @@ -906,7 +933,7 @@ class Textile } // ------------------------------------------------------------- - function cleanWhiteSpace($text) + public function cleanWhiteSpace($text) { $out = str_replace("\r\n", "\n", $text); $out = preg_replace("/\n{3,}/", "\n\n", $out); @@ -916,14 +943,14 @@ class Textile } // ------------------------------------------------------------- - function doSpecial($text, $start, $end, $method='fSpecial') + public function doSpecial($text, $start, $end, $method='fSpecial') { - return preg_replace_callback('/(^|\s|[[({>])'.preg_quote($start, '/').'(.*?)'.preg_quote($end, '/').'(\s|$|[\])}])?/ms', + return preg_replace_callback('/(^|\s|[[({>])'.preg_quote($start, '/').'(.*?)'.preg_quote($end, '/').'(\s|$|[\])}])?/ms', array(&$this, $method), $text); } // ------------------------------------------------------------- - function fSpecial($m) + public function fSpecial($m) { // A special block like notextile or code @list(, $before, $text, $after) = $m; @@ -931,15 +958,14 @@ class Textile } // ------------------------------------------------------------- - function noTextile($text) + public function noTextile($text) { - $text = $this->doSpecial($text, '', '', 'fTextile'); - return $this->doSpecial($text, '==', '==', 'fTextile'); - + $text = $this->doSpecial($text, '', '', 'fTextile'); + return $this->doSpecial($text, '==', '==', 'fTextile'); } // ------------------------------------------------------------- - function fTextile($m) + public function fTextile($m) { @list(, $before, $notextile, $after) = $m; #$notextile = str_replace(array_keys($modifiers), array_values($modifiers), $notextile); @@ -947,23 +973,24 @@ class Textile } // ------------------------------------------------------------- - function footnoteRef($text) + public function footnoteRef($text) { return preg_replace('/\b\[([0-9]+)\](\s)?/Ue', '$this->footnoteID(\'\1\',\'\2\')', $text); } // ------------------------------------------------------------- - function footnoteID($id, $t) + public function footnoteID($id, $t) { - if (empty($this->fn[$id])) + if (empty($this->fn[$id])) { $this->fn[$id] = uniqid(rand()); + } $fnid = $this->fn[$id]; return ''.$id.''.$t; } // ------------------------------------------------------------- - function glyphs($text) + public function glyphs($text) { // fix: hackish $text = preg_replace('/"\z/', "\" ", $text); @@ -1007,18 +1034,18 @@ class Textile $txt_copyright, // copyright ); - $text = preg_split("/(<.*>)/U", $text, -1, PREG_SPLIT_DELIM_CAPTURE); - foreach($text as $line) { - if (!preg_match("/<.*>/", $line)) { - $line = preg_replace($glyph_search, $glyph_replace, $line); - } - $glyph_out[] = $line; - } - return join('', $glyph_out); + $text = preg_split("/(<.*>)/U", $text, -1, PREG_SPLIT_DELIM_CAPTURE); + foreach ($text as $line) { + if (!preg_match("/<.*>/", $line)) { + $line = preg_replace($glyph_search, $glyph_replace, $line); + } + $glyph_out[] = $line; + } + return join('', $glyph_out); } // ------------------------------------------------------------- - function iAlign($in) + public function iAlign($in) { $vals = array( '<' => 'left', @@ -1028,7 +1055,7 @@ class Textile } // ------------------------------------------------------------- - function hAlign($in) + public function hAlign($in) { $vals = array( '<' => 'left', @@ -1039,7 +1066,7 @@ class Textile } // ------------------------------------------------------------- - function vAlign($in) + public function vAlign($in) { $vals = array( '^' => 'top', @@ -1050,21 +1077,21 @@ class Textile // ------------------------------------------------------------- // NOTE: deprecated - function encode_high($text, $charset = "UTF-8") + public function encode_high($text, $charset = "UTF-8") { return mb_encode_numericentity($text, $this->cmap(), $charset); } // ------------------------------------------------------------- // NOTE: deprecated - function decode_high($text, $charset = "UTF-8") + public function decode_high($text, $charset = "UTF-8") { return mb_decode_numericentity($text, $this->cmap(), $charset); } // ------------------------------------------------------------- // NOTE: deprecated - function cmap() + public function cmap() { $f = 0xffff; $cmap = array( @@ -1073,23 +1100,25 @@ class Textile } // ------------------------------------------------------------- - function encode_html($str, $quotes=1) + public function encode_html($str, $quotes=1) { $a = array( '&' => '&', '<' => '<', '>' => '>', ); - if ($quotes) $a = $a + array( + if ($quotes) { + $a = $a + array( "'" => ''', '"' => '"', ); + } return strtr($str, $a); } // ------------------------------------------------------------- - function textile_popup_help($name, $helpvar, $windowW, $windowH) + public function textile_popup_help($name, $helpvar, $windowW, $windowH) { return ' ' . $name . '
    '; @@ -1098,38 +1127,33 @@ class Textile // ------------------------------------------------------------- // NOTE: deprecated - function txtgps($thing) + public function txtgps($thing) { if (isset($_POST[$thing])) { if (get_magic_quotes_gpc()) { return stripslashes($_POST[$thing]); - } - else { + } else { return $_POST[$thing]; } - } - else { + } else { return ''; } } // ------------------------------------------------------------- // NOTE: deprecated - function dump() + public function dump() { - foreach (func_get_args() as $a) + foreach (func_get_args() as $a) { echo "\n
    ",(is_array($a)) ? print_r($a) : $a, "
    \n"; + } } // ------------------------------------------------------------- - function blockLite($text) + public function blockLite($text) { $this->btag = array('bq', 'p'); return $this->block($text."\n\n"); } - - } // end class - -?> diff --git a/classes/themes.class.php b/classes/themes.class.php old mode 100644 new mode 100755 index 0a25e87..c4b7bd6 --- a/classes/themes.class.php +++ b/classes/themes.class.php @@ -1,138 +1,152 @@ -vars[$name] = $value; - return true; - } - - function remove($name) { - unset($this->vars[$name]); - return true; - } - - //obtiene el contenido del tema ya con todos los valores sutituidos en las variables. - function fetch($file){ - $this->exec($file); - return $this->output; - } - - //muestra el contenido del tema ya con todos los valroes sustituidos en las variables. - function display($file){ - $this->exec($file); - echo $this->output; - } - - //corre el proceso de sustitucion de valores en las variables del theme y retorna todo en la variable $this->output para ser devuelto por: fetch o display - function exec($file){ - $this->file = $file; - $output = file_get_contents($file); - $this->output = $output; - $this->registrar_vars(); - $this->__(); - $this->eval_control_structures(); - - //evaluate All as PHP code - ob_start();eval($this->output); - $this->output = stripslashes(ob_get_clean()); - } - - function eval_control_structures(){ - //finding {header *} - preg_match_all("/{header ([^}]+?)}/s",$this->output,$out); - $headers = ''; - foreach ($out[1] as $o) - $headers .= "header('$o');\n"; +output = preg_replace("/{header [^}]+?}/s","",$this->output); + public $output; + public $vars=array(); //variable para apilar las variables que se asignan a la plantilla - //fake scape - $this->output = $this->quotemeta($this->output); - $this->output = str_replace('\"','\\"',trim($this->output)); + public function __construct() + { + } - $this->output = "echo \"".str_replace('"','\"',trim($this->output))."\";"; + public function set($name, $value) + { + $this->vars[$name] = $value; + return true; + } - #$this->output = preg_replace("/\n+/s","\n",$this->output); - $this->output = $headers.trim($this->output); + public function remove($name) + { + unset($this->vars[$name]); + return true; + } - //finding IFs sentences and converting to php code - #$this->output = preg_replace_callback("/{if ([^}]+)}/",create_function('$arr','return "\";if(".stripslashes($arr[1])."){echo\"";'),$this->output); - $this->output = preg_replace_callback("/{if ([^}]+)}/",create_function('$arr','return "\";if(".stripslashes(preg_replace(array("/\\\\$([a-zA-Z0-9_]+)/s","/\\\\\\$this->vars\[\\\'([a-zA-Z0-9_]+)\\\'\]\.([a-zA-Z0-9_]+)/s"),array("\$this->vars[\'\$1\']","\\\\\\$this->vars[\\\'$1\\\'][\\\'$2\\\']"),$arr[1]))."){echo\"";'),$this->output); - $this->output = preg_replace("/{else}/","\";}else{echo\"",$this->output); - $this->output = preg_replace_callback("/{elseif ([^}]+)}/",create_function('$arr','return "\";}elseif(".stripslashes(preg_replace(array("/\\\\$([a-zA-Z0-9]+)/s","/\\\\\\$this->vars\[\\\'([a-zA-Z0-9]+)\\\'\]\.([a-zA-Z0-9]+)/s"),array("\$this->vars[\'\$1\']","\\\\\\$this->vars[\\\'$1\\\'][\\\'$2\\\']"),$arr[1]))."){echo\"";'),$this->output); - $this->output = preg_replace("/{\/if}/","\";} echo \"",$this->output); + //obtiene el contenido del tema ya con todos los valores sutituidos en las variables. + public function fetch($file) + { + $this->exec($file); + return $this->output; + } - //finding FOREACHs or BLOCKs sentences and converting to php code - $this->output = preg_replace_callback("/{block ([^}]+) as ([^}]+)=>[\$]([^}]+)}/",create_function('$arr','return "\";foreach(".stripslashes(preg_replace(array("/\\\\$([a-zA-Z0-9_]+)/s","/\\\\\\$this->vars\[\\\'([a-zA-Z0-9_]+)\\\'\]\.([a-zA-Z0-9_]+)/s"),array("\$this->vars[\'\$1\']","\\\\\\$this->vars[\\\'$1\\\'][\\\'$2\\\']"),$arr[1]))." as ".stripslashes(preg_replace(array("/\\\\$([a-zA-Z0-9_]+)/s","/\\\\\\$this->vars\[\\\'([a-zA-Z0-9_]+)\\\'\]\.([a-zA-Z0-9_]+)/s"),array("\$this->vars[\'\$1\']","\\\\\\$this->vars[\\\'$1\\\'][\\\'$2\\\']"),$arr[2]))."=>\$this->vars[\'".stripslashes(preg_replace(array("/\\\\$([a-zA-Z0-9_]+)/s","/\\\\\\$this->vars\[\\\'([a-zA-Z0-9_]+)\\\'\]\.([a-zA-Z0-9_]+)/s"),array("\$this->vars[\'\$1\']","\\\\\\$this->vars[\\\'$1\\\'][\\\'$2\\\']"),$arr[3]))."\']){echo\"";'),$this->output); - $this->output = preg_replace_callback("/{block ([^}]+) as ([^}]+)}/",create_function('$arr','return "\";foreach(".stripslashes(preg_replace(array("/\\\\$([a-zA-Z0-9_]+)/s","/\\\\\\$this->vars\[\\\'([a-zA-Z0-9_]+)\\\'\]\.([a-zA-Z0-9_]+)/s"),array("\$this->vars[\'\$1\']","\\\\\\$this->vars[\\\'$1\\\'][\\\'$2\\\']"),$arr[1]))." as ".stripslashes(preg_replace(array("/\\\\$([a-zA-Z0-9_]+)/s","/\\\\\\$this->vars\[\\\'([a-zA-Z0-9_]+)\\\'\]\.([a-zA-Z0-9_]+)/s"),array("\$this->vars[\'\$1\']","\\\\\\$this->vars[\\\'$1\\\'][\\\'$2\\\']"),$arr[2]))."){echo\"";'),$this->output); - $this->output = preg_replace("/{\/block}/","\";} echo \"",$this->output); + //muestra el contenido del tema ya con todos los valroes sustituidos en las variables. + public function display($file) + { + $this->exec($file); + echo $this->output; + } - //Converting the $this->vars[\'variable\'] format to {$this->vars['variable']} - //$this->output = preg_replace("/[\$]this->vars\[\\\'([^ \.\\\]+)\\\'\]\[\\\'([^ \.\\\]+)\\\'\]/","{\$this->vars['$1']['$2']}",$this->output); - $this->output = preg_replace("/[\$]this->vars\[\\\'([^ \.\\\]+)\\\'\]/","{\$this->vars['$1']}",$this->output); - - //Convertin the {__(\'word\')} format to {__('word')} - #$this->output = preg_replace("/[\$]this->vars\[\\\'([^ \.\\\]+)\\\'\]/","{\$this->vars['$1']}",$this->output); - } - - //sustituye las variables en el output del template - function registrar_vars(){ - foreach($this->vars as $k=>$v){ - //pre($this->vars); - if(is_array($v)){ - //Si es un arreglo, se intenta procesar un nivel mas adentro para sustituir en el theme por lo que tenga: nombredearreglo.dato - foreach($v as $_k=>$_v) - if(!is_array($_v)) - $this->output = str_replace('{'.$k.'.'.$_k.'}',$_v,$this->output); - }else{ - // sustituimos directamente las variables {$variable} - $this->output = str_replace('{'.$k.'}',$v,$this->output); - } - } - - //replacing {$key} format by $this->vars['key'] - //replacing {$array.key} format by $this->vars['array']['key'] - $patrones = array( - '/{\$([^ \.}]+)}/s', - '/{\$([^ \.}]+)\.([^ \.}]+)}/s' - ); - $reemplazos = array( - "{\$this->vars['$1']}", - "{\$this->vars['$1']['$2']}" - ); - $this->output = preg_replace($patrones, $reemplazos, $this->output); - } + //corre el proceso de sustitucion de valores en las variables del theme y retorna todo en la variable $this->output para ser devuelto por: fetch o display + public function exec($file) + { + $this->file = $file; + $output = file_get_contents($file); + $this->output = $output; + $this->registrar_vars(); + $this->__(); + $this->eval_control_structures(); - function quotemeta($str){ - $chars = array(/*'.',*/ "\\", /*'+',*/ /*'*',*/ /*'?',*/ /*'[',*/ /*'^',*/ /*']',*/ /*'(',*/ /* '$' Por el momento no validar este*/); - foreach($chars as $char) - $this->output = str_replace($char,"\\$char",$this->output); - return $this->output; - } - - //Utiliza gettext - function __(){ - $patron = "/{__\((?:'|\")([^\)]+?)(?:'|\")\)}/s"; - preg_match_all($patron,$this->output,$out); - - foreach($out[1] as $k=>$v){ - $this->output = preg_replace("/{__\((?:'|\")$v(?:'|\")\)}/",__($v),$this->output); - } - } -} -?> + //evaluate All as PHP code + ob_start(); + eval($this->output); + $this->output = stripslashes(ob_get_clean()); + } + + public function eval_control_structures() + { + //finding {header *} + preg_match_all("/{header ([^}]+?)}/s", $this->output, $out); + $headers = ''; + foreach ($out[1] as $o) { + $headers .= "header('$o');\n"; + } + + $this->output = preg_replace("/{header [^}]+?}/s", "", $this->output); + + //fake scape + $this->output = $this->quotemeta($this->output); + $this->output = str_replace('\"', '\\"', trim($this->output)); + + $this->output = "echo \"".str_replace('"', '\"', trim($this->output))."\";"; + + #$this->output = preg_replace("/\n+/s","\n",$this->output); + $this->output = $headers.trim($this->output); + + //finding IFs sentences and converting to php code + #$this->output = preg_replace_callback("/{if ([^}]+)}/",create_function('$arr','return "\";if(".stripslashes($arr[1])."){echo\"";'),$this->output); + $this->output = preg_replace_callback("/{if ([^}]+)}/", create_function('$arr', 'return "\";if(".stripslashes(preg_replace(array("/\\\\$([a-zA-Z0-9_]+)/s","/\\\\\\$this->vars\[\\\'([a-zA-Z0-9_]+)\\\'\]\.([a-zA-Z0-9_]+)/s"),array("\$this->vars[\'\$1\']","\\\\\\$this->vars[\\\'$1\\\'][\\\'$2\\\']"),$arr[1]))."){echo\"";'), $this->output); + $this->output = preg_replace("/{else}/", "\";}else{echo\"", $this->output); + $this->output = preg_replace_callback("/{elseif ([^}]+)}/", create_function('$arr', 'return "\";}elseif(".stripslashes(preg_replace(array("/\\\\$([a-zA-Z0-9]+)/s","/\\\\\\$this->vars\[\\\'([a-zA-Z0-9]+)\\\'\]\.([a-zA-Z0-9]+)/s"),array("\$this->vars[\'\$1\']","\\\\\\$this->vars[\\\'$1\\\'][\\\'$2\\\']"),$arr[1]))."){echo\"";'), $this->output); + $this->output = preg_replace("/{\/if}/", "\";} echo \"", $this->output); + + //finding FOREACHs or BLOCKs sentences and converting to php code + $this->output = preg_replace_callback("/{block ([^}]+) as ([^}]+)=>[\$]([^}]+)}/", create_function('$arr', 'return "\";foreach(".stripslashes(preg_replace(array("/\\\\$([a-zA-Z0-9_]+)/s","/\\\\\\$this->vars\[\\\'([a-zA-Z0-9_]+)\\\'\]\.([a-zA-Z0-9_]+)/s"),array("\$this->vars[\'\$1\']","\\\\\\$this->vars[\\\'$1\\\'][\\\'$2\\\']"),$arr[1]))." as ".stripslashes(preg_replace(array("/\\\\$([a-zA-Z0-9_]+)/s","/\\\\\\$this->vars\[\\\'([a-zA-Z0-9_]+)\\\'\]\.([a-zA-Z0-9_]+)/s"),array("\$this->vars[\'\$1\']","\\\\\\$this->vars[\\\'$1\\\'][\\\'$2\\\']"),$arr[2]))."=>\$this->vars[\'".stripslashes(preg_replace(array("/\\\\$([a-zA-Z0-9_]+)/s","/\\\\\\$this->vars\[\\\'([a-zA-Z0-9_]+)\\\'\]\.([a-zA-Z0-9_]+)/s"),array("\$this->vars[\'\$1\']","\\\\\\$this->vars[\\\'$1\\\'][\\\'$2\\\']"),$arr[3]))."\']){echo\"";'), $this->output); + $this->output = preg_replace_callback("/{block ([^}]+) as ([^}]+)}/", create_function('$arr', 'return "\";foreach(".stripslashes(preg_replace(array("/\\\\$([a-zA-Z0-9_]+)/s","/\\\\\\$this->vars\[\\\'([a-zA-Z0-9_]+)\\\'\]\.([a-zA-Z0-9_]+)/s"),array("\$this->vars[\'\$1\']","\\\\\\$this->vars[\\\'$1\\\'][\\\'$2\\\']"),$arr[1]))." as ".stripslashes(preg_replace(array("/\\\\$([a-zA-Z0-9_]+)/s","/\\\\\\$this->vars\[\\\'([a-zA-Z0-9_]+)\\\'\]\.([a-zA-Z0-9_]+)/s"),array("\$this->vars[\'\$1\']","\\\\\\$this->vars[\\\'$1\\\'][\\\'$2\\\']"),$arr[2]))."){echo\"";'), $this->output); + $this->output = preg_replace("/{\/block}/", "\";} echo \"", $this->output); + + //Converting the $this->vars[\'variable\'] format to {$this->vars['variable']} + //$this->output = preg_replace("/[\$]this->vars\[\\\'([^ \.\\\]+)\\\'\]\[\\\'([^ \.\\\]+)\\\'\]/","{\$this->vars['$1']['$2']}",$this->output); + $this->output = preg_replace("/[\$]this->vars\[\\\'([^ \.\\\]+)\\\'\]/", "{\$this->vars['$1']}", $this->output); + + //Convertin the {__(\'word\')} format to {__('word')} + #$this->output = preg_replace("/[\$]this->vars\[\\\'([^ \.\\\]+)\\\'\]/","{\$this->vars['$1']}",$this->output); + } + + //sustituye las variables en el output del template + public function registrar_vars() + { + foreach ($this->vars as $k=>$v) { + //pre($this->vars); + if (is_array($v)) { + //Si es un arreglo, se intenta procesar un nivel mas adentro para sustituir en el theme por lo que tenga: nombredearreglo.dato + foreach ($v as $_k=>$_v) { + if (!is_array($_v)) { + $this->output = str_replace('{'.$k.'.'.$_k.'}', $_v, $this->output); + } + } + } else { + // sustituimos directamente las variables {$variable} + $this->output = str_replace('{'.$k.'}', $v, $this->output); + } + } + + //replacing {$key} format by $this->vars['key'] + //replacing {$array.key} format by $this->vars['array']['key'] + $patrones = array( + '/{\$([^ \.}]+)}/s', + '/{\$([^ \.}]+)\.([^ \.}]+)}/s' + ); + $reemplazos = array( + "{\$this->vars['$1']}", + "{\$this->vars['$1']['$2']}" + ); + $this->output = preg_replace($patrones, $reemplazos, $this->output); + } + + public function quotemeta($str) + { + $chars = array(/*'.',*/ "\\", /*'+',*/ /*'*',*/ /*'?',*/ /*'[',*/ /*'^',*/ /*']',*/ /*'(',*/ /* '$' Por el momento no validar este*/); + foreach ($chars as $char) { + $this->output = str_replace($char, "\\$char", $this->output); + } + return $this->output; + } + + //Utiliza gettext + public function __() + { + $patron = "/{__\((?:'|\")([^\)]+?)(?:'|\")\)}/s"; + preg_match_all($patron, $this->output, $out); + + foreach ($out[1] as $k=>$v) { + $this->output = preg_replace("/{__\((?:'|\")$v(?:'|\")\)}/", __($v), $this->output); + } + } +} diff --git a/classes/user.class.php b/classes/user.class.php old mode 100644 new mode 100755 index 70dec9b..902e19a --- a/classes/user.class.php +++ b/classes/user.class.php @@ -1,151 +1,163 @@ - - - =========================== */ + + + =========================== */ ?> -db = $db; - $this->conf = $conf; - $this->cookie_life = 60*24*3600; - $this->cookieTime = time(); - } - - function isAdmin() { - - if ((!empty($_SESSION["user_id"]) && !empty($_SESSION["user_login"])) && (isset($_SESSION['authenticated']) && $_SESSION['authenticated']==true)) { - return true; - } - - if(isset($_COOKIE["PHPSESSID"]) && $_COOKIE["PHPSESSID"]!="") { - - if ((!empty($_SESSION["user_id"]) && !empty($_SESSION["user_login"])) && (isset($_SESSION['authenticated']) && $_SESSION['authenticated']==true)) { - return true; - } - - } - - return false; - - } - - function validateUser($username="", $password="") { - - if ($this->db->ejecutarConsulta("SELECT id_user, login, password FROM ".$this->conf->tablePrefix."users WHERE login='".$this->db->sql_escape($username)."' AND password='".$password."'")) { - if ($this->db->contarRegistros()>0) { - $register = $this->db->obtenerRegistro(); - $_SESSION['user_id']=$register["id_user"]; - $_SESSION['user_login']=$register["login"]; - $_SESSION['authenticated'] = true; - if (isset($_POST["save_pass"])) { - $this->persist = true; - setcookie("PHPSESSID",session_id(),$this->cookieTime+$this->cookie_life); - } - return true; - } else { - return false; - } - } else { - return false; - } - } - - function closeSession() { - if (!$this->persist) session_destroy(); - return true; - } - - function userExist($user="") { - if ($this->db->ejecutarConsulta("SELECT * FROM ".$this->conf->tablePrefix."users WHERE login='".$user."'")) { - if ($this->db->contarRegistros()>0) { - return true; - } else { - return false; - } - } - } - - function isAuthenticated() { - return $this->isAdmin(); - } - - function addUser($fieldsArray) { - if ($this->db->ejecutarConsulta("SELECT id_user FROM ".$this->conf->tablePrefix."users WHERE login='".$fieldsArray['login']."'")) { - if ($this->db->contarRegistros()==0) { - $realPassword = ($fieldsArray["password"]); - $fieldsArray["password"] = md5($fieldsArray["password"]); - if ($this->db->insertarDeFormulario($this->conf->tablePrefix."users", $fieldsArray)) { - $this->confirmationEmail($fieldsArray['email'], $fieldsArray['login'], $realPassword); - header("Location: ".$this->conf->urlGelato."/admin/admin.php?added=true"); - die(); - } else { - header("Location: ".$this->conf->urlGelato."/admin/admin.php?error=2&des=".$this->merror); - die(); - } - } else { - header("Location: ".$this->conf->urlGelato."/admin/admin.php?error=1"); - die(); - } - } - } - - function modifyUser($fieldsArray, $id_user) { - $fieldsArray["password"] = md5($fieldsArray["password"]); - if ($this->db->modificarDeFormulario($this->conf->tablePrefix."users", $fieldsArray, "id_user=$id_user")) { - header("Location: ".$this->conf->urlGelato."/admin/admin.php?modified=true"); - die(); - } else { - header("Location: ".$this->conf->urlGelato."/admin/admin.php?error=2&des=".$this->merror); - die(); - } - } - - function deleteUser($idUser) { - $this->db->ejecutarConsulta("DELETE FROM ".$this->conf->tablePrefix."users WHERE id_user=".$idUser); - } - - function getUsers($show="10", $from="0") { - $sqlStr = "select * from ".$this->conf->tablePrefix."users ORDER BY id_user DESC LIMIT $from,$show"; - $this->db->ejecutarConsulta($sqlStr); - return $this->db->mid_consulta; - } - - function getUserByID($idUser) { - if ($this->db->ejecutarConsulta("select * from ".$this->conf->tablePrefix."users where id_user=".$idUser)) { - if ($this->db->contarRegistros()>0) { - return $registro=$this->db->obtenerRegistro(); - } else { - return false; - } - } - } - - function confirmationEmail($email="", $user="", $password="") { - $msg = "Account information on gelato CMS

    "; - $msg .= "Visit the conf->urlGelato."/admin/\">tumblelog panel

    "; - $msg .= "Username: ".$user."

    "; - $msg .= "Password: ".$password."

    "; - $msg .= "Don't tell your password to anybody!!

    "; - - sendMail($email, "Register confirmation on gelato CMS", $msg, "no-reply@gelatocms.com"); - } -} -?> \ No newline at end of file +db = $db; + $this->conf = $conf; + $this->cookie_life = 60*24*3600; + $this->cookieTime = time(); + } + + public function isAdmin() + { + if ((!empty($_SESSION["user_id"]) && !empty($_SESSION["user_login"])) && (isset($_SESSION['authenticated']) && $_SESSION['authenticated']==true)) { + return true; + } + + if (isset($_COOKIE["PHPSESSID"]) && $_COOKIE["PHPSESSID"]!="") { + if ((!empty($_SESSION["user_id"]) && !empty($_SESSION["user_login"])) && (isset($_SESSION['authenticated']) && $_SESSION['authenticated']==true)) { + return true; + } + } + + return false; + } + + public function validateUser($username="", $password="") + { + if ($this->db->ejecutarConsulta("SELECT id_user, login, password FROM ".$this->conf->tablePrefix."users WHERE login=".$this->db->sql_escape($username)." AND password='".$password."'")) { + if ($this->db->contarRegistros()>0) { + $register = $this->db->obtenerRegistro(); + $_SESSION['user_id']=$register["id_user"]; + $_SESSION['user_login']=$register["login"]; + $_SESSION['authenticated'] = true; + if (isset($_POST["save_pass"])) { + $this->persist = true; + setcookie("PHPSESSID", session_id(), $this->cookieTime+$this->cookie_life); + } + return true; + } else { + return false; + } + } else { + return false; + } + } + + public function closeSession() + { + if (!$this->persist) { + session_destroy(); + } + return true; + } + + public function userExist($user="") + { + if ($this->db->ejecutarConsulta("SELECT * FROM ".$this->conf->tablePrefix."users WHERE login='".$user."'")) { + if ($this->db->contarRegistros()>0) { + return true; + } else { + return false; + } + } + } + + public function isAuthenticated() + { + return $this->isAdmin(); + } + + public function addUser($fieldsArray) + { + if ($this->db->ejecutarConsulta("SELECT id_user FROM ".$this->conf->tablePrefix."users WHERE login='".$fieldsArray['login']."'")) { + if ($this->db->contarRegistros()==0) { + $realPassword = ($fieldsArray["password"]); + $fieldsArray["password"] = md5($fieldsArray["password"]); + if ($this->db->insertarDeFormulario($this->conf->tablePrefix."users", $fieldsArray)) { + $this->confirmationEmail($fieldsArray['email'], $fieldsArray['login'], $realPassword); + header("Location: ".$this->conf->urlGelato."/admin/admin.php?added=true"); + die(); + } else { + header("Location: ".$this->conf->urlGelato."/admin/admin.php?error=2&des=".$this->merror); + die(); + } + } else { + header("Location: ".$this->conf->urlGelato."/admin/admin.php?error=1"); + die(); + } + } + } + + public function modifyUser($fieldsArray, $id_user) + { + $fieldsArray["password"] = md5($fieldsArray["password"]); + if ($this->db->modificarDeFormulario($this->conf->tablePrefix."users", $fieldsArray, "id_user=$id_user")) { + header("Location: ".$this->conf->urlGelato."/admin/admin.php?modified=true"); + die(); + } else { + header("Location: ".$this->conf->urlGelato."/admin/admin.php?error=2&des=".$this->merror); + die(); + } + } + + public function deleteUser($idUser) + { + $this->db->ejecutarConsulta("DELETE FROM ".$this->conf->tablePrefix."users WHERE id_user=".$idUser); + } + + public function getUsers($show="10", $from="0") + { + $sqlStr = "select * from ".$this->conf->tablePrefix."users ORDER BY id_user DESC LIMIT $from,$show"; + $this->db->ejecutarConsulta($sqlStr); + return $this->db->mid_consulta; + } + + public function getUserByID($idUser) + { + if ($this->db->ejecutarConsulta("select * from ".$this->conf->tablePrefix."users where id_user=".$idUser)) { + if ($this->db->contarRegistros()>0) { + return $registro=$this->db->obtenerRegistro(); + } else { + return false; + } + } + } + + public function confirmationEmail($email="", $user="", $password="") + { + $msg = "Account information on gelato CMS

    "; + $msg .= "Visit the conf->urlGelato."/admin/\">tumblelog panel

    "; + $msg .= "Username: ".$user."

    "; + $msg .= "Password: ".$password."

    "; + $msg .= "Don't tell your password to anybody!!

    "; + + sendMail($email, "Register confirmation on gelato CMS", $msg, "no-reply@gelatocms.com"); + } +} +?> diff --git a/classes/util.class.php b/classes/util.class.php old mode 100644 new mode 100755 index b25c3f9..a90a9ba --- a/classes/util.class.php +++ b/classes/util.class.php @@ -1,671 +1,762 @@ - - - =========================== */ + + + =========================== */ +?> +endsWith($fileUrl, ".mp3")) { + return true; + } else { + return false; + } + } + + public function getMP3File($remoteFileName) + { + $util_class = new util(); + if ($util_class->isMP3($remoteFileName)) { + if ($util_class->getFile($remoteFileName)) { + return true; + } else { + return false; + } + } elseif ($util_class->isGoEar($remoteFileName)) { + return true; + } elseif ($util_class->isOdeo($remoteFileName)) { + return true; + } else { + return false; + } + } + + public function getGoEarCode($songUrl) + { + $pos = strpos($songUrl, "?v="); + $lon = strlen($songUrl); + $str = substr($songUrl, $pos + 3, $lon); + return $str; + } + + public function isGoEar($songUrl) + { + $util_class = new util(); + if ($util_class->beginsWith($songUrl, "http://www.goear.com/listen.php?v=") || $util_class->beginsWith($songUrl, "http://goear.com/listen.php?v=")) { + return true; + } else { + return false; + } + } + + public function isOdeo($songUrl) + { + $util_class = new util(); + if ($util_class->beginsWith($songUrl, "http://odeo.com/audio/") || $util_class->beginsWith($songUrl, "http://www.odeo.com/audio/")) { + return true; + } else { + return false; + } + } + + public function getOdeoCode($songUrl) + { + $params = explode("audio/", $songUrl); + $params2 = explode("/", $params[1]); + return $params2[0]; + } + + public function isImageFile($photoUrl) + { + $util_class = new util(); + if ($util_class->endsWith($photoUrl, ".jpg")) { + return true; + } elseif ($util_class->endsWith($photoUrl, ".gif")) { + return true; + } elseif ($util_class->endsWith($photoUrl, ".png")) { + return true; + } else { + return false; + } + } + + public function getPhotoFile($remoteFileName) + { + $util_class = new util(); + if ($util_class->isImageFile($remoteFileName)) { + if ($util_class->getFile($remoteFileName)) { + return true; + } else { + return false; + } + } else { + return false; + } + } + + public function getFile($remoteFileName) + { + $util_class = new util(); + $fileName = "../uploads/".$util_class->sanitizeName($util_class->getFileName($remoteFileName)); + $str = $util_class->_file_get_contents($remoteFileName); + if (!$handle = fopen($fileName, 'w')) { + //die("no se abrio de escritura"); + return false; + } + + if (fwrite($handle, $str) === false) { + //die("no se escribio"); + return false; + } + fclose($handle); + return true; + } + + public function isVimeoVideo($videoUrl) + { + $util_class = new util(); + if ($util_class->beginsWith($videoUrl, "http://vimeo.com/") || $util_class->beginsWith($videoUrl, "http://www.vimeo.com/")) { + return true; + } else { + return false; + } + } + + public function getVimeoVideoUrl($videoUrl) + { + if (substr_count($videoUrl, "clip:")==1) { + return array_pop(explode("clip:", $videoUrl)); + } else { + return array_pop(explode("/", $videoUrl)); + } + } + + public function isYoutubeVideo($videoUrl) + { + $url = explode("?", $videoUrl); + $util_class = new util(); + if (($util_class->beginsWith($url[0], "https://") && $util_class->endsWith($url[0], ".youtube.com/watch")) || $util_class->beginsWith($url[0], "https://youtube.com/watch")) { + return true; + } else { + return false; + } + } + + public function getYoutubeVideoUrl($videoUrl) + { + $params = explode("?v=", $videoUrl); + $params2 = explode("&", $params[1]); + return $params2[0]; + } + + public function isYahooVideo($videoUrl) + { + $util_class = new util(); + if ($util_class->beginsWith($videoUrl, "http://video.yahoo.com/watch/") || $util_class->beginsWith($videoUrl, "http://www.video.yahoo.com/watch/")) { + return true; + } else { + return false; + } + } + + public function getYahooVideoCode($videoUrl) + { + $params = explode("http://video.yahoo.com/watch/", $videoUrl); + $params2 = explode("/", $params[1]); + $values[0] = $params2[0]; + $values[1] = $params2[1]; + return $values; + } + + public function isGoogleVideoUrl($videoUrl) + { + $util_class = new util(); + if ($util_class->beginsWith($videoUrl, "http://video.google.com/videoplay?")) { + return true; + } else { + return false; + } + } + + public function getGoogleVideoCode($videoUrl) + { + $params = explode("?docid=", $videoUrl); + $params2 = explode("&", $params[1]); + return $params2[0]; + } + + public function isMTVVideoUrl($videoUrl) + { + $util_class = new util(); + if ($util_class->beginsWith($videoUrl, "http://www.mtvmusic.com/video/?id=") || $util_class->beginsWith($videoUrl, "http://mtvmusic.com/video/?id=")) { + return true; + } else { + return false; + } + } + + public function getMTVVideoCode($videoUrl) + { + $params = explode("?id=", $videoUrl); + $params2 = explode("&", $params[1]); + return $params2[0]; + } + + public function isDailymotionVideo($videoUrl) + { + $util_class = new util(); + if ($util_class->beginsWith($videoUrl, "http://www.dailymotion.com/video/") || $util_class->beginsWith($videoUrl, "http://dailymotion.com/video/")) { + return true; + } else { + return false; + } + } + + public function getDailymotionVideoUrl($videoUrl) + { + $params = explode("video/", $videoUrl); + $params2 = explode("_", $params[1]); + return $params2[0]; + } + + public function isSlideSharePresentation($videoUrl) + { + $util_class = new util(); + if ($util_class->beginsWith($videoUrl, "[slideshare id=")) { + return true; + } else { + return false; + } + } + + public function getSlideSharePresentationCode($videoUrl) + { + $videoUrl = str_replace("[slideshare id=", "", $videoUrl); + $videoUrl = str_replace("&doc=", " ", $videoUrl); + $videoUrl = str_replace("&w=", " ", $videoUrl); + return explode(" ", $videoUrl); + } + + public function isVideo($url) + { + $util_class = new util(); + if ($util_class->isYoutubeVideo($url)) { + return true; + } elseif ($util_class->isVimeoVideo($url)) { + return true; + } elseif ($util_class->isDailymotionVideo($url)) { + return true; + } elseif ($util_class->isYahooVideo($url)) { + return true; + } elseif ($util_class->isSlideSharePresentation($url)) { + return true; + } elseif ($util_class->isGoogleVideoUrl($url)) { + return true; + } elseif ($util_class->isMTVVideoUrl($url)) { + return true; + } else { + return false; + } + } + + public function sendMail($to, $title, $body, $from) + { + $rp = trim($from); + $org = "gelato CMS"; + $mailer = "gelato CMS Mailer"; + + $head = ''; + $head .= "Content-Type: text/html \r\n"; + $head .= "Date: ". date('r'). " \r\n"; + $head .= "Return-Path: $rp \r\n"; + $head .= "From: $from \r\n"; + $head .= "Sender: $from \r\n"; + $head .= "Reply-To: $from \r\n"; + $head .= "Organization: $org \r\n"; + $head .= "X-Sender: $from \r\n"; + $head .= "X-Priority: 3 \r\n"; + $head .= "X-Mailer: $mailer \r\n"; + + $body = str_replace("\r\n", "\n", $body); + $body = str_replace("\n", "\r\n", $body); + + return @mail($to, $title, $body, $head); + } + + public function getThemes() + { + $themes_dir = "themes"; + $dirs = array(); + $path = getcwd(); + $dir = (substr(PHP_OS, 0, 3) == 'WIN') ? $path."\\".$themes_dir : $path."/".$themes_dir; + $dir = str_replace("admin\\", "", $dir); + $dir = str_replace("admin/", "", $dir); + $handle = opendir($dir); + $i=0; + while ($filename = readdir($handle)) { + if ($filename != "." && $filename != ".." && $filename != ".svn") { + $dirs[$i]=trim($filename); + $i++; + } + } + closedir($handle); + return $dirs; + } + + public function sanitizeName($name) + { + $name = preg_replace('/[\'"]/', '', $name); + $name = preg_replace('/[^a-zA-Z0-9]+/', '-', $name); + $name = trim($name, '-'); + $name = strtolower($name); + //HACK: We need to rework the regular expression to allow the dot + $ext = substr($name, strlen($name)-3, strlen($name)); + $body = substr($name, 0, strlen($name)-4); + + $name = $body.".".$ext; + + return $name; + } + + public function _file_get_contents($path) + { + $util_class = new util(); + // Modified function from: + // http://work.dokoku.net/Anieto2k/_file_get_contents.phps + // http://www.anieto2k.com/2007/02/09/file_get_contents-y-dreamhost/ + if (!preg_match('/^http/i', $path)) { + if ($fp = fopen($path, 'r')) { + return fread($fp, 1024); + } else { + return false; + } + } else { + if (extension_loaded('curl') && version_compare($util_class->get_curl_version(), '7.10.5', '>=')) { + $ch = curl_init(); + $timeout = 5; + curl_setopt($ch, CURLOPT_URL, $path); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); + $file_contents = curl_exec($ch); + curl_close($ch); + if (is_string($file_contents)) { + return $file_contents; + } else { + return false; + } + } else { + $data = parse_url($path); + if (!$data['host'] || $data['scheme'] != "http") { + return false; + } + + $f = @fsockopen($data['host'], ($data['port']) ? $data['port'] : 80, $e1, $e2, 3); + if (!$f) { + return false; + } + + $q = "GET " . $data['path'] . (isset($data['query'])?'?'.$data['query']:'') . " HTTP/1.1\r\n"; + $q .= "Host: " . $data['host'] . "\r\n"; + $q .= "Connection: close\r\n"; + $q .= "Referer: http://www.gelatocms.com/\r\n\r\n"; + + $recv = ""; + fwrite($f, $q); + while (!feof($f)) { + $recv .= fread($f, 1024); + } + + $request = $q; + $response = substr($recv, 0, strpos($recv, "\r\n\r\n")); + $body = substr($recv, strpos($recv, "\r\n\r\n") + 4); + + if (preg_match('/http\/1\\.[0|1] ([0-9]{3})/i', $response, $res)) { + if ($res[1][0] != "2") { + return false; + } + } else { + return false; + } + + if (preg_match('/transfer-encoding:\s*chunked/i', $response)) { + $tmp_body = $body; + $new = ""; + $exit = false; + while (!$exit) { + if (preg_match('/^([0-9a-f]+).*?\r\n/i', $tmp_body, $res)) { + $len = hexdec($res[1]); + if ($len == "0") { + $exit = true; + break; + } + $new .= substr($tmp_body, strlen($res[0]), $len); + $tmp_body = substr($tmp_body, strlen($res[0]) + $len + strlen("\r\n")); + } else { + $exit = true; + } + } + $body = $new; + } + return $body; + } + } + } + + public function get_curl_version() + { + $curl = 0; + if (is_array(curl_version())) { + $curl = curl_version(); + $curl = $curl['version']; + } else { + $curl = curl_version(); + $curl = explode(' ', $curl); + $curl = explode('/', $curl[0]); + $curl = $curl[1]; + } + return $curl; + } + + public function transform_offset($offset) + { + $sp = strpos($offset, ".")? explode(".", $offset) : false; + if (is_array($sp)) { + $minutes = strval($sp[1]); + $off_h = $sp[0]*3600; + $off_m = (($minutes*60)/100)*60; + $off = $off_h+$off_m; + } else { + $off = ($offset*3600); + } + return $off; + } + + public function getLangs() + { + $langs_dir = "languages"; + $dirs = array(); + $path = getcwd(); + $dir = (substr(PHP_OS, 0, 3) == 'WIN') ? $path."\\".$langs_dir : $path."/".$langs_dir; + $dir = str_replace("admin\\", "", $dir); + $dir = str_replace("admin/", "", $dir); + $i=0; + $cls_lang_dir = @ dir($dir); + while (($directory = $cls_lang_dir->read()) !== false) { + if ($directory != "." && $directory != "..") { + $dir2 = (substr(PHP_OS, 0, 3) == 'WIN') ? $path."\\".$langs_dir."\\".$directory : $path."/".$langs_dir."/".$directory; + $dir2 = str_replace("admin\\", "", $dir2); + $dir2 = str_replace("admin/", "", $dir2); + if (is_dir($dir2)) { + $cls_lang_dir2 = @ dir($dir2); + while (($directory2 = $cls_lang_dir2->read()) !== false) { + if ($directory2 != "." && $directory2 != "..") { + if (preg_match('|^\.+$|', $directory2)) { + continue; + } + if (preg_match('|\.mo$|', $directory2)) { + if (!in_array($directory2, $dirs)) { + $dirs[$directory]=$util_class->displayLanguage(trim($directory)); + $i++; + } + } + } + } + } + } + } + $dirs = array_unique($dirs); + return $dirs; + } + + public function removeBadTags($source, $secure=false) + { + $util_class = new util(); + if ($secure) { + $validTags ='
    '; + } else { + $validTags ='

    $footer_content
    "; - } - return ($this->force_code_block ? '
    ' : '') . - "$footer_content"; - } - else { - if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { - return "$footer_content"; - } - return ($this->force_code_block ? '' : '') . - "$footer_content"; - } - } - - /** - * Returns the footer content, formatted for output - * - * @return string The footer content, formatted for output - * @since 1.0.2 - * @access private - */ - function format_footer_content() { - $footer = $this->footer_content; - if ($footer) { - if ($this->header_type == GESHI_HEADER_PRE) { - $footer = str_replace("\n", '', $footer);; - } - $footer = $this->replace_keywords($footer); - - if ($this->use_classes) { - $attr = ' class="foot"'; - } - else { - $attr = " style=\"{$this->footer_content_style}\""; - } - return "$footer"; - } - } - - /** - * Replaces certain keywords in the header and footer with - * certain configuration values - * - * @param string The header or footer content to do replacement on - * @return string The header or footer with replaced keywords - * @since 1.0.2 - * @access private - */ - function replace_keywords($instr) { - $keywords = $replacements = array(); - - $keywords[] = '
      to have no effect at all if there are line numbers - // (
        s have margins that should be destroyed so all layout is - // controlled by the set_overall_style method, which works on the - //
         or 
        container). Additionally, set default styles for lines - if (!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) { - //$stylesheet .= "$selector, {$selector}ol, {$selector}ol li {margin: 0;}\n"; - $stylesheet .= "$selector.de1, $selector.de2 {{$this->code_style}}\n"; - } - - // Add overall styles - if (!$economy_mode || $this->overall_style != '') { - $stylesheet .= "$selector {{$this->overall_style}}\n"; - } - - // Add styles for links - foreach ($this->link_styles as $key => $style) { - if (!$economy_mode || $key == GESHI_LINK && $style != '') { - $stylesheet .= "{$selector}a:link {{$style}}\n"; - } - if (!$economy_mode || $key == GESHI_HOVER && $style != '') { - $stylesheet .= "{$selector}a:hover {{$style}}\n"; - } - if (!$economy_mode || $key == GESHI_ACTIVE && $style != '') { - $stylesheet .= "{$selector}a:active {{$style}}\n"; - } - if (!$economy_mode || $key == GESHI_VISITED && $style != '') { - $stylesheet .= "{$selector}a:visited {{$style}}\n"; - } - } - - // Header and footer - if (!$economy_mode || $this->header_content_style != '') { - $stylesheet .= "$selector.head {{$this->header_content_style}}\n"; - } - if (!$economy_mode || $this->footer_content_style != '') { - $stylesheet .= "$selector.foot {{$this->footer_content_style}}\n"; - } - - // Styles for important stuff - if (!$economy_mode || $this->important_styles != '') { - $stylesheet .= "$selector.imp {{$this->important_styles}}\n"; - } - - // Simple line number styles - if (!$economy_mode || ($this->line_numbers != GESHI_NO_LINE_NUMBERS && $this->line_style1 != '')) { - $stylesheet .= "{$selector}li, {$selector}li.li1 {{$this->line_style1}}\n"; - } - // If there is a style set for fancy line numbers, echo it out - if (!$economy_mode || ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS && $this->line_style2 != '')) { - $stylesheet .= "{$selector}li.li2 {{$this->line_style2}}\n"; - } - - foreach ($this->language_data['STYLES']['KEYWORDS'] as $group => $styles) { - if (!$economy_mode || ($economy_mode && $styles != '') && - (isset($this->lexic_permissions['KEYWORDS'][$group]) && - $this->lexic_permissions['KEYWORDS'][$group])) { - $stylesheet .= "$selector.kw$group {{$styles}}\n"; - } - } - foreach ($this->language_data['STYLES']['COMMENTS'] as $group => $styles) { - if (!$economy_mode || ($economy_mode && $styles != '') && - (isset($this->lexic_permissions['COMMENTS'][$group]) && - $this->lexic_permissions['COMMENTS'][$group])) { - $stylesheet .= "$selector.co$group {{$styles}}\n"; - } - } - foreach ($this->language_data['STYLES']['ESCAPE_CHAR'] as $group => $styles) { - if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode && - !$this->lexic_permissions['ESCAPE_CHAR'])) { - $stylesheet .= "$selector.es$group {{$styles}}\n"; - } - } - foreach ($this->language_data['STYLES']['BRACKETS'] as $group => $styles) { - if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode && - !$this->lexic_permissions['BRACKETS'])) { - $stylesheet .= "$selector.br$group {{$styles}}\n"; - } - } - foreach ($this->language_data['STYLES']['SYMBOLS'] as $group => $styles) { - if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode && - !$this->lexic_permissions['SYMBOLS'])) { - $stylesheet .= "$selector.sy$group {{$styles}}\n"; - } - } - foreach ($this->language_data['STYLES']['STRINGS'] as $group => $styles) { - if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode && - !$this->lexic_permissions['STRINGS'])) { - $stylesheet .= "$selector.st$group {{$styles}}\n"; - } - } - foreach ($this->language_data['STYLES']['NUMBERS'] as $group => $styles) { - if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode && - !$this->lexic_permissions['NUMBERS'])) { - $stylesheet .= "$selector.nu$group {{$styles}}\n"; - } - } - foreach ($this->language_data['STYLES']['METHODS'] as $group => $styles) { - if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode && - !$this->lexic_permissions['METHODS'])) { - $stylesheet .= "$selector.me$group {{$styles}}\n"; - } - } - foreach ($this->language_data['STYLES']['SCRIPT'] as $group => $styles) { - if (!$economy_mode || !($economy_mode && $styles == '')) { - $stylesheet .= "$selector.sc$group {{$styles}}\n"; - } - } - foreach ($this->language_data['STYLES']['REGEXPS'] as $group => $styles) { - if (!$economy_mode || ($economy_mode && $styles != '') && - (isset($this->lexic_permissions['REGEXPS'][$group]) && - $this->lexic_permissions['REGEXPS'][$group])) { - if (is_array($this->language_data['REGEXPS'][$group]) && - array_key_exists(GESHI_CLASS, - $this->language_data['REGEXPS'][$group])) { - $stylesheet .= "$selector."; - $stylesheet .= $this->language_data['REGEXPS'][$group][GESHI_CLASS]; - $stylesheet .= " {{$styles}}\n"; - } - else { - $stylesheet .= "$selector.re$group {{$styles}}\n"; - } - } - } - // Styles for lines being highlighted extra - if (!$economy_mode || (count($this->highlight_extra_lines)!=count($this->highlight_extra_lines_styles))) { - $stylesheet .= "{$selector}.ln-xtra, {$selector}li.ln-xtra, {$selector}div.ln-xtra {{$this->highlight_extra_lines_style}}\n"; - } - foreach ($this->highlight_extra_lines_styles as $lineid => $linestyle) { - $stylesheet .= "{$selector}.lx$lineid, {$selector}li.lx$lineid, {$selector}div.lx$lineid {{$linestyle}}\n"; - } - - return $stylesheet; - } - - /** - * Get's the style that is used for the specified line - * - * @param int The line number information is requested for - * @access private - * @since 1.0.7.21 - */ - function get_line_style($line) { - //$style = null; - $style = null; - if (array_key_exists($line, $this->highlight_extra_lines_styles)) { - $style = $this->highlight_extra_lines_styles[$line]; - } else { // if no "extra" style assigned - $style = $this->highlight_extra_lines_style; - } - - return $style; - } -} // End Class GeSHi - - -if (!function_exists('geshi_highlight')) { - /** - * Easy way to highlight stuff. Behaves just like highlight_string - * - * @param string The code to highlight - * @param string The language to highlight the code in - * @param string The path to the language files. You can leave this blank if you need - * as from version 1.0.7 the path should be automatically detected - * @param boolean Whether to return the result or to echo - * @return string The code highlighted (if $return is true) - * @since 1.0.2 - */ - function geshi_highlight($string, $language, $path = null, $return = false) { - $geshi = new GeSHi($string, $language, $path); - $geshi->set_header_type(GESHI_HEADER_NONE); - if ($return) { - return '' . $geshi->parse_code() . ''; - } - echo '' . $geshi->parse_code() . ''; - if ($geshi->error()) { - return false; - } - return true; - } -} - -?> +, Benny Baumann + * @copyright (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2008 Benny Baumann + * @license http://gnu.org/copyleft/gpl.html GNU GPL + * + */ + +// +// GeSHi Constants +// You should use these constant names in your programs instead of +// their values - you never know when a value may change in a future +// version +// + +/** The version of this GeSHi file */ +define('GESHI_VERSION', '1.0.7.21'); + +// Define the root directory for the GeSHi code tree +if (!defined('GESHI_ROOT')) { + /** The root directory for GeSHi */ + define('GESHI_ROOT', dirname(__FILE__) . DIRECTORY_SEPARATOR); +} +/** The language file directory for GeSHi + @access private */ +define('GESHI_LANG_ROOT', dirname(__FILE__) . DIRECTORY_SEPARATOR); + + +// Line numbers - use with enable_line_numbers() +/** Use no line numbers when building the result */ +define('GESHI_NO_LINE_NUMBERS', 0); +/** Use normal line numbers when building the result */ +define('GESHI_NORMAL_LINE_NUMBERS', 1); +/** Use fancy line numbers when building the result */ +define('GESHI_FANCY_LINE_NUMBERS', 2); + +// Container HTML type +/** Use nothing to surround the source */ +define('GESHI_HEADER_NONE', 0); +/** Use a "div" to surround the source */ +define('GESHI_HEADER_DIV', 1); +/** Use a "pre" to surround the source */ +define('GESHI_HEADER_PRE', 2); + +// Capatalisation constants +/** Lowercase keywords found */ +define('GESHI_CAPS_NO_CHANGE', 0); +/** Uppercase keywords found */ +define('GESHI_CAPS_UPPER', 1); +/** Leave keywords found as the case that they are */ +define('GESHI_CAPS_LOWER', 2); + +// Link style constants +/** Links in the source in the :link state */ +define('GESHI_LINK', 0); +/** Links in the source in the :hover state */ +define('GESHI_HOVER', 1); +/** Links in the source in the :active state */ +define('GESHI_ACTIVE', 2); +/** Links in the source in the :visited state */ +define('GESHI_VISITED', 3); + +// Important string starter/finisher +// Note that if you change these, they should be as-is: i.e., don't +// write them as if they had been run through htmlentities() +/** The starter for important parts of the source */ +define('GESHI_START_IMPORTANT', ''); +/** The ender for important parts of the source */ +define('GESHI_END_IMPORTANT', ''); + +/**#@+ + * @access private + */ +// When strict mode applies for a language +/** Strict mode never applies (this is the most common) */ +define('GESHI_NEVER', 0); +/** Strict mode *might* apply, and can be enabled or + disabled by {@link GeSHi::enable_strict_mode()} */ +define('GESHI_MAYBE', 1); +/** Strict mode always applies */ +define('GESHI_ALWAYS', 2); + +// Advanced regexp handling constants, used in language files +/** The key of the regex array defining what to search for */ +define('GESHI_SEARCH', 0); +/** The key of the regex array defining what bracket group in a + matched search to use as a replacement */ +define('GESHI_REPLACE', 1); +/** The key of the regex array defining any modifiers to the regular expression */ +define('GESHI_MODIFIERS', 2); +/** The key of the regex array defining what bracket group in a + matched search to put before the replacement */ +define('GESHI_BEFORE', 3); +/** The key of the regex array defining what bracket group in a + matched search to put after the replacement */ +define('GESHI_AFTER', 4); +/** The key of the regex array defining a custom keyword to use + for this regexp's html tag class */ +define('GESHI_CLASS', 5); + +/** Used in language files to mark comments */ +define('GESHI_COMMENTS', 0); + +// Error detection - use these to analyse faults +/** No sourcecode to highlight was specified + * @deprecated + */ +define('GESHI_ERROR_NO_INPUT', 1); +/** The language specified does not exist */ +define('GESHI_ERROR_NO_SUCH_LANG', 2); +/** GeSHi could not open a file for reading (generally a language file) */ +define('GESHI_ERROR_FILE_NOT_READABLE', 3); +/** The header type passed to {@link GeSHi::set_header_type()} was invalid */ +define('GESHI_ERROR_INVALID_HEADER_TYPE', 4); +/** The line number type passed to {@link GeSHi::enable_line_numbers()} was invalid */ +define('GESHI_ERROR_INVALID_LINE_NUMBER_TYPE', 5); +/**#@-*/ + + +/** + * The GeSHi Class. + * + * Please refer to the documentation for GeSHi 1.0.X that is available + * at http://qbnz.com/highlighter/documentation.php for more information + * about how to use this class. + * + * @package geshi + * @author Nigel McNie , Benny Baumann + * @copyright (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2008 Benny Baumann + */ +class GeSHi +{ + /**#@+ + * @access private + */ + /** + * The source code to highlight + * @var string + */ + public $source = ''; + + /** + * The language to use when highlighting + * @var string + */ + public $language = ''; + + /** + * The data for the language used + * @var array + */ + public $language_data = array(); + + /** + * The path to the language files + * @var string + */ + public $language_path = GESHI_LANG_ROOT; + + /** + * The error message associated with an error + * @var string + * @todo check err reporting works + */ + public $error = false; + + /** + * Possible error messages + * @var array + */ + public $error_messages = array( + GESHI_ERROR_NO_SUCH_LANG => 'GeSHi could not find the language {LANGUAGE} (using path {PATH})', + GESHI_ERROR_FILE_NOT_READABLE => 'The file specified for load_from_file was not readable', + GESHI_ERROR_INVALID_HEADER_TYPE => 'The header type specified is invalid', + GESHI_ERROR_INVALID_LINE_NUMBER_TYPE => 'The line number type specified is invalid' + ); + + /** + * Whether highlighting is strict or not + * @var boolean + */ + public $strict_mode = false; + + /** + * Whether to use CSS classes in output + * @var boolean + */ + public $use_classes = false; + + /** + * The type of header to use. Can be one of the following + * values: + * + * - GESHI_HEADER_PRE: Source is outputted in a "pre" HTML element. + * - GESHI_HEADER_DIV: Source is outputted in a "div" HTML element. + * - GESHI_HEADER_NONE: No header is outputted. + * + * @var int + */ + public $header_type = GESHI_HEADER_PRE; + + /** + * Array of permissions for which lexics should be highlighted + * @var array + */ + public $lexic_permissions = array( + 'KEYWORDS' => array(), + 'COMMENTS' => array('MULTI' => true), + 'REGEXPS' => array(), + 'ESCAPE_CHAR' => true, + 'BRACKETS' => true, + 'SYMBOLS' => false, + 'STRINGS' => true, + 'NUMBERS' => true, + 'METHODS' => true, + 'SCRIPT' => true + ); + + /** + * The time it took to parse the code + * @var double + */ + public $time = 0; + + /** + * The content of the header block + * @var string + */ + public $header_content = ''; + + /** + * The content of the footer block + * @var string + */ + public $footer_content = ''; + + /** + * The style of the header block + * @var string + */ + public $header_content_style = ''; + + /** + * The style of the footer block + * @var string + */ + public $footer_content_style = ''; + + /** + * Tells if a block around the highlighted source should be forced + * if not using line numbering + * @var boolean + */ + public $force_code_block = false; + + /** + * The styles for hyperlinks in the code + * @var array + */ + public $link_styles = array(); + + /** + * Whether important blocks should be recognised or not + * @var boolean + * @deprecated + * @todo REMOVE THIS FUNCTIONALITY! + */ + public $enable_important_blocks = false; + + /** + * Styles for important parts of the code + * @var string + * @deprecated + * @todo As above - rethink the whole idea of important blocks as it is buggy and + * will be hard to implement in 1.2 + */ + public $important_styles = 'font-weight: bold; color: red;'; // Styles for important parts of the code + + /** + * Whether CSS IDs should be added to the code + * @var boolean + */ + public $add_ids = false; + + /** + * Lines that should be highlighted extra + * @var array + */ + public $highlight_extra_lines = array(); + + /** + * Styles of lines that should be highlighted extra + * @var array + */ + public $highlight_extra_lines_styles = array(); + + /** + * Styles of extra-highlighted lines + * @var string + */ + public $highlight_extra_lines_style = 'color: #cc0; background-color: #ffc;'; + + /** + * The line ending + * If null, nl2br() will be used on the result string. + * Otherwise, all instances of \n will be replaced with $line_ending + * @var string + */ + public $line_ending = null; + + /** + * Number at which line numbers should start at + * @var int + */ + public $line_numbers_start = 1; + + /** + * The overall style for this code block + * @var string + */ + public $overall_style = ''; + + /** + * The style for the actual code + * @var string + */ + public $code_style = 'font-family: \'Courier New\', Courier, monospace; font-weight: normal;'; + + /** + * The overall class for this code block + * @var string + */ + public $overall_class = ''; + + /** + * The overall ID for this code block + * @var string + */ + public $overall_id = ''; + + /** + * Line number styles + * @var string + */ + public $line_style1 = 'font-family: \'Courier New\', Courier, monospace; color: black; font-weight: normal; font-style: normal;'; + + /** + * Line number styles for fancy lines + * @var string + */ + public $line_style2 = 'font-weight: bold;'; + + /** + * Flag for how line nubmers are displayed + * @var boolean + */ + public $line_numbers = GESHI_NO_LINE_NUMBERS; + + /** + * The "nth" value for fancy line highlighting + * @var int + */ + public $line_nth_row = 0; + + /** + * The size of tab stops + * @var int + */ + public $tab_width = 8; + + /** + * Should we use language-defined tab stop widths? + * @var int + */ + public $use_language_tab_width = false; + + /** + * Default target for keyword links + * @var string + */ + public $link_target = ''; + + /** + * The encoding to use for entity encoding + * NOTE: no longer used + * @var string + */ + public $encoding = 'ISO-8859-1'; + + /** + * Should keywords be linked? + * @var boolean + */ + public $keyword_links = true; + + /**#@-*/ + + /** + * Creates a new GeSHi object, with source and language + * + * @param string The source code to highlight + * @param string The language to highlight the source with + * @param string The path to the language file directory. This + * is deprecated! I've backported the auto path + * detection from the 1.1.X dev branch, so now it + * should be automatically set correctly. If you have + * renamed the language directory however, you will + * still need to set the path using this parameter or + * {@link GeSHi::set_language_path()} + * @since 1.0.0 + */ + public function GeSHi($source, $language, $path = '') + { + $this->set_source($source); + $this->set_language_path($path); + $this->set_language($language); + } + + /** + * Returns an error message associated with the last GeSHi operation, + * or false if no error has occured + * + * @return string|false An error message if there has been an error, else false + * @since 1.0.0 + */ + public function error() + { + if ($this->error) { + $msg = $this->error_messages[$this->error]; + $debug_tpl_vars = array( + '{LANGUAGE}' => $this->language, + '{PATH}' => $this->language_path + ); + foreach ($debug_tpl_vars as $tpl => $var) { + $msg = str_replace($tpl, $var, $msg); + } + return "
        GeSHi Error: $msg (code $this->error)
        "; + } + return false; + } + + /** + * Gets a human-readable language name (thanks to Simon Patterson + * for the idea :)) + * + * @return string The name for the current language + * @since 1.0.2 + */ + public function get_language_name() + { + if (GESHI_ERROR_NO_SUCH_LANG == $this->error) { + return $this->language_data['LANG_NAME'] . ' (Unknown Language)'; + } + return $this->language_data['LANG_NAME']; + } + + /** + * Sets the source code for this object + * + * @param string The source code to highlight + * @since 1.0.0 + */ + public function set_source($source) + { + $this->source = $source; + $this->highlight_extra_lines = array(); + } + + /** + * Sets the language for this object + * + * @param string The name of the language to use + * @since 1.0.0 + */ + public function set_language($language) + { + $this->error = false; + $this->strict_mode = GESHI_NEVER; + + $language = preg_replace('#[^a-zA-Z0-9\-_]#', '', $language); + $this->language = strtolower($language); + + $file_name = $this->language_path . $this->language . '.php'; + + if (!is_readable($file_name)) { + $this->error = GESHI_ERROR_NO_SUCH_LANG; + return; + } + // Load the language for parsing + $this->load_language($file_name); + } + + /** + * Sets the path to the directory containing the language files. Note + * that this path is relative to the directory of the script that included + * geshi.php, NOT geshi.php itself. + * + * @param string The path to the language directory + * @since 1.0.0 + * @deprecated The path to the language files should now be automatically + * detected, so this method should no longer be needed. The + * 1.1.X branch handles manual setting of the path differently + * so this method will disappear in 1.2.0. + */ + public function set_language_path($path) + { + if ($path) { + $this->language_path = ('/' == substr($path, strlen($path) - 1, 1)) ? $path : $path . '/'; + $this->set_language($this->language); // otherwise set_language_path has no effect + } + } + + /** + * Sets the type of header to be used. + * + * If GESHI_HEADER_DIV is used, the code is surrounded in a "div".This + * means more source code but more control over tab width and line-wrapping. + * GESHI_HEADER_PRE means that a "pre" is used - less source, but less + * control. Default is GESHI_HEADER_PRE. + * + * From 1.0.7.2, you can use GESHI_HEADER_NONE to specify that no header code + * should be outputted. + * + * @param int The type of header to be used + * @since 1.0.0 + */ + public function set_header_type($type) + { + if (GESHI_HEADER_DIV != $type && GESHI_HEADER_PRE != $type && GESHI_HEADER_NONE != $type) { + $this->error = GESHI_ERROR_INVALID_HEADER_TYPE; + return; + } + $this->header_type = $type; + // Set a default overall style if the header is a
        + if (GESHI_HEADER_DIV == $type && !$this->overall_style) { + $this->overall_style = 'font-family: monospace;'; + } + } + + /** + * Sets the styles for the code that will be outputted + * when this object is parsed. The style should be a + * string of valid stylesheet declarations + * + * @param string The overall style for the outputted code block + * @param boolean Whether to merge the styles with the current styles or not + * @since 1.0.0 + */ + public function set_overall_style($style, $preserve_defaults = false) + { + if (!$preserve_defaults) { + $this->overall_style = $style; + } else { + $this->overall_style .= $style; + } + } + + /** + * Sets the overall classname for this block of code. This + * class can then be used in a stylesheet to style this object's + * output + * + * @param string The class name to use for this block of code + * @since 1.0.0 + */ + public function set_overall_class($class) + { + $this->overall_class = $class; + } + + /** + * Sets the overall id for this block of code. This id can then + * be used in a stylesheet to style this object's output + * + * @param string The ID to use for this block of code + * @since 1.0.0 + */ + public function set_overall_id($id) + { + $this->overall_id = $id; + } + + /** + * Sets whether CSS classes should be used to highlight the source. Default + * is off, calling this method with no arguments will turn it on + * + * @param boolean Whether to turn classes on or not + * @since 1.0.0 + */ + public function enable_classes($flag = true) + { + $this->use_classes = ($flag) ? true : false; + } + + /** + * Sets the style for the actual code. This should be a string + * containing valid stylesheet declarations. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * Note: Use this method to override any style changes you made to + * the line numbers if you are using line numbers, else the line of + * code will have the same style as the line number! Consult the + * GeSHi documentation for more information about this. + * + * @param string The style to use for actual code + * @param boolean Whether to merge the current styles with the new styles + * @since 1.0.2 + */ + public function set_code_style($style, $preserve_defaults = false) + { + if (!$preserve_defaults) { + $this->code_style = $style; + } else { + $this->code_style .= $style; + } + } + + /** + * Sets the styles for the line numbers. + * + * @param string The style for the line numbers that are "normal" + * @param string|boolean If a string, this is the style of the line + * numbers that are "fancy", otherwise if boolean then this + * defines whether the normal styles should be merged with the + * new normal styles or not + * @param boolean If set, is the flag for whether to merge the "fancy" + * styles with the current styles or not + * @since 1.0.2 + */ + public function set_line_style($style1, $style2 = '', $preserve_defaults = false) + { + if (is_bool($style2)) { + $preserve_defaults = $style2; + $style2 = ''; + } + if (!$preserve_defaults) { + $this->line_style1 = $style1; + $this->line_style2 = $style2; + } else { + $this->line_style1 .= $style1; + $this->line_style2 .= $style2; + } + } + + /** + * Sets whether line numbers should be displayed. + * + * Valid values for the first parameter are: + * + * - GESHI_NO_LINE_NUMBERS: Line numbers will not be displayed + * - GESHI_NORMAL_LINE_NUMBERS: Line numbers will be displayed + * - GESHI_FANCY_LINE_NUMBERS: Fancy line numbers will be displayed + * + * For fancy line numbers, the second parameter is used to signal which lines + * are to be fancy. For example, if the value of this parameter is 5 then every + * 5th line will be fancy. + * + * @param int How line numbers should be displayed + * @param int Defines which lines are fancy + * @since 1.0.0 + */ + public function enable_line_numbers($flag, $nth_row = 5) + { + if (GESHI_NO_LINE_NUMBERS != $flag && GESHI_NORMAL_LINE_NUMBERS != $flag + && GESHI_FANCY_LINE_NUMBERS != $flag) { + $this->error = GESHI_ERROR_INVALID_LINE_NUMBER_TYPE; + } + $this->line_numbers = $flag; + $this->line_nth_row = $nth_row; + } + + /** + * Sets the style for a keyword group. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param int The key of the keyword group to change the styles of + * @param string The style to make the keywords + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @since 1.0.0 + */ + public function set_keyword_group_style($key, $style, $preserve_defaults = false) + { + if (!$preserve_defaults) { + $this->language_data['STYLES']['KEYWORDS'][$key] = $style; + } else { + $this->language_data['STYLES']['KEYWORDS'][$key] .= $style; + } + } + + /** + * Turns highlighting on/off for a keyword group + * + * @param int The key of the keyword group to turn on or off + * @param boolean Whether to turn highlighting for that group on or off + * @since 1.0.0 + */ + public function set_keyword_group_highlighting($key, $flag = true) + { + $this->lexic_permissions['KEYWORDS'][$key] = ($flag) ? true : false; + } + + /** + * Sets the styles for comment groups. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param int The key of the comment group to change the styles of + * @param string The style to make the comments + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @since 1.0.0 + */ + public function set_comments_style($key, $style, $preserve_defaults = false) + { + if (!$preserve_defaults) { + $this->language_data['STYLES']['COMMENTS'][$key] = $style; + } else { + $this->language_data['STYLES']['COMMENTS'][$key] .= $style; + } + } + + /** + * Turns highlighting on/off for comment groups + * + * @param int The key of the comment group to turn on or off + * @param boolean Whether to turn highlighting for that group on or off + * @since 1.0.0 + */ + public function set_comments_highlighting($key, $flag = true) + { + $this->lexic_permissions['COMMENTS'][$key] = ($flag) ? true : false; + } + + /** + * Sets the styles for escaped characters. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param string The style to make the escape characters + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @since 1.0.0 + */ + public function set_escape_characters_style($style, $preserve_defaults = false) + { + if (!$preserve_defaults) { + $this->language_data['STYLES']['ESCAPE_CHAR'][0] = $style; + } else { + $this->language_data['STYLES']['ESCAPE_CHAR'][0] .= $style; + } + } + + /** + * Turns highlighting on/off for escaped characters + * + * @param boolean Whether to turn highlighting for escape characters on or off + * @since 1.0.0 + */ + public function set_escape_characters_highlighting($flag = true) + { + $this->lexic_permissions['ESCAPE_CHAR'] = ($flag) ? true : false; + } + + /** + * Sets the styles for brackets. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * This method is DEPRECATED: use set_symbols_style instead. + * This method will be removed in 1.2.X + * + * @param string The style to make the brackets + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @since 1.0.0 + * @deprecated In favour of set_symbols_style + */ + public function set_brackets_style($style, $preserve_defaults = false) + { + if (!$preserve_defaults) { + $this->language_data['STYLES']['BRACKETS'][0] = $style; + } else { + $this->language_data['STYLES']['BRACKETS'][0] .= $style; + } + } + + /** + * Turns highlighting on/off for brackets + * + * This method is DEPRECATED: use set_symbols_highlighting instead. + * This method will be remove in 1.2.X + * + * @param boolean Whether to turn highlighting for brackets on or off + * @since 1.0.0 + * @deprecated In favour of set_symbols_highlighting + */ + public function set_brackets_highlighting($flag) + { + $this->lexic_permissions['BRACKETS'] = ($flag) ? true : false; + } + + /** + * Sets the styles for symbols. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param string The style to make the symbols + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @param int Tells the group of symbols for which style should be set. + * @since 1.0.1 + */ + public function set_symbols_style($style, $preserve_defaults = false, $group = 0) + { + if (!$preserve_defaults) { + $this->language_data['STYLES']['SYMBOLS'][$group] = $style; + } else { + $this->language_data['STYLES']['SYMBOLS'][$group] .= $style; + } + // For backward compatibility + if (0 == $group) { + $this->set_brackets_style($style, $preserve_defaults); + } + } + + /** + * Turns highlighting on/off for symbols + * + * @param boolean Whether to turn highlighting for symbols on or off + * @since 1.0.0 + */ + public function set_symbols_highlighting($flag) + { + $this->lexic_permissions['SYMBOLS'] = ($flag) ? true : false; + // For backward compatibility + $this->set_brackets_highlighting($flag); + } + + /** + * Sets the styles for strings. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param string The style to make the escape characters + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @since 1.0.0 + */ + public function set_strings_style($style, $preserve_defaults = false) + { + if (!$preserve_defaults) { + $this->language_data['STYLES']['STRINGS'][0] = $style; + } else { + $this->language_data['STYLES']['STRINGS'][0] .= $style; + } + } + + /** + * Turns highlighting on/off for strings + * + * @param boolean Whether to turn highlighting for strings on or off + * @since 1.0.0 + */ + public function set_strings_highlighting($flag) + { + $this->lexic_permissions['STRINGS'] = ($flag) ? true : false; + } + + /** + * Sets the styles for numbers. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param string The style to make the numbers + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @since 1.0.0 + */ + public function set_numbers_style($style, $preserve_defaults = false) + { + if (!$preserve_defaults) { + $this->language_data['STYLES']['NUMBERS'][0] = $style; + } else { + $this->language_data['STYLES']['NUMBERS'][0] .= $style; + } + } + + /** + * Turns highlighting on/off for numbers + * + * @param boolean Whether to turn highlighting for numbers on or off + * @since 1.0.0 + */ + public function set_numbers_highlighting($flag) + { + $this->lexic_permissions['NUMBERS'] = ($flag) ? true : false; + } + + /** + * Sets the styles for methods. $key is a number that references the + * appropriate "object splitter" - see the language file for the language + * you are highlighting to get this number. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param int The key of the object splitter to change the styles of + * @param string The style to make the methods + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @since 1.0.0 + */ + public function set_methods_style($key, $style, $preserve_defaults = false) + { + if (!$preserve_defaults) { + $this->language_data['STYLES']['METHODS'][$key] = $style; + } else { + $this->language_data['STYLES']['METHODS'][$key] .= $style; + } + } + + /** + * Turns highlighting on/off for methods + * + * @param boolean Whether to turn highlighting for methods on or off + * @since 1.0.0 + */ + public function set_methods_highlighting($flag) + { + $this->lexic_permissions['METHODS'] = ($flag) ? true : false; + } + + /** + * Sets the styles for regexps. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param string The style to make the regular expression matches + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @since 1.0.0 + */ + public function set_regexps_style($key, $style, $preserve_defaults = false) + { + if (!$preserve_defaults) { + $this->language_data['STYLES']['REGEXPS'][$key] = $style; + } else { + $this->language_data['STYLES']['REGEXPS'][$key] .= $style; + } + } + + /** + * Turns highlighting on/off for regexps + * + * @param int The key of the regular expression group to turn on or off + * @param boolean Whether to turn highlighting for the regular expression group on or off + * @since 1.0.0 + */ + public function set_regexps_highlighting($key, $flag) + { + $this->lexic_permissions['REGEXPS'][$key] = ($flag) ? true : false; + } + + /** + * Sets whether a set of keywords are checked for in a case sensitive manner + * + * @param int The key of the keyword group to change the case sensitivity of + * @param boolean Whether to check in a case sensitive manner or not + * @since 1.0.0 + */ + public function set_case_sensitivity($key, $case) + { + $this->language_data['CASE_SENSITIVE'][$key] = ($case) ? true : false; + } + + /** + * Sets the case that keywords should use when found. Use the constants: + * + * - GESHI_CAPS_NO_CHANGE: leave keywords as-is + * - GESHI_CAPS_UPPER: convert all keywords to uppercase where found + * - GESHI_CAPS_LOWER: convert all keywords to lowercase where found + * + * @param int A constant specifying what to do with matched keywords + * @since 1.0.1 + */ + public function set_case_keywords($case) + { + if (in_array($case, array( + GESHI_CAPS_NO_CHANGE, GESHI_CAPS_UPPER, GESHI_CAPS_LOWER))) { + $this->language_data['CASE_KEYWORDS'] = $case; + } + } + + /** + * Sets how many spaces a tab is substituted for + * + * Widths below zero are ignored + * + * @param int The tab width + * @since 1.0.0 + */ + public function set_tab_width($width) + { + $this->tab_width = intval($width); + //Check if it fit's the constraints: + if ($this->tab_width < 1) { + //Return it to the default + $this->tab_width = 8; + } + } + + /** + * Sets whether or not to use tab-stop width specifed by language + * + * @param boolean Whether to use language-specific tab-stop widths + * @since 1.0.7.20 + */ + public function set_use_language_tab_width($use) + { + $this->use_language_tab_width = (bool) $use; + } + + /** + * Returns the tab width to use, based on the current language and user + * preference + * + * @return int Tab width + * @since 1.0.7.20 + */ + public function get_real_tab_width() + { + if (!$this->use_language_tab_width || !isset($this->language_data['TAB_WIDTH'])) { + return $this->tab_width; + } else { + return $this->language_data['TAB_WIDTH']; + } + } + + /** + * Enables/disables strict highlighting. Default is off, calling this + * method without parameters will turn it on. See documentation + * for more details on strict mode and where to use it. + * + * @param boolean Whether to enable strict mode or not + * @since 1.0.0 + */ + public function enable_strict_mode($mode = true) + { + if (GESHI_MAYBE == $this->language_data['STRICT_MODE_APPLIES']) { + $this->strict_mode = ($mode) ? true : false; + } + } + + /** + * Disables all highlighting + * + * @since 1.0.0 + * @todo Rewrite with array traversal + * @deprecated In favour of enable_highlighting + */ + public function disable_highlighting() + { + $this->enable_highlighting(false); + } + + /** + * Enables all highlighting + * + * The optional flag parameter was added in version 1.0.7.21 and can be used + * to enable (true) or disable (false) all highlighting. + * + * @since 1.0.0 + * @param boolean A flag specifying whether to enable or disable all highlighting + * @todo Rewrite with array traversal + */ + public function enable_highlighting($flag = true) + { + $flag = $flag ? true : false; + foreach ($this->lexic_permissions as $key => $value) { + if (is_array($value)) { + foreach ($value as $k => $v) { + $this->lexic_permissions[$key][$k] = $flag; + } + } else { + $this->lexic_permissions[$key] = $flag; + } + } + // Context blocks + $this->enable_important_blocks = $flag; + } + + /** + * Given a file extension, this method returns either a valid geshi language + * name, or the empty string if it couldn't be found + * + * @param string The extension to get a language name for + * @param array A lookup array to use instead of the default one + * @since 1.0.5 + * @todo Re-think about how this method works (maybe make it private and/or make it + * a extension->lang lookup?) + * @todo static? + */ + public function get_language_name_from_extension($extension, $lookup = array()) + { + if (!is_array($lookup) || !count($lookup)) { + $lookup = array( + 'actionscript' => array('as'), + 'ada' => array('a', 'ada', 'adb', 'ads'), + 'apache' => array('conf'), + 'asm' => array('ash', 'asm'), + 'asp' => array('asp'), + 'bash' => array('sh'), + 'c' => array('c', 'h'), + 'c_mac' => array('c', 'h'), + 'caddcl' => array(), + 'cadlisp' => array(), + 'cdfg' => array('cdfg'), + 'cpp' => array('cpp', 'h', 'hpp'), + 'csharp' => array(), + 'css' => array('css'), + 'delphi' => array('dpk', 'dpr', 'pp', 'pas'), + 'dos' => array('bat', 'cmd'), + 'html4strict' => array('html', 'htm'), + 'java' => array('java'), + 'javascript' => array('js'), + 'lisp' => array('lisp'), + 'lua' => array('lua'), + 'mpasm' => array(), + 'nsis' => array(), + 'objc' => array(), + 'oobas' => array(), + 'oracle8' => array(), + 'pascal' => array(), + 'perl' => array('pl', 'pm'), + 'php' => array('php', 'php5', 'phtml', 'phps'), + 'python' => array('py'), + 'qbasic' => array('bi'), + 'sas' => array('sas'), + 'smarty' => array(), + 'vb' => array('bas'), + 'vbnet' => array(), + 'visualfoxpro' => array(), + 'xml' => array('xml') + ); + } + + foreach ($lookup as $lang => $extensions) { + foreach ($extensions as $ext) { + if ($ext == $extension) { + return $lang; + } + } + } + return ''; + } + + /** + * Given a file name, this method loads its contents in, and attempts + * to set the language automatically. An optional lookup table can be + * passed for looking up the language name. If not specified a default + * table is used + * + * The language table is in the form + *
        array(
        +     *   'lang_name' => array('extension', 'extension', ...),
        +     *   'lang_name' ...
        +     * );
        + * + * @param string The filename to load the source from + * @param array A lookup array to use instead of the default one + * @todo Complete rethink of this and above method + * @since 1.0.5 + */ + public function load_from_file($file_name, $lookup = array()) + { + if (is_readable($file_name)) { + $this->set_source(implode('', file($file_name))); + $this->set_language($this->get_language_name_from_extension(substr(strrchr($file_name, '.'), 1), $lookup)); + } else { + $this->error = GESHI_ERROR_FILE_NOT_READABLE; + } + } + + /** + * Adds a keyword to a keyword group for highlighting + * + * @param int The key of the keyword group to add the keyword to + * @param string The word to add to the keyword group + * @since 1.0.0 + */ + public function add_keyword($key, $word) + { + $this->language_data['KEYWORDS'][$key][] = $word; + } + + /** + * Removes a keyword from a keyword group + * + * @param int The key of the keyword group to remove the keyword from + * @param string The word to remove from the keyword group + * @since 1.0.0 + */ + public function remove_keyword($key, $word) + { + $this->language_data['KEYWORDS'][$key] = + array_diff($this->language_data['KEYWORDS'][$key], array($word)); + } + + /** + * Creates a new keyword group + * + * @param int The key of the keyword group to create + * @param string The styles for the keyword group + * @param boolean Whether the keyword group is case sensitive ornot + * @param array The words to use for the keyword group + * @since 1.0.0 + */ + public function add_keyword_group($key, $styles, $case_sensitive = true, $words = array()) + { + $words = (array) $words; + $this->language_data['KEYWORDS'][$key] = $words; + $this->lexic_permissions['KEYWORDS'][$key] = true; + $this->language_data['CASE_SENSITIVE'][$key] = $case_sensitive; + $this->language_data['STYLES']['KEYWORDS'][$key] = $styles; + } + + /** + * Removes a keyword group + * + * @param int The key of the keyword group to remove + * @since 1.0.0 + */ + public function remove_keyword_group($key) + { + unset($this->language_data['KEYWORDS'][$key]); + unset($this->lexic_permissions['KEYWORDS'][$key]); + unset($this->language_data['CASE_SENSITIVE'][$key]); + unset($this->language_data['STYLES']['KEYWORDS'][$key]); + } + + /** + * Sets the content of the header block + * + * @param string The content of the header block + * @since 1.0.2 + */ + public function set_header_content($content) + { + $this->header_content = $content; + } + + /** + * Sets the content of the footer block + * + * @param string The content of the footer block + * @since 1.0.2 + */ + public function set_footer_content($content) + { + $this->footer_content = $content; + } + + /** + * Sets the style for the header content + * + * @param string The style for the header content + * @since 1.0.2 + */ + public function set_header_content_style($style) + { + $this->header_content_style = $style; + } + + /** + * Sets the style for the footer content + * + * @param string The style for the footer content + * @since 1.0.2 + */ + public function set_footer_content_style($style) + { + $this->footer_content_style = $style; + } + + /** + * Sets whether to force a surrounding block around + * the highlighted code or not + * + * @param boolean Tells whether to enable or disable this feature + * @since 1.0.7.20 + */ + public function enable_inner_code_block($flag) + { + $this->force_code_block = (bool)$flag; + } + + /** + * Sets the base URL to be used for keywords + * + * @param int The key of the keyword group to set the URL for + * @param string The URL to set for the group. If {FNAME} is in + * the url somewhere, it is replaced by the keyword + * that the URL is being made for + * @since 1.0.2 + */ + public function set_url_for_keyword_group($group, $url) + { + $this->language_data['URLS'][$group] = $url; + } + + /** + * Sets styles for links in code + * + * @param int A constant that specifies what state the style is being + * set for - e.g. :hover or :visited + * @param string The styles to use for that state + * @since 1.0.2 + */ + public function set_link_styles($type, $styles) + { + $this->link_styles[$type] = $styles; + } + + /** + * Sets the target for links in code + * + * @param string The target for links in the code, e.g. _blank + * @since 1.0.3 + */ + public function set_link_target($target) + { + if (!$target) { + $this->link_target = ''; + } else { + $this->link_target = ' target="' . $target . '" '; + } + } + + /** + * Sets styles for important parts of the code + * + * @param string The styles to use on important parts of the code + * @since 1.0.2 + */ + public function set_important_styles($styles) + { + $this->important_styles = $styles; + } + + /** + * Sets whether context-important blocks are highlighted + * + * @param boolean Tells whether to enable or disable highlighting of important blocks + * @todo REMOVE THIS SHIZ FROM GESHI! + * @deprecated + * @since 1.0.2 + */ + public function enable_important_blocks($flag) + { + $this->enable_important_blocks = ($flag) ? true : false; + } + + /** + * Whether CSS IDs should be added to each line + * + * @param boolean If true, IDs will be added to each line. + * @since 1.0.2 + */ + public function enable_ids($flag = true) + { + $this->add_ids = ($flag) ? true : false; + } + + /** + * Specifies which lines to highlight extra + * + * The extra style parameter was added in 1.0.7.21. + * + * @param mixed An array of line numbers to highlight, or just a line + * number on its own. + * @param string A string specifying the style to use for this line + * @since 1.0.2 + * @todo Some data replication here that could be cut down on + */ + public function highlight_lines_extra($lines, $style = null) + { + if (is_array($lines)) { + foreach ($lines as $line) { + $this->highlight_lines_extra(line, $style); + } + } else { + $this->highlight_extra_lines[intval($lines)] = intval($lines); + if ($style != null) { + $this->highlight_extra_lines_styles[intval($lines)] = $style; + } else { + unset($this->highlight_extra_lines_styles[intval($lines)]); + } + } + } + + /** + * Sets the style for extra-highlighted lines + * + * @param string The style for extra-highlighted lines + * @since 1.0.2 + */ + public function set_highlight_lines_extra_style($styles) + { + $this->highlight_extra_lines_style = $styles; + } + + /** + * Sets the line-ending + * + * @param string The new line-ending + * @since 1.0.2 + */ + public function set_line_ending($line_ending) + { + $this->line_ending = (string)$line_ending; + } + + /** + * Sets what number line numbers should start at. Should + * be a positive integer, and will be converted to one. + * + * Warning: Using this method will add the "start" + * attribute to the <ol> that is used for line numbering. + * This is not valid XHTML strict, so if that's what you + * care about then don't use this method. Firefox is getting + * support for the CSS method of doing this in 1.1 and Opera + * has support for the CSS method, but (of course) IE doesn't + * so it's not worth doing it the CSS way yet. + * + * @param int The number to start line numbers at + * @since 1.0.2 + */ + public function start_line_numbers_at($number) + { + $this->line_numbers_start = abs(intval($number)); + } + + /** + * Sets the encoding used for htmlspecialchars(), for international + * support. + * + * NOTE: This is not needed for now because htmlspecialchars() is not + * being used (it has a security hole in PHP4 that has not been patched). + * Maybe in a future version it may make a return for speed reasons, but + * I doubt it. + * + * @param string The encoding to use for the source + * @since 1.0.3 + */ + public function set_encoding($encoding) + { + if ($encoding) { + $this->encoding = $encoding; + } + } + + /** + * Turns linking of keywords on or off. + * + * @param boolean If true, links will be added to keywords + * @since 1.0.2 + */ + public function enable_keyword_links($enable = true) + { + $this->keyword_links = ($enable) ? true : false; + } + + /** + * Returns the code in $this->source, highlighted and surrounded by the + * nessecary HTML. + * + * This should only be called ONCE, cos it's SLOW! If you want to highlight + * the same source multiple times, you're better off doing a whole lot of + * str_replaces to replace the <span>s + * + * @since 1.0.0 + */ + public function parse_code() + { + // Start the timer + $start_time = microtime(); + + // Firstly, if there is an error, we won't highlight + + if ($this->error) { + $result = GeSHi::hsc($this->source); + // Timing is irrelevant + $this->set_time($start_time, $start_time); + return $this->finalise($result); + } + // Replace all newlines to a common form. + $code = str_replace("\r\n", "\n", $this->source); + $code = str_replace("\r", "\n", $code); + // Add spaces for regular expression matching and line numbers + $code = "\n" . $code . "\n"; + + // Initialise various stuff + $length = strlen($code); + $STRING_OPEN = ''; + $CLOSE_STRING = false; + $ESCAPE_CHAR_OPEN = false; + $COMMENT_MATCHED = false; + // Turn highlighting on if strict mode doesn't apply to this language + $HIGHLIGHTING_ON = (!$this->strict_mode) ? true : ''; + // Whether to highlight inside a block of code + $HIGHLIGHT_INSIDE_STRICT = false; + $HARDQUOTE_OPEN = false; + $STRICTATTRS = ''; + $stuff_to_parse = ''; + $result = ''; + + // "Important" selections are handled like multiline comments + // @todo GET RID OF THIS SHIZ + if ($this->enable_important_blocks) { + $this->language_data['COMMENT_MULTI'][GESHI_START_IMPORTANT] = GESHI_END_IMPORTANT; + } + + if ($this->strict_mode) { + // Break the source into bits. Each bit will be a portion of the code + // within script delimiters - for example, HTML between < and > + $parts = array(0 => array(0 => '')); + $k = 0; + for ($i = 0; $i < $length; $i++) { + $char = substr($code, $i, 1); + if (!$HIGHLIGHTING_ON) { + foreach ($this->language_data['SCRIPT_DELIMITERS'] as $key => $delimiters) { + foreach ($delimiters as $open => $close) { + // Get the next little bit for this opening string + $check = substr($code, $i, strlen($open)); + // If it matches... + if ($check == $open) { + // We start a new block with the highlightable + // code in it + $HIGHLIGHTING_ON = $open; + $i += strlen($open) - 1; + $char = $open; + $parts[++$k][0] = $char; + + // No point going around again... + break(2); + } + } + } + } else { + foreach ($this->language_data['SCRIPT_DELIMITERS'] as $key => $delimiters) { + foreach ($delimiters as $open => $close) { + if ($open == $HIGHLIGHTING_ON) { + // Found the closing tag + break(2); + } + } + } + // We check code from our current position BACKWARDS. This is so + // the ending string for highlighting can be included in the block + $check = substr($code, $i - strlen($close) + 1, strlen($close)); + if ($check == $close) { + $HIGHLIGHTING_ON = ''; + // Add the string to the rest of the string for this part + $parts[$k][1] = (isset($parts[$k][1])) ? $parts[$k][1] . $char : $char; + $parts[++$k][0] = ''; + $char = ''; + } + } + $parts[$k][1] = (isset($parts[$k][1])) ? $parts[$k][1] . $char : $char; + } + $HIGHLIGHTING_ON = ''; + } else { + // Not strict mode - simply dump the source into + // the array at index 1 (the first highlightable block) + $parts = array( + 1 => array( + 0 => '', + 1 => $code + ) + ); + } + + // Now we go through each part. We know that even-indexed parts are + // code that shouldn't be highlighted, and odd-indexed parts should + // be highlighted + foreach ($parts as $key => $data) { + $part = $data[1]; + // If this block should be highlighted... + if ($key % 2) { + if ($this->strict_mode) { + // Find the class key for this block of code + foreach ($this->language_data['SCRIPT_DELIMITERS'] as $script_key => $script_data) { + foreach ($script_data as $open => $close) { + if ($data[0] == $open) { + break(2); + } + } + } + + if ($this->language_data['STYLES']['SCRIPT'][$script_key] != '' && + $this->lexic_permissions['SCRIPT']) { + // Add a span element around the source to + // highlight the overall source block + if (!$this->use_classes && + $this->language_data['STYLES']['SCRIPT'][$script_key] != '') { + $attributes = ' style="' . $this->language_data['STYLES']['SCRIPT'][$script_key] . '"'; + } else { + $attributes = ' class="sc' . $script_key . '"'; + } + $result .= ""; + $STRICTATTRS = $attributes; + } + } + + if (!$this->strict_mode || $this->language_data['HIGHLIGHT_STRICT_BLOCK'][$script_key]) { + // Now, highlight the code in this block. This code + // is really the engine of GeSHi (along with the method + // parse_non_string_part). + $length = strlen($part); + for ($i = 0; $i < $length; $i++) { + // Get the next char + $char = substr($part, $i, 1); + $hq = isset($this->language_data['HARDQUOTE']) ? $this->language_data['HARDQUOTE'][0] : false; + // Is this char the newline and line numbers being used? + if (($this->line_numbers != GESHI_NO_LINE_NUMBERS + || count($this->highlight_extra_lines) > 0) + && $char == "\n") { + // If so, is there a string open? If there is, we should end it before + // the newline and begin it again (so when
      1. s are put in the source + // remains XHTML compliant) + // note to self: This opens up possibility of config files specifying + // that languages can/cannot have multiline strings??? + if ($STRING_OPEN) { + if (!$this->use_classes) { + $attributes = ' style="' . $this->language_data['STYLES']['STRINGS'][0] . '"'; + } else { + $attributes = ' class="st0"'; + } + $char = '' . $char . ""; + } + } elseif ($char == $STRING_OPEN) { + // A match of a string delimiter + if (($this->lexic_permissions['ESCAPE_CHAR'] && $ESCAPE_CHAR_OPEN) || + ($this->lexic_permissions['STRINGS'] && !$ESCAPE_CHAR_OPEN)) { + $char = GeSHi::hsc($char) . ''; + } + $escape_me = false; + if ($HARDQUOTE_OPEN) { + if ($ESCAPE_CHAR_OPEN) { + $escape_me = true; + } else { + foreach ($this->language_data['HARDESCAPE'] as $hardesc) { + if (substr($part, $i, strlen($hardesc)) == $hardesc) { + $escape_me = true; + break; + } + } + } + } + + if (!$ESCAPE_CHAR_OPEN) { + $STRING_OPEN = ''; + $CLOSE_STRING = true; + } + if (!$escape_me) { + $HARDQUOTE_OPEN = false; + } + $ESCAPE_CHAR_OPEN = false; + } elseif (in_array($char, $this->language_data['QUOTEMARKS']) && + ($STRING_OPEN == '') && $this->lexic_permissions['STRINGS']) { + // The start of a new string + $STRING_OPEN = $char; + if (!$this->use_classes) { + $attributes = ' style="' . $this->language_data['STYLES']['STRINGS'][0] . '"'; + } else { + $attributes = ' class="st0"'; + } + $char = "" . GeSHi::hsc($char); + + $result .= $this->parse_non_string_part($stuff_to_parse); + $stuff_to_parse = ''; + } elseif ($hq && substr($part, $i, strlen($hq)) == $hq && + ($STRING_OPEN == '') && $this->lexic_permissions['STRINGS']) { + // The start of a hard quoted string + $STRING_OPEN = $this->language_data['HARDQUOTE'][1]; + if (!$this->use_classes) { + $attributes = ' style="' . $this->language_data['STYLES']['STRINGS'][0] . '"'; + } else { + $attributes = ' class="st0"'; + } + $char = "" . $hq; + $i += strlen($hq) - 1; + $HARDQUOTE_OPEN = true; + $result .= $this->parse_non_string_part($stuff_to_parse); + $stuff_to_parse = ''; + } elseif ($char == $this->language_data['ESCAPE_CHAR'] && $STRING_OPEN != '') { + // An escape character + if (!$ESCAPE_CHAR_OPEN) { + $ESCAPE_CHAR_OPEN = !$HARDQUOTE_OPEN; // true unless $HARDQUOTE_OPEN + if ($HARDQUOTE_OPEN) { + foreach ($this->language_data['HARDESCAPE'] as $hard) { + if (substr($part, $i, strlen($hard)) == $hard) { + $ESCAPE_CHAR_OPEN = true; + break; + } + } + } + if ($ESCAPE_CHAR_OPEN && $this->lexic_permissions['ESCAPE_CHAR']) { + if (!$this->use_classes) { + $attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][0] . '"'; + } else { + $attributes = ' class="es0"'; + } + $char = "" . $char; + if (substr($code, $i + 1, 1) == "\n") { + // escaping a newline, what's the point in putting the span around + // the newline? It only causes hassles when inserting line numbers + $char .= ''; + $ESCAPE_CHAR_OPEN = false; + } + } + } else { + $ESCAPE_CHAR_OPEN = false; + if ($this->lexic_permissions['ESCAPE_CHAR']) { + $char .= ''; + } + } + } elseif ($ESCAPE_CHAR_OPEN) { + if ($this->lexic_permissions['ESCAPE_CHAR']) { + $char .= ''; + } + $ESCAPE_CHAR_OPEN = false; + $test_str = $char; + } elseif ($STRING_OPEN == '') { + // Is this a multiline comment? + foreach ($this->language_data['COMMENT_MULTI'] as $open => $close) { + $com_len = strlen($open); + $test_str = substr($part, $i, $com_len); + $test_str_match = $test_str; + if (strtolower($open) == strtolower($test_str)) { + $COMMENT_MATCHED = true; + //@todo If remove important do remove here + if ($this->lexic_permissions['COMMENTS']['MULTI'] || + $test_str == GESHI_START_IMPORTANT) { + if ($test_str != GESHI_START_IMPORTANT) { + if (!$this->use_classes) { + $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS']['MULTI'] . '"'; + } else { + $attributes = ' class="coMULTI"'; + } + $test_str = "" . GeSHi::hsc($test_str); + } else { + if (!$this->use_classes) { + $attributes = ' style="' . $this->important_styles . '"'; + } else { + $attributes = ' class="imp"'; + } + // We don't include the start of the comment if it's an + // "important" part + $test_str = ""; + } + } else { + $test_str = GeSHi::hsc($test_str); + } + + $close_pos = strpos($part, $close, $i + strlen($close)); + + $oops = false; + if ($close_pos === false) { + $close_pos = strlen($part); + $oops = true; + } else { + $close_pos -= ($com_len - strlen($close)); + } + + // Short-cut through all the multiline code + $rest_of_comment = GeSHi::hsc(substr($part, $i + $com_len, $close_pos - $i)); + if (($this->lexic_permissions['COMMENTS']['MULTI'] || + $test_str_match == GESHI_START_IMPORTANT) && + ($this->line_numbers != GESHI_NO_LINE_NUMBERS || + count($this->highlight_extra_lines) > 0)) { + // strreplace to put close span and open span around multiline newlines + $test_str .= str_replace( + "\n", "\n", + str_replace("\n ", "\n ", $rest_of_comment) + ); + } else { + $test_str .= $rest_of_comment; + } + + if ($this->lexic_permissions['COMMENTS']['MULTI'] || + $test_str_match == GESHI_START_IMPORTANT) { + $test_str .= ''; + if ($oops) { + $test_str .= "\n"; + } + } + $i = $close_pos + $com_len - 1; + // parse the rest + $result .= $this->parse_non_string_part($stuff_to_parse); + $stuff_to_parse = ''; + break; + } + } + // If we haven't matched a multiline comment, try single-line comments + if (!$COMMENT_MATCHED) { + foreach ($this->language_data['COMMENT_SINGLE'] as $comment_key => $comment_mark) { + $com_len = strlen($comment_mark); + $test_str = substr($part, $i, $com_len); + if ($this->language_data['CASE_SENSITIVE'][GESHI_COMMENTS]) { + $match = ($comment_mark == $test_str); + } else { + $match = (strtolower($comment_mark) == strtolower($test_str)); + } + //This check will find special variables like $# in bash or compiler directives of Delphi beginning {$ + if ($match) { + $disallowed_before = ""; + $disallowed_after = ""; + + if (isset($this->language_data['PARSER_CONTROL'])) { + if (isset($this->language_data['PARSER_CONTROL']['COMMENTS'])) { + if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE'])) { + $disallowed_before = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE']; + } + if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER'])) { + $disallowed_after = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER']; + } + } + } + + $match = $match && (!strlen($disallowed_before) || ((false === strpos($disallowed_before, substr($part, $i-1, 1))) && (0!=$i))); + $match = $match && (!strlen($disallowed_after) || ((false === strpos($disallowed_after, substr($part, $i+1, 1))) && (strlen($part)-1>$i))); + } + if ($match) { + $COMMENT_MATCHED = true; + if ($this->lexic_permissions['COMMENTS'][$comment_key]) { + if (!$this->use_classes) { + $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS'][$comment_key] . '"'; + } else { + $attributes = ' class="co' . $comment_key . '"'; + } + $test_str = "" . GeSHi::hsc($this->change_case($test_str)); + } else { + $test_str = GeSHi::hsc($test_str); + } + $close_pos = strpos($part, "\n", $i); + $oops = false; + if ($close_pos === false) { + $close_pos = strlen($part); + $oops = true; + } + $test_str .= GeSHi::hsc(substr($part, $i + $com_len, $close_pos - $i - $com_len)); + if ($this->lexic_permissions['COMMENTS'][$comment_key]) { + $test_str .= ""; + } + // Take into account that the comment might be the last in the source + if (!$oops) { + $test_str .= "\n"; + } + $i = $close_pos; + // parse the rest + $result .= $this->parse_non_string_part($stuff_to_parse); + $stuff_to_parse = ''; + break; + } + } + } + } elseif ($STRING_OPEN != '') { + // Otherwise, convert it to HTML form + if (strtolower($this->encoding) == 'utf-8') { + //only escape <128 (we don't want to break multibyte chars) + if (ord($char) < 128) { + $char = GeSHi::hsc($char); + } + } else { + //encode everthing + $char = GeSHi::hsc($char); + } + } + // Where are we adding this char? + if (!$COMMENT_MATCHED) { + if (($STRING_OPEN == '') && !$CLOSE_STRING) { + $stuff_to_parse .= $char; + } else { + $result .= $char; + $CLOSE_STRING = false; + } + } else { + $result .= $test_str; + $COMMENT_MATCHED = false; + } + } + // Parse the last bit + $result .= $this->parse_non_string_part($stuff_to_parse); + $stuff_to_parse = ''; + } else { + if ($STRICTATTRS != '') { + $part = str_replace("\n", "\n", GeSHi::hsc($part)); + $STRICTATTRS = ''; + } + $result .= $part; + } + // Close the that surrounds the block + if ($this->strict_mode && $this->language_data['STYLES']['SCRIPT'][$script_key] != '' && + $this->lexic_permissions['SCRIPT']) { + $result .= ''; + } + } else { + // Else not a block to highlight + $result .= GeSHi::hsc($part); + } + } + + // Parse the last stuff (redundant?) + $result .= $this->parse_non_string_part($stuff_to_parse); + + // Lop off the very first and last spaces + $result = substr($result, 1, -1); + + // Are we still in a string? + if ($STRING_OPEN) { + $result .= ''; + } + + // We're finished: stop timing + $this->set_time($start_time, microtime()); + + return $this->finalise($result); + } + + /** + * Swaps out spaces and tabs for HTML indentation. Not needed if + * the code is in a pre block... + * + * @param string The source to indent + * @return string The source with HTML indenting applied + * @since 1.0.0 + * @access private + */ + public function indent($result) + { + /// Replace tabs with the correct number of spaces + if (false !== strpos($result, "\t")) { + $lines = explode("\n", $result); + $tab_width = $this->get_real_tab_width(); + foreach ($lines as $key => $line) { + if (false === strpos($line, "\t")) { + $lines[$key] = $line; + continue; + } + + $pos = 0; + $length = strlen($line); + $result_line = ''; + + $IN_TAG = false; + for ($i = 0; $i < $length; $i++) { + $char = substr($line, $i, 1); + // Simple engine to work out whether we're in a tag. + // If we are we modify $pos. This is so we ignore HTML + // in the line and only workout the tab replacement + // via the actual content of the string + // This test could be improved to include strings in the + // html so that < or > would be allowed in user's styles + // (e.g. quotes: '<' '>'; or similar) + if ($IN_TAG && '>' == $char) { + $IN_TAG = false; + $result_line .= '>'; + ++$pos; + } elseif (!$IN_TAG && '<' == $char) { + $IN_TAG = true; + $result_line .= '<'; + ++$pos; + } elseif (!$IN_TAG && '&' == $char) { + $substr = substr($line, $i + 3, 4); + //$substr_5 = substr($line, 5, 1); + $posi = strpos($substr, ';'); + if (false !== $posi) { + $pos += $posi + 3; + } + $result_line .= '&'; + } elseif (!$IN_TAG && "\t" == $char) { + $str = ''; + // OPTIMISE - move $strs out. Make an array: + // $tabs = array( + // 1 => ' ', + // 2 => '  ', + // 3 => '   ' etc etc + // to use instead of building a string every time + $strs = array(0 => ' ', 1 => ' '); + for ($k = 0; $k < ($tab_width - (($i - $pos) % $tab_width)); $k++) { + $str .= $strs[$k % 2]; + } + $result_line .= $str; + $pos += ($i - $pos) % $tab_width + 1; + + if (false === strpos($line, "\t", $i + 1)) { + $result_line .= substr($line, $i + 1); + break; + } + } elseif ($IN_TAG) { + ++$pos; + $result_line .= $char; + } else { + $result_line .= $char; + //++$pos; + } + } + $lines[$key] = $result_line; + } + $result = implode("\n", $lines); + } + // Other whitespace + // BenBE: Fix to reduce the number of replacements to be done + $result = preg_replace('/^ /m', ' ', $result); + $result = str_replace(' ', '  ', $result); + + if ($this->line_numbers == GESHI_NO_LINE_NUMBERS) { + if ($this->line_ending === null) { + $result = nl2br($result); + } else { + $result = str_replace("\n", $this->line_ending, $result); + } + } + return $result; + } + + /** + * Changes the case of a keyword for those languages where a change is asked for + * + * @param string The keyword to change the case of + * @return string The keyword with its case changed + * @since 1.0.0 + * @access private + */ + public function change_case($instr) + { + if ($this->language_data['CASE_KEYWORDS'] == GESHI_CAPS_UPPER) { + return strtoupper($instr); + } elseif ($this->language_data['CASE_KEYWORDS'] == GESHI_CAPS_LOWER) { + return strtolower($instr); + } + return $instr; + } + + /** + * Adds a url to a keyword where needed. + * + * @param string The keyword to add the URL HTML to + * @param int What group the keyword is from + * @param boolean Whether to get the HTML for the start or end + * @return The HTML for either the start or end of the HTML <a> tag + * @since 1.0.2 + * @access private + * @todo Get rid of ender + */ + public function add_url_to_keyword($keyword, $group, $start_or_end) + { + if (!$this->keyword_links) { + // Keyword links have been disabled + return; + } + + if (isset($this->language_data['URLS'][$group]) && + $this->language_data['URLS'][$group] != '' && + substr($keyword, 0, 5) != '</') { + // There is a base group for this keyword + if ($start_or_end == 'BEGIN') { + // HTML workaround... not good form (tm) but should work for 1.0.X + if ($keyword != '') { + // Old system: strtolower + //$keyword = ( $this->language_data['CASE_SENSITIVE'][$group] ) ? $keyword : strtolower($keyword); + // New system: get keyword from language file to get correct case + foreach ($this->language_data['KEYWORDS'][$group] as $word) { + if (strtolower($word) == strtolower($keyword)) { + break; + } + } + $word = (substr($word, 0, 4) == '<') ? substr($word, 4) : $word; + $word = (substr($word, -4) == '>') ? substr($word, 0, strlen($word) - 4) : $word; + if (!$word) { + return ''; + } + + return '<|UR1|"' . + str_replace( + array('{FNAME}', '{FNAMEL}', '{FNAMEU}', '.'), + array(GeSHi::hsc($word), GeSHi::hsc(strtolower($word)), + GeSHi::hsc(strtoupper($word)), ''), + $this->language_data['URLS'][$group] + ) . '">'; + } + return ''; + // HTML fix. Again, dirty hackage... + } elseif (!($this->language == 'html4strict' && ('>' == $keyword || '<' == $keyword))) { + return ''; + } + } + } + + /** + * Takes a string that has no strings or comments in it, and highlights + * stuff like keywords, numbers and methods. + * + * @param string The string to parse for keyword, numbers etc. + * @since 1.0.0 + * @access private + * @todo BUGGY! Why? Why not build string and return? + */ + public function parse_non_string_part(&$stuff_to_parse) + { + $stuff_to_parse = ' ' . GeSHi::hsc($stuff_to_parse); + $stuff_to_parse_pregquote = preg_quote($stuff_to_parse, '/'); + $func = '$this->change_case'; + $func2 = '$this->add_url_to_keyword'; + + // + // Regular expressions + // + foreach ($this->language_data['REGEXPS'] as $key => $regexp) { + if ($this->lexic_permissions['REGEXPS'][$key]) { + if (is_array($regexp)) { + $stuff_to_parse = preg_replace( + "/" . + str_replace('/', '\/', $regexp[GESHI_SEARCH]) . + "/{$regexp[GESHI_MODIFIERS]}", + "{$regexp[GESHI_BEFORE]}<|!REG3XP$key!>{$regexp[GESHI_REPLACE]}|>{$regexp[GESHI_AFTER]}", + $stuff_to_parse + ); + } else { + $stuff_to_parse = preg_replace("/(" . str_replace('/', '\/', $regexp) . ")/", "<|!REG3XP$key!>\\1|>", $stuff_to_parse); + } + } + } + + // + // Highlight numbers. This regexp sucks... anyone with a regexp that WORKS + // here wins a cookie if they send it to me. At the moment there's two doing + // almost exactly the same thing, except the second one prevents a number + // being highlighted twice (eg 5) + // Put /NUM!/ in for the styles, which gets replaced at the end. + // + // NEW ONE: Brice Bernard + // + if ($this->lexic_permissions['NUMBERS'] && preg_match('#[0-9]#', $stuff_to_parse)) { + $stuff_to_parse = preg_replace('/([-+]?\\b(?:[0-9]*\\.)?[0-9]+\\b)/', '<|/NUM!/>\\1|>', $stuff_to_parse); + } + + // Highlight keywords + // if there is a couple of alpha symbols there *might* be a keyword + if (preg_match('#[a-zA-Z]{2,}#', $stuff_to_parse)) { + foreach ($this->language_data['KEYWORDS'] as $k => $keywordset) { + if ($this->lexic_permissions['KEYWORDS'][$k]) { + foreach ($keywordset as $keyword) { + $keyword = preg_quote($keyword, '/'); + // + // This replacement checks the word is on it's own (except if brackets etc + // are next to it), then highlights it. We don't put the color=" for the span + // in just yet - otherwise languages with the keywords "color" or "or" have + // a fit. + // + if (false !== stristr($stuff_to_parse_pregquote, $keyword)) { + $stuff_to_parse .= ' '; + // Might make a more unique string for putting the number in soon + // Basically, we don't put the styles in yet because then the styles themselves will + // get highlighted if the language has a CSS keyword in it (like CSS, for example ;)) + $styles = "/$k/"; + $modifiers = ($this->language_data['CASE_SENSITIVE'][$k]) ? "e" : "ie"; + + $disallowed_before = "a-zA-Z0-9\$_\|\#;>|^"; + $disallowed_after = "a-zA-Z0-9_<\|%\\-&"; + if (isset($this->language_data['PARSER_CONTROL'])) { + if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'])) { + if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'])) { + $disallowed_before = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE']; + } + if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'])) { + $disallowed_after = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER']; + } + } + } + $stuff_to_parse = preg_replace( + "/([^$disallowed_before])($keyword)(?=[^$disallowed_after])/$modifiers", + "'\\1' . $func2('\\2', '$k', 'BEGIN') . '<|$styles>' . $func('\\2') . '|>' . $func2('\\2', '$k', 'END')", + $stuff_to_parse + ); + + $stuff_to_parse = substr($stuff_to_parse, 0, strlen($stuff_to_parse) - 1); + } + } + } + } + } + + // + // Now that's all done, replace /[number]/ with the correct styles + // + foreach ($this->language_data['KEYWORDS'] as $k => $kws) { + if (!$this->use_classes) { + $attributes = ' style="' . $this->language_data['STYLES']['KEYWORDS'][$k] . '"'; + } else { + $attributes = ' class="kw' . $k . '"'; + } + $stuff_to_parse = str_replace("/$k/", $attributes, $stuff_to_parse); + } + + // Put number styles in + if (!$this->use_classes && $this->lexic_permissions['NUMBERS']) { + $attributes = ' style="' . $this->language_data['STYLES']['NUMBERS'][0] . '"'; + } else { + $attributes = ' class="nu0"'; + } + $stuff_to_parse = str_replace('/NUM!/', $attributes, $stuff_to_parse); + + // + // Highlight methods and fields in objects + // + if ($this->lexic_permissions['METHODS'] && $this->language_data['OOLANG']) { + foreach ($this->language_data['OBJECT_SPLITTERS'] as $key => $splitter) { + if (false !== stristr($stuff_to_parse, $splitter)) { + if (!$this->use_classes) { + $attributes = ' style="' . $this->language_data['STYLES']['METHODS'][$key] . '"'; + } else { + $attributes = ' class="me' . $key . '"'; + } + $stuff_to_parse = preg_replace("/(" . preg_quote($this->language_data['OBJECT_SPLITTERS'][$key], 1) . "[\s]*)([a-zA-Z\*\(][a-zA-Z0-9_\*]*)/", "\\1<|$attributes>\\2|>", $stuff_to_parse); + } + } + } + + // + // Highlight brackets. Yes, I've tried adding a semi-colon to this list. + // You try it, and see what happens ;) + // TODO: Fix lexic permissions not converting entities if shouldn't + // be highlighting regardless + // + if ($this->lexic_permissions['BRACKETS']) { + $code_entities_match = array('[', ']', '(', ')', '{', '}'); + if (!$this->use_classes) { + $code_entities_replace = array( + '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">[|>', + '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">]|>', + '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">(|>', + '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">)|>', + '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">{|>', + '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">}|>', + ); + } else { + $code_entities_replace = array( + '<| class="br0">[|>', + '<| class="br0">]|>', + '<| class="br0">(|>', + '<| class="br0">)|>', + '<| class="br0">{|>', + '<| class="br0">}|>', + ); + } + $stuff_to_parse = str_replace($code_entities_match, $code_entities_replace, $stuff_to_parse); + } + + //FIX for symbol highlighting ... + if ($this->lexic_permissions['SYMBOLS']) { + //As this is a costy operation, we avoid doing it for multiple groups ... + //Instead we perform it for all symbols at once. + // + //For this to work, we need to reorganize the data arrays. + $symbol_data = $symbol_preg = array(); + foreach ($this->language_data['SYMBOLS'] as $key => $symbols) { + if (is_array($symbols)) { + foreach ($symbols as $sym) { + if (!isset($symbol_data[$sym])) { + $symbol_data[GeSHi::hsc($sym)] = $key; + $symbol_preg[] = preg_quote(GeSHi::hsc($sym), '/'); + } + } + } else { + if (!isset($symbol_data[$symbols])) { + $symbol_data[GeSHi::hsc($symbols)] = 0; + $symbol_preg[] = preg_quote(GESHI::hsc($symbols), '/'); + } + } + } + //Now we have an array with each possible symbol as the key and the style as the actual data. + //This way we can set the correct style just the moment we highlight ... + // + //Now we need to rewrite our array to get a search string that + $sym_search = implode("|", $symbol_preg); + //Get all matches and throw away those witin a block that is already highlighted... (i.e. matched by a regexp) + preg_match_all("/(?:" . $sym_search . ")+/", $stuff_to_parse, $matches_in_stuff, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); + //Match anything that is a highlighted block ... + preg_match_all("/<\|(?:|[^>])+>(?:(?!\|>).*?)\|>|<\/a>/", $stuff_to_parse, $highlighted_in_stuff, PREG_OFFSET_CAPTURE); + foreach ($matches_in_stuff as $stuff_match_id => $stuff_match_data) { + foreach ($highlighted_in_stuff[0] as $highlight_id => $highlight_data) { + //Do a range check of the found highlight identifier and the OOP match ... + if (($highlight_data[1] <= $stuff_match_data[0][1]) && + ($highlight_data[1] + strlen($highlight_data[0]) >= $stuff_match_data[0][1] + strlen($stuff_match_data[0][0]))) { + //We found a match that was already highlighted ... + unset($matches_in_stuff[$stuff_match_id]); + break; + } + } + } + //Rebuild the matches array to be ordered by offset ... + $symbol_offsets = array(); + foreach ($matches_in_stuff as $stuff_match_data) { + $symbol_offsets[$stuff_match_data[0][1]] = $stuff_match_data[0][0]; + } + krsort($symbol_offsets); + //Perform the actual replacements ... + foreach ($symbol_offsets as $symbol_offset => $symbol_match) { + $symbol_hl = ""; + $old_sym = -1; + //Split the current stuff to replace into its atomic symbols ... + preg_match_all("/$sym_search/", $symbol_match, $sym_match_syms, PREG_PATTERN_ORDER); + foreach ($sym_match_syms[0] as $sym_ms) { + //Check if consequtive symbols belong to the same group to save output ... + if (isset($symbol_data[$sym_ms]) && ($symbol_data[$sym_ms] != $old_sym)) { + if (-1 != $old_sym) { + $symbol_hl .= "|>"; + } + $old_sym = $symbol_data[$sym_ms]; + if (!$this->use_classes) { + $symbol_hl .= '<| style="' . $this->language_data['STYLES']['SYMBOLS'][$old_sym] . '">'; + } else { + $symbol_hl .= '<| class="sy' . $old_sym . '">'; + } + } + $symbol_hl .= $sym_ms; + } + //Close remaining tags and insert the replacement at the right position ... + //Take caution if symbol_hl is empty to avoid doubled closing spans. + if (-1 != $old_sym) { + $symbol_hl .= "|>"; + } + $stuff_to_parse = substr($stuff_to_parse, 0, $symbol_offset) . $symbol_hl . substr($stuff_to_parse, $symbol_offset + strlen($symbol_match)); + } + } + //FIX for symbol highlighting ... + + // + // Add class/style for regexps + // + foreach ($this->language_data['REGEXPS'] as $key => $regexp) { + if ($this->lexic_permissions['REGEXPS'][$key]) { + if (is_callable($this->language_data['STYLES']['REGEXPS'][$key])) { + $func = $this->language_data['STYLES']['REGEXPS'][$key]; + $stuff_to_parse = preg_replace("/!REG3XP$key!(.*)\|>/eU", + "' style=\"' . call_user_func(\"$func\", '\\1') . '\"\\1|>'", $stuff_to_parse); + } else { + if (!$this->use_classes) { + $attributes = ' style="' . $this->language_data['STYLES']['REGEXPS'][$key] . '"'; + } else { + if (is_array($this->language_data['REGEXPS'][$key]) && + array_key_exists(GESHI_CLASS, $this->language_data['REGEXPS'][$key])) { + $attributes = ' class="' . + $this->language_data['REGEXPS'][$key][GESHI_CLASS] . '"'; + } else { + $attributes = ' class="re' . $key . '"'; + } + } + $stuff_to_parse = str_replace("!REG3XP$key!", "$attributes", $stuff_to_parse); + } + } + } + + // Replace with . for urls + $stuff_to_parse = str_replace('', '.', $stuff_to_parse); + // Replace <|UR1| with link_styles[GESHI_LINK])) { + if ($this->use_classes) { + $stuff_to_parse = str_replace('<|UR1|', 'link_target . ' href=', $stuff_to_parse); + } else { + $stuff_to_parse = str_replace('<|UR1|', 'link_target . ' style="' . $this->link_styles[GESHI_LINK] . '" href=', $stuff_to_parse); + } + } else { + $stuff_to_parse = str_replace('<|UR1|', 'link_target . ' href=', $stuff_to_parse); + } + + // + // NOW we add the span thingy ;) + // + + $stuff_to_parse = str_replace('<|', '', '', $stuff_to_parse); + + return substr($stuff_to_parse, 1); + } + + /** + * Sets the time taken to parse the code + * + * @param microtime The time when parsing started + * @param microtime The time when parsing ended + * @since 1.0.2 + * @access private + */ + public function set_time($start_time, $end_time) + { + $start = explode(' ', $start_time); + $end = explode(' ', $end_time); + $this->time = $end[0] + $end[1] - $start[0] - $start[1]; + } + + /** + * Gets the time taken to parse the code + * + * @return double The time taken to parse the code + * @since 1.0.2 + */ + public function get_time() + { + return $this->time; + } + + /** + * Gets language information and stores it for later use + * + * @param string The filename of the language file you want to load + * @since 1.0.0 + * @access private + * @todo Needs to load keys for lexic permissions for keywords, regexps etc + */ + public function load_language($file_name) + { + $this->enable_highlighting(); + $language_data = array(); + require $file_name; + // Perhaps some checking might be added here later to check that + // $language data is a valid thing but maybe not + $this->language_data = $language_data; + // Set strict mode if should be set + if ($this->language_data['STRICT_MODE_APPLIES'] == GESHI_ALWAYS) { + $this->strict_mode = true; + } + // Set permissions for all lexics to true + // so they'll be highlighted by default + foreach ($this->language_data['KEYWORDS'] as $key => $words) { + $this->lexic_permissions['KEYWORDS'][$key] = true; + } + foreach ($this->language_data['COMMENT_SINGLE'] as $key => $comment) { + $this->lexic_permissions['COMMENTS'][$key] = true; + } + foreach ($this->language_data['REGEXPS'] as $key => $regexp) { + $this->lexic_permissions['REGEXPS'][$key] = true; + } + // Set default class for CSS + $this->overall_class = $this->language; + } + + /** + * Takes the parsed code and various options, and creates the HTML + * surrounding it to make it look nice. + * + * @param string The code already parsed + * @return string The code nicely finalised + * @since 1.0.0 + * @access private + */ + public function finalise($parsed_code) + { + // Remove end parts of important declarations + // This is BUGGY!! My fault for bad code: fix coming in 1.2 + // @todo Remove this crap + if ($this->enable_important_blocks && + (strstr($parsed_code, GeSHi::hsc(GESHI_START_IMPORTANT)) === false)) { + $parsed_code = str_replace(GeSHi::hsc(GESHI_END_IMPORTANT), '', $parsed_code); + } + + // Add HTML whitespace stuff if we're using the
        header + if ($this->header_type != GESHI_HEADER_PRE) { + $parsed_code = $this->indent($parsed_code); + } + + // purge some unnecessary stuff + $parsed_code = preg_replace('#]+>(\s*)#', '\\1', $parsed_code); + $parsed_code = preg_replace('#]+>(\s*)
        #', '\\1', $parsed_code); + + // If we are using IDs for line numbers, there needs to be an overall + // ID set to prevent collisions. + if ($this->add_ids && !$this->overall_id) { + $this->overall_id = 'geshi-' . substr(md5(microtime()), 0, 4); + } + + // If we're using line numbers, we insert
      2. s and appropriate + // markup to style them (otherwise we don't need to do anything) + if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { + // If we're using the
         header, we shouldn't add newlines because
        +            // the 
         will line-break them (and the 
      3. s already do this for us) + $ls = ($this->header_type != GESHI_HEADER_PRE) ? "\n" : ''; + // Get code into lines + $code = explode("\n", $parsed_code); + // Set vars to defaults for following loop + $parsed_code = ''; + $i = 0; + + // Foreach line... + foreach ($code as $line) { + //Reset the attributes for a new line ... + $attrs = array(); + + // Make lines have at least one space in them if they're empty + // BenBE: Checking emptiness using trim instead of relying on blanks + if ('' == trim($line)) { + $line = ' '; + } + // If this is a "special line"... + if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS && + $i % $this->line_nth_row == ($this->line_nth_row - 1)) { + // Set the attributes to style the line + if ($this->use_classes) { + //$attr = ' class="li2"'; + $attrs['class'][] = 'li2'; + $def_attr = ' class="de2"'; + } else { + //$attr = ' style="' . $this->line_style2 . '"'; + $attrs['style'][] = $this->line_style2; + // This style "covers up" the special styles set for special lines + // so that styles applied to special lines don't apply to the actual + // code on that line + $def_attr = ' style="' . $this->code_style . '"'; + } + // Span or div? + $start = ""; + $end = '
      4. '; + } else { + if ($this->use_classes) { + //$attr = ' class="li1"'; + $attrs['class'][] = 'li1'; + $def_attr = ' class="de1"'; + } else { + //$attr = ' style="' . $this->line_style1 . '"'; + $attrs['style'][] = $this->line_style1; + $def_attr = ' style="' . $this->code_style . '"'; + } + $start = ""; + $end = '
        '; + } + + ++$i; + // Are we supposed to use ids? If so, add them + if ($this->add_ids) { + $attrs['id'][] = "$this->overall_id-$i"; + } + if (in_array($i, $this->highlight_extra_lines)) { + if ($this->use_classes) { + if (array_key_exists($i, $this->highlight_extra_lines_styles)) { + $attrs['class'][] = "lx$i"; + } else { + $attrs['class'][] = "ln-xtra"; + } + } else { + array_push($attrs['style'], $this->get_line_style($i)); + } + } + + // Add in the line surrounded by appropriate list HTML + $attr_string = ''; + foreach ($attrs as $key => $attr) { + $attr_string .= ' ' . $key . '="' . implode(' ', $attr) . '"'; + } + $parsed_code .= "$start$line$end$ls"; + } + } else { + // No line numbers, but still need to handle highlighting lines extra. + // Have to use divs so the full width of the code is highlighted + $code = explode("\n", $parsed_code); + $parsed_code = ''; + $i = 0; + foreach ($code as $line) { + // Make lines have at least one space in them if they're empty + // BenBE: Checking emptiness using trim instead of relying on blanks + if ('' == trim($line)) { + $line = ' '; + } + if (in_array(++$i, $this->highlight_extra_lines)) { + if ($this->use_classes) { + if (array_key_exists($i, $this->highlight_extra_lines_styles)) { + $parsed_code .= "
        "; + } else { + $parsed_code .= "
        "; + } + } else { + $parsed_code .= "
        get_line_style($i) . "\">"; + } + // Remove \n because it stuffs up
         header
        +                    $parsed_code .= $line . "
        "; + } else { + $parsed_code .= $line . "\n"; + } + } + } + + if ($this->header_type == GESHI_HEADER_PRE) { + // enforce line numbers when using pre + $parsed_code = str_replace('
      5. ', '
      6.  
      7. ', $parsed_code); + } + + return $this->header() . chop($parsed_code) . $this->footer(); + } + + /** + * Creates the header for the code block (with correct attributes) + * + * @return string The header for the code block + * @since 1.0.0 + * @access private + */ + public function header() + { + // Get attributes needed + $attributes = $this->get_attributes(); + + $ol_attributes = ''; + + if ($this->line_numbers_start != 1) { + $ol_attributes .= ' start="' . $this->line_numbers_start . '"'; + } + + // Get the header HTML + $header = $this->format_header_content(); + + if (GESHI_HEADER_NONE == $this->header_type) { + if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { + return "$header"; + } + return $header . + ($this->force_code_block ? '
        ' : ''); + } + + // Work out what to return and do it + if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { + if ($this->header_type == GESHI_HEADER_PRE) { + return "$header"; + } elseif ($this->header_type == GESHI_HEADER_DIV) { + return "$header"; + } + } else { + if ($this->header_type == GESHI_HEADER_PRE) { + return "$header" . + ($this->force_code_block ? '
        ' : ''); + } elseif ($this->header_type == GESHI_HEADER_DIV) { + return "$header" . + ($this->force_code_block ? '
        ' : ''); + } + } + } + + /** + * Returns the header content, formatted for output + * + * @return string The header content, formatted for output + * @since 1.0.2 + * @access private + */ + public function format_header_content() + { + $header = $this->header_content; + if ($header) { + if ($this->header_type == GESHI_HEADER_PRE) { + $header = str_replace("\n", '', $header); + } + $header = $this->replace_keywords($header); + + if ($this->use_classes) { + $attr = ' class="head"'; + } else { + $attr = " style=\"{$this->header_content_style}\""; + } + return "$header
        "; + } + } + + /** + * Returns the footer for the code block. + * + * @return string The footer for the code block + * @since 1.0.0 + * @access private + */ + public function footer() + { + $footer_content = $this->format_footer_content(); + + if (GESHI_HEADER_NONE == $this->header_type) { + return ($this->line_numbers != GESHI_NO_LINE_NUMBERS) ? '
      ' . $footer_content + : $footer_content; + } + + if ($this->header_type == GESHI_HEADER_DIV) { + if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { + return "
    $footer_content"; + } + return ($this->force_code_block ? '' : '') . + "$footer_content"; + } else { + if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { + return "$footer_content"; + } + return ($this->force_code_block ? '' : '') . + "$footer_content"; + } + } + + /** + * Returns the footer content, formatted for output + * + * @return string The footer content, formatted for output + * @since 1.0.2 + * @access private + */ + public function format_footer_content() + { + $footer = $this->footer_content; + if ($footer) { + if ($this->header_type == GESHI_HEADER_PRE) { + $footer = str_replace("\n", '', $footer); + ; + } + $footer = $this->replace_keywords($footer); + + if ($this->use_classes) { + $attr = ' class="foot"'; + } else { + $attr = " style=\"{$this->footer_content_style}\""; + } + return "$footer"; + } + } + + /** + * Replaces certain keywords in the header and footer with + * certain configuration values + * + * @param string The header or footer content to do replacement on + * @return string The header or footer with replaced keywords + * @since 1.0.2 + * @access private + */ + public function replace_keywords($instr) + { + $keywords = $replacements = array(); + + $keywords[] = '
      to have no effect at all if there are line numbers + // (
        s have margins that should be destroyed so all layout is + // controlled by the set_overall_style method, which works on the + //
         or 
        container). Additionally, set default styles for lines + if (!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) { + //$stylesheet .= "$selector, {$selector}ol, {$selector}ol li {margin: 0;}\n"; + $stylesheet .= "$selector.de1, $selector.de2 {{$this->code_style}}\n"; + } + + // Add overall styles + if (!$economy_mode || $this->overall_style != '') { + $stylesheet .= "$selector {{$this->overall_style}}\n"; + } + + // Add styles for links + foreach ($this->link_styles as $key => $style) { + if (!$economy_mode || $key == GESHI_LINK && $style != '') { + $stylesheet .= "{$selector}a:link {{$style}}\n"; + } + if (!$economy_mode || $key == GESHI_HOVER && $style != '') { + $stylesheet .= "{$selector}a:hover {{$style}}\n"; + } + if (!$economy_mode || $key == GESHI_ACTIVE && $style != '') { + $stylesheet .= "{$selector}a:active {{$style}}\n"; + } + if (!$economy_mode || $key == GESHI_VISITED && $style != '') { + $stylesheet .= "{$selector}a:visited {{$style}}\n"; + } + } + + // Header and footer + if (!$economy_mode || $this->header_content_style != '') { + $stylesheet .= "$selector.head {{$this->header_content_style}}\n"; + } + if (!$economy_mode || $this->footer_content_style != '') { + $stylesheet .= "$selector.foot {{$this->footer_content_style}}\n"; + } + + // Styles for important stuff + if (!$economy_mode || $this->important_styles != '') { + $stylesheet .= "$selector.imp {{$this->important_styles}}\n"; + } + + // Simple line number styles + if (!$economy_mode || ($this->line_numbers != GESHI_NO_LINE_NUMBERS && $this->line_style1 != '')) { + $stylesheet .= "{$selector}li, {$selector}li.li1 {{$this->line_style1}}\n"; + } + // If there is a style set for fancy line numbers, echo it out + if (!$economy_mode || ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS && $this->line_style2 != '')) { + $stylesheet .= "{$selector}li.li2 {{$this->line_style2}}\n"; + } + + foreach ($this->language_data['STYLES']['KEYWORDS'] as $group => $styles) { + if (!$economy_mode || ($economy_mode && $styles != '') && + (isset($this->lexic_permissions['KEYWORDS'][$group]) && + $this->lexic_permissions['KEYWORDS'][$group])) { + $stylesheet .= "$selector.kw$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['COMMENTS'] as $group => $styles) { + if (!$economy_mode || ($economy_mode && $styles != '') && + (isset($this->lexic_permissions['COMMENTS'][$group]) && + $this->lexic_permissions['COMMENTS'][$group])) { + $stylesheet .= "$selector.co$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['ESCAPE_CHAR'] as $group => $styles) { + if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode && + !$this->lexic_permissions['ESCAPE_CHAR'])) { + $stylesheet .= "$selector.es$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['BRACKETS'] as $group => $styles) { + if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode && + !$this->lexic_permissions['BRACKETS'])) { + $stylesheet .= "$selector.br$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['SYMBOLS'] as $group => $styles) { + if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode && + !$this->lexic_permissions['SYMBOLS'])) { + $stylesheet .= "$selector.sy$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['STRINGS'] as $group => $styles) { + if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode && + !$this->lexic_permissions['STRINGS'])) { + $stylesheet .= "$selector.st$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['NUMBERS'] as $group => $styles) { + if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode && + !$this->lexic_permissions['NUMBERS'])) { + $stylesheet .= "$selector.nu$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['METHODS'] as $group => $styles) { + if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode && + !$this->lexic_permissions['METHODS'])) { + $stylesheet .= "$selector.me$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['SCRIPT'] as $group => $styles) { + if (!$economy_mode || !($economy_mode && $styles == '')) { + $stylesheet .= "$selector.sc$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['REGEXPS'] as $group => $styles) { + if (!$economy_mode || ($economy_mode && $styles != '') && + (isset($this->lexic_permissions['REGEXPS'][$group]) && + $this->lexic_permissions['REGEXPS'][$group])) { + if (is_array($this->language_data['REGEXPS'][$group]) && + array_key_exists(GESHI_CLASS, + $this->language_data['REGEXPS'][$group])) { + $stylesheet .= "$selector."; + $stylesheet .= $this->language_data['REGEXPS'][$group][GESHI_CLASS]; + $stylesheet .= " {{$styles}}\n"; + } else { + $stylesheet .= "$selector.re$group {{$styles}}\n"; + } + } + } + // Styles for lines being highlighted extra + if (!$economy_mode || (count($this->highlight_extra_lines)!=count($this->highlight_extra_lines_styles))) { + $stylesheet .= "{$selector}.ln-xtra, {$selector}li.ln-xtra, {$selector}div.ln-xtra {{$this->highlight_extra_lines_style}}\n"; + } + foreach ($this->highlight_extra_lines_styles as $lineid => $linestyle) { + $stylesheet .= "{$selector}.lx$lineid, {$selector}li.lx$lineid, {$selector}div.lx$lineid {{$linestyle}}\n"; + } + + return $stylesheet; + } + + /** + * Get's the style that is used for the specified line + * + * @param int The line number information is requested for + * @access private + * @since 1.0.7.21 + */ + public function get_line_style($line) + { + //$style = null; + $style = null; + if (array_key_exists($line, $this->highlight_extra_lines_styles)) { + $style = $this->highlight_extra_lines_styles[$line]; + } else { // if no "extra" style assigned + $style = $this->highlight_extra_lines_style; + } + + return $style; + } +} // End Class GeSHi + + +if (!function_exists('geshi_highlight')) { + /** + * Easy way to highlight stuff. Behaves just like highlight_string + * + * @param string The code to highlight + * @param string The language to highlight the code in + * @param string The path to the language files. You can leave this blank if you need + * as from version 1.0.7 the path should be automatically detected + * @param boolean Whether to return the result or to echo + * @return string The code highlighted (if $return is true) + * @since 1.0.2 + */ + function geshi_highlight($string, $language, $path = null, $return = false) + { + $geshi = new GeSHi($string, $language, $path); + $geshi->set_header_type(GESHI_HEADER_NONE); + if ($return) { + return '' . $geshi->parse_code() . ''; + } + echo '' . $geshi->parse_code() . ''; + if ($geshi->error()) { + return false; + } + return true; + } +} diff --git a/plugins/geshi/gml.php b/plugins/geshi/gml.php old mode 100644 new mode 100755 index 199a0fd..06a4928 --- a/plugins/geshi/gml.php +++ b/plugins/geshi/gml.php @@ -61,442 +61,440 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'GML', - 'COMMENT_SINGLE' => array(1 => '//'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'"), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - // language keywords - 1 => array( - 'break', 'continue', 'do', 'until', 'if', 'else', - 'exit', 'for', 'for', 'repeat', 'return', 'switch', - 'case', 'default', 'var', 'while', 'with', 'div', 'mod', - // GML Language overview - 'self', 'other', 'all', 'noone', 'global', - ), - // modifiers and built-in variables - 2 => array( - // Game play - 'x','y','xprevious','yprevious','xstart','ystart','hspeed','vspeed','direction','speed', - 'friction','gravity','gravity_direction', - 'path_index','path_position','path_positionprevious','path_speed','path_orientation', - 'path_scale','path_endaction', - 'object_index','id','mask_index','solid','persistent','instance_count','instance_id', - 'room_speed','fps','current_time','current_year','current_month','current_day','current_weekday', - 'current_hour','current_minute','current_second','alarm','timeline_index','timeline_position', - 'timeline_speed', - 'room','room_first','room_last','room_width','room_height','room_caption','room_persistent', - 'score','lives','health','show_score','show_lives','show_health','caption_score','caption_lives', - 'caption_health', - 'event_type','event_number','event_object','event_action', - 'error_occurred','error_last', - // User interaction - 'keyboard_lastkey','keyboard_key','keyboard_lastchar','keyboard_string', - 'mouse_x','mouse_y','mouse_button','mouse_lastbutton', - // Game Graphics - 'visible','sprite_index','sprite_width','sprite_height','sprite_xoffset','sprite_yoffset', - 'image_number','image_index','image_speed','depth','image_xscale','image_yscale','image_angle', - 'image_alpha','image_blend','bbox_left','bbox_right','bbox_top','bbox_bottom', - 'background_color','background_showcolor','background_visible','background_foreground', - 'background_index','background_x','background_y','background_width','background_height', - 'background_htiled','background_vtiled','background_xscale','background_yscale', - 'background_hspeed','background_vspeed','background_blend','background_alpha', - 'background','left, top, width, height','x,y','depth','visible','xscale, yscale','blend','alpha', - 'view_enabled','view_current','view_visible','view_yview','view_wview','view_hview','view_xport', - 'view_yport','view_wport','view_hport','view_angle','view_hborder','view_vborder','view_hspeed', - 'view_vspeed','view_object', - 'transition_kind', - // Files, registry and executing programs - 'game_id','working_directory','temp_directory', - 'secure_mode', - // Creating particles - 'xmin', 'xmax', 'ymin', 'ymax','shape','distribution','particle type','number', - 'x', 'y', 'force','dist','kind','additive', 'friction', 'parttype1', 'parttype2' - ), - // functions - 3 => array( - // Computing things - 'random','choose','abs','sign','round','floor','ceil','frac','sqrt','sqr','power','exp','ln', - 'log2','log10','logn','sin','cos','tan','arcsin','arccos','arctan','arctan2','degtorad', - 'radtodeg','min','max','mean','median','point_distance','point_direction','lengthdir_x', - 'lengthdir_y','is_real','is_string', - 'chr','ord','real','string','string_format','string_length','string_pos','string_copy', - 'string_char_at','string_delete','string_insert','string_replace','string_replace_all', - 'string_count','string_lower','string_upper','string_repeat','string_letters','string_digits', - 'string_lettersdigits','clipboard_has_text','clipboard_get_text','clipboard_set_text', - 'date_current_datetime','date_current_date','date_current_time','date_create_datetime', - 'date_create_date','date_create_time','date_valid_datetime','date_valid_date','date_valid_time', - 'date_inc_year','date_inc_month','date_inc_week','date_inc_day','date_inc_hour', - 'date_inc_minute','date_inc_second','date_get_year','date_get_month','date_get_week', - 'date_get_day','date_get_hour', 'date_get_minute','date_get_second','date_get_weekday', - 'date_get_day_of_year','date_get_hour_of_year','date_get_minute_of_year', - 'date_get_second_of_year','date_year_span','date_month_span','date_week_span','date_day_span', - 'date_hour_span','date_minute_span','date_second_span','date_compare_datetime', - 'date_compare_date','date_compare_time','date_date_of','date_time_of','date_datetime_string', - 'date_date_string','date_time_string','date_days_in_month','date_days_in_year','date_leap_year', - 'date_is_today', - // Game play - 'motion_set','motion_add','place_free','place_empty','place_meeting','place_snapped', - 'move_random','move_snap','move_wrap','move_towards_point','move_bounce_solid','move_bounce_all', - 'move_contact_solid','move_contact_all','move_outside_solid','move_outside_all', - 'distance_to_point','distance_to_object','position_empty','position_meeting', - 'path_start','path_end', - 'mp_linear_step','mp_linear_step_object','mp_potential_step','mp_potential_step_object', - 'mp_potential_settings','mp_linear_path','mp_linear_path_object', 'mp_potential_path', - 'mp_potential_path_object','mp_grid_create','mp_grid_destroy','mp_grid_clear_all', - 'mp_grid_clear_cell','mp_grid_clear_rectangle','mp_grid_add_cell','mp_grid_add_rectangle', - 'mp_grid_add_instances','mp_grid_path','mp_grid_draw', - 'collision_point','collision_rectangle','collision_circle','collision_ellipse','collision_line', - 'instance_find','instance_exists','instance_number','instance_position','instance_nearest', - 'instance_furthest','instance_place','instance_create','instance_copy','instance_destroy', - 'instance_change','position_destroy','position_change', - 'instance_deactivate_all','instance_deactivate_object','instance_deactivate_region', - 'instance_activate_all','instance_activate_object','instance_activate_region', - 'sleep', - 'room_goto','room_goto_previous','room_goto_next','room_restart','room_previous','room_next', - 'game_end','game_restart','game_save','game_load', - 'event_perform', 'event_perform_object','event_user','event_inherited', - 'show_debug_message','variable_global_exists','variable_local_exists','variable_global_get', - 'variable_global_array_get','variable_global_array2_get','variable_local_get', - 'variable_local_array_get','variable_local_array2_get','variable_global_set', - 'variable_global_array_set','variable_global_array2_set','variable_local_set', - 'variable_local_array_set','variable_local_array2_set','set_program_priority', - // User interaction - 'keyboard_set_map','keyboard_get_map','keyboard_unset_map','keyboard_check', - 'keyboard_check_pressed','keyboard_check_released','keyboard_check_direct', - 'keyboard_get_numlock','keyboard_set_numlock','keyboard_key_press','keyboard_key_release', - 'keyboard_clear','io_clear','io_handle','keyboard_wait', - 'mouse_check_button','mouse_check_button_pressed','mouse_check_button_released','mouse_clear', - 'io_clear','io_handle','mouse_wait', - 'joystick_exists','joystick_name','joystick_axes','joystick_buttons','joystick_has_pov', - 'joystick_direction','joystick_check_button','joystick_xpos','joystick_ypos','joystick_zpos', - 'joystick_rpos','joystick_upos','joystick_vpos','joystick_pov', - // Game Graphics - 'draw_sprite','draw_sprite_stretched','draw_sprite_tiled','draw_sprite_part','draw_background', - 'draw_background_stretched','draw_background_tiled','draw_background_part','draw_sprite_ext', - 'draw_sprite_stretched_ext','draw_sprite_tiled_ext','draw_sprite_part_ext','draw_sprite_general', - 'draw_background_ext','draw_background_stretched_ext','draw_background_tiled_ext', - 'draw_background_part_ext','draw_background_general', - 'draw_clear','draw_clear_alpha','draw_point','draw_line','draw_rectangle','draw_roundrect', - 'draw_triangle','draw_circle','draw_ellipse','draw_arrow','draw_button','draw_path', - 'draw_healthbar','draw_set_color','draw_set_alpha','draw_get_color','draw_get_alpha', - 'make_color_rgb','make_color_hsv','color_get_red','color_get_green','color_get_blue', - 'color_get_hue','color_get_saturation','color_get_value','merge_color','draw_getpixel', - 'screen_save','screen_save_part', - 'draw_set_font','draw_set_halign','draw_set_valign','draw_text','draw_text_ext','string_width', - 'string_height','string_width_ext','string_height_ext','draw_text_transformed', - 'draw_text_ext_transformed','draw_text_color','draw_text_ext_color', - 'draw_text_transformed_color','draw_text_ext_transformed_color', - 'draw_point_color','draw_line_color','draw_rectangle_color','draw_roundrect_color', - 'draw_triangle_color','draw_circle_color','draw_ellipse_color','draw_primitive_begin', - 'draw_vertex','draw_vertex_color','draw_primitive_end','sprite_get_texture', - 'background_get_texture','texture_preload','texture_set_priority', - 'texture_get_width','texture_get_height','draw_primitive_begin_texture','draw_vertex_texture', - 'draw_vertex_texture_color','draw_primitive_end','texture_set_interpolation', - 'texture_set_blending','texture_set_repeat','draw_set_blend_mode','draw_set_blend_mode_ext', - 'surface_create','surface_free','surface_exists','surface_get_width','surface_get_height', - 'surface_get_texture','surface_set_target','surface_reset_target','surface_getpixel', - 'surface_save','surface_save_part','draw_surface','draw_surface_stretched','draw_surface_tiled', - 'draw_surface_part','draw_surface_ext','draw_surface_stretched_ext','draw_surface_tiled_ext', - 'draw_surface_part_ext','draw_surface_general','surface_copy','surface_copy_part', - 'tile_add','tile_delete','tile_exists','tile_get_x','tile_get_y','tile_get_left','tile_get_top', - 'tile_get_width','tile_get_height','tile_get_depth','tile_get_visible','tile_get_xscale', - 'tile_get_yscale','tile_get_background','tile_get_blend','tile_get_alpha','tile_set_position', - 'tile_set_region','tile_set_background','tile_set_visible','tile_set_depth','tile_set_scale', - 'tile_set_blend','tile_set_alpha','tile_layer_hide','tile_layer_show','tile_layer_delete', - 'tile_layer_shift','tile_layer_find','tile_layer_delete_at','tile_layer_depth', - 'display_get_width','display_get_height','display_get_colordepth','display_get_frequency', - 'display_set_size','display_set_colordepth','display_set_frequency','display_set_all', - 'display_test_all','display_reset','display_mouse_get_x','display_mouse_get_y','display_mouse_set', - 'window_set_visible','window_get_visible','window_set_fullscreen','window_get_fullscreen', - 'window_set_showborder','window_get_showborder','window_set_showicons','window_get_showicons', - 'window_set_stayontop','window_get_stayontop','window_set_sizeable','window_get_sizeable', - 'window_set_caption','window_get_caption','window_set_cursor', 'window_get_cursor', - 'window_set_color','window_get_color','window_set_region_scale','window_get_region_scale', - 'window_set_position','window_set_size','window_set_rectangle','window_center','window_default', - 'window_get_x','window_get_y','window_get_width','window_get_height','window_mouse_get_x', - 'window_mouse_get_y','window_mouse_set', - 'window_set_region_size','window_get_region_width','window_get_region_height', - 'window_view_mouse_get_x','window_view_mouse_get_y','window_view_mouse_set', - 'window_views_mouse_get_x','window_views_mouse_get_y','window_views_mouse_set', - 'screen_redraw','screen_refresh','set_automatic_draw','set_synchronization','screen_wait_vsync', - // Sound and music) - 'sound_play','sound_loop','sound_stop','sound_stop_all','sound_isplaying','sound_volume', - 'sound_global_volume','sound_fade','sound_pan','sound_background_tempo','sound_set_search_directory', - 'sound_effect_set','sound_effect_chorus','sound_effect_echo', 'sound_effect_flanger', - 'sound_effect_gargle','sound_effect_reverb','sound_effect_compressor','sound_effect_equalizer', - 'sound_3d_set_sound_position','sound_3d_set_sound_velocity','sound_3d_set_sound_distance', - 'sound_3d_set_sound_cone', - 'cd_init','cd_present','cd_number','cd_playing','cd_paused','cd_track','cd_length', - 'cd_track_length','cd_position','cd_track_position','cd_play','cd_stop','cd_pause','cd_resume', - 'cd_set_position','cd_set_track_position','cd_open_door','cd_close_door','MCI_command', - // Splash screens, highscores, and other pop-ups - 'show_text','show_image','show_video','show_info','load_info', - 'show_message','show_message_ext','show_question','get_integer','get_string', - 'message_background','message_alpha','message_button','message_text_font','message_button_font', - 'message_input_font','message_mouse_color','message_input_color','message_caption', - 'message_position','message_size','show_menu','show_menu_pos','get_color','get_open_filename', - 'get_save_filename','get_directory','get_directory_alt','show_error', - 'highscore_show','highscore_set_background','highscore_set_border','highscore_set_font', - 'highscore_set_colors','highscore_set_strings','highscore_show_ext','highscore_clear', - 'highscore_add','highscore_add_current','highscore_value','highscore_name','draw_highscore', - // Resources - 'sprite_exists','sprite_get_name','sprite_get_number','sprite_get_width','sprite_get_height', - 'sprite_get_transparent','sprite_get_smooth','sprite_get_preload','sprite_get_xoffset', - 'sprite_get_yoffset','sprite_get_bbox_left','sprite_get_bbox_right','sprite_get_bbox_top', - 'sprite_get_bbox_bottom','sprite_get_bbox_mode','sprite_get_precise', - 'sound_exists','sound_get_name','sound_get_kind','sound_get_preload','sound_discard', - 'sound_restore', - 'background_exists','background_get_name','background_get_width','background_get_height', - 'background_get_transparent','background_get_smooth','background_get_preload', - 'font_exists','font_get_name','font_get_fontname','font_get_bold','font_get_italic', - 'font_get_first','font_get_last', - 'path_exists','path_get_name','path_get_length','path_get_kind','path_get_closed', - 'path_get_precision','path_get_number','path_get_point_x','path_get_point_y', - 'path_get_point_speed','path_get_x','path_get_y','path_get_speed', - 'script_exists','script_get_name','script_get_text', - 'timeline_exists','timeline_get_name', - 'object_exists','object_get_name','object_get_sprite','object_get_solid','object_get_visible', - 'object_get_depth','object_get_persistent','object_get_mask','object_get_parent', - 'object_is_ancestor', - 'room_exists','room_get_name', - // Changing resources - 'sprite_set_offset','sprite_set_bbox_mode','sprite_set_bbox','sprite_set_precise', - 'sprite_duplicate','sprite_assign','sprite_merge','sprite_add','sprite_replace', - 'sprite_create_from_screen','sprite_add_from_screen','sprite_create_from_surface', - 'sprite_add_from_surface','sprite_delete','sprite_set_alpha_from_sprite', - 'sound_add','sound_replace','sound_delete', - 'background_duplicate','background_assign','background_add','background_replace', - 'background_create_color','background_create_gradient','background_create_from_screen', - 'background_create_from_surface','background_delete','background_set_alpha_from_background', - 'font_add','font_add_sprite','font_replace_sprite','font_delete', - 'path_set_kind','path_set_closed','path_set_precision','path_add','path_delete','path_duplicate', - 'path_assign','path_append','path_add_point','path_insert_point','path_change_point', - 'path_delete_point','path_clear_points','path_reverse','path_mirror','path_flip','path_rotate', - 'path_scale','path_shift', - 'execute_string','execute_file','script_execute', - 'timeline_add','timeline_delete','timeline_moment_add','timeline_moment_clear', - 'object_set_sprite','object_set_solid','object_set_visible','object_set_depth', - 'object_set_persistent','object_set_mask','object_set_parent','object_add','object_delete', - 'object_event_add','object_event_clear', - 'room_set_width','room_set_height','room_set_caption','room_set_persistent','room_set_code', - 'room_set_background_color','room_set_background','room_set_view','room_set_view_enabled', - 'room_add','room_duplicate','room_assign','room_instance_add','room_instance_clear', - 'room_tile_add','room_tile_add_ext','room_tile_clear', - // Files, registry and executing programs - 'file_text_open_read','file_text_open_write','file_text_open_append','file_text_close', - 'file_text_write_string','file_text_write_real','file_text_writeln','file_text_read_string', - 'file_text_read_real','file_text_readln','file_text_eof','file_exists','file_delete', - 'file_rename','file_copy','directory_exists','directory_create','file_find_first', - 'file_find_next','file_find_close','file_attributes', 'filename_name','filename_path', - 'filename_dir','filename_drive','filename_ext','filename_change_ext','file_bin_open', - 'file_bin_rewrite','file_bin_close','file_bin_size','file_bin_position','file_bin_seek', - 'file_bin_write_byte','file_bin_read_byte','parameter_count','parameter_string', - 'environment_get_variable', - 'registry_write_string','registry_write_real','registry_read_string','registry_read_real', - 'registry_exists','registry_write_string_ext','registry_write_real_ext', - 'registry_read_string_ext','registry_read_real_ext','registry_exists_ext','registry_set_root', - 'ini_open','ini_close','ini_read_string','ini_read_real','ini_write_string','ini_write_real', - 'ini_key_exists','ini_section_exists','ini_key_delete','ini_section_delete', - 'execute_program','execute_shell', - // Data structures - 'ds_stack_create','ds_stack_destroy','ds_stack_clear','ds_stack_size','ds_stack_empty', - 'ds_stack_push','ds_stack_pop','ds_stack_top', - 'ds_queue_create','ds_queue_destroy','ds_queue_clear','ds_queue_size','ds_queue_empty', - 'ds_queue_enqueue','ds_queue_dequeue','ds_queue_head','ds_queue_tail', - 'ds_list_create','ds_list_destroy','ds_list_clear','ds_list_size','ds_list_empty','ds_list_add', - 'ds_list_insert','ds_list_replace','ds_list_delete','ds_list_find_index','ds_list_find_value', - 'ds_list_sort', - 'ds_map_create','ds_map_destroy','ds_map_clear','ds_map_size','ds_map_empty','ds_map_add', - 'ds_map_replace','ds_map_delete','ds_map_exists','ds_map_find_value','ds_map_find_previous', - 'ds_map_find_next','ds_map_find_first','ds_map_find_last', - 'ds_priority_create','ds_priority_destroy','ds_priority_clear','ds_priority_size', - 'ds_priority_empty','ds_priority_add','ds_priority_change_priority','ds_priority_find_priority', - 'ds_priority_delete_value','ds_priority_delete_min','ds_priority_find_min', - 'ds_priority_delete_max','ds_priority_find_max', - 'ds_grid_create','ds_grid_destroy','ds_grid_resize','ds_grid_width','ds_grid_height', - 'ds_grid_clear','ds_grid_set','ds_grid_add','ds_grid_multiply','ds_grid_set_region', - 'ds_grid_add_region','ds_grid_multiply_region','ds_grid_set_disk','ds_grid_add_disk', - 'ds_grid_multiply_disk','ds_grid_get','ds_grid_get_sum','ds_grid_get_max','ds_grid_get_min', - 'ds_grid_get_mean','ds_grid_get_disk_sum','ds_grid_get_disk_min','ds_grid_get_disk_max', - 'ds_grid_get_disk_mean','ds_grid_value_exists','ds_grid_value_x','ds_grid_value_y', - 'ds_grid_value_disk_exists','ds_grid_value_disk_x','ds_grid_value_disk_y', - // Creating particles - 'effect_create_below','effect_create_above','effect_clear', - 'part_type_create','part_type_destroy','part_type_exists','part_type_clear','part_type_shape', - 'part_type_sprite','part_type_size','part_type_scale', - 'part_type_orientation','part_type_color1','part_type_color2','part_type_color3', - 'part_type_color_mix','part_type_color_rgb','part_type_color_hsv', - 'part_type_alpha1','part_type_alpha2','part_type_alpha3','part_type_blend','part_type_life', - 'part_type_step','part_type_death','part_type_speed','part_type_direction','part_type_gravity', - 'part_system_create','part_system_destroy','part_system_exists','part_system_clear', - 'part_system_draw_order','part_system_depth','part_system_position', - 'part_system_automatic_update','part_system_automatic_draw','part_system_update', - 'part_system_drawit','part_particles_create','part_particles_create_color', - 'part_particles_clear','part_particles_count', - 'part_emitter_create','part_emitter_destroy','part_emitter_destroy_all','part_emitter_exists', - 'part_emitter_clear','part_emitter_region','part_emitter_burst','part_emitter_stream', - 'part_attractor_create','part_attractor_destroy','part_attractor_destroy_all', - 'part_attractor_exists','part_attractor_clear','part_attractor_position','part_attractor_force', - 'part_destroyer_create','part_destroyer_destroy','part_destroyer_destroy_all', - 'part_destroyer_exists','part_destroyer_clear','part_destroyer_region', - 'part_deflector_create','part_deflector_destroy','part_deflector_destroy_all', - 'part_deflector_exists','part_deflector_clear','part_deflector_region','part_deflector_kind', - 'part_deflector_friction', - 'part_changer_create','part_changer_destroy','part_changer_destroy_all','part_changer_exists', - 'part_changer_clear','part_changer_region','part_changer_types','part_changer_kind', - // Multiplayer games - 'mplay_init_ipx','mplay_init_tcpip','mplay_init_modem','mplay_init_serial', - 'mplay_connect_status','mplay_end','mplay_ipaddress', - 'mplay_session_create','mplay_session_find','mplay_session_name','mplay_session_join', - 'mplay_session_mode','mplay_session_status','mplay_session_end', - 'mplay_player_find','mplay_player_name','mplay_player_id', - 'mplay_data_write','mplay_data_read','mplay_data_mode', - 'mplay_message_send','mplay_message_send_guaranteed','mplay_message_receive','mplay_message_id', - 'mplay_message_value','mplay_message_player','mplay_message_name','mplay_message_count', - 'mplay_message_clear', - // Using DLL's - 'external_define','external_call','external_free','execute_string','execute_file','window_handle', - // 3D Graphics - 'd3d_start','d3d_end','d3d_set_hidden','d3d_set_perspective', - 'd3d_set_depth', - 'd3d_primitive_begin','d3d_vertex','d3d_vertex_color','d3d_primitive_end', - 'd3d_primitive_begin_texture','d3d_vertex_texture','d3d_vertex_texture_color','d3d_set_culling', - 'd3d_draw_block','d3d_draw_cylinder','d3d_draw_cone','d3d_draw_ellipsoid','d3d_draw_wall', - 'd3d_draw_floor', - 'd3d_set_projection','d3d_set_projection_ext','d3d_set_projection_ortho', - 'd3d_set_projection_perspective', - 'd3d_transform_set_identity','d3d_transform_set_translation','d3d_transform_set_scaling', - 'd3d_transform_set_rotation_x','d3d_transform_set_rotation_y','d3d_transform_set_rotation_z', - 'd3d_transform_set_rotation_axis','d3d_transform_add_translation','d3d_transform_add_scaling', - 'd3d_transform_add_rotation_x','d3d_transform_add_rotation_y','d3d_transform_add_rotation_z', - 'd3d_transform_add_rotation_axis','d3d_transform_stack_clear','d3d_transform_stack_empty', - 'd3d_transform_stack_push','d3d_transform_stack_pop','d3d_transform_stack_top', - 'd3d_transform_stack_discard', - 'd3d_set_fog', - 'd3d_set_lighting','d3d_set_shading','d3d_light_define_direction','d3d_light_define_point', - 'd3d_light_enable','d3d_vertex_normal','d3d_vertex_normal_color','d3d_vertex_normal_texture', - 'd3d_vertex_normal_texture_color', - 'd3d_model_create','d3d_model_destroy','d3d_model_clear','d3d_model_save','d3d_model_load', - 'd3d_model_draw','d3d_model_primitive_begin','d3d_model_vertex','d3d_model_vertex_color', - 'd3d_model_vertex_texture','d3d_model_vertex_texture_color','d3d_model_vertex_normal', - 'd3d_model_vertex_normal_color','d3d_model_vertex_normal_texture', - 'd3d_model_vertex_normal_texture_color','d3d_model_primitive_end','d3d_model_block', - 'd3d_model_cylinder','d3d_model_cone','d3d_model_ellipsoid','d3d_model_wall','d3d_model_floor' - ), - // constants - 4 => array( - 'true', 'false', 'pi', - 'ev_destroy','ev_step','ev_alarm','ev_keyboard','ev_mouse','ev_collision','ev_other','ev_draw', - 'ev_keypress','ev_keyrelease','ev_left_button','ev_right_button','ev_middle_button', - 'ev_no_button','ev_left_press','ev_right_press','ev_middle_press','ev_left_release', - 'ev_right_release','ev_middle_release','ev_mouse_enter','ev_mouse_leave','ev_mouse_wheel_up', - 'ev_mouse_wheel_down','ev_global_left_button','ev_global_right_button','ev_global_middle_button', - 'ev_global_left_press','ev_global_right_press','ev_global_middle_press','ev_global_left_release', - 'ev_global_right_release','ev_global_middle_release','ev_joystick1_left','ev_joystick1_right', - 'ev_joystick1_up','ev_joystick1_down','ev_joystick1_button1','ev_joystick1_button2', - 'ev_joystick1_button3','ev_joystick1_button4','ev_joystick1_button5','ev_joystick1_button6', - 'ev_joystick1_button7','ev_joystick1_button8','ev_joystick2_left','ev_joystick2_right', - 'ev_joystick2_up','ev_joystick2_down','ev_joystick2_button1','ev_joystick2_button2', - 'ev_joystick2_button3','ev_joystick2_button4','ev_joystick2_button5','ev_joystick2_button6', - 'ev_joystick2_button7','ev_joystick2_button8', - 'ev_outside','ev_boundary','ev_game_start','ev_game_end','ev_room_start','ev_room_end', - 'ev_no_more_lives','ev_no_more_health','ev_animation_end','ev_end_of_path','ev_user0','ev_user1', - 'ev_user2','ev_user3','ev_user4','ev_user5','ev_user6','ev_user7','ev_user8','ev_user9', - 'ev_user10','ev_user11','ev_user12','ev_user13','ev_user14','ev_user15','ev_step_normal', - 'ev_step_begin','ev_step_end', - 'vk_nokey','vk_anykey','vk_left','vk_right','vk_up','vk_down','vk_enter','vk_escape','vk_space', - 'vk_shift','vk_control','vk_alt','vk_backspace','vk_tab','vk_home','vk_end','vk_delete', - 'vk_insert','vk_pageup','vk_pagedown','vk_pause','vk_printscreen', - 'vk_f1','vk_f2','vk_f3','vk_f4','vk_f5','vk_f6','vk_f7','vk_f8','vk_f9','vk_f10','vk_f11','vk_f12', - 'vk_numpad0','vk_numpad1','vk_numpad2','vk_numpad3','vk_numpad4','vk_numpad5','vk_numpad6', - 'vk_numpad7','vk_numpad8','vk_numpad9', 'vk_multiply','vk_divide','vk_add','vk_subtract', - 'vk_decimal','vk_lshift','vk_lcontrol','vk_lalt','vk_rshift','vk_rcontrol','vk_ralt', - 'c_aqua','c_black','c_blue','c_dkgray','c_fuchsia','c_gray','c_green','c_lime','c_ltgray', - 'c_maroon','c_navy','c_olive','c_purple','c_red','c_silver','c_teal','c_white','c_yellow', - 'fa_left', 'fa_center','fa_right','fa_top','fa_middle','fa_bottom', - 'pr_pointlist','pr_linelist','pr_linestrip','pr_trianglelist','pr_trianglestrip', - 'pr_trianglefan', - 'cr_none','cr_arrow','cr_cross','cr_beam','cr_size_nesw','cr_size_ns','cr_size_nwse', - 'cr_size_we','cr_uparrow','cr_hourglass','cr_drag','cr_nodrop','cr_hsplit','cr_vsplit', - 'cr_multidrag','cr_sqlwait','cr_no','cr_appstart','cr_help','cr_handpoint','cr_size_all', - 'se_chorus','se_echo','se_flanger','se_gargle','se_reverb','se_compressor','se_equalizer', - 'fa_readonly','fa_hidden','fa_sysfile','fa_volumeid','fa_directory','fa_archive', - 'pt_shape_pixel','pt_shape_disk','pt_shape_square','pt_shape_line','pt_shape_star', - 'pt_shape_circle','pt_shape_ring','pt_shape_sphere','pt_shape_flare','pt_shape_spark', - 'pt_shape_explosion','pt_shape_cloud','pt_shape_smoke','pt_shape_snow', - 'ps_shape_rectangle','ps_shape_ellipse ','ps_shape_diamond','ps_shape_line', - 'ps_distr_linear','ps_distr_gaussian','ps_force_constant','ps_force_linear','ps_force_quadratic', - 'ps_deflect_horizontal', 'ps_deflect_vertical', - 'ps_change_motion','ps_change_shape','ps_change_all' - ), - ), - 'SYMBOLS' => array( - '(', ')', '{', '}', '[', ']', '&&', '||', '^^', '<', '<=', '==', '!=', '>', '>=', - '|', '&', '^', '<<', '>>', '+', '-', '*', '/', '!', '-', '~' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => true, - 2 => true, - 3 => true, - 4 => true, - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'font-weight: bold; color: #000000;', - 2 => 'font-weight: bold; color: #000000;', - 3 => 'color: navy;', - 4 => 'color: #663300;', - ), - 'COMMENTS' => array( - 1 => 'font-style: italic; color: green;', - 'MULTI' => 'font-style: italic; color: green;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: #000000;' //'color: #66cc66;' - ), - 'STRINGS' => array( - 0 => 'color: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( - 1 => 'color: #202020;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66; font-weight: bold;' - ), - 'REGEXPS' => array( - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - 1 => '', - 2 => '', - // All GML functions have been indexed, but need some corrections. - 3 => 'http://www.zonamakers.com/gmlreference/{FNAME}.html', // (provisional, could change soon!) - 4 => '' - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.' - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) +$language_data = array( + 'LANG_NAME' => 'GML', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'"), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + // language keywords + 1 => array( + 'break', 'continue', 'do', 'until', 'if', 'else', + 'exit', 'for', 'for', 'repeat', 'return', 'switch', + 'case', 'default', 'var', 'while', 'with', 'div', 'mod', + // GML Language overview + 'self', 'other', 'all', 'noone', 'global', + ), + // modifiers and built-in variables + 2 => array( + // Game play + 'x','y','xprevious','yprevious','xstart','ystart','hspeed','vspeed','direction','speed', + 'friction','gravity','gravity_direction', + 'path_index','path_position','path_positionprevious','path_speed','path_orientation', + 'path_scale','path_endaction', + 'object_index','id','mask_index','solid','persistent','instance_count','instance_id', + 'room_speed','fps','current_time','current_year','current_month','current_day','current_weekday', + 'current_hour','current_minute','current_second','alarm','timeline_index','timeline_position', + 'timeline_speed', + 'room','room_first','room_last','room_width','room_height','room_caption','room_persistent', + 'score','lives','health','show_score','show_lives','show_health','caption_score','caption_lives', + 'caption_health', + 'event_type','event_number','event_object','event_action', + 'error_occurred','error_last', + // User interaction + 'keyboard_lastkey','keyboard_key','keyboard_lastchar','keyboard_string', + 'mouse_x','mouse_y','mouse_button','mouse_lastbutton', + // Game Graphics + 'visible','sprite_index','sprite_width','sprite_height','sprite_xoffset','sprite_yoffset', + 'image_number','image_index','image_speed','depth','image_xscale','image_yscale','image_angle', + 'image_alpha','image_blend','bbox_left','bbox_right','bbox_top','bbox_bottom', + 'background_color','background_showcolor','background_visible','background_foreground', + 'background_index','background_x','background_y','background_width','background_height', + 'background_htiled','background_vtiled','background_xscale','background_yscale', + 'background_hspeed','background_vspeed','background_blend','background_alpha', + 'background','left, top, width, height','x,y','depth','visible','xscale, yscale','blend','alpha', + 'view_enabled','view_current','view_visible','view_yview','view_wview','view_hview','view_xport', + 'view_yport','view_wport','view_hport','view_angle','view_hborder','view_vborder','view_hspeed', + 'view_vspeed','view_object', + 'transition_kind', + // Files, registry and executing programs + 'game_id','working_directory','temp_directory', + 'secure_mode', + // Creating particles + 'xmin', 'xmax', 'ymin', 'ymax','shape','distribution','particle type','number', + 'x', 'y', 'force','dist','kind','additive', 'friction', 'parttype1', 'parttype2' + ), + // functions + 3 => array( + // Computing things + 'random','choose','abs','sign','round','floor','ceil','frac','sqrt','sqr','power','exp','ln', + 'log2','log10','logn','sin','cos','tan','arcsin','arccos','arctan','arctan2','degtorad', + 'radtodeg','min','max','mean','median','point_distance','point_direction','lengthdir_x', + 'lengthdir_y','is_real','is_string', + 'chr','ord','real','string','string_format','string_length','string_pos','string_copy', + 'string_char_at','string_delete','string_insert','string_replace','string_replace_all', + 'string_count','string_lower','string_upper','string_repeat','string_letters','string_digits', + 'string_lettersdigits','clipboard_has_text','clipboard_get_text','clipboard_set_text', + 'date_current_datetime','date_current_date','date_current_time','date_create_datetime', + 'date_create_date','date_create_time','date_valid_datetime','date_valid_date','date_valid_time', + 'date_inc_year','date_inc_month','date_inc_week','date_inc_day','date_inc_hour', + 'date_inc_minute','date_inc_second','date_get_year','date_get_month','date_get_week', + 'date_get_day','date_get_hour', 'date_get_minute','date_get_second','date_get_weekday', + 'date_get_day_of_year','date_get_hour_of_year','date_get_minute_of_year', + 'date_get_second_of_year','date_year_span','date_month_span','date_week_span','date_day_span', + 'date_hour_span','date_minute_span','date_second_span','date_compare_datetime', + 'date_compare_date','date_compare_time','date_date_of','date_time_of','date_datetime_string', + 'date_date_string','date_time_string','date_days_in_month','date_days_in_year','date_leap_year', + 'date_is_today', + // Game play + 'motion_set','motion_add','place_free','place_empty','place_meeting','place_snapped', + 'move_random','move_snap','move_wrap','move_towards_point','move_bounce_solid','move_bounce_all', + 'move_contact_solid','move_contact_all','move_outside_solid','move_outside_all', + 'distance_to_point','distance_to_object','position_empty','position_meeting', + 'path_start','path_end', + 'mp_linear_step','mp_linear_step_object','mp_potential_step','mp_potential_step_object', + 'mp_potential_settings','mp_linear_path','mp_linear_path_object', 'mp_potential_path', + 'mp_potential_path_object','mp_grid_create','mp_grid_destroy','mp_grid_clear_all', + 'mp_grid_clear_cell','mp_grid_clear_rectangle','mp_grid_add_cell','mp_grid_add_rectangle', + 'mp_grid_add_instances','mp_grid_path','mp_grid_draw', + 'collision_point','collision_rectangle','collision_circle','collision_ellipse','collision_line', + 'instance_find','instance_exists','instance_number','instance_position','instance_nearest', + 'instance_furthest','instance_place','instance_create','instance_copy','instance_destroy', + 'instance_change','position_destroy','position_change', + 'instance_deactivate_all','instance_deactivate_object','instance_deactivate_region', + 'instance_activate_all','instance_activate_object','instance_activate_region', + 'sleep', + 'room_goto','room_goto_previous','room_goto_next','room_restart','room_previous','room_next', + 'game_end','game_restart','game_save','game_load', + 'event_perform', 'event_perform_object','event_user','event_inherited', + 'show_debug_message','variable_global_exists','variable_local_exists','variable_global_get', + 'variable_global_array_get','variable_global_array2_get','variable_local_get', + 'variable_local_array_get','variable_local_array2_get','variable_global_set', + 'variable_global_array_set','variable_global_array2_set','variable_local_set', + 'variable_local_array_set','variable_local_array2_set','set_program_priority', + // User interaction + 'keyboard_set_map','keyboard_get_map','keyboard_unset_map','keyboard_check', + 'keyboard_check_pressed','keyboard_check_released','keyboard_check_direct', + 'keyboard_get_numlock','keyboard_set_numlock','keyboard_key_press','keyboard_key_release', + 'keyboard_clear','io_clear','io_handle','keyboard_wait', + 'mouse_check_button','mouse_check_button_pressed','mouse_check_button_released','mouse_clear', + 'io_clear','io_handle','mouse_wait', + 'joystick_exists','joystick_name','joystick_axes','joystick_buttons','joystick_has_pov', + 'joystick_direction','joystick_check_button','joystick_xpos','joystick_ypos','joystick_zpos', + 'joystick_rpos','joystick_upos','joystick_vpos','joystick_pov', + // Game Graphics + 'draw_sprite','draw_sprite_stretched','draw_sprite_tiled','draw_sprite_part','draw_background', + 'draw_background_stretched','draw_background_tiled','draw_background_part','draw_sprite_ext', + 'draw_sprite_stretched_ext','draw_sprite_tiled_ext','draw_sprite_part_ext','draw_sprite_general', + 'draw_background_ext','draw_background_stretched_ext','draw_background_tiled_ext', + 'draw_background_part_ext','draw_background_general', + 'draw_clear','draw_clear_alpha','draw_point','draw_line','draw_rectangle','draw_roundrect', + 'draw_triangle','draw_circle','draw_ellipse','draw_arrow','draw_button','draw_path', + 'draw_healthbar','draw_set_color','draw_set_alpha','draw_get_color','draw_get_alpha', + 'make_color_rgb','make_color_hsv','color_get_red','color_get_green','color_get_blue', + 'color_get_hue','color_get_saturation','color_get_value','merge_color','draw_getpixel', + 'screen_save','screen_save_part', + 'draw_set_font','draw_set_halign','draw_set_valign','draw_text','draw_text_ext','string_width', + 'string_height','string_width_ext','string_height_ext','draw_text_transformed', + 'draw_text_ext_transformed','draw_text_color','draw_text_ext_color', + 'draw_text_transformed_color','draw_text_ext_transformed_color', + 'draw_point_color','draw_line_color','draw_rectangle_color','draw_roundrect_color', + 'draw_triangle_color','draw_circle_color','draw_ellipse_color','draw_primitive_begin', + 'draw_vertex','draw_vertex_color','draw_primitive_end','sprite_get_texture', + 'background_get_texture','texture_preload','texture_set_priority', + 'texture_get_width','texture_get_height','draw_primitive_begin_texture','draw_vertex_texture', + 'draw_vertex_texture_color','draw_primitive_end','texture_set_interpolation', + 'texture_set_blending','texture_set_repeat','draw_set_blend_mode','draw_set_blend_mode_ext', + 'surface_create','surface_free','surface_exists','surface_get_width','surface_get_height', + 'surface_get_texture','surface_set_target','surface_reset_target','surface_getpixel', + 'surface_save','surface_save_part','draw_surface','draw_surface_stretched','draw_surface_tiled', + 'draw_surface_part','draw_surface_ext','draw_surface_stretched_ext','draw_surface_tiled_ext', + 'draw_surface_part_ext','draw_surface_general','surface_copy','surface_copy_part', + 'tile_add','tile_delete','tile_exists','tile_get_x','tile_get_y','tile_get_left','tile_get_top', + 'tile_get_width','tile_get_height','tile_get_depth','tile_get_visible','tile_get_xscale', + 'tile_get_yscale','tile_get_background','tile_get_blend','tile_get_alpha','tile_set_position', + 'tile_set_region','tile_set_background','tile_set_visible','tile_set_depth','tile_set_scale', + 'tile_set_blend','tile_set_alpha','tile_layer_hide','tile_layer_show','tile_layer_delete', + 'tile_layer_shift','tile_layer_find','tile_layer_delete_at','tile_layer_depth', + 'display_get_width','display_get_height','display_get_colordepth','display_get_frequency', + 'display_set_size','display_set_colordepth','display_set_frequency','display_set_all', + 'display_test_all','display_reset','display_mouse_get_x','display_mouse_get_y','display_mouse_set', + 'window_set_visible','window_get_visible','window_set_fullscreen','window_get_fullscreen', + 'window_set_showborder','window_get_showborder','window_set_showicons','window_get_showicons', + 'window_set_stayontop','window_get_stayontop','window_set_sizeable','window_get_sizeable', + 'window_set_caption','window_get_caption','window_set_cursor', 'window_get_cursor', + 'window_set_color','window_get_color','window_set_region_scale','window_get_region_scale', + 'window_set_position','window_set_size','window_set_rectangle','window_center','window_default', + 'window_get_x','window_get_y','window_get_width','window_get_height','window_mouse_get_x', + 'window_mouse_get_y','window_mouse_set', + 'window_set_region_size','window_get_region_width','window_get_region_height', + 'window_view_mouse_get_x','window_view_mouse_get_y','window_view_mouse_set', + 'window_views_mouse_get_x','window_views_mouse_get_y','window_views_mouse_set', + 'screen_redraw','screen_refresh','set_automatic_draw','set_synchronization','screen_wait_vsync', + // Sound and music) + 'sound_play','sound_loop','sound_stop','sound_stop_all','sound_isplaying','sound_volume', + 'sound_global_volume','sound_fade','sound_pan','sound_background_tempo','sound_set_search_directory', + 'sound_effect_set','sound_effect_chorus','sound_effect_echo', 'sound_effect_flanger', + 'sound_effect_gargle','sound_effect_reverb','sound_effect_compressor','sound_effect_equalizer', + 'sound_3d_set_sound_position','sound_3d_set_sound_velocity','sound_3d_set_sound_distance', + 'sound_3d_set_sound_cone', + 'cd_init','cd_present','cd_number','cd_playing','cd_paused','cd_track','cd_length', + 'cd_track_length','cd_position','cd_track_position','cd_play','cd_stop','cd_pause','cd_resume', + 'cd_set_position','cd_set_track_position','cd_open_door','cd_close_door','MCI_command', + // Splash screens, highscores, and other pop-ups + 'show_text','show_image','show_video','show_info','load_info', + 'show_message','show_message_ext','show_question','get_integer','get_string', + 'message_background','message_alpha','message_button','message_text_font','message_button_font', + 'message_input_font','message_mouse_color','message_input_color','message_caption', + 'message_position','message_size','show_menu','show_menu_pos','get_color','get_open_filename', + 'get_save_filename','get_directory','get_directory_alt','show_error', + 'highscore_show','highscore_set_background','highscore_set_border','highscore_set_font', + 'highscore_set_colors','highscore_set_strings','highscore_show_ext','highscore_clear', + 'highscore_add','highscore_add_current','highscore_value','highscore_name','draw_highscore', + // Resources + 'sprite_exists','sprite_get_name','sprite_get_number','sprite_get_width','sprite_get_height', + 'sprite_get_transparent','sprite_get_smooth','sprite_get_preload','sprite_get_xoffset', + 'sprite_get_yoffset','sprite_get_bbox_left','sprite_get_bbox_right','sprite_get_bbox_top', + 'sprite_get_bbox_bottom','sprite_get_bbox_mode','sprite_get_precise', + 'sound_exists','sound_get_name','sound_get_kind','sound_get_preload','sound_discard', + 'sound_restore', + 'background_exists','background_get_name','background_get_width','background_get_height', + 'background_get_transparent','background_get_smooth','background_get_preload', + 'font_exists','font_get_name','font_get_fontname','font_get_bold','font_get_italic', + 'font_get_first','font_get_last', + 'path_exists','path_get_name','path_get_length','path_get_kind','path_get_closed', + 'path_get_precision','path_get_number','path_get_point_x','path_get_point_y', + 'path_get_point_speed','path_get_x','path_get_y','path_get_speed', + 'script_exists','script_get_name','script_get_text', + 'timeline_exists','timeline_get_name', + 'object_exists','object_get_name','object_get_sprite','object_get_solid','object_get_visible', + 'object_get_depth','object_get_persistent','object_get_mask','object_get_parent', + 'object_is_ancestor', + 'room_exists','room_get_name', + // Changing resources + 'sprite_set_offset','sprite_set_bbox_mode','sprite_set_bbox','sprite_set_precise', + 'sprite_duplicate','sprite_assign','sprite_merge','sprite_add','sprite_replace', + 'sprite_create_from_screen','sprite_add_from_screen','sprite_create_from_surface', + 'sprite_add_from_surface','sprite_delete','sprite_set_alpha_from_sprite', + 'sound_add','sound_replace','sound_delete', + 'background_duplicate','background_assign','background_add','background_replace', + 'background_create_color','background_create_gradient','background_create_from_screen', + 'background_create_from_surface','background_delete','background_set_alpha_from_background', + 'font_add','font_add_sprite','font_replace_sprite','font_delete', + 'path_set_kind','path_set_closed','path_set_precision','path_add','path_delete','path_duplicate', + 'path_assign','path_append','path_add_point','path_insert_point','path_change_point', + 'path_delete_point','path_clear_points','path_reverse','path_mirror','path_flip','path_rotate', + 'path_scale','path_shift', + 'execute_string','execute_file','script_execute', + 'timeline_add','timeline_delete','timeline_moment_add','timeline_moment_clear', + 'object_set_sprite','object_set_solid','object_set_visible','object_set_depth', + 'object_set_persistent','object_set_mask','object_set_parent','object_add','object_delete', + 'object_event_add','object_event_clear', + 'room_set_width','room_set_height','room_set_caption','room_set_persistent','room_set_code', + 'room_set_background_color','room_set_background','room_set_view','room_set_view_enabled', + 'room_add','room_duplicate','room_assign','room_instance_add','room_instance_clear', + 'room_tile_add','room_tile_add_ext','room_tile_clear', + // Files, registry and executing programs + 'file_text_open_read','file_text_open_write','file_text_open_append','file_text_close', + 'file_text_write_string','file_text_write_real','file_text_writeln','file_text_read_string', + 'file_text_read_real','file_text_readln','file_text_eof','file_exists','file_delete', + 'file_rename','file_copy','directory_exists','directory_create','file_find_first', + 'file_find_next','file_find_close','file_attributes', 'filename_name','filename_path', + 'filename_dir','filename_drive','filename_ext','filename_change_ext','file_bin_open', + 'file_bin_rewrite','file_bin_close','file_bin_size','file_bin_position','file_bin_seek', + 'file_bin_write_byte','file_bin_read_byte','parameter_count','parameter_string', + 'environment_get_variable', + 'registry_write_string','registry_write_real','registry_read_string','registry_read_real', + 'registry_exists','registry_write_string_ext','registry_write_real_ext', + 'registry_read_string_ext','registry_read_real_ext','registry_exists_ext','registry_set_root', + 'ini_open','ini_close','ini_read_string','ini_read_real','ini_write_string','ini_write_real', + 'ini_key_exists','ini_section_exists','ini_key_delete','ini_section_delete', + 'execute_program','execute_shell', + // Data structures + 'ds_stack_create','ds_stack_destroy','ds_stack_clear','ds_stack_size','ds_stack_empty', + 'ds_stack_push','ds_stack_pop','ds_stack_top', + 'ds_queue_create','ds_queue_destroy','ds_queue_clear','ds_queue_size','ds_queue_empty', + 'ds_queue_enqueue','ds_queue_dequeue','ds_queue_head','ds_queue_tail', + 'ds_list_create','ds_list_destroy','ds_list_clear','ds_list_size','ds_list_empty','ds_list_add', + 'ds_list_insert','ds_list_replace','ds_list_delete','ds_list_find_index','ds_list_find_value', + 'ds_list_sort', + 'ds_map_create','ds_map_destroy','ds_map_clear','ds_map_size','ds_map_empty','ds_map_add', + 'ds_map_replace','ds_map_delete','ds_map_exists','ds_map_find_value','ds_map_find_previous', + 'ds_map_find_next','ds_map_find_first','ds_map_find_last', + 'ds_priority_create','ds_priority_destroy','ds_priority_clear','ds_priority_size', + 'ds_priority_empty','ds_priority_add','ds_priority_change_priority','ds_priority_find_priority', + 'ds_priority_delete_value','ds_priority_delete_min','ds_priority_find_min', + 'ds_priority_delete_max','ds_priority_find_max', + 'ds_grid_create','ds_grid_destroy','ds_grid_resize','ds_grid_width','ds_grid_height', + 'ds_grid_clear','ds_grid_set','ds_grid_add','ds_grid_multiply','ds_grid_set_region', + 'ds_grid_add_region','ds_grid_multiply_region','ds_grid_set_disk','ds_grid_add_disk', + 'ds_grid_multiply_disk','ds_grid_get','ds_grid_get_sum','ds_grid_get_max','ds_grid_get_min', + 'ds_grid_get_mean','ds_grid_get_disk_sum','ds_grid_get_disk_min','ds_grid_get_disk_max', + 'ds_grid_get_disk_mean','ds_grid_value_exists','ds_grid_value_x','ds_grid_value_y', + 'ds_grid_value_disk_exists','ds_grid_value_disk_x','ds_grid_value_disk_y', + // Creating particles + 'effect_create_below','effect_create_above','effect_clear', + 'part_type_create','part_type_destroy','part_type_exists','part_type_clear','part_type_shape', + 'part_type_sprite','part_type_size','part_type_scale', + 'part_type_orientation','part_type_color1','part_type_color2','part_type_color3', + 'part_type_color_mix','part_type_color_rgb','part_type_color_hsv', + 'part_type_alpha1','part_type_alpha2','part_type_alpha3','part_type_blend','part_type_life', + 'part_type_step','part_type_death','part_type_speed','part_type_direction','part_type_gravity', + 'part_system_create','part_system_destroy','part_system_exists','part_system_clear', + 'part_system_draw_order','part_system_depth','part_system_position', + 'part_system_automatic_update','part_system_automatic_draw','part_system_update', + 'part_system_drawit','part_particles_create','part_particles_create_color', + 'part_particles_clear','part_particles_count', + 'part_emitter_create','part_emitter_destroy','part_emitter_destroy_all','part_emitter_exists', + 'part_emitter_clear','part_emitter_region','part_emitter_burst','part_emitter_stream', + 'part_attractor_create','part_attractor_destroy','part_attractor_destroy_all', + 'part_attractor_exists','part_attractor_clear','part_attractor_position','part_attractor_force', + 'part_destroyer_create','part_destroyer_destroy','part_destroyer_destroy_all', + 'part_destroyer_exists','part_destroyer_clear','part_destroyer_region', + 'part_deflector_create','part_deflector_destroy','part_deflector_destroy_all', + 'part_deflector_exists','part_deflector_clear','part_deflector_region','part_deflector_kind', + 'part_deflector_friction', + 'part_changer_create','part_changer_destroy','part_changer_destroy_all','part_changer_exists', + 'part_changer_clear','part_changer_region','part_changer_types','part_changer_kind', + // Multiplayer games + 'mplay_init_ipx','mplay_init_tcpip','mplay_init_modem','mplay_init_serial', + 'mplay_connect_status','mplay_end','mplay_ipaddress', + 'mplay_session_create','mplay_session_find','mplay_session_name','mplay_session_join', + 'mplay_session_mode','mplay_session_status','mplay_session_end', + 'mplay_player_find','mplay_player_name','mplay_player_id', + 'mplay_data_write','mplay_data_read','mplay_data_mode', + 'mplay_message_send','mplay_message_send_guaranteed','mplay_message_receive','mplay_message_id', + 'mplay_message_value','mplay_message_player','mplay_message_name','mplay_message_count', + 'mplay_message_clear', + // Using DLL's + 'external_define','external_call','external_free','execute_string','execute_file','window_handle', + // 3D Graphics + 'd3d_start','d3d_end','d3d_set_hidden','d3d_set_perspective', + 'd3d_set_depth', + 'd3d_primitive_begin','d3d_vertex','d3d_vertex_color','d3d_primitive_end', + 'd3d_primitive_begin_texture','d3d_vertex_texture','d3d_vertex_texture_color','d3d_set_culling', + 'd3d_draw_block','d3d_draw_cylinder','d3d_draw_cone','d3d_draw_ellipsoid','d3d_draw_wall', + 'd3d_draw_floor', + 'd3d_set_projection','d3d_set_projection_ext','d3d_set_projection_ortho', + 'd3d_set_projection_perspective', + 'd3d_transform_set_identity','d3d_transform_set_translation','d3d_transform_set_scaling', + 'd3d_transform_set_rotation_x','d3d_transform_set_rotation_y','d3d_transform_set_rotation_z', + 'd3d_transform_set_rotation_axis','d3d_transform_add_translation','d3d_transform_add_scaling', + 'd3d_transform_add_rotation_x','d3d_transform_add_rotation_y','d3d_transform_add_rotation_z', + 'd3d_transform_add_rotation_axis','d3d_transform_stack_clear','d3d_transform_stack_empty', + 'd3d_transform_stack_push','d3d_transform_stack_pop','d3d_transform_stack_top', + 'd3d_transform_stack_discard', + 'd3d_set_fog', + 'd3d_set_lighting','d3d_set_shading','d3d_light_define_direction','d3d_light_define_point', + 'd3d_light_enable','d3d_vertex_normal','d3d_vertex_normal_color','d3d_vertex_normal_texture', + 'd3d_vertex_normal_texture_color', + 'd3d_model_create','d3d_model_destroy','d3d_model_clear','d3d_model_save','d3d_model_load', + 'd3d_model_draw','d3d_model_primitive_begin','d3d_model_vertex','d3d_model_vertex_color', + 'd3d_model_vertex_texture','d3d_model_vertex_texture_color','d3d_model_vertex_normal', + 'd3d_model_vertex_normal_color','d3d_model_vertex_normal_texture', + 'd3d_model_vertex_normal_texture_color','d3d_model_primitive_end','d3d_model_block', + 'd3d_model_cylinder','d3d_model_cone','d3d_model_ellipsoid','d3d_model_wall','d3d_model_floor' + ), + // constants + 4 => array( + 'true', 'false', 'pi', + 'ev_destroy','ev_step','ev_alarm','ev_keyboard','ev_mouse','ev_collision','ev_other','ev_draw', + 'ev_keypress','ev_keyrelease','ev_left_button','ev_right_button','ev_middle_button', + 'ev_no_button','ev_left_press','ev_right_press','ev_middle_press','ev_left_release', + 'ev_right_release','ev_middle_release','ev_mouse_enter','ev_mouse_leave','ev_mouse_wheel_up', + 'ev_mouse_wheel_down','ev_global_left_button','ev_global_right_button','ev_global_middle_button', + 'ev_global_left_press','ev_global_right_press','ev_global_middle_press','ev_global_left_release', + 'ev_global_right_release','ev_global_middle_release','ev_joystick1_left','ev_joystick1_right', + 'ev_joystick1_up','ev_joystick1_down','ev_joystick1_button1','ev_joystick1_button2', + 'ev_joystick1_button3','ev_joystick1_button4','ev_joystick1_button5','ev_joystick1_button6', + 'ev_joystick1_button7','ev_joystick1_button8','ev_joystick2_left','ev_joystick2_right', + 'ev_joystick2_up','ev_joystick2_down','ev_joystick2_button1','ev_joystick2_button2', + 'ev_joystick2_button3','ev_joystick2_button4','ev_joystick2_button5','ev_joystick2_button6', + 'ev_joystick2_button7','ev_joystick2_button8', + 'ev_outside','ev_boundary','ev_game_start','ev_game_end','ev_room_start','ev_room_end', + 'ev_no_more_lives','ev_no_more_health','ev_animation_end','ev_end_of_path','ev_user0','ev_user1', + 'ev_user2','ev_user3','ev_user4','ev_user5','ev_user6','ev_user7','ev_user8','ev_user9', + 'ev_user10','ev_user11','ev_user12','ev_user13','ev_user14','ev_user15','ev_step_normal', + 'ev_step_begin','ev_step_end', + 'vk_nokey','vk_anykey','vk_left','vk_right','vk_up','vk_down','vk_enter','vk_escape','vk_space', + 'vk_shift','vk_control','vk_alt','vk_backspace','vk_tab','vk_home','vk_end','vk_delete', + 'vk_insert','vk_pageup','vk_pagedown','vk_pause','vk_printscreen', + 'vk_f1','vk_f2','vk_f3','vk_f4','vk_f5','vk_f6','vk_f7','vk_f8','vk_f9','vk_f10','vk_f11','vk_f12', + 'vk_numpad0','vk_numpad1','vk_numpad2','vk_numpad3','vk_numpad4','vk_numpad5','vk_numpad6', + 'vk_numpad7','vk_numpad8','vk_numpad9', 'vk_multiply','vk_divide','vk_add','vk_subtract', + 'vk_decimal','vk_lshift','vk_lcontrol','vk_lalt','vk_rshift','vk_rcontrol','vk_ralt', + 'c_aqua','c_black','c_blue','c_dkgray','c_fuchsia','c_gray','c_green','c_lime','c_ltgray', + 'c_maroon','c_navy','c_olive','c_purple','c_red','c_silver','c_teal','c_white','c_yellow', + 'fa_left', 'fa_center','fa_right','fa_top','fa_middle','fa_bottom', + 'pr_pointlist','pr_linelist','pr_linestrip','pr_trianglelist','pr_trianglestrip', + 'pr_trianglefan', + 'cr_none','cr_arrow','cr_cross','cr_beam','cr_size_nesw','cr_size_ns','cr_size_nwse', + 'cr_size_we','cr_uparrow','cr_hourglass','cr_drag','cr_nodrop','cr_hsplit','cr_vsplit', + 'cr_multidrag','cr_sqlwait','cr_no','cr_appstart','cr_help','cr_handpoint','cr_size_all', + 'se_chorus','se_echo','se_flanger','se_gargle','se_reverb','se_compressor','se_equalizer', + 'fa_readonly','fa_hidden','fa_sysfile','fa_volumeid','fa_directory','fa_archive', + 'pt_shape_pixel','pt_shape_disk','pt_shape_square','pt_shape_line','pt_shape_star', + 'pt_shape_circle','pt_shape_ring','pt_shape_sphere','pt_shape_flare','pt_shape_spark', + 'pt_shape_explosion','pt_shape_cloud','pt_shape_smoke','pt_shape_snow', + 'ps_shape_rectangle','ps_shape_ellipse ','ps_shape_diamond','ps_shape_line', + 'ps_distr_linear','ps_distr_gaussian','ps_force_constant','ps_force_linear','ps_force_quadratic', + 'ps_deflect_horizontal', 'ps_deflect_vertical', + 'ps_change_motion','ps_change_shape','ps_change_all' + ), + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', '&&', '||', '^^', '<', '<=', '==', '!=', '>', '>=', + '|', '&', '^', '<<', '>>', '+', '-', '*', '/', '!', '-', '~' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'font-weight: bold; color: #000000;', + 2 => 'font-weight: bold; color: #000000;', + 3 => 'color: navy;', + 4 => 'color: #663300;', + ), + 'COMMENTS' => array( + 1 => 'font-style: italic; color: green;', + 'MULTI' => 'font-style: italic; color: green;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' //'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66; font-weight: bold;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + // All GML functions have been indexed, but need some corrections. + 3 => 'http://www.zonamakers.com/gmlreference/{FNAME}.html', // (provisional, could change soon!) + 4 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/groovy.php b/plugins/geshi/groovy.php old mode 100644 new mode 100755 index 3ae006d..322166b --- a/plugins/geshi/groovy.php +++ b/plugins/geshi/groovy.php @@ -40,2078 +40,2076 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Groovy', - 'COMMENT_SINGLE' => array(1 => '//', 2 => 'import', 3 => '#'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'''", '"""', "'", '"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - '||', - 'while', - 'switch', - 'in', - 'if', - 'foreach', - 'for', - 'else', - 'do', - 'case', - '=>', - '--', - '++', - '<<', - '<<<', - '&&' - ), - 2 => array( - 'volatile', - 'try', - 'true', - 'transient', - 'throws', - 'throw', - 'this', - 'synchronized', - 'super', - 'strictfp', - 'static', - 'return', - 'public', - 'protected', - 'property', - 'private', - 'package', - 'null', - 'new', - 'native', - 'interface', - 'instanceof', - 'implements', - 'goto', - 'finally', - 'final', - 'false', - 'extends', - 'enum', - 'default', - 'def', - 'continue', - 'const', - 'class', - 'catch', - 'break', - 'assert', - 'abstract', - 'as' - ), - 3 => array( - '_Remote_Stub', - '_PolicyStub', - '_NamingContextStub', - '_NamingContextImplBase', - '_IDLTypeStub', - '_BindingIteratorStub', - '_BindingIteratorImplBase', - 'ZoneView', - 'ZipOutputStream', - 'ZipInputStream', - 'ZipFile', - 'ZipException', - 'ZipEntry', - 'X509Extension', - 'X509EncodedKeySpec', - 'X509Certificate', - 'X509CRLEntry', - 'X509CRL', - 'WrongTransaction', - 'Writer', - 'WriteAbortedException', - 'WritableRenderedImage', - 'WritableRaster', - 'WrappedPlainView', - 'WindowListener', - 'WindowEvent', - 'WindowConstants', - 'WindowAdapter', - 'Window', - 'WeakReference', - 'WeakHashMap', - 'WStringValueHelper', - 'WCharSeqHolder', - 'WCharSeqHelper', - 'Void', - 'VoiceStatus', - 'VisibilityHelper', - 'Visibility', - 'VirtualMachineError', - 'ViewportUI', - 'ViewportLayout', - 'ViewFactory', - 'View', - 'VetoableChangeSupport', - 'VetoableChangeListener', - 'VersionSpecHelper', - 'VerifyError', - 'Vector', - 'VariableHeightLayoutCache', - 'ValueMemberHelper', - 'ValueMember', - 'ValueHandler', - 'ValueFactory', - 'ValueBaseHolder', - 'ValueBaseHelper', - 'ValueBase', - 'VM_TRUNCATABLE', - 'VM_NONE', - 'VM_CUSTOM', - 'VM_ABSTRACT', - 'VMID', - 'Utilities', - 'UtilDelegate', - 'Util', - 'UserException', - 'UnsupportedOperationException', - 'UnsupportedLookAndFeelException', - 'UnsupportedFlavorException', - 'UnsupportedEncodingException', - 'UnsupportedClassVersionError', - 'UnsupportedAudioFileException', - 'UnsolicitedNotificationListener', - 'UnsolicitedNotificationEvent', - 'UnsolicitedNotification', - 'UnsatisfiedLinkError', - 'UnresolvedPermission', - 'Unreferenced', - 'UnrecoverableKeyException', - 'UnmarshalException', - 'UnknownUserException', - 'UnknownServiceException', - 'UnknownObjectException', - 'UnknownHostException', - 'UnknownHostException', - 'UnknownGroupException', - 'UnknownException', - 'UnknownError', - 'UnionMemberHelper', - 'UnionMember', - 'UnicastRemoteObject', - 'UnexpectedException', - 'UndoableEditSupport', - 'UndoableEditListener', - 'UndoableEditEvent', - 'UndoableEdit', - 'UndoManager', - 'UndeclaredThrowableException', - 'UTFDataFormatException', - 'UShortSeqHolder', - 'UShortSeqHelper', - 'URLStreamHandlerFactory', - 'URLStreamHandler', - 'URLEncoder', - 'URLDecoder', - 'URLConnection', - 'URLClassLoader', - 'URL', - 'UNSUPPORTED_POLICY_VALUE', - 'UNSUPPORTED_POLICY', - 'UNKNOWN', - 'ULongSeqHolder', - 'ULongSeqHelper', - 'ULongLongSeqHolder', - 'ULongLongSeqHelper', - 'UIResource', - 'UIManager.LookAndFeelInfo', - 'UIManager', - 'UIDefaults.ProxyLazyValue', - 'UIDefaults.LazyValue', - 'UIDefaults.LazyInputMap', - 'UIDefaults.ActiveValue', - 'UIDefaults', - 'UID', - 'Types', - 'TypeMismatch', - 'TypeCodeHolder', - 'TypeCode', - 'TreeWillExpandListener', - 'TreeUI', - 'TreeSet', - 'TreeSelectionModel', - 'TreeSelectionListener', - 'TreeSelectionEvent', - 'TreePath', - 'TreeNode', - 'TreeModelListener', - 'TreeModelEvent', - 'TreeModel', - 'TreeMap', - 'TreeExpansionListener', - 'TreeExpansionEvent', - 'TreeCellRenderer', - 'TreeCellEditor', - 'Transparency', - 'Transmitter', - 'TransformAttribute', - 'Transferable', - 'TransactionRolledbackException', - 'TransactionRequiredException', - 'Track', - 'Toolkit', - 'ToolTipUI', - 'ToolTipManager', - 'ToolBarUI', - 'TooManyListenersException', - 'TitledBorder', - 'Timestamp', - 'TimerTask', - 'Timer', - 'Timer', - 'TimeZone', - 'TimeLimitExceededException', - 'Time', - 'TileObserver', - 'Tie', - 'Throwable', - 'ThreadLocal', - 'ThreadGroup', - 'ThreadDeath', - 'Thread', - 'TexturePaint', - 'TextUI', - 'TextMeasurer', - 'TextListener', - 'TextLayout.CaretPolicy', - 'TextLayout', - 'TextHitInfo', - 'TextField', - 'TextEvent', - 'TextComponent', - 'TextAttribute', - 'TextArea', - 'TextAction', - 'TargetDataLine', - 'TagElement', - 'TableView', - 'TableUI', - 'TableModelListener', - 'TableModelEvent', - 'TableModel', - 'TableHeaderUI', - 'TableColumnModelListener', - 'TableColumnModelEvent', - 'TableColumnModel', - 'TableColumn', - 'TableCellRenderer', - 'TableCellEditor', - 'TabbedPaneUI', - 'TabableView', - 'TabStop', - 'TabSet', - 'TabExpander', - 'TRANSIENT', - 'TRANSACTION_ROLLEDBACK', - 'TRANSACTION_REQUIRED', - 'TCKind', - 'SystemFlavorMap', - 'SystemException', - 'SystemColor', - 'System', - 'SysexMessage', - 'Synthesizer', - 'SyncFailedException', - 'SwingUtilities', - 'SwingPropertyChangeSupport', - 'SwingConstants', - 'StyledEditorKit.UnderlineAction', - 'StyledEditorKit.StyledTextAction', - 'StyledEditorKit.ItalicAction', - 'StyledEditorKit.ForegroundAction', - 'StyledEditorKit.FontSizeAction', - 'StyledEditorKit.FontFamilyAction', - 'StyledEditorKit.BoldAction', - 'StyledEditorKit.AlignmentAction', - 'StyledEditorKit', - 'StyledDocument', - 'StyleSheet.ListPainter', - 'StyleSheet.BoxPainter', - 'StyleSheet', - 'StyleContext', - 'StyleConstants.ParagraphConstants', - 'StyleConstants.FontConstants', - 'StyleConstants.ColorConstants', - 'StyleConstants.CharacterConstants', - 'StyleConstants', - 'Style', - 'StubNotFoundException', - 'StubDelegate', - 'Stub', - 'StructMemberHelper', - 'StructMember', - 'Struct', - 'Stroke', - 'StringWriter', - 'StringValueHelper', - 'StringTokenizer', - 'StringSelection', - 'StringRefAddr', - 'StringReader', - 'StringIndexOutOfBoundsException', - 'StringHolder', - 'StringContent', - 'StringCharacterIterator', - 'StringBufferInputStream', - 'StringBuffer', - 'String', - 'StrictMath', - 'StreamableValue', - 'Streamable', - 'StreamTokenizer', - 'StreamCorruptedException', - 'Statement', - 'StateFactory', - 'StateEditable', - 'StateEdit', - 'StackOverflowError', - 'Stack', - 'SplitPaneUI', - 'SourceDataLine', - 'SoundbankResource', - 'SoundbankReader', - 'Soundbank', - 'SortedSet', - 'SortedMap', - 'SoftReference', - 'SoftBevelBorder', - 'SocketSecurityException', - 'SocketPermission', - 'SocketOptions', - 'SocketImplFactory', - 'SocketImpl', - 'SocketException', - 'Socket', - 'SliderUI', - 'SkeletonNotFoundException', - 'SkeletonMismatchException', - 'Skeleton', - 'SizeSequence', - 'SizeRequirements', - 'SizeLimitExceededException', - 'SingleSelectionModel', - 'SinglePixelPackedSampleModel', - 'SimpleTimeZone', - 'SimpleDateFormat', - 'SimpleBeanInfo', - 'SimpleAttributeSet', - 'Signer', - 'SignedObject', - 'SignatureSpi', - 'SignatureException', - 'Signature', - 'ShortSeqHolder', - 'ShortSeqHelper', - 'ShortMessage', - 'ShortLookupTable', - 'ShortHolder', - 'Short', - 'ShapeGraphicAttribute', - 'Shape', - 'SetOverrideTypeHelper', - 'SetOverrideType', - 'Set', - 'ServiceUnavailableException', - 'ServiceInformationHolder', - 'ServiceInformationHelper', - 'ServiceInformation', - 'ServiceDetailHelper', - 'ServiceDetail', - 'ServerSocket', - 'ServerRuntimeException', - 'ServerRequest', - 'ServerRef', - 'ServerNotActiveException', - 'ServerException', - 'ServerError', - 'ServerCloneException', - 'ServantObject', - 'SerializablePermission', - 'Serializable', - 'Sequencer.SyncMode', - 'Sequencer', - 'SequenceInputStream', - 'Sequence', - 'SeparatorUI', - 'Segment', - 'SecurityPermission', - 'SecurityManager', - 'SecurityException', - 'Security', - 'SecureRandomSpi', - 'SecureRandom', - 'SecureClassLoader', - 'SearchResult', - 'SearchControls', - 'Scrollbar', - 'Scrollable', - 'ScrollPaneUI', - 'ScrollPaneLayout.UIResource', - 'ScrollPaneLayout', - 'ScrollPaneConstants', - 'ScrollPane', - 'ScrollBarUI', - 'SchemaViolationException', - 'SampleModel', - 'SQLWarning', - 'SQLPermission', - 'SQLOutput', - 'SQLInput', - 'SQLException', - 'SQLData', - 'RuntimePermission', - 'RuntimeException', - 'Runtime', - 'Runnable', - 'RunTimeOperations', - 'RunTime', - 'RuleBasedCollator', - 'RowMapper', - 'RoundRectangle2D.Float', - 'RoundRectangle2D.Double', - 'RoundRectangle2D', - 'RootPaneUI', - 'RootPaneContainer', - 'Robot', - 'ReverbType', - 'ResultSetMetaData', - 'ResultSet', - 'ResponseHandler', - 'ResourceBundle', - 'Resolver', - 'ResolveResult', - 'RescaleOp', - 'Request', - 'RepositoryIdHelper', - 'Repository', - 'ReplicateScaleFilter', - 'RepaintManager', - 'RenderingHints.Key', - 'RenderingHints', - 'Renderer', - 'RenderedImageFactory', - 'RenderedImage', - 'RenderableImageProducer', - 'RenderableImageOp', - 'RenderableImage', - 'RenderContext', - 'RemoteStub', - 'RemoteServer', - 'RemoteRef', - 'RemoteObject', - 'RemoteException', - 'RemoteCall', - 'Remote', - 'RemarshalException', - 'RegistryHandler', - 'Registry', - 'ReflectPermission', - 'ReferralException', - 'Referenceable', - 'ReferenceQueue', - 'Reference', - 'RefAddr', - 'Ref', - 'RectangularShape', - 'Rectangle2D.Float', - 'Rectangle2D.Double', - 'Rectangle2D', - 'Rectangle', - 'Receiver', - 'Reader', - 'RasterOp', - 'RasterFormatException', - 'Raster', - 'RandomAccessFile', - 'Random', - 'RTFEditorKit', - 'RSAPublicKeySpec', - 'RSAPublicKey', - 'RSAPrivateKeySpec', - 'RSAPrivateKey', - 'RSAPrivateCrtKeySpec', - 'RSAPrivateCrtKey', - 'RSAKeyGenParameterSpec', - 'RSAKey', - 'RMISocketFactory', - 'RMIServerSocketFactory', - 'RMISecurityManager', - 'RMISecurityException', - 'RMIFailureHandler', - 'RMIClientSocketFactory', - 'RMIClassLoader', - 'RGBImageFilter', - 'QuadCurve2D.Float', - 'QuadCurve2D.Double', - 'QuadCurve2D', - 'PushbackReader', - 'PushbackInputStream', - 'PublicKey', - 'Proxy', - 'ProviderException', - 'Provider', - 'ProtocolException', - 'ProtectionDomain', - 'PropertyVetoException', - 'PropertyResourceBundle', - 'PropertyPermission', - 'PropertyEditorSupport', - 'PropertyEditorManager', - 'PropertyEditor', - 'PropertyDescriptor', - 'PropertyChangeSupport', - 'PropertyChangeListener', - 'PropertyChangeEvent', - 'Properties', - 'ProgressMonitorInputStream', - 'ProgressMonitor', - 'ProgressBarUI', - 'ProfileDataException', - 'Process', - 'PrivilegedExceptionAction', - 'PrivilegedActionException', - 'PrivilegedAction', - 'PrivateKey', - 'PrinterJob', - 'PrinterIOException', - 'PrinterGraphics', - 'PrinterException', - 'PrinterAbortException', - 'Printable', - 'PrintWriter', - 'PrintStream', - 'PrintJob', - 'PrintGraphics', - 'PrincipalHolder', - 'Principal', - 'Principal', - 'PreparedStatement', - 'Position.Bias', - 'Position', - 'PortableRemoteObjectDelegate', - 'PortableRemoteObject', - 'Port.Info', - 'Port', - 'PopupMenuUI', - 'PopupMenuListener', - 'PopupMenuEvent', - 'PopupMenu', - 'Polygon', - 'PolicyTypeHelper', - 'PolicyOperations', - 'PolicyListHolder', - 'PolicyListHelper', - 'PolicyHolder', - 'PolicyHelper', - 'PolicyError', - 'Policy', - 'Policy', - 'Point2D.Float', - 'Point2D.Double', - 'Point2D', - 'Point', - 'PlainView', - 'PlainDocument', - 'PixelInterleavedSampleModel', - 'PixelGrabber', - 'PipedWriter', - 'PipedReader', - 'PipedOutputStream', - 'PipedInputStream', - 'PhantomReference', - 'Permissions', - 'PermissionCollection', - 'Permission', - 'Permission', - 'PathIterator', - 'Patch', - 'PasswordView', - 'PasswordAuthentication', - 'PartialResultException', - 'ParserDelegator', - 'Parser', - 'ParsePosition', - 'ParseException', - 'ParameterDescriptor', - 'ParameterBlock', - 'ParagraphView', - 'ParagraphView', - 'Paper', - 'PanelUI', - 'Panel', - 'PaintEvent', - 'PaintContext', - 'Paint', - 'Pageable', - 'PageFormat', - 'PageAttributes.PrintQualityType', - 'PageAttributes.OriginType', - 'PageAttributes.OrientationRequestedType', - 'PageAttributes.MediaType', - 'PageAttributes.ColorType', - 'PageAttributes', - 'PackedColorModel', - 'Package', - 'PUBLIC_MEMBER', - 'PRIVATE_MEMBER', - 'PKCS8EncodedKeySpec', - 'PERSIST_STORE', - 'Owner', - 'OverlayLayout', - 'OutputStreamWriter', - 'OutputStream', - 'OutOfMemoryError', - 'OptionalDataException', - 'OptionPaneUI', - 'Option', - 'OperationNotSupportedException', - 'Operation', - 'OpenType', - 'OctetSeqHolder', - 'OctetSeqHelper', - 'Observer', - 'Observable', - 'ObjectView', - 'ObjectStreamField', - 'ObjectStreamException', - 'ObjectStreamConstants', - 'ObjectStreamClass', - 'ObjectOutputStream.PutField', - 'ObjectOutputStream', - 'ObjectOutput', - 'ObjectInputValidation', - 'ObjectInputStream.GetField', - 'ObjectInputStream', - 'ObjectInput', - 'ObjectImpl', - 'ObjectImpl', - 'ObjectHolder', - 'ObjectHelper', - 'ObjectFactoryBuilder', - 'ObjectFactory', - 'ObjectChangeListener', - 'Object', - 'ObjID', - 'ORB', - 'OMGVMCID', - 'OBJ_ADAPTER', - 'OBJECT_NOT_EXIST', - 'NumberFormatException', - 'NumberFormat', - 'Number', - 'NullPointerException', - 'NotSerializableException', - 'NotOwnerException', - 'NotFoundReasonHolder', - 'NotFoundReasonHelper', - 'NotFoundReason', - 'NotFoundHolder', - 'NotFoundHelper', - 'NotFound', - 'NotEmptyHolder', - 'NotEmptyHelper', - 'NotEmpty', - 'NotContextException', - 'NotBoundException', - 'NotActiveException', - 'NoninvertibleTransformException', - 'NoSuchProviderException', - 'NoSuchObjectException', - 'NoSuchMethodException', - 'NoSuchMethodError', - 'NoSuchFieldException', - 'NoSuchFieldError', - 'NoSuchElementException', - 'NoSuchAttributeException', - 'NoSuchAlgorithmException', - 'NoRouteToHostException', - 'NoPermissionException', - 'NoInitialContextException', - 'NoClassDefFoundError', - 'NetPermission', - 'NegativeArraySizeException', - 'NamingSecurityException', - 'NamingManager', - 'NamingListener', - 'NamingExceptionEvent', - 'NamingException', - 'NamingEvent', - 'NamingEnumeration', - 'NamingContextOperations', - 'NamingContextHolder', - 'NamingContextHelper', - 'NamingContext', - 'Naming', - 'NamespaceChangeListener', - 'NamedValue', - 'NameValuePairHelper', - 'NameValuePair', - 'NameParser', - 'NameNotFoundException', - 'NameHolder', - 'NameHelper', - 'NameComponentHolder', - 'NameComponentHelper', - 'NameComponent', - 'NameClassPair', - 'NameAlreadyBoundException', - 'Name', - 'NVList', - 'NO_RESPONSE', - 'NO_RESOURCES', - 'NO_PERMISSION', - 'NO_MEMORY', - 'NO_IMPLEMENT', - 'MutableTreeNode', - 'MutableComboBoxModel', - 'MutableAttributeSet', - 'MultipleMaster', - 'MulticastSocket', - 'MultiViewportUI', - 'MultiTreeUI', - 'MultiToolTipUI', - 'MultiToolBarUI', - 'MultiTextUI', - 'MultiTableUI', - 'MultiTableHeaderUI', - 'MultiTabbedPaneUI', - 'MultiSplitPaneUI', - 'MultiSliderUI', - 'MultiSeparatorUI', - 'MultiScrollPaneUI', - 'MultiScrollBarUI', - 'MultiProgressBarUI', - 'MultiPopupMenuUI', - 'MultiPixelPackedSampleModel', - 'MultiPanelUI', - 'MultiOptionPaneUI', - 'MultiMenuItemUI', - 'MultiMenuBarUI', - 'MultiLookAndFeel', - 'MultiListUI', - 'MultiLabelUI', - 'MultiInternalFrameUI', - 'MultiFileChooserUI', - 'MultiDesktopPaneUI', - 'MultiDesktopIconUI', - 'MultiComboBoxUI', - 'MultiColorChooserUI', - 'MultiButtonUI', - 'MouseMotionListener', - 'MouseMotionAdapter', - 'MouseListener', - 'MouseInputListener', - 'MouseInputAdapter', - 'MouseEvent', - 'MouseDragGestureRecognizer', - 'MouseAdapter', - 'Modifier', - 'ModificationItem', - 'MixerProvider', - 'Mixer.Info', - 'Mixer', - 'MissingResourceException', - 'MinimalHTMLWriter', - 'MimeTypeParseException', - 'MidiUnavailableException', - 'MidiSystem', - 'MidiMessage', - 'MidiFileWriter', - 'MidiFileReader', - 'MidiFileFormat', - 'MidiEvent', - 'MidiDeviceProvider', - 'MidiDevice.Info', - 'MidiDevice', - 'MidiChannel', - 'MethodDescriptor', - 'Method', - 'MetalTreeUI', - 'MetalToolTipUI', - 'MetalToolBarUI', - 'MetalToggleButtonUI', - 'MetalTheme', - 'MetalTextFieldUI', - 'MetalTabbedPaneUI', - 'MetalSplitPaneUI', - 'MetalSliderUI', - 'MetalSeparatorUI', - 'MetalScrollPaneUI', - 'MetalScrollButton', - 'MetalScrollBarUI', - 'MetalRadioButtonUI', - 'MetalProgressBarUI', - 'MetalPopupMenuSeparatorUI', - 'MetalLookAndFeel', - 'MetalLabelUI', - 'MetalInternalFrameUI', - 'MetalInternalFrameTitlePane', - 'MetalIconFactory.TreeLeafIcon', - 'MetalIconFactory.TreeFolderIcon', - 'MetalIconFactory.TreeControlIcon', - 'MetalIconFactory.PaletteCloseIcon', - 'MetalIconFactory.FolderIcon16', - 'MetalIconFactory.FileIcon16', - 'MetalIconFactory', - 'MetalFileChooserUI', - 'MetalDesktopIconUI', - 'MetalComboBoxUI', - 'MetalComboBoxIcon', - 'MetalComboBoxEditor.UIResource', - 'MetalComboBoxEditor', - 'MetalComboBoxButton', - 'MetalCheckBoxUI', - 'MetalCheckBoxIcon', - 'MetalButtonUI', - 'MetalBorders.ToolBarBorder', - 'MetalBorders.ToggleButtonBorder', - 'MetalBorders.TextFieldBorder', - 'MetalBorders.TableHeaderBorder', - 'MetalBorders.ScrollPaneBorder', - 'MetalBorders.RolloverButtonBorder', - 'MetalBorders.PopupMenuBorder', - 'MetalBorders.PaletteBorder', - 'MetalBorders.OptionDialogBorder', - 'MetalBorders.MenuItemBorder', - 'MetalBorders.MenuBarBorder', - 'MetalBorders.InternalFrameBorder', - 'MetalBorders.Flush3DBorder', - 'MetalBorders.ButtonBorder', - 'MetalBorders', - 'MetaMessage', - 'MetaEventListener', - 'MessageFormat', - 'MessageDigestSpi', - 'MessageDigest', - 'MenuShortcut', - 'MenuSelectionManager', - 'MenuListener', - 'MenuKeyListener', - 'MenuKeyEvent', - 'MenuItemUI', - 'MenuItem', - 'MenuEvent', - 'MenuElement', - 'MenuDragMouseListener', - 'MenuDragMouseEvent', - 'MenuContainer', - 'MenuComponent', - 'MenuBarUI', - 'MenuBar', - 'Menu', - 'MemoryImageSource', - 'Member', - 'MediaTracker', - 'MatteBorder', - 'Math', - 'MarshalledObject', - 'MarshalException', - 'Map.Entry', - 'Map', - 'Manifest', - 'MalformedURLException', - 'MalformedLinkException', - 'MARSHAL', - 'LookupTable', - 'LookupOp', - 'LookAndFeel', - 'LongSeqHolder', - 'LongSeqHelper', - 'LongLongSeqHolder', - 'LongLongSeqHelper', - 'LongHolder', - 'Long', - 'LogStream', - 'LocateRegistry', - 'Locale', - 'LoaderHandler', - 'ListView', - 'ListUI', - 'ListSelectionModel', - 'ListSelectionListener', - 'ListSelectionEvent', - 'ListResourceBundle', - 'ListModel', - 'ListIterator', - 'ListDataListener', - 'ListDataEvent', - 'ListCellRenderer', - 'List', - 'List', - 'LinkedList', - 'LinkageError', - 'LinkRef', - 'LinkLoopException', - 'LinkException', - 'LineUnavailableException', - 'LineNumberReader', - 'LineNumberInputStream', - 'LineMetrics', - 'LineListener', - 'LineEvent.Type', - 'LineEvent', - 'LineBreakMeasurer', - 'LineBorder', - 'Line2D.Float', - 'Line2D.Double', - 'Line2D', - 'Line.Info', - 'Line', - 'LimitExceededException', - 'Lease', - 'LdapReferralException', - 'LdapContext', - 'LayoutQueue', - 'LayoutManager2', - 'LayoutManager', - 'LayeredHighlighter.LayerPainter', - 'LayeredHighlighter', - 'LastOwnerException', - 'LabelView', - 'LabelUI', - 'Label', - 'Keymap', - 'KeyStroke', - 'KeyStoreSpi', - 'KeyStoreException', - 'KeyStore', - 'KeySpec', - 'KeyPairGeneratorSpi', - 'KeyPairGenerator', - 'KeyPair', - 'KeyManagementException', - 'KeyListener', - 'KeyFactorySpi', - 'KeyFactory', - 'KeyException', - 'KeyEvent', - 'KeyAdapter', - 'Key', - 'Kernel', - 'JobAttributes.SidesType', - 'JobAttributes.MultipleDocumentHandlingType', - 'JobAttributes.DialogType', - 'JobAttributes.DestinationType', - 'JobAttributes.DefaultSelectionType', - 'JobAttributes', - 'JarURLConnection', - 'JarOutputStream', - 'JarInputStream', - 'JarFile', - 'JarException', - 'JarEntry', - 'JWindow', - 'JViewport', - 'JTree.EmptySelectionModel', - 'JTree.DynamicUtilTreeNode', - 'JTree', - 'JToolTip', - 'JToolBar.Separator', - 'JToolBar', - 'JToggleButton.ToggleButtonModel', - 'JToggleButton', - 'JTextPane', - 'JTextField', - 'JTextComponent.KeyBinding', - 'JTextComponent', - 'JTextArea', - 'JTableHeader', - 'JTable', - 'JTabbedPane', - 'JSplitPane', - 'JSlider', - 'JSeparator', - 'JScrollPane', - 'JScrollBar', - 'JRootPane', - 'JRadioButtonMenuItem', - 'JRadioButton', - 'JProgressBar', - 'JPopupMenu.Separator', - 'JPopupMenu', - 'JPasswordField', - 'JPanel', - 'JOptionPane', - 'JMenuItem', - 'JMenuBar', - 'JMenu', - 'JList', - 'JLayeredPane', - 'JLabel', - 'JInternalFrame.JDesktopIcon', - 'JInternalFrame', - 'JFrame', - 'JFileChooser', - 'JEditorPane', - 'JDialog', - 'JDesktopPane', - 'JComponent', - 'JComboBox.KeySelectionManager', - 'JComboBox', - 'JColorChooser', - 'JCheckBoxMenuItem', - 'JCheckBox', - 'JButton', - 'JApplet', - 'Iterator', - 'ItemSelectable', - 'ItemListener', - 'ItemEvent', - 'IstringHelper', - 'InvokeHandler', - 'InvocationTargetException', - 'InvocationHandler', - 'InvocationEvent', - 'InvalidValue', - 'InvalidTransactionException', - 'InvalidSeq', - 'InvalidSearchFilterException', - 'InvalidSearchControlsException', - 'InvalidParameterSpecException', - 'InvalidParameterException', - 'InvalidObjectException', - 'InvalidNameHolder', - 'InvalidNameHelper', - 'InvalidNameException', - 'InvalidName', - 'InvalidName', - 'InvalidMidiDataException', - 'InvalidKeySpecException', - 'InvalidKeyException', - 'InvalidDnDOperationException', - 'InvalidClassException', - 'InvalidAttributesException', - 'InvalidAttributeValueException', - 'InvalidAttributeIdentifierException', - 'InvalidAlgorithmParameterException', - 'Invalid', - 'Introspector', - 'IntrospectionException', - 'InterruptedNamingException', - 'InterruptedIOException', - 'InterruptedException', - 'InternalFrameUI', - 'InternalFrameListener', - 'InternalFrameEvent', - 'InternalFrameAdapter', - 'InternalError', - 'Integer', - 'IntHolder', - 'InsufficientResourcesException', - 'Instrument', - 'InstantiationException', - 'InstantiationError', - 'InsetsUIResource', - 'Insets', - 'InputVerifier', - 'InputSubset', - 'InputStreamReader', - 'InputStream', - 'InputStream', - 'InputStream', - 'InputMethodRequests', - 'InputMethodListener', - 'InputMethodHighlight', - 'InputMethodEvent', - 'InputMethodDescriptor', - 'InputMethodContext', - 'InputMethod', - 'InputMapUIResource', - 'InputMap', - 'InputEvent', - 'InputContext', - 'InlineView', - 'Initializer', - 'InitialLdapContext', - 'InitialDirContext', - 'InitialContextFactoryBuilder', - 'InitialContextFactory', - 'InitialContext', - 'InheritableThreadLocal', - 'InflaterInputStream', - 'Inflater', - 'InetAddress', - 'IndirectionException', - 'IndexedPropertyDescriptor', - 'IndexOutOfBoundsException', - 'IndexColorModel', - 'InconsistentTypeCode', - 'IncompatibleClassChangeError', - 'ImagingOpException', - 'ImageProducer', - 'ImageObserver', - 'ImageIcon', - 'ImageGraphicAttribute', - 'ImageFilter', - 'ImageConsumer', - 'Image', - 'IllegalThreadStateException', - 'IllegalStateException', - 'IllegalPathStateException', - 'IllegalMonitorStateException', - 'IllegalComponentStateException', - 'IllegalArgumentException', - 'IllegalAccessException', - 'IllegalAccessError', - 'IdentityScope', - 'Identity', - 'IdentifierHelper', - 'IconView', - 'IconUIResource', - 'Icon', - 'IRObjectOperations', - 'IRObject', - 'IOException', - 'INV_POLICY', - 'INV_OBJREF', - 'INV_IDENT', - 'INV_FLAG', - 'INVALID_TRANSACTION', - 'INTF_REPOS', - 'INTERNAL', - 'INITIALIZE', - 'IMP_LIMIT', - 'IDLTypeOperations', - 'IDLTypeHelper', - 'IDLType', - 'IDLEntity', - 'ICC_ProfileRGB', - 'ICC_ProfileGray', - 'ICC_Profile', - 'ICC_ColorSpace', - 'HyperlinkListener', - 'HyperlinkEvent.EventType', - 'HyperlinkEvent', - 'HttpURLConnection', - 'Highlighter.HighlightPainter', - 'Highlighter.Highlight', - 'Highlighter', - 'HierarchyListener', - 'HierarchyEvent', - 'HierarchyBoundsListener', - 'HierarchyBoundsAdapter', - 'Hashtable', - 'HashSet', - 'HashMap', - 'HasControls', - 'HTMLWriter', - 'HTMLFrameHyperlinkEvent', - 'HTMLEditorKit.ParserCallback', - 'HTMLEditorKit.Parser', - 'HTMLEditorKit.LinkController', - 'HTMLEditorKit.InsertHTMLTextAction', - 'HTMLEditorKit.HTMLTextAction', - 'HTMLEditorKit.HTMLFactory', - 'HTMLEditorKit', - 'HTMLDocument.Iterator', - 'HTMLDocument', - 'HTML.UnknownTag', - 'HTML.Tag', - 'HTML.Attribute', - 'HTML', - 'GuardedObject', - 'Guard', - 'Group', - 'GridLayout', - 'GridBagLayout', - 'GridBagConstraints', - 'GregorianCalendar', - 'GrayFilter', - 'GraphicsEnvironment', - 'GraphicsDevice', - 'GraphicsConfiguration', - 'GraphicsConfigTemplate', - 'Graphics2D', - 'Graphics', - 'GraphicAttribute', - 'GradientPaint', - 'GlyphView.GlyphPainter', - 'GlyphView', - 'GlyphVector', - 'GlyphMetrics', - 'GlyphJustificationInfo', - 'GeneralSecurityException', - 'GeneralPath', - 'GapContent', - 'GZIPOutputStream', - 'GZIPInputStream', - 'Frame', - 'FormatConversionProvider', - 'Format', - 'FormView', - 'FontUIResource', - 'FontRenderContext', - 'FontMetrics', - 'FontFormatException', - 'Font', - 'FocusManager', - 'FocusListener', - 'FocusEvent', - 'FocusAdapter', - 'FlowView.FlowStrategy', - 'FlowView', - 'FlowLayout', - 'FloatSeqHolder', - 'FloatSeqHelper', - 'FloatHolder', - 'FloatControl.Type', - 'FloatControl', - 'Float', - 'FlavorMap', - 'FlatteningPathIterator', - 'FixedHolder', - 'FixedHeightLayoutCache', - 'FilteredImageSource', - 'FilterWriter', - 'FilterReader', - 'FilterOutputStream', - 'FilterInputStream', - 'FilenameFilter', - 'FileWriter', - 'FileView', - 'FileSystemView', - 'FileReader', - 'FilePermission', - 'FileOutputStream', - 'FileNotFoundException', - 'FileNameMap', - 'FileInputStream', - 'FileFilter', - 'FileFilter', - 'FileDialog', - 'FileDescriptor', - 'FileChooserUI', - 'File', - 'FieldView', - 'FieldPosition', - 'FieldNameHelper', - 'Field', - 'FeatureDescriptor', - 'FREE_MEM', - 'Externalizable', - 'ExtendedResponse', - 'ExtendedRequest', - 'ExportException', - 'ExpandVetoException', - 'ExceptionList', - 'ExceptionInInitializerError', - 'Exception', - 'EventSetDescriptor', - 'EventQueue', - 'EventObject', - 'EventListenerList', - 'EventListener', - 'EventDirContext', - 'EventContext', - 'Event', - 'EtchedBorder', - 'Error', - 'Environment', - 'Enumeration', - 'EnumControl.Type', - 'EnumControl', - 'Entity', - 'EncodedKeySpec', - 'EmptyStackException', - 'EmptyBorder', - 'Ellipse2D.Float', - 'Ellipse2D.Double', - 'Ellipse2D', - 'ElementIterator', - 'Element', - 'EditorKit', - 'EOFException', - 'DynamicImplementation', - 'DynValue', - 'DynUnion', - 'DynStruct', - 'DynSequence', - 'DynFixed', - 'DynEnum', - 'DynArray', - 'DynAny', - 'DropTargetListener', - 'DropTargetEvent', - 'DropTargetDropEvent', - 'DropTargetDragEvent', - 'DropTargetContext', - 'DropTarget.DropTargetAutoScroller', - 'DropTarget', - 'DriverPropertyInfo', - 'DriverManager', - 'Driver', - 'DragSourceListener', - 'DragSourceEvent', - 'DragSourceDropEvent', - 'DragSourceDragEvent', - 'DragSourceContext', - 'DragSource', - 'DragGestureRecognizer', - 'DragGestureListener', - 'DragGestureEvent', - 'DoubleSeqHolder', - 'DoubleSeqHelper', - 'DoubleHolder', - 'Double', - 'DomainManagerOperations', - 'DomainManager', - 'DomainCombiner', - 'DocumentParser', - 'DocumentListener', - 'DocumentEvent.EventType', - 'DocumentEvent.ElementChange', - 'DocumentEvent', - 'Document', - 'DnDConstants', - 'DirectoryManager', - 'DirectColorModel', - 'DirStateFactory.Result', - 'DirStateFactory', - 'DirObjectFactory', - 'DirContext', - 'DimensionUIResource', - 'Dimension2D', - 'Dimension', - 'DigestOutputStream', - 'DigestInputStream', - 'DigestException', - 'Dictionary', - 'Dialog', - 'DesktopPaneUI', - 'DesktopManager', - 'DesktopIconUI', - 'DesignMode', - 'Delegate', - 'DeflaterOutputStream', - 'Deflater', - 'DefinitionKindHelper', - 'DefinitionKind', - 'DefaultTreeSelectionModel', - 'DefaultTreeModel', - 'DefaultTreeCellRenderer', - 'DefaultTreeCellEditor', - 'DefaultTextUI', - 'DefaultTableModel', - 'DefaultTableColumnModel', - 'DefaultTableCellRenderer.UIResource', - 'DefaultTableCellRenderer', - 'DefaultStyledDocument.ElementSpec', - 'DefaultStyledDocument.AttributeUndoableEdit', - 'DefaultStyledDocument', - 'DefaultSingleSelectionModel', - 'DefaultMutableTreeNode', - 'DefaultMetalTheme', - 'DefaultMenuLayout', - 'DefaultListSelectionModel', - 'DefaultListModel', - 'DefaultListCellRenderer.UIResource', - 'DefaultListCellRenderer', - 'DefaultHighlighter.DefaultHighlightPainter', - 'DefaultHighlighter', - 'DefaultFocusManager', - 'DefaultEditorKit.PasteAction,', - 'DefaultEditorKit.InsertTabAction', - 'DefaultEditorKit.InsertContentAction', - 'DefaultEditorKit.InsertBreakAction', - 'DefaultEditorKit.DefaultKeyTypedAction', - 'DefaultEditorKit.CutAction', - 'DefaultEditorKit.CopyAction', - 'DefaultEditorKit.BeepAction', - 'DefaultEditorKit', - 'DefaultDesktopManager', - 'DefaultComboBoxModel', - 'DefaultColorSelectionModel', - 'DefaultCellEditor', - 'DefaultCaret', - 'DefaultButtonModel', - 'DefaultBoundedRangeModel', - 'DecimalFormatSymbols', - 'DecimalFormat', - 'DebugGraphics', - 'DateFormatSymbols', - 'DateFormat', - 'Date', - 'DatagramSocketImplFactory', - 'DatagramSocketImpl', - 'DatagramSocket', - 'DatagramPacket', - 'DatabaseMetaData', - 'DataTruncation', - 'DataOutputStream', - 'DataOutputStream', - 'DataOutput', - 'DataLine.Info', - 'DataLine', - 'DataInputStream', - 'DataInput', - 'DataFormatException', - 'DataFlavor', - 'DataBufferUShort', - 'DataBufferShort', - 'DataBufferInt', - 'DataBufferByte', - 'DataBuffer', - 'DTDConstants', - 'DTD', - 'DSAPublicKeySpec', - 'DSAPublicKey', - 'DSAPrivateKeySpec', - 'DSAPrivateKey', - 'DSAParams', - 'DSAParameterSpec', - 'DSAKeyPairGenerator', - 'DSAKey', - 'DGC', - 'DATA_CONVERSION', - 'Customizer', - 'CustomValue', - 'CustomMarshal', - 'Cursor', - 'CurrentOperations', - 'CurrentHolder', - 'CurrentHelper', - 'Current', - 'CubicCurve2D.Float', - 'CubicCurve2D.Double', - 'CubicCurve2D', - 'CropImageFilter', - 'ConvolveOp', - 'ControllerEventListener', - 'ControlFactory', - 'Control.Type', - 'Control', - 'ContextualRenderedImageFactory', - 'ContextNotEmptyException', - 'ContextList', - 'Context', - 'ContentModel', - 'ContentHandlerFactory', - 'ContentHandler', - 'ContainerListener', - 'ContainerEvent', - 'ContainerAdapter', - 'Container', - 'Constructor', - 'Connection', - 'ConnectIOException', - 'ConnectException', - 'ConnectException', - 'ConfigurationException', - 'ConcurrentModificationException', - 'CompoundName', - 'CompoundEdit', - 'CompoundControl.Type', - 'CompoundControl', - 'CompoundBorder', - 'CompositeView', - 'CompositeName', - 'CompositeContext', - 'Composite', - 'ComponentView', - 'ComponentUI', - 'ComponentSampleModel', - 'ComponentOrientation', - 'ComponentListener', - 'ComponentInputMapUIResource', - 'ComponentInputMap', - 'ComponentEvent', - 'ComponentColorModel', - 'ComponentAdapter', - 'Component', - 'CompletionStatusHelper', - 'CompletionStatus', - 'Compiler', - 'Comparator', - 'Comparable', - 'CommunicationException', - 'ComboPopup', - 'ComboBoxUI', - 'ComboBoxModel', - 'ComboBoxEditor', - 'ColorUIResource', - 'ColorSpace', - 'ColorSelectionModel', - 'ColorModel', - 'ColorConvertOp', - 'ColorChooserUI', - 'ColorChooserComponentFactory', - 'Color', - 'Collections', - 'Collection', - 'Collator', - 'CollationKey', - 'CollationElementIterator', - 'CodeSource', - 'Cloneable', - 'CloneNotSupportedException', - 'Clob', - 'ClipboardOwner', - 'Clipboard', - 'Clip', - 'ClassNotFoundException', - 'ClassLoader', - 'ClassFormatError', - 'ClassDesc', - 'ClassCircularityError', - 'ClassCastException', - 'Class', - 'ChoiceFormat', - 'Choice', - 'Checksum', - 'CheckedOutputStream', - 'CheckedInputStream', - 'CheckboxMenuItem', - 'CheckboxGroup', - 'Checkbox', - 'CharacterIterator', - 'Character.UnicodeBlock', - 'Character.Subset', - 'Character', - 'CharSeqHolder', - 'CharSeqHelper', - 'CharHolder', - 'CharConversionException', - 'CharArrayWriter', - 'CharArrayReader', - 'ChangedCharSetException', - 'ChangeListener', - 'ChangeEvent', - 'CertificateParsingException', - 'CertificateNotYetValidException', - 'CertificateFactorySpi', - 'CertificateFactory', - 'CertificateExpiredException', - 'CertificateException', - 'CertificateEncodingException', - 'Certificate.CertificateRep', - 'Certificate', - 'CellRendererPane', - 'CellEditorListener', - 'CellEditor', - 'CaretListener', - 'CaretEvent', - 'Caret', - 'CardLayout', - 'Canvas', - 'CannotUndoException', - 'CannotRedoException', - 'CannotProceedHolder', - 'CannotProceedHelper', - 'CannotProceedException', - 'CannotProceed', - 'CallableStatement', - 'Calendar', - 'CTX_RESTRICT_SCOPE', - 'CSS.Attribute', - 'CSS', - 'CRLException', - 'CRL', - 'CRC32', - 'COMM_FAILURE', - 'CMMException', - 'ByteLookupTable', - 'ByteHolder', - 'ByteArrayOutputStream', - 'ByteArrayInputStream', - 'Byte', - 'ButtonUI', - 'ButtonModel', - 'ButtonGroup', - 'Button', - 'BufferedWriter', - 'BufferedReader', - 'BufferedOutputStream', - 'BufferedInputStream', - 'BufferedImageOp', - 'BufferedImageFilter', - 'BufferedImage', - 'BreakIterator', - 'BoxedValueHelper', - 'BoxView', - 'BoxLayout', - 'Box.Filler', - 'Box', - 'Bounds', - 'BoundedRangeModel', - 'BorderUIResource.TitledBorderUIResource', - 'BorderUIResource.MatteBorderUIResource', - 'BorderUIResource.LineBorderUIResource', - 'BorderUIResource.EtchedBorderUIResource', - 'BorderUIResource.EmptyBorderUIResource', - 'BorderUIResource.CompoundBorderUIResource', - 'BorderUIResource.BevelBorderUIResource', - 'BorderUIResource', - 'BorderLayout', - 'BorderFactory', - 'Border', - 'BooleanSeqHolder', - 'BooleanSeqHelper', - 'BooleanHolder', - 'BooleanControl.Type', - 'BooleanControl', - 'Boolean', - 'Book', - 'BlockView', - 'Blob', - 'BitSet', - 'BindingTypeHolder', - 'BindingTypeHelper', - 'BindingType', - 'BindingListHolder', - 'BindingListHelper', - 'BindingIteratorOperations', - 'BindingIteratorHolder', - 'BindingIteratorHelper', - 'BindingIterator', - 'BindingHolder', - 'BindingHelper', - 'Binding', - 'BindException', - 'BinaryRefAddr', - 'BigInteger', - 'BigDecimal', - 'BevelBorder', - 'Beans', - 'BeanInfo', - 'BeanDescriptor', - 'BeanContextSupport.BCSIterator', - 'BeanContextSupport', - 'BeanContextServicesSupport.BCSSServiceProvider', - 'BeanContextServicesSupport', - 'BeanContextServicesListener', - 'BeanContextServices', - 'BeanContextServiceRevokedListener', - 'BeanContextServiceRevokedEvent', - 'BeanContextServiceProviderBeanInfo', - 'BeanContextServiceProvider', - 'BeanContextServiceAvailableEvent', - 'BeanContextProxy', - 'BeanContextMembershipListener', - 'BeanContextMembershipEvent', - 'BeanContextEvent', - 'BeanContextContainerProxy', - 'BeanContextChildSupport', - 'BeanContextChildComponentProxy', - 'BeanContextChild', - 'BeanContext', - 'BatchUpdateException', - 'BasicViewportUI', - 'BasicTreeUI', - 'BasicToolTipUI', - 'BasicToolBarUI', - 'BasicToolBarSeparatorUI', - 'BasicToggleButtonUI', - 'BasicTextUI.BasicHighlighter', - 'BasicTextUI.BasicCaret', - 'BasicTextUI', - 'BasicTextPaneUI', - 'BasicTextFieldUI', - 'BasicTextAreaUI', - 'BasicTableUI', - 'BasicTableHeaderUI', - 'BasicTabbedPaneUI', - 'BasicStroke', - 'BasicSplitPaneUI', - 'BasicSplitPaneDivider', - 'BasicSliderUI', - 'BasicSeparatorUI', - 'BasicScrollPaneUI', - 'BasicScrollBarUI', - 'BasicRootPaneUI', - 'BasicRadioButtonUI', - 'BasicRadioButtonMenuItemUI', - 'BasicProgressBarUI', - 'BasicPopupMenuUI', - 'BasicPopupMenuSeparatorUI', - 'BasicPermission', - 'BasicPasswordFieldUI', - 'BasicPanelUI', - 'BasicOptionPaneUI.ButtonAreaLayout', - 'BasicOptionPaneUI', - 'BasicMenuUI', - 'BasicMenuItemUI', - 'BasicMenuBarUI', - 'BasicLookAndFeel', - 'BasicListUI', - 'BasicLabelUI', - 'BasicInternalFrameUI', - 'BasicInternalFrameTitlePane', - 'BasicIconFactory', - 'BasicHTML', - 'BasicGraphicsUtils', - 'BasicFileChooserUI', - 'BasicEditorPaneUI', - 'BasicDirectoryModel', - 'BasicDesktopPaneUI', - 'BasicDesktopIconUI', - 'BasicComboPopup', - 'BasicComboBoxUI', - 'BasicComboBoxRenderer.UIResource', - 'BasicComboBoxRenderer', - 'BasicComboBoxEditor.UIResource', - 'BasicComboBoxEditor', - 'BasicColorChooserUI', - 'BasicCheckBoxUI', - 'BasicCheckBoxMenuItemUI', - 'BasicButtonUI', - 'BasicButtonListener', - 'BasicBorders.ToggleButtonBorder', - 'BasicBorders.SplitPaneBorder', - 'BasicBorders.RadioButtonBorder', - 'BasicBorders.MenuBarBorder', - 'BasicBorders.MarginBorder', - 'BasicBorders.FieldBorder', - 'BasicBorders.ButtonBorder', - 'BasicBorders', - 'BasicAttributes', - 'BasicAttribute', - 'BasicArrowButton', - 'BandedSampleModel', - 'BandCombineOp', - 'BadLocationException', - 'BadKind', - 'BAD_TYPECODE', - 'BAD_POLICY_VALUE', - 'BAD_POLICY_TYPE', - 'BAD_POLICY', - 'BAD_PARAM', - 'BAD_OPERATION', - 'BAD_INV_ORDER', - 'BAD_CONTEXT', - 'Autoscroll', - 'Authenticator', - 'AuthenticationNotSupportedException', - 'AuthenticationException', - 'AudioSystem', - 'AudioPermission', - 'AudioInputStream', - 'AudioFormat.Encoding', - 'AudioFormat', - 'AudioFileWriter', - 'AudioFileReader', - 'AudioFileFormat.Type', - 'AudioFileFormat', - 'AudioClip', - 'Attributes.Name', - 'Attributes', - 'AttributedString', - 'AttributedCharacterIterator.Attribute', - 'AttributedCharacterIterator', - 'AttributeSet.ParagraphAttribute', - 'AttributeSet.FontAttribute', - 'AttributeSet.ColorAttribute', - 'AttributeSet.CharacterAttribute', - 'AttributeSet', - 'AttributeModificationException', - 'AttributeList', - 'AttributeInUseException', - 'Attribute', - 'AsyncBoxView', - 'Arrays', - 'ArrayStoreException', - 'ArrayList', - 'ArrayIndexOutOfBoundsException', - 'Array', - 'ArithmeticException', - 'AreaAveragingScaleFilter', - 'Area', - 'Arc2D.Float', - 'Arc2D.Double', - 'Arc2D', - 'ApplicationException', - 'AppletStub', - 'AppletInitializer', - 'AppletContext', - 'Applet', - 'AnySeqHolder', - 'AnySeqHelper', - 'AnyHolder', - 'Any', - 'Annotation', - 'AncestorListener', - 'AncestorEvent', - 'AlreadyBoundHolder', - 'AlreadyBoundHelper', - 'AlreadyBoundException', - 'AlreadyBound', - 'AlphaComposite', - 'AllPermission', - 'AlgorithmParametersSpi', - 'AlgorithmParameters', - 'AlgorithmParameterSpec', - 'AlgorithmParameterGeneratorSpi', - 'AlgorithmParameterGenerator', - 'AffineTransformOp', - 'AffineTransform', - 'Adler32', - 'AdjustmentListener', - 'AdjustmentEvent', - 'Adjustable', - 'ActiveEvent', - 'Activator', - 'ActivationSystem', - 'ActivationMonitor', - 'ActivationInstantiator', - 'ActivationID', - 'ActivationGroupID', - 'ActivationGroupDesc.CommandEnvironment', - 'ActivationGroupDesc', - 'ActivationGroup', - 'ActivationException', - 'ActivationDesc', - 'ActivateFailedException', - 'Activatable', - 'ActionMapUIResource', - 'ActionMap', - 'ActionListener', - 'ActionEvent', - 'Action', - 'AclNotFoundException', - 'AclEntry', - 'Acl', - 'AccessibleValue', - 'AccessibleText', - 'AccessibleTableModelChange', - 'AccessibleTable', - 'AccessibleStateSet', - 'AccessibleState', - 'AccessibleSelection', - 'AccessibleRole', - 'AccessibleResourceBundle', - 'AccessibleRelationSet', - 'AccessibleRelation', - 'AccessibleObject', - 'AccessibleIcon', - 'AccessibleHypertext', - 'AccessibleHyperlink', - 'AccessibleContext', - 'AccessibleComponent', - 'AccessibleBundle', - 'AccessibleAction', - 'Accessible', - 'AccessException', - 'AccessController', - 'AccessControlException', - 'AccessControlContext', - 'AbstractWriter', - 'AbstractUndoableEdit', - 'AbstractTableModel', - 'AbstractSet', - 'AbstractSequentialList', - 'AbstractMethodError', - 'AbstractMap', - 'AbstractListModel', - 'AbstractList', - 'AbstractLayoutCache.NodeDimensions', - 'AbstractLayoutCache', - 'AbstractDocument.ElementEdit', - 'AbstractDocument.Content', - 'AbstractDocument.AttributeContext', - 'AbstractDocument', - 'AbstractColorChooserPanel', - 'AbstractCollection', - 'AbstractCellEditor', - 'AbstractButton', - 'AbstractBorder', - 'AbstractAction', - 'AWTPermission', - 'AWTException', - 'AWTEventMulticaster', - 'AWTEventListener', - 'AWTEvent', - 'AWTError', - 'ARG_OUT', - 'ARG_INOUT', - 'ARG_IN' - ), - 4 => array( - 'void', - 'short', - 'long', - 'int', - 'double', - 'char', - 'byte', - 'boolean', - 'float' - ), - 5 => array( - 'toList', - 'subMap', - 'sort', - 'size', - 'reverseEach', - 'reverse', - 'pop', - 'min', - 'max', - 'join', - 'intersect', - 'inject', - 'grep', - 'get', - 'flatten', - 'findIndexOf', - 'findAll', - 'find', - 'eachWithIndex', - 'eachPropertyName', - 'eachProperty', - 'each', - 'count', - 'collect', - 'asSynchronized', - 'asImmutable', - 'allProperties' - ), - 6 => array( - 'tokenize', - 'toURL', - 'toLong', - 'toList', - 'toCharacter', - 'padRight', - 'padLeft', - 'eachMatch', - 'contains', - 'center' - ), - 7 => array( - 'writeLine', - 'write', - 'withWriterAppend', - 'withWriter', - 'withStreams', - 'withStream', - 'withReader', - 'withPrintWriter', - 'withOutputStream', - 'transformLine', - 'transformChar', - 'splitEachLine', - 'getText', - 'filterLine', - 'encodeBase64', - 'eachLines', - 'eachLine', - 'eachFileRecurse', - 'eachFile', - 'eachByte', - 'append' - ), - 8 => array( - 'dump', - 'inspect', - 'invokeMethod', - 'print', - 'println', - 'step', - 'times', - 'upto', - 'use', - 'getText', - 'start', - 'startDaemon', - 'getLastMatcher' - ), - 9 => array( - 'Sql', - 'call', - 'eachRow', - 'execute', - 'executeUpdate', - 'close' - ) - ), - 'SYMBOLS' => array( - '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?', '|', '=' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false, - 2 => false, - 3 => true, - 4 => true, - 5 => true, - 6 => true, - 7 => true, - 8 => true, - 9 => true - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #b1b100;', - 2 => 'color: #000000; font-weight: bold;', - 3 => 'color: #aaaadd; font-weight: bold;', - 4 => 'color: #993333;', - 5 => 'color: #663399;', - 6 => 'color: #CC0099;', - 7 => 'color: #FFCC33;', - 8 => 'color: #993399;', - 9 => 'color: #993399; font-weight: bold;' - ), - 'COMMENTS' => array( - 1=> 'color: #808080; font-style: italic;', - 2=> 'color: #a1a100;', - 'MULTI' => '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( - 1 => 'color: #006600;', - 2 => 'color: #006600;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'SCRIPT' => array( - ), - 'REGEXPS' => array( - 0 => 'color: #0000ff;' - ) - ), - 'URLS' => array( - 1 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', - 2 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', - 3 => 'http://www.google.de/search?as_q={FNAME}&num=100&hl=en&as_occt=url&as_sitesearch=java.sun.com%2Fj2se%2F1.5.0%2Fdocs%2Fapi%2F', - 4 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', - 5 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', - 6 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', - 7 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', - 8 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', - 9 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}' - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.' - ), - 'REGEXPS' => array( - 0 => '\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}' - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) +$language_data = array( + 'LANG_NAME' => 'Groovy', + 'COMMENT_SINGLE' => array(1 => '//', 2 => 'import', 3 => '#'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'''", '"""', "'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + '||', + 'while', + 'switch', + 'in', + 'if', + 'foreach', + 'for', + 'else', + 'do', + 'case', + '=>', + '--', + '++', + '<<', + '<<<', + '&&' + ), + 2 => array( + 'volatile', + 'try', + 'true', + 'transient', + 'throws', + 'throw', + 'this', + 'synchronized', + 'super', + 'strictfp', + 'static', + 'return', + 'public', + 'protected', + 'property', + 'private', + 'package', + 'null', + 'new', + 'native', + 'interface', + 'instanceof', + 'implements', + 'goto', + 'finally', + 'final', + 'false', + 'extends', + 'enum', + 'default', + 'def', + 'continue', + 'const', + 'class', + 'catch', + 'break', + 'assert', + 'abstract', + 'as' + ), + 3 => array( + '_Remote_Stub', + '_PolicyStub', + '_NamingContextStub', + '_NamingContextImplBase', + '_IDLTypeStub', + '_BindingIteratorStub', + '_BindingIteratorImplBase', + 'ZoneView', + 'ZipOutputStream', + 'ZipInputStream', + 'ZipFile', + 'ZipException', + 'ZipEntry', + 'X509Extension', + 'X509EncodedKeySpec', + 'X509Certificate', + 'X509CRLEntry', + 'X509CRL', + 'WrongTransaction', + 'Writer', + 'WriteAbortedException', + 'WritableRenderedImage', + 'WritableRaster', + 'WrappedPlainView', + 'WindowListener', + 'WindowEvent', + 'WindowConstants', + 'WindowAdapter', + 'Window', + 'WeakReference', + 'WeakHashMap', + 'WStringValueHelper', + 'WCharSeqHolder', + 'WCharSeqHelper', + 'Void', + 'VoiceStatus', + 'VisibilityHelper', + 'Visibility', + 'VirtualMachineError', + 'ViewportUI', + 'ViewportLayout', + 'ViewFactory', + 'View', + 'VetoableChangeSupport', + 'VetoableChangeListener', + 'VersionSpecHelper', + 'VerifyError', + 'Vector', + 'VariableHeightLayoutCache', + 'ValueMemberHelper', + 'ValueMember', + 'ValueHandler', + 'ValueFactory', + 'ValueBaseHolder', + 'ValueBaseHelper', + 'ValueBase', + 'VM_TRUNCATABLE', + 'VM_NONE', + 'VM_CUSTOM', + 'VM_ABSTRACT', + 'VMID', + 'Utilities', + 'UtilDelegate', + 'Util', + 'UserException', + 'UnsupportedOperationException', + 'UnsupportedLookAndFeelException', + 'UnsupportedFlavorException', + 'UnsupportedEncodingException', + 'UnsupportedClassVersionError', + 'UnsupportedAudioFileException', + 'UnsolicitedNotificationListener', + 'UnsolicitedNotificationEvent', + 'UnsolicitedNotification', + 'UnsatisfiedLinkError', + 'UnresolvedPermission', + 'Unreferenced', + 'UnrecoverableKeyException', + 'UnmarshalException', + 'UnknownUserException', + 'UnknownServiceException', + 'UnknownObjectException', + 'UnknownHostException', + 'UnknownHostException', + 'UnknownGroupException', + 'UnknownException', + 'UnknownError', + 'UnionMemberHelper', + 'UnionMember', + 'UnicastRemoteObject', + 'UnexpectedException', + 'UndoableEditSupport', + 'UndoableEditListener', + 'UndoableEditEvent', + 'UndoableEdit', + 'UndoManager', + 'UndeclaredThrowableException', + 'UTFDataFormatException', + 'UShortSeqHolder', + 'UShortSeqHelper', + 'URLStreamHandlerFactory', + 'URLStreamHandler', + 'URLEncoder', + 'URLDecoder', + 'URLConnection', + 'URLClassLoader', + 'URL', + 'UNSUPPORTED_POLICY_VALUE', + 'UNSUPPORTED_POLICY', + 'UNKNOWN', + 'ULongSeqHolder', + 'ULongSeqHelper', + 'ULongLongSeqHolder', + 'ULongLongSeqHelper', + 'UIResource', + 'UIManager.LookAndFeelInfo', + 'UIManager', + 'UIDefaults.ProxyLazyValue', + 'UIDefaults.LazyValue', + 'UIDefaults.LazyInputMap', + 'UIDefaults.ActiveValue', + 'UIDefaults', + 'UID', + 'Types', + 'TypeMismatch', + 'TypeCodeHolder', + 'TypeCode', + 'TreeWillExpandListener', + 'TreeUI', + 'TreeSet', + 'TreeSelectionModel', + 'TreeSelectionListener', + 'TreeSelectionEvent', + 'TreePath', + 'TreeNode', + 'TreeModelListener', + 'TreeModelEvent', + 'TreeModel', + 'TreeMap', + 'TreeExpansionListener', + 'TreeExpansionEvent', + 'TreeCellRenderer', + 'TreeCellEditor', + 'Transparency', + 'Transmitter', + 'TransformAttribute', + 'Transferable', + 'TransactionRolledbackException', + 'TransactionRequiredException', + 'Track', + 'Toolkit', + 'ToolTipUI', + 'ToolTipManager', + 'ToolBarUI', + 'TooManyListenersException', + 'TitledBorder', + 'Timestamp', + 'TimerTask', + 'Timer', + 'Timer', + 'TimeZone', + 'TimeLimitExceededException', + 'Time', + 'TileObserver', + 'Tie', + 'Throwable', + 'ThreadLocal', + 'ThreadGroup', + 'ThreadDeath', + 'Thread', + 'TexturePaint', + 'TextUI', + 'TextMeasurer', + 'TextListener', + 'TextLayout.CaretPolicy', + 'TextLayout', + 'TextHitInfo', + 'TextField', + 'TextEvent', + 'TextComponent', + 'TextAttribute', + 'TextArea', + 'TextAction', + 'TargetDataLine', + 'TagElement', + 'TableView', + 'TableUI', + 'TableModelListener', + 'TableModelEvent', + 'TableModel', + 'TableHeaderUI', + 'TableColumnModelListener', + 'TableColumnModelEvent', + 'TableColumnModel', + 'TableColumn', + 'TableCellRenderer', + 'TableCellEditor', + 'TabbedPaneUI', + 'TabableView', + 'TabStop', + 'TabSet', + 'TabExpander', + 'TRANSIENT', + 'TRANSACTION_ROLLEDBACK', + 'TRANSACTION_REQUIRED', + 'TCKind', + 'SystemFlavorMap', + 'SystemException', + 'SystemColor', + 'System', + 'SysexMessage', + 'Synthesizer', + 'SyncFailedException', + 'SwingUtilities', + 'SwingPropertyChangeSupport', + 'SwingConstants', + 'StyledEditorKit.UnderlineAction', + 'StyledEditorKit.StyledTextAction', + 'StyledEditorKit.ItalicAction', + 'StyledEditorKit.ForegroundAction', + 'StyledEditorKit.FontSizeAction', + 'StyledEditorKit.FontFamilyAction', + 'StyledEditorKit.BoldAction', + 'StyledEditorKit.AlignmentAction', + 'StyledEditorKit', + 'StyledDocument', + 'StyleSheet.ListPainter', + 'StyleSheet.BoxPainter', + 'StyleSheet', + 'StyleContext', + 'StyleConstants.ParagraphConstants', + 'StyleConstants.FontConstants', + 'StyleConstants.ColorConstants', + 'StyleConstants.CharacterConstants', + 'StyleConstants', + 'Style', + 'StubNotFoundException', + 'StubDelegate', + 'Stub', + 'StructMemberHelper', + 'StructMember', + 'Struct', + 'Stroke', + 'StringWriter', + 'StringValueHelper', + 'StringTokenizer', + 'StringSelection', + 'StringRefAddr', + 'StringReader', + 'StringIndexOutOfBoundsException', + 'StringHolder', + 'StringContent', + 'StringCharacterIterator', + 'StringBufferInputStream', + 'StringBuffer', + 'String', + 'StrictMath', + 'StreamableValue', + 'Streamable', + 'StreamTokenizer', + 'StreamCorruptedException', + 'Statement', + 'StateFactory', + 'StateEditable', + 'StateEdit', + 'StackOverflowError', + 'Stack', + 'SplitPaneUI', + 'SourceDataLine', + 'SoundbankResource', + 'SoundbankReader', + 'Soundbank', + 'SortedSet', + 'SortedMap', + 'SoftReference', + 'SoftBevelBorder', + 'SocketSecurityException', + 'SocketPermission', + 'SocketOptions', + 'SocketImplFactory', + 'SocketImpl', + 'SocketException', + 'Socket', + 'SliderUI', + 'SkeletonNotFoundException', + 'SkeletonMismatchException', + 'Skeleton', + 'SizeSequence', + 'SizeRequirements', + 'SizeLimitExceededException', + 'SingleSelectionModel', + 'SinglePixelPackedSampleModel', + 'SimpleTimeZone', + 'SimpleDateFormat', + 'SimpleBeanInfo', + 'SimpleAttributeSet', + 'Signer', + 'SignedObject', + 'SignatureSpi', + 'SignatureException', + 'Signature', + 'ShortSeqHolder', + 'ShortSeqHelper', + 'ShortMessage', + 'ShortLookupTable', + 'ShortHolder', + 'Short', + 'ShapeGraphicAttribute', + 'Shape', + 'SetOverrideTypeHelper', + 'SetOverrideType', + 'Set', + 'ServiceUnavailableException', + 'ServiceInformationHolder', + 'ServiceInformationHelper', + 'ServiceInformation', + 'ServiceDetailHelper', + 'ServiceDetail', + 'ServerSocket', + 'ServerRuntimeException', + 'ServerRequest', + 'ServerRef', + 'ServerNotActiveException', + 'ServerException', + 'ServerError', + 'ServerCloneException', + 'ServantObject', + 'SerializablePermission', + 'Serializable', + 'Sequencer.SyncMode', + 'Sequencer', + 'SequenceInputStream', + 'Sequence', + 'SeparatorUI', + 'Segment', + 'SecurityPermission', + 'SecurityManager', + 'SecurityException', + 'Security', + 'SecureRandomSpi', + 'SecureRandom', + 'SecureClassLoader', + 'SearchResult', + 'SearchControls', + 'Scrollbar', + 'Scrollable', + 'ScrollPaneUI', + 'ScrollPaneLayout.UIResource', + 'ScrollPaneLayout', + 'ScrollPaneConstants', + 'ScrollPane', + 'ScrollBarUI', + 'SchemaViolationException', + 'SampleModel', + 'SQLWarning', + 'SQLPermission', + 'SQLOutput', + 'SQLInput', + 'SQLException', + 'SQLData', + 'RuntimePermission', + 'RuntimeException', + 'Runtime', + 'Runnable', + 'RunTimeOperations', + 'RunTime', + 'RuleBasedCollator', + 'RowMapper', + 'RoundRectangle2D.Float', + 'RoundRectangle2D.Double', + 'RoundRectangle2D', + 'RootPaneUI', + 'RootPaneContainer', + 'Robot', + 'ReverbType', + 'ResultSetMetaData', + 'ResultSet', + 'ResponseHandler', + 'ResourceBundle', + 'Resolver', + 'ResolveResult', + 'RescaleOp', + 'Request', + 'RepositoryIdHelper', + 'Repository', + 'ReplicateScaleFilter', + 'RepaintManager', + 'RenderingHints.Key', + 'RenderingHints', + 'Renderer', + 'RenderedImageFactory', + 'RenderedImage', + 'RenderableImageProducer', + 'RenderableImageOp', + 'RenderableImage', + 'RenderContext', + 'RemoteStub', + 'RemoteServer', + 'RemoteRef', + 'RemoteObject', + 'RemoteException', + 'RemoteCall', + 'Remote', + 'RemarshalException', + 'RegistryHandler', + 'Registry', + 'ReflectPermission', + 'ReferralException', + 'Referenceable', + 'ReferenceQueue', + 'Reference', + 'RefAddr', + 'Ref', + 'RectangularShape', + 'Rectangle2D.Float', + 'Rectangle2D.Double', + 'Rectangle2D', + 'Rectangle', + 'Receiver', + 'Reader', + 'RasterOp', + 'RasterFormatException', + 'Raster', + 'RandomAccessFile', + 'Random', + 'RTFEditorKit', + 'RSAPublicKeySpec', + 'RSAPublicKey', + 'RSAPrivateKeySpec', + 'RSAPrivateKey', + 'RSAPrivateCrtKeySpec', + 'RSAPrivateCrtKey', + 'RSAKeyGenParameterSpec', + 'RSAKey', + 'RMISocketFactory', + 'RMIServerSocketFactory', + 'RMISecurityManager', + 'RMISecurityException', + 'RMIFailureHandler', + 'RMIClientSocketFactory', + 'RMIClassLoader', + 'RGBImageFilter', + 'QuadCurve2D.Float', + 'QuadCurve2D.Double', + 'QuadCurve2D', + 'PushbackReader', + 'PushbackInputStream', + 'PublicKey', + 'Proxy', + 'ProviderException', + 'Provider', + 'ProtocolException', + 'ProtectionDomain', + 'PropertyVetoException', + 'PropertyResourceBundle', + 'PropertyPermission', + 'PropertyEditorSupport', + 'PropertyEditorManager', + 'PropertyEditor', + 'PropertyDescriptor', + 'PropertyChangeSupport', + 'PropertyChangeListener', + 'PropertyChangeEvent', + 'Properties', + 'ProgressMonitorInputStream', + 'ProgressMonitor', + 'ProgressBarUI', + 'ProfileDataException', + 'Process', + 'PrivilegedExceptionAction', + 'PrivilegedActionException', + 'PrivilegedAction', + 'PrivateKey', + 'PrinterJob', + 'PrinterIOException', + 'PrinterGraphics', + 'PrinterException', + 'PrinterAbortException', + 'Printable', + 'PrintWriter', + 'PrintStream', + 'PrintJob', + 'PrintGraphics', + 'PrincipalHolder', + 'Principal', + 'Principal', + 'PreparedStatement', + 'Position.Bias', + 'Position', + 'PortableRemoteObjectDelegate', + 'PortableRemoteObject', + 'Port.Info', + 'Port', + 'PopupMenuUI', + 'PopupMenuListener', + 'PopupMenuEvent', + 'PopupMenu', + 'Polygon', + 'PolicyTypeHelper', + 'PolicyOperations', + 'PolicyListHolder', + 'PolicyListHelper', + 'PolicyHolder', + 'PolicyHelper', + 'PolicyError', + 'Policy', + 'Policy', + 'Point2D.Float', + 'Point2D.Double', + 'Point2D', + 'Point', + 'PlainView', + 'PlainDocument', + 'PixelInterleavedSampleModel', + 'PixelGrabber', + 'PipedWriter', + 'PipedReader', + 'PipedOutputStream', + 'PipedInputStream', + 'PhantomReference', + 'Permissions', + 'PermissionCollection', + 'Permission', + 'Permission', + 'PathIterator', + 'Patch', + 'PasswordView', + 'PasswordAuthentication', + 'PartialResultException', + 'ParserDelegator', + 'Parser', + 'ParsePosition', + 'ParseException', + 'ParameterDescriptor', + 'ParameterBlock', + 'ParagraphView', + 'ParagraphView', + 'Paper', + 'PanelUI', + 'Panel', + 'PaintEvent', + 'PaintContext', + 'Paint', + 'Pageable', + 'PageFormat', + 'PageAttributes.PrintQualityType', + 'PageAttributes.OriginType', + 'PageAttributes.OrientationRequestedType', + 'PageAttributes.MediaType', + 'PageAttributes.ColorType', + 'PageAttributes', + 'PackedColorModel', + 'Package', + 'PUBLIC_MEMBER', + 'PRIVATE_MEMBER', + 'PKCS8EncodedKeySpec', + 'PERSIST_STORE', + 'Owner', + 'OverlayLayout', + 'OutputStreamWriter', + 'OutputStream', + 'OutOfMemoryError', + 'OptionalDataException', + 'OptionPaneUI', + 'Option', + 'OperationNotSupportedException', + 'Operation', + 'OpenType', + 'OctetSeqHolder', + 'OctetSeqHelper', + 'Observer', + 'Observable', + 'ObjectView', + 'ObjectStreamField', + 'ObjectStreamException', + 'ObjectStreamConstants', + 'ObjectStreamClass', + 'ObjectOutputStream.PutField', + 'ObjectOutputStream', + 'ObjectOutput', + 'ObjectInputValidation', + 'ObjectInputStream.GetField', + 'ObjectInputStream', + 'ObjectInput', + 'ObjectImpl', + 'ObjectImpl', + 'ObjectHolder', + 'ObjectHelper', + 'ObjectFactoryBuilder', + 'ObjectFactory', + 'ObjectChangeListener', + 'Object', + 'ObjID', + 'ORB', + 'OMGVMCID', + 'OBJ_ADAPTER', + 'OBJECT_NOT_EXIST', + 'NumberFormatException', + 'NumberFormat', + 'Number', + 'NullPointerException', + 'NotSerializableException', + 'NotOwnerException', + 'NotFoundReasonHolder', + 'NotFoundReasonHelper', + 'NotFoundReason', + 'NotFoundHolder', + 'NotFoundHelper', + 'NotFound', + 'NotEmptyHolder', + 'NotEmptyHelper', + 'NotEmpty', + 'NotContextException', + 'NotBoundException', + 'NotActiveException', + 'NoninvertibleTransformException', + 'NoSuchProviderException', + 'NoSuchObjectException', + 'NoSuchMethodException', + 'NoSuchMethodError', + 'NoSuchFieldException', + 'NoSuchFieldError', + 'NoSuchElementException', + 'NoSuchAttributeException', + 'NoSuchAlgorithmException', + 'NoRouteToHostException', + 'NoPermissionException', + 'NoInitialContextException', + 'NoClassDefFoundError', + 'NetPermission', + 'NegativeArraySizeException', + 'NamingSecurityException', + 'NamingManager', + 'NamingListener', + 'NamingExceptionEvent', + 'NamingException', + 'NamingEvent', + 'NamingEnumeration', + 'NamingContextOperations', + 'NamingContextHolder', + 'NamingContextHelper', + 'NamingContext', + 'Naming', + 'NamespaceChangeListener', + 'NamedValue', + 'NameValuePairHelper', + 'NameValuePair', + 'NameParser', + 'NameNotFoundException', + 'NameHolder', + 'NameHelper', + 'NameComponentHolder', + 'NameComponentHelper', + 'NameComponent', + 'NameClassPair', + 'NameAlreadyBoundException', + 'Name', + 'NVList', + 'NO_RESPONSE', + 'NO_RESOURCES', + 'NO_PERMISSION', + 'NO_MEMORY', + 'NO_IMPLEMENT', + 'MutableTreeNode', + 'MutableComboBoxModel', + 'MutableAttributeSet', + 'MultipleMaster', + 'MulticastSocket', + 'MultiViewportUI', + 'MultiTreeUI', + 'MultiToolTipUI', + 'MultiToolBarUI', + 'MultiTextUI', + 'MultiTableUI', + 'MultiTableHeaderUI', + 'MultiTabbedPaneUI', + 'MultiSplitPaneUI', + 'MultiSliderUI', + 'MultiSeparatorUI', + 'MultiScrollPaneUI', + 'MultiScrollBarUI', + 'MultiProgressBarUI', + 'MultiPopupMenuUI', + 'MultiPixelPackedSampleModel', + 'MultiPanelUI', + 'MultiOptionPaneUI', + 'MultiMenuItemUI', + 'MultiMenuBarUI', + 'MultiLookAndFeel', + 'MultiListUI', + 'MultiLabelUI', + 'MultiInternalFrameUI', + 'MultiFileChooserUI', + 'MultiDesktopPaneUI', + 'MultiDesktopIconUI', + 'MultiComboBoxUI', + 'MultiColorChooserUI', + 'MultiButtonUI', + 'MouseMotionListener', + 'MouseMotionAdapter', + 'MouseListener', + 'MouseInputListener', + 'MouseInputAdapter', + 'MouseEvent', + 'MouseDragGestureRecognizer', + 'MouseAdapter', + 'Modifier', + 'ModificationItem', + 'MixerProvider', + 'Mixer.Info', + 'Mixer', + 'MissingResourceException', + 'MinimalHTMLWriter', + 'MimeTypeParseException', + 'MidiUnavailableException', + 'MidiSystem', + 'MidiMessage', + 'MidiFileWriter', + 'MidiFileReader', + 'MidiFileFormat', + 'MidiEvent', + 'MidiDeviceProvider', + 'MidiDevice.Info', + 'MidiDevice', + 'MidiChannel', + 'MethodDescriptor', + 'Method', + 'MetalTreeUI', + 'MetalToolTipUI', + 'MetalToolBarUI', + 'MetalToggleButtonUI', + 'MetalTheme', + 'MetalTextFieldUI', + 'MetalTabbedPaneUI', + 'MetalSplitPaneUI', + 'MetalSliderUI', + 'MetalSeparatorUI', + 'MetalScrollPaneUI', + 'MetalScrollButton', + 'MetalScrollBarUI', + 'MetalRadioButtonUI', + 'MetalProgressBarUI', + 'MetalPopupMenuSeparatorUI', + 'MetalLookAndFeel', + 'MetalLabelUI', + 'MetalInternalFrameUI', + 'MetalInternalFrameTitlePane', + 'MetalIconFactory.TreeLeafIcon', + 'MetalIconFactory.TreeFolderIcon', + 'MetalIconFactory.TreeControlIcon', + 'MetalIconFactory.PaletteCloseIcon', + 'MetalIconFactory.FolderIcon16', + 'MetalIconFactory.FileIcon16', + 'MetalIconFactory', + 'MetalFileChooserUI', + 'MetalDesktopIconUI', + 'MetalComboBoxUI', + 'MetalComboBoxIcon', + 'MetalComboBoxEditor.UIResource', + 'MetalComboBoxEditor', + 'MetalComboBoxButton', + 'MetalCheckBoxUI', + 'MetalCheckBoxIcon', + 'MetalButtonUI', + 'MetalBorders.ToolBarBorder', + 'MetalBorders.ToggleButtonBorder', + 'MetalBorders.TextFieldBorder', + 'MetalBorders.TableHeaderBorder', + 'MetalBorders.ScrollPaneBorder', + 'MetalBorders.RolloverButtonBorder', + 'MetalBorders.PopupMenuBorder', + 'MetalBorders.PaletteBorder', + 'MetalBorders.OptionDialogBorder', + 'MetalBorders.MenuItemBorder', + 'MetalBorders.MenuBarBorder', + 'MetalBorders.InternalFrameBorder', + 'MetalBorders.Flush3DBorder', + 'MetalBorders.ButtonBorder', + 'MetalBorders', + 'MetaMessage', + 'MetaEventListener', + 'MessageFormat', + 'MessageDigestSpi', + 'MessageDigest', + 'MenuShortcut', + 'MenuSelectionManager', + 'MenuListener', + 'MenuKeyListener', + 'MenuKeyEvent', + 'MenuItemUI', + 'MenuItem', + 'MenuEvent', + 'MenuElement', + 'MenuDragMouseListener', + 'MenuDragMouseEvent', + 'MenuContainer', + 'MenuComponent', + 'MenuBarUI', + 'MenuBar', + 'Menu', + 'MemoryImageSource', + 'Member', + 'MediaTracker', + 'MatteBorder', + 'Math', + 'MarshalledObject', + 'MarshalException', + 'Map.Entry', + 'Map', + 'Manifest', + 'MalformedURLException', + 'MalformedLinkException', + 'MARSHAL', + 'LookupTable', + 'LookupOp', + 'LookAndFeel', + 'LongSeqHolder', + 'LongSeqHelper', + 'LongLongSeqHolder', + 'LongLongSeqHelper', + 'LongHolder', + 'Long', + 'LogStream', + 'LocateRegistry', + 'Locale', + 'LoaderHandler', + 'ListView', + 'ListUI', + 'ListSelectionModel', + 'ListSelectionListener', + 'ListSelectionEvent', + 'ListResourceBundle', + 'ListModel', + 'ListIterator', + 'ListDataListener', + 'ListDataEvent', + 'ListCellRenderer', + 'List', + 'List', + 'LinkedList', + 'LinkageError', + 'LinkRef', + 'LinkLoopException', + 'LinkException', + 'LineUnavailableException', + 'LineNumberReader', + 'LineNumberInputStream', + 'LineMetrics', + 'LineListener', + 'LineEvent.Type', + 'LineEvent', + 'LineBreakMeasurer', + 'LineBorder', + 'Line2D.Float', + 'Line2D.Double', + 'Line2D', + 'Line.Info', + 'Line', + 'LimitExceededException', + 'Lease', + 'LdapReferralException', + 'LdapContext', + 'LayoutQueue', + 'LayoutManager2', + 'LayoutManager', + 'LayeredHighlighter.LayerPainter', + 'LayeredHighlighter', + 'LastOwnerException', + 'LabelView', + 'LabelUI', + 'Label', + 'Keymap', + 'KeyStroke', + 'KeyStoreSpi', + 'KeyStoreException', + 'KeyStore', + 'KeySpec', + 'KeyPairGeneratorSpi', + 'KeyPairGenerator', + 'KeyPair', + 'KeyManagementException', + 'KeyListener', + 'KeyFactorySpi', + 'KeyFactory', + 'KeyException', + 'KeyEvent', + 'KeyAdapter', + 'Key', + 'Kernel', + 'JobAttributes.SidesType', + 'JobAttributes.MultipleDocumentHandlingType', + 'JobAttributes.DialogType', + 'JobAttributes.DestinationType', + 'JobAttributes.DefaultSelectionType', + 'JobAttributes', + 'JarURLConnection', + 'JarOutputStream', + 'JarInputStream', + 'JarFile', + 'JarException', + 'JarEntry', + 'JWindow', + 'JViewport', + 'JTree.EmptySelectionModel', + 'JTree.DynamicUtilTreeNode', + 'JTree', + 'JToolTip', + 'JToolBar.Separator', + 'JToolBar', + 'JToggleButton.ToggleButtonModel', + 'JToggleButton', + 'JTextPane', + 'JTextField', + 'JTextComponent.KeyBinding', + 'JTextComponent', + 'JTextArea', + 'JTableHeader', + 'JTable', + 'JTabbedPane', + 'JSplitPane', + 'JSlider', + 'JSeparator', + 'JScrollPane', + 'JScrollBar', + 'JRootPane', + 'JRadioButtonMenuItem', + 'JRadioButton', + 'JProgressBar', + 'JPopupMenu.Separator', + 'JPopupMenu', + 'JPasswordField', + 'JPanel', + 'JOptionPane', + 'JMenuItem', + 'JMenuBar', + 'JMenu', + 'JList', + 'JLayeredPane', + 'JLabel', + 'JInternalFrame.JDesktopIcon', + 'JInternalFrame', + 'JFrame', + 'JFileChooser', + 'JEditorPane', + 'JDialog', + 'JDesktopPane', + 'JComponent', + 'JComboBox.KeySelectionManager', + 'JComboBox', + 'JColorChooser', + 'JCheckBoxMenuItem', + 'JCheckBox', + 'JButton', + 'JApplet', + 'Iterator', + 'ItemSelectable', + 'ItemListener', + 'ItemEvent', + 'IstringHelper', + 'InvokeHandler', + 'InvocationTargetException', + 'InvocationHandler', + 'InvocationEvent', + 'InvalidValue', + 'InvalidTransactionException', + 'InvalidSeq', + 'InvalidSearchFilterException', + 'InvalidSearchControlsException', + 'InvalidParameterSpecException', + 'InvalidParameterException', + 'InvalidObjectException', + 'InvalidNameHolder', + 'InvalidNameHelper', + 'InvalidNameException', + 'InvalidName', + 'InvalidName', + 'InvalidMidiDataException', + 'InvalidKeySpecException', + 'InvalidKeyException', + 'InvalidDnDOperationException', + 'InvalidClassException', + 'InvalidAttributesException', + 'InvalidAttributeValueException', + 'InvalidAttributeIdentifierException', + 'InvalidAlgorithmParameterException', + 'Invalid', + 'Introspector', + 'IntrospectionException', + 'InterruptedNamingException', + 'InterruptedIOException', + 'InterruptedException', + 'InternalFrameUI', + 'InternalFrameListener', + 'InternalFrameEvent', + 'InternalFrameAdapter', + 'InternalError', + 'Integer', + 'IntHolder', + 'InsufficientResourcesException', + 'Instrument', + 'InstantiationException', + 'InstantiationError', + 'InsetsUIResource', + 'Insets', + 'InputVerifier', + 'InputSubset', + 'InputStreamReader', + 'InputStream', + 'InputStream', + 'InputStream', + 'InputMethodRequests', + 'InputMethodListener', + 'InputMethodHighlight', + 'InputMethodEvent', + 'InputMethodDescriptor', + 'InputMethodContext', + 'InputMethod', + 'InputMapUIResource', + 'InputMap', + 'InputEvent', + 'InputContext', + 'InlineView', + 'Initializer', + 'InitialLdapContext', + 'InitialDirContext', + 'InitialContextFactoryBuilder', + 'InitialContextFactory', + 'InitialContext', + 'InheritableThreadLocal', + 'InflaterInputStream', + 'Inflater', + 'InetAddress', + 'IndirectionException', + 'IndexedPropertyDescriptor', + 'IndexOutOfBoundsException', + 'IndexColorModel', + 'InconsistentTypeCode', + 'IncompatibleClassChangeError', + 'ImagingOpException', + 'ImageProducer', + 'ImageObserver', + 'ImageIcon', + 'ImageGraphicAttribute', + 'ImageFilter', + 'ImageConsumer', + 'Image', + 'IllegalThreadStateException', + 'IllegalStateException', + 'IllegalPathStateException', + 'IllegalMonitorStateException', + 'IllegalComponentStateException', + 'IllegalArgumentException', + 'IllegalAccessException', + 'IllegalAccessError', + 'IdentityScope', + 'Identity', + 'IdentifierHelper', + 'IconView', + 'IconUIResource', + 'Icon', + 'IRObjectOperations', + 'IRObject', + 'IOException', + 'INV_POLICY', + 'INV_OBJREF', + 'INV_IDENT', + 'INV_FLAG', + 'INVALID_TRANSACTION', + 'INTF_REPOS', + 'INTERNAL', + 'INITIALIZE', + 'IMP_LIMIT', + 'IDLTypeOperations', + 'IDLTypeHelper', + 'IDLType', + 'IDLEntity', + 'ICC_ProfileRGB', + 'ICC_ProfileGray', + 'ICC_Profile', + 'ICC_ColorSpace', + 'HyperlinkListener', + 'HyperlinkEvent.EventType', + 'HyperlinkEvent', + 'HttpURLConnection', + 'Highlighter.HighlightPainter', + 'Highlighter.Highlight', + 'Highlighter', + 'HierarchyListener', + 'HierarchyEvent', + 'HierarchyBoundsListener', + 'HierarchyBoundsAdapter', + 'Hashtable', + 'HashSet', + 'HashMap', + 'HasControls', + 'HTMLWriter', + 'HTMLFrameHyperlinkEvent', + 'HTMLEditorKit.ParserCallback', + 'HTMLEditorKit.Parser', + 'HTMLEditorKit.LinkController', + 'HTMLEditorKit.InsertHTMLTextAction', + 'HTMLEditorKit.HTMLTextAction', + 'HTMLEditorKit.HTMLFactory', + 'HTMLEditorKit', + 'HTMLDocument.Iterator', + 'HTMLDocument', + 'HTML.UnknownTag', + 'HTML.Tag', + 'HTML.Attribute', + 'HTML', + 'GuardedObject', + 'Guard', + 'Group', + 'GridLayout', + 'GridBagLayout', + 'GridBagConstraints', + 'GregorianCalendar', + 'GrayFilter', + 'GraphicsEnvironment', + 'GraphicsDevice', + 'GraphicsConfiguration', + 'GraphicsConfigTemplate', + 'Graphics2D', + 'Graphics', + 'GraphicAttribute', + 'GradientPaint', + 'GlyphView.GlyphPainter', + 'GlyphView', + 'GlyphVector', + 'GlyphMetrics', + 'GlyphJustificationInfo', + 'GeneralSecurityException', + 'GeneralPath', + 'GapContent', + 'GZIPOutputStream', + 'GZIPInputStream', + 'Frame', + 'FormatConversionProvider', + 'Format', + 'FormView', + 'FontUIResource', + 'FontRenderContext', + 'FontMetrics', + 'FontFormatException', + 'Font', + 'FocusManager', + 'FocusListener', + 'FocusEvent', + 'FocusAdapter', + 'FlowView.FlowStrategy', + 'FlowView', + 'FlowLayout', + 'FloatSeqHolder', + 'FloatSeqHelper', + 'FloatHolder', + 'FloatControl.Type', + 'FloatControl', + 'Float', + 'FlavorMap', + 'FlatteningPathIterator', + 'FixedHolder', + 'FixedHeightLayoutCache', + 'FilteredImageSource', + 'FilterWriter', + 'FilterReader', + 'FilterOutputStream', + 'FilterInputStream', + 'FilenameFilter', + 'FileWriter', + 'FileView', + 'FileSystemView', + 'FileReader', + 'FilePermission', + 'FileOutputStream', + 'FileNotFoundException', + 'FileNameMap', + 'FileInputStream', + 'FileFilter', + 'FileFilter', + 'FileDialog', + 'FileDescriptor', + 'FileChooserUI', + 'File', + 'FieldView', + 'FieldPosition', + 'FieldNameHelper', + 'Field', + 'FeatureDescriptor', + 'FREE_MEM', + 'Externalizable', + 'ExtendedResponse', + 'ExtendedRequest', + 'ExportException', + 'ExpandVetoException', + 'ExceptionList', + 'ExceptionInInitializerError', + 'Exception', + 'EventSetDescriptor', + 'EventQueue', + 'EventObject', + 'EventListenerList', + 'EventListener', + 'EventDirContext', + 'EventContext', + 'Event', + 'EtchedBorder', + 'Error', + 'Environment', + 'Enumeration', + 'EnumControl.Type', + 'EnumControl', + 'Entity', + 'EncodedKeySpec', + 'EmptyStackException', + 'EmptyBorder', + 'Ellipse2D.Float', + 'Ellipse2D.Double', + 'Ellipse2D', + 'ElementIterator', + 'Element', + 'EditorKit', + 'EOFException', + 'DynamicImplementation', + 'DynValue', + 'DynUnion', + 'DynStruct', + 'DynSequence', + 'DynFixed', + 'DynEnum', + 'DynArray', + 'DynAny', + 'DropTargetListener', + 'DropTargetEvent', + 'DropTargetDropEvent', + 'DropTargetDragEvent', + 'DropTargetContext', + 'DropTarget.DropTargetAutoScroller', + 'DropTarget', + 'DriverPropertyInfo', + 'DriverManager', + 'Driver', + 'DragSourceListener', + 'DragSourceEvent', + 'DragSourceDropEvent', + 'DragSourceDragEvent', + 'DragSourceContext', + 'DragSource', + 'DragGestureRecognizer', + 'DragGestureListener', + 'DragGestureEvent', + 'DoubleSeqHolder', + 'DoubleSeqHelper', + 'DoubleHolder', + 'Double', + 'DomainManagerOperations', + 'DomainManager', + 'DomainCombiner', + 'DocumentParser', + 'DocumentListener', + 'DocumentEvent.EventType', + 'DocumentEvent.ElementChange', + 'DocumentEvent', + 'Document', + 'DnDConstants', + 'DirectoryManager', + 'DirectColorModel', + 'DirStateFactory.Result', + 'DirStateFactory', + 'DirObjectFactory', + 'DirContext', + 'DimensionUIResource', + 'Dimension2D', + 'Dimension', + 'DigestOutputStream', + 'DigestInputStream', + 'DigestException', + 'Dictionary', + 'Dialog', + 'DesktopPaneUI', + 'DesktopManager', + 'DesktopIconUI', + 'DesignMode', + 'Delegate', + 'DeflaterOutputStream', + 'Deflater', + 'DefinitionKindHelper', + 'DefinitionKind', + 'DefaultTreeSelectionModel', + 'DefaultTreeModel', + 'DefaultTreeCellRenderer', + 'DefaultTreeCellEditor', + 'DefaultTextUI', + 'DefaultTableModel', + 'DefaultTableColumnModel', + 'DefaultTableCellRenderer.UIResource', + 'DefaultTableCellRenderer', + 'DefaultStyledDocument.ElementSpec', + 'DefaultStyledDocument.AttributeUndoableEdit', + 'DefaultStyledDocument', + 'DefaultSingleSelectionModel', + 'DefaultMutableTreeNode', + 'DefaultMetalTheme', + 'DefaultMenuLayout', + 'DefaultListSelectionModel', + 'DefaultListModel', + 'DefaultListCellRenderer.UIResource', + 'DefaultListCellRenderer', + 'DefaultHighlighter.DefaultHighlightPainter', + 'DefaultHighlighter', + 'DefaultFocusManager', + 'DefaultEditorKit.PasteAction,', + 'DefaultEditorKit.InsertTabAction', + 'DefaultEditorKit.InsertContentAction', + 'DefaultEditorKit.InsertBreakAction', + 'DefaultEditorKit.DefaultKeyTypedAction', + 'DefaultEditorKit.CutAction', + 'DefaultEditorKit.CopyAction', + 'DefaultEditorKit.BeepAction', + 'DefaultEditorKit', + 'DefaultDesktopManager', + 'DefaultComboBoxModel', + 'DefaultColorSelectionModel', + 'DefaultCellEditor', + 'DefaultCaret', + 'DefaultButtonModel', + 'DefaultBoundedRangeModel', + 'DecimalFormatSymbols', + 'DecimalFormat', + 'DebugGraphics', + 'DateFormatSymbols', + 'DateFormat', + 'Date', + 'DatagramSocketImplFactory', + 'DatagramSocketImpl', + 'DatagramSocket', + 'DatagramPacket', + 'DatabaseMetaData', + 'DataTruncation', + 'DataOutputStream', + 'DataOutputStream', + 'DataOutput', + 'DataLine.Info', + 'DataLine', + 'DataInputStream', + 'DataInput', + 'DataFormatException', + 'DataFlavor', + 'DataBufferUShort', + 'DataBufferShort', + 'DataBufferInt', + 'DataBufferByte', + 'DataBuffer', + 'DTDConstants', + 'DTD', + 'DSAPublicKeySpec', + 'DSAPublicKey', + 'DSAPrivateKeySpec', + 'DSAPrivateKey', + 'DSAParams', + 'DSAParameterSpec', + 'DSAKeyPairGenerator', + 'DSAKey', + 'DGC', + 'DATA_CONVERSION', + 'Customizer', + 'CustomValue', + 'CustomMarshal', + 'Cursor', + 'CurrentOperations', + 'CurrentHolder', + 'CurrentHelper', + 'Current', + 'CubicCurve2D.Float', + 'CubicCurve2D.Double', + 'CubicCurve2D', + 'CropImageFilter', + 'ConvolveOp', + 'ControllerEventListener', + 'ControlFactory', + 'Control.Type', + 'Control', + 'ContextualRenderedImageFactory', + 'ContextNotEmptyException', + 'ContextList', + 'Context', + 'ContentModel', + 'ContentHandlerFactory', + 'ContentHandler', + 'ContainerListener', + 'ContainerEvent', + 'ContainerAdapter', + 'Container', + 'Constructor', + 'Connection', + 'ConnectIOException', + 'ConnectException', + 'ConnectException', + 'ConfigurationException', + 'ConcurrentModificationException', + 'CompoundName', + 'CompoundEdit', + 'CompoundControl.Type', + 'CompoundControl', + 'CompoundBorder', + 'CompositeView', + 'CompositeName', + 'CompositeContext', + 'Composite', + 'ComponentView', + 'ComponentUI', + 'ComponentSampleModel', + 'ComponentOrientation', + 'ComponentListener', + 'ComponentInputMapUIResource', + 'ComponentInputMap', + 'ComponentEvent', + 'ComponentColorModel', + 'ComponentAdapter', + 'Component', + 'CompletionStatusHelper', + 'CompletionStatus', + 'Compiler', + 'Comparator', + 'Comparable', + 'CommunicationException', + 'ComboPopup', + 'ComboBoxUI', + 'ComboBoxModel', + 'ComboBoxEditor', + 'ColorUIResource', + 'ColorSpace', + 'ColorSelectionModel', + 'ColorModel', + 'ColorConvertOp', + 'ColorChooserUI', + 'ColorChooserComponentFactory', + 'Color', + 'Collections', + 'Collection', + 'Collator', + 'CollationKey', + 'CollationElementIterator', + 'CodeSource', + 'Cloneable', + 'CloneNotSupportedException', + 'Clob', + 'ClipboardOwner', + 'Clipboard', + 'Clip', + 'ClassNotFoundException', + 'ClassLoader', + 'ClassFormatError', + 'ClassDesc', + 'ClassCircularityError', + 'ClassCastException', + 'Class', + 'ChoiceFormat', + 'Choice', + 'Checksum', + 'CheckedOutputStream', + 'CheckedInputStream', + 'CheckboxMenuItem', + 'CheckboxGroup', + 'Checkbox', + 'CharacterIterator', + 'Character.UnicodeBlock', + 'Character.Subset', + 'Character', + 'CharSeqHolder', + 'CharSeqHelper', + 'CharHolder', + 'CharConversionException', + 'CharArrayWriter', + 'CharArrayReader', + 'ChangedCharSetException', + 'ChangeListener', + 'ChangeEvent', + 'CertificateParsingException', + 'CertificateNotYetValidException', + 'CertificateFactorySpi', + 'CertificateFactory', + 'CertificateExpiredException', + 'CertificateException', + 'CertificateEncodingException', + 'Certificate.CertificateRep', + 'Certificate', + 'CellRendererPane', + 'CellEditorListener', + 'CellEditor', + 'CaretListener', + 'CaretEvent', + 'Caret', + 'CardLayout', + 'Canvas', + 'CannotUndoException', + 'CannotRedoException', + 'CannotProceedHolder', + 'CannotProceedHelper', + 'CannotProceedException', + 'CannotProceed', + 'CallableStatement', + 'Calendar', + 'CTX_RESTRICT_SCOPE', + 'CSS.Attribute', + 'CSS', + 'CRLException', + 'CRL', + 'CRC32', + 'COMM_FAILURE', + 'CMMException', + 'ByteLookupTable', + 'ByteHolder', + 'ByteArrayOutputStream', + 'ByteArrayInputStream', + 'Byte', + 'ButtonUI', + 'ButtonModel', + 'ButtonGroup', + 'Button', + 'BufferedWriter', + 'BufferedReader', + 'BufferedOutputStream', + 'BufferedInputStream', + 'BufferedImageOp', + 'BufferedImageFilter', + 'BufferedImage', + 'BreakIterator', + 'BoxedValueHelper', + 'BoxView', + 'BoxLayout', + 'Box.Filler', + 'Box', + 'Bounds', + 'BoundedRangeModel', + 'BorderUIResource.TitledBorderUIResource', + 'BorderUIResource.MatteBorderUIResource', + 'BorderUIResource.LineBorderUIResource', + 'BorderUIResource.EtchedBorderUIResource', + 'BorderUIResource.EmptyBorderUIResource', + 'BorderUIResource.CompoundBorderUIResource', + 'BorderUIResource.BevelBorderUIResource', + 'BorderUIResource', + 'BorderLayout', + 'BorderFactory', + 'Border', + 'BooleanSeqHolder', + 'BooleanSeqHelper', + 'BooleanHolder', + 'BooleanControl.Type', + 'BooleanControl', + 'Boolean', + 'Book', + 'BlockView', + 'Blob', + 'BitSet', + 'BindingTypeHolder', + 'BindingTypeHelper', + 'BindingType', + 'BindingListHolder', + 'BindingListHelper', + 'BindingIteratorOperations', + 'BindingIteratorHolder', + 'BindingIteratorHelper', + 'BindingIterator', + 'BindingHolder', + 'BindingHelper', + 'Binding', + 'BindException', + 'BinaryRefAddr', + 'BigInteger', + 'BigDecimal', + 'BevelBorder', + 'Beans', + 'BeanInfo', + 'BeanDescriptor', + 'BeanContextSupport.BCSIterator', + 'BeanContextSupport', + 'BeanContextServicesSupport.BCSSServiceProvider', + 'BeanContextServicesSupport', + 'BeanContextServicesListener', + 'BeanContextServices', + 'BeanContextServiceRevokedListener', + 'BeanContextServiceRevokedEvent', + 'BeanContextServiceProviderBeanInfo', + 'BeanContextServiceProvider', + 'BeanContextServiceAvailableEvent', + 'BeanContextProxy', + 'BeanContextMembershipListener', + 'BeanContextMembershipEvent', + 'BeanContextEvent', + 'BeanContextContainerProxy', + 'BeanContextChildSupport', + 'BeanContextChildComponentProxy', + 'BeanContextChild', + 'BeanContext', + 'BatchUpdateException', + 'BasicViewportUI', + 'BasicTreeUI', + 'BasicToolTipUI', + 'BasicToolBarUI', + 'BasicToolBarSeparatorUI', + 'BasicToggleButtonUI', + 'BasicTextUI.BasicHighlighter', + 'BasicTextUI.BasicCaret', + 'BasicTextUI', + 'BasicTextPaneUI', + 'BasicTextFieldUI', + 'BasicTextAreaUI', + 'BasicTableUI', + 'BasicTableHeaderUI', + 'BasicTabbedPaneUI', + 'BasicStroke', + 'BasicSplitPaneUI', + 'BasicSplitPaneDivider', + 'BasicSliderUI', + 'BasicSeparatorUI', + 'BasicScrollPaneUI', + 'BasicScrollBarUI', + 'BasicRootPaneUI', + 'BasicRadioButtonUI', + 'BasicRadioButtonMenuItemUI', + 'BasicProgressBarUI', + 'BasicPopupMenuUI', + 'BasicPopupMenuSeparatorUI', + 'BasicPermission', + 'BasicPasswordFieldUI', + 'BasicPanelUI', + 'BasicOptionPaneUI.ButtonAreaLayout', + 'BasicOptionPaneUI', + 'BasicMenuUI', + 'BasicMenuItemUI', + 'BasicMenuBarUI', + 'BasicLookAndFeel', + 'BasicListUI', + 'BasicLabelUI', + 'BasicInternalFrameUI', + 'BasicInternalFrameTitlePane', + 'BasicIconFactory', + 'BasicHTML', + 'BasicGraphicsUtils', + 'BasicFileChooserUI', + 'BasicEditorPaneUI', + 'BasicDirectoryModel', + 'BasicDesktopPaneUI', + 'BasicDesktopIconUI', + 'BasicComboPopup', + 'BasicComboBoxUI', + 'BasicComboBoxRenderer.UIResource', + 'BasicComboBoxRenderer', + 'BasicComboBoxEditor.UIResource', + 'BasicComboBoxEditor', + 'BasicColorChooserUI', + 'BasicCheckBoxUI', + 'BasicCheckBoxMenuItemUI', + 'BasicButtonUI', + 'BasicButtonListener', + 'BasicBorders.ToggleButtonBorder', + 'BasicBorders.SplitPaneBorder', + 'BasicBorders.RadioButtonBorder', + 'BasicBorders.MenuBarBorder', + 'BasicBorders.MarginBorder', + 'BasicBorders.FieldBorder', + 'BasicBorders.ButtonBorder', + 'BasicBorders', + 'BasicAttributes', + 'BasicAttribute', + 'BasicArrowButton', + 'BandedSampleModel', + 'BandCombineOp', + 'BadLocationException', + 'BadKind', + 'BAD_TYPECODE', + 'BAD_POLICY_VALUE', + 'BAD_POLICY_TYPE', + 'BAD_POLICY', + 'BAD_PARAM', + 'BAD_OPERATION', + 'BAD_INV_ORDER', + 'BAD_CONTEXT', + 'Autoscroll', + 'Authenticator', + 'AuthenticationNotSupportedException', + 'AuthenticationException', + 'AudioSystem', + 'AudioPermission', + 'AudioInputStream', + 'AudioFormat.Encoding', + 'AudioFormat', + 'AudioFileWriter', + 'AudioFileReader', + 'AudioFileFormat.Type', + 'AudioFileFormat', + 'AudioClip', + 'Attributes.Name', + 'Attributes', + 'AttributedString', + 'AttributedCharacterIterator.Attribute', + 'AttributedCharacterIterator', + 'AttributeSet.ParagraphAttribute', + 'AttributeSet.FontAttribute', + 'AttributeSet.ColorAttribute', + 'AttributeSet.CharacterAttribute', + 'AttributeSet', + 'AttributeModificationException', + 'AttributeList', + 'AttributeInUseException', + 'Attribute', + 'AsyncBoxView', + 'Arrays', + 'ArrayStoreException', + 'ArrayList', + 'ArrayIndexOutOfBoundsException', + 'Array', + 'ArithmeticException', + 'AreaAveragingScaleFilter', + 'Area', + 'Arc2D.Float', + 'Arc2D.Double', + 'Arc2D', + 'ApplicationException', + 'AppletStub', + 'AppletInitializer', + 'AppletContext', + 'Applet', + 'AnySeqHolder', + 'AnySeqHelper', + 'AnyHolder', + 'Any', + 'Annotation', + 'AncestorListener', + 'AncestorEvent', + 'AlreadyBoundHolder', + 'AlreadyBoundHelper', + 'AlreadyBoundException', + 'AlreadyBound', + 'AlphaComposite', + 'AllPermission', + 'AlgorithmParametersSpi', + 'AlgorithmParameters', + 'AlgorithmParameterSpec', + 'AlgorithmParameterGeneratorSpi', + 'AlgorithmParameterGenerator', + 'AffineTransformOp', + 'AffineTransform', + 'Adler32', + 'AdjustmentListener', + 'AdjustmentEvent', + 'Adjustable', + 'ActiveEvent', + 'Activator', + 'ActivationSystem', + 'ActivationMonitor', + 'ActivationInstantiator', + 'ActivationID', + 'ActivationGroupID', + 'ActivationGroupDesc.CommandEnvironment', + 'ActivationGroupDesc', + 'ActivationGroup', + 'ActivationException', + 'ActivationDesc', + 'ActivateFailedException', + 'Activatable', + 'ActionMapUIResource', + 'ActionMap', + 'ActionListener', + 'ActionEvent', + 'Action', + 'AclNotFoundException', + 'AclEntry', + 'Acl', + 'AccessibleValue', + 'AccessibleText', + 'AccessibleTableModelChange', + 'AccessibleTable', + 'AccessibleStateSet', + 'AccessibleState', + 'AccessibleSelection', + 'AccessibleRole', + 'AccessibleResourceBundle', + 'AccessibleRelationSet', + 'AccessibleRelation', + 'AccessibleObject', + 'AccessibleIcon', + 'AccessibleHypertext', + 'AccessibleHyperlink', + 'AccessibleContext', + 'AccessibleComponent', + 'AccessibleBundle', + 'AccessibleAction', + 'Accessible', + 'AccessException', + 'AccessController', + 'AccessControlException', + 'AccessControlContext', + 'AbstractWriter', + 'AbstractUndoableEdit', + 'AbstractTableModel', + 'AbstractSet', + 'AbstractSequentialList', + 'AbstractMethodError', + 'AbstractMap', + 'AbstractListModel', + 'AbstractList', + 'AbstractLayoutCache.NodeDimensions', + 'AbstractLayoutCache', + 'AbstractDocument.ElementEdit', + 'AbstractDocument.Content', + 'AbstractDocument.AttributeContext', + 'AbstractDocument', + 'AbstractColorChooserPanel', + 'AbstractCollection', + 'AbstractCellEditor', + 'AbstractButton', + 'AbstractBorder', + 'AbstractAction', + 'AWTPermission', + 'AWTException', + 'AWTEventMulticaster', + 'AWTEventListener', + 'AWTEvent', + 'AWTError', + 'ARG_OUT', + 'ARG_INOUT', + 'ARG_IN' + ), + 4 => array( + 'void', + 'short', + 'long', + 'int', + 'double', + 'char', + 'byte', + 'boolean', + 'float' + ), + 5 => array( + 'toList', + 'subMap', + 'sort', + 'size', + 'reverseEach', + 'reverse', + 'pop', + 'min', + 'max', + 'join', + 'intersect', + 'inject', + 'grep', + 'get', + 'flatten', + 'findIndexOf', + 'findAll', + 'find', + 'eachWithIndex', + 'eachPropertyName', + 'eachProperty', + 'each', + 'count', + 'collect', + 'asSynchronized', + 'asImmutable', + 'allProperties' + ), + 6 => array( + 'tokenize', + 'toURL', + 'toLong', + 'toList', + 'toCharacter', + 'padRight', + 'padLeft', + 'eachMatch', + 'contains', + 'center' + ), + 7 => array( + 'writeLine', + 'write', + 'withWriterAppend', + 'withWriter', + 'withStreams', + 'withStream', + 'withReader', + 'withPrintWriter', + 'withOutputStream', + 'transformLine', + 'transformChar', + 'splitEachLine', + 'getText', + 'filterLine', + 'encodeBase64', + 'eachLines', + 'eachLine', + 'eachFileRecurse', + 'eachFile', + 'eachByte', + 'append' + ), + 8 => array( + 'dump', + 'inspect', + 'invokeMethod', + 'print', + 'println', + 'step', + 'times', + 'upto', + 'use', + 'getText', + 'start', + 'startDaemon', + 'getLastMatcher' + ), + 9 => array( + 'Sql', + 'call', + 'eachRow', + 'execute', + 'executeUpdate', + 'close' + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?', '|', '=' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false, + 2 => false, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true, + 9 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #aaaadd; font-weight: bold;', + 4 => 'color: #993333;', + 5 => 'color: #663399;', + 6 => 'color: #CC0099;', + 7 => 'color: #FFCC33;', + 8 => 'color: #993399;', + 9 => 'color: #993399; font-weight: bold;' + ), + 'COMMENTS' => array( + 1=> 'color: #808080; font-style: italic;', + 2=> 'color: #a1a100;', + 'MULTI' => '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( + 1 => 'color: #006600;', + 2 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + 0 => 'color: #0000ff;' + ) + ), + 'URLS' => array( + 1 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', + 2 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', + 3 => 'http://www.google.de/search?as_q={FNAME}&num=100&hl=en&as_occt=url&as_sitesearch=java.sun.com%2Fj2se%2F1.5.0%2Fdocs%2Fapi%2F', + 4 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', + 5 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', + 6 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', + 7 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', + 8 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', + 9 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + 0 => '\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/haskell.php b/plugins/geshi/haskell.php old mode 100644 new mode 100755 index 2971d08..6ce417d --- a/plugins/geshi/haskell.php +++ b/plugins/geshi/haskell.php @@ -37,7 +37,7 @@ * ************************************************************************************/ -$language_data = array ( +$language_data = array( 'LANG_NAME' => 'Haskell', 'COMMENT_SINGLE' => array( 1 => '--'), 'COMMENT_MULTI' => array('{-' => '-}'), @@ -104,7 +104,7 @@ $language_data = array ( 'readIO', 'readLn', 'ioError', 'userError', 'catch' ), /* here Prelude Types */ - 4 => array ( + 4 => array( 'Bool', 'Maybe', 'Either', 'Ord', 'Ordering', 'Char', 'String', 'Eq', 'Enum', 'Bounded', 'Int', 'Integer', 'Float', 'Double', 'Rational', @@ -114,7 +114,7 @@ $language_data = array ( 'IO' ), /* finally Prelude Exceptions */ - 5 => array ( + 5 => array( 'IOError', 'IOException' ) ), @@ -191,5 +191,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/plugins/geshi/html4strict.php b/plugins/geshi/html4strict.php old mode 100644 new mode 100755 index 9915647..64facbb --- a/plugins/geshi/html4strict.php +++ b/plugins/geshi/html4strict.php @@ -49,207 +49,205 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'HTML', - 'COMMENT_SINGLE' => array(), - 'COMMENT_MULTI' => array(''), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - 1 => array( - ), - 2 => array( - '<a>', '<abbr>', '<acronym>', '<address>', '<applet>', - '<a', '<abbr', '<acronym', '<address', '<applet', - '</a>', '</abbr>', '</acronym>', '</address>', '</applet>', - '</a', '</abbr', '</acronym', '</address', '</applet', +$language_data = array( + 'LANG_NAME' => 'HTML', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array(''), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + ), + 2 => array( + '<a>', '<abbr>', '<acronym>', '<address>', '<applet>', + '<a', '<abbr', '<acronym', '<address', '<applet', + '</a>', '</abbr>', '</acronym>', '</address>', '</applet>', + '</a', '</abbr', '</acronym', '</address', '</applet', - '<base>', '<basefont>', '<bdo>', '<big>', '<blockquote>', '<body>', '<br>', '<button>', '<b>', - '<base', '<basefont', '<bdo', '<big', '<blockquote', '<body', '<br', '<button', '<b', - '</base>', '</basefont>', '</bdo>', '</big>', '</blockquote>', '</body>', '</br>', '</button>', '</b>', - '</base', '</basefont', '</bdo', '</big', '</blockquote', '</body', '</br', '</button', '</b', + '<base>', '<basefont>', '<bdo>', '<big>', '<blockquote>', '<body>', '<br>', '<button>', '<b>', + '<base', '<basefont', '<bdo', '<big', '<blockquote', '<body', '<br', '<button', '<b', + '</base>', '</basefont>', '</bdo>', '</big>', '</blockquote>', '</body>', '</br>', '</button>', '</b>', + '</base', '</basefont', '</bdo', '</big', '</blockquote', '</body', '</br', '</button', '</b', - '<caption>', '<center>', '<cite>', '<code>', '<colgroup>', '<col>', - '<caption', '<center', '<cite', '<code', '<colgroup', '<col', - '</caption>', '</center>', '</cite>', '</code>', '</colgroup>', '</col>', - '</caption', '</center', '</cite', '</code', '</colgroup', '</col', + '<caption>', '<center>', '<cite>', '<code>', '<colgroup>', '<col>', + '<caption', '<center', '<cite', '<code', '<colgroup', '<col', + '</caption>', '</center>', '</cite>', '</code>', '</colgroup>', '</col>', + '</caption', '</center', '</cite', '</code', '</colgroup', '</col', - '<dd>', '<del>', '<dfn>', '<dir>', '<div>', '<dl>', '<dt>', - '<dd', '<del', '<dfn', '<dir', '<div', '<dl', '<dt', - '</dd>', '</del>', '</dfn>', '</dir>', '</div>', '</dl>', '</dt>', - '</dd', '</del', '</dfn', '</dir', '</div', '</dl', '</dt', + '<dd>', '<del>', '<dfn>', '<dir>', '<div>', '<dl>', '<dt>', + '<dd', '<del', '<dfn', '<dir', '<div', '<dl', '<dt', + '</dd>', '</del>', '</dfn>', '</dir>', '</div>', '</dl>', '</dt>', + '</dd', '</del', '</dfn', '</dir', '</div', '</dl', '</dt', - '<em>', - '<em', - '</em>', - '</em', + '<em>', + '<em', + '</em>', + '</em', - '<fieldset>', '<font>', '<form>', '<frame>', '<frameset>', - '<fieldset', '<font', '<form', '<frame', '<frameset', - '</fieldset>', '</font>', '</form>', '</frame>', '</frameset>', - '</fieldset', '</font', '</form', '</frame', '</frameset', + '<fieldset>', '<font>', '<form>', '<frame>', '<frameset>', + '<fieldset', '<font', '<form', '<frame', '<frameset', + '</fieldset>', '</font>', '</form>', '</frame>', '</frameset>', + '</fieldset', '</font', '</form', '</frame', '</frameset', - '<h1>', '<h2>', '<h3>', '<h4>', '<h5>', '<h6>', '<head>', '<hr>', '<html>', - '<h1', '<h2', '<h3', '<h4', '<h5', '<h6', '<head', '<hr', '<html', - '</h1>', '</h2>', '</h3>', '</h4>', '</h5>', '</h6>', '</head>', '</hr>', '</html>', - '</h1', '</h2', '</h3', '</h4', '</h5', '</h6', '</head', '</hr', '</html', + '<h1>', '<h2>', '<h3>', '<h4>', '<h5>', '<h6>', '<head>', '<hr>', '<html>', + '<h1', '<h2', '<h3', '<h4', '<h5', '<h6', '<head', '<hr', '<html', + '</h1>', '</h2>', '</h3>', '</h4>', '</h5>', '</h6>', '</head>', '</hr>', '</html>', + '</h1', '</h2', '</h3', '</h4', '</h5', '</h6', '</head', '</hr', '</html', - '<iframe>', '<ilayer>', '<img>', '<input>', '<ins>', '<isindex>', '<i>', - '<iframe', '<ilayer', '<img', '<input', '<ins', '<isindex', '<i', - '</iframe>', '</ilayer>', '</img>', '</input>', '</ins>', '</isindex>', '</i>', - '</iframe', '</ilayer', '</img', '</input', '</ins', '</isindex', '</i', + '<iframe>', '<ilayer>', '<img>', '<input>', '<ins>', '<isindex>', '<i>', + '<iframe', '<ilayer', '<img', '<input', '<ins', '<isindex', '<i', + '</iframe>', '</ilayer>', '</img>', '</input>', '</ins>', '</isindex>', '</i>', + '</iframe', '</ilayer', '</img', '</input', '</ins', '</isindex', '</i', - '<kbd>', - '<kbd', - '&t;/kbd>', - '</kbd', + '<kbd>', + '<kbd', + '&t;/kbd>', + '</kbd', - '<label>', '<legend>', '<link>', '<li>', - '<label', '<legend', '<link', '<li', - '</label>', '</legend>', '</link>', '</li>', - '</label', '</legend', '</link', '</li', + '<label>', '<legend>', '<link>', '<li>', + '<label', '<legend', '<link', '<li', + '</label>', '</legend>', '</link>', '</li>', + '</label', '</legend', '</link', '</li', - '<map>', '<meta>', - '<map', '<meta', - '</map>', '</meta>', - '</map', '</meta', + '<map>', '<meta>', + '<map', '<meta', + '</map>', '</meta>', + '</map', '</meta', - '<noframes>', '<noscript>', - '<noframes', '<noscript', - '</noframes>', '</noscript>', - '</noframes', '</noscript', + '<noframes>', '<noscript>', + '<noframes', '<noscript', + '</noframes>', '</noscript>', + '</noframes', '</noscript', - '<object>', '<ol>', '<optgroup>', '<option>', - '<object', '<ol', '<optgroup', '<option', - '</object>', '</ol>', '</optgroup>', '</option>', - '</object', '</ol', '</optgroup', '</option', + '<object>', '<ol>', '<optgroup>', '<option>', + '<object', '<ol', '<optgroup', '<option', + '</object>', '</ol>', '</optgroup>', '</option>', + '</object', '</ol', '</optgroup', '</option', - '<param>', '<pre>', '<p>', - '<param', '<pre', '<p', - '</param>', '</pre>', '</p>', - '</param', '</pre', '</p', + '<param>', '<pre>', '<p>', + '<param', '<pre', '<p', + '</param>', '</pre>', '</p>', + '</param', '</pre', '</p', - '<q>', - '<q', - '</q>', - '</q', + '<q>', + '<q', + '</q>', + '</q', - '<samp>', '<script>', '<select>', '<small>', '<span>', '<strike>', '<strong>', '<style>', '<sub>', '<sup>', '<s>', - '<samp', '<script', '<select', '<small', '<span', '<strike', '<strong', '<style', '<sub', '<sup', '<s', - '</samp>', '</script>', '</select>', '</small>', '</span>', '</strike>', '</strong>', '</style>', '</sub>', '</sup>', '</s>', - '</samp', '</script', '</select', '</small', '</span', '</strike', '</strong', '</style', '</sub', '</sup', '</s', + '<samp>', '<script>', '<select>', '<small>', '<span>', '<strike>', '<strong>', '<style>', '<sub>', '<sup>', '<s>', + '<samp', '<script', '<select', '<small', '<span', '<strike', '<strong', '<style', '<sub', '<sup', '<s', + '</samp>', '</script>', '</select>', '</small>', '</span>', '</strike>', '</strong>', '</style>', '</sub>', '</sup>', '</s>', + '</samp', '</script', '</select', '</small', '</span', '</strike', '</strong', '</style', '</sub', '</sup', '</s', - '<table>', '<tbody>', '<td>', '<textarea>', '<text>', '<tfoot>', '<thead>', '<th>', '<title>', '<tr>', '<tt>', - '<table', '<tbody', '<td', '<textarea', '<text', '<tfoot', '<tfoot', '<thead', '<th', '<title', '<tr', '<tt', - '</table>', '</tbody>', '</td>', '</textarea>', '</text>', '</tfoot>', '</thead', '</tfoot', '</th>', '</title>', '</tr>', '</tt>', - '</table', '</tbody', '</td', '</textarea', '</text', '</tfoot', '</tfoot', '</thead', '</th', '</title', '</tr', '</tt', + '<table>', '<tbody>', '<td>', '<textarea>', '<text>', '<tfoot>', '<thead>', '<th>', '<title>', '<tr>', '<tt>', + '<table', '<tbody', '<td', '<textarea', '<text', '<tfoot', '<tfoot', '<thead', '<th', '<title', '<tr', '<tt', + '</table>', '</tbody>', '</td>', '</textarea>', '</text>', '</tfoot>', '</thead', '</tfoot', '</th>', '</title>', '</tr>', '</tt>', + '</table', '</tbody', '</td', '</textarea', '</text', '</tfoot', '</tfoot', '</thead', '</th', '</title', '</tr', '</tt', - '<ul>', '<u>', - '<ul', '<u', - '</ul>', '</ul>', - '</ul', '</u', + '<ul>', '<u>', + '<ul', '<u', + '</ul>', '</ul>', + '</ul', '</u', - '<var>', - '<var', - '</var>', - '</var', + '<var>', + '<var', + '</var>', + '</var', - '>', '<' - ), - 3 => array( - 'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alink', 'alt', 'archive', 'axis', - 'background', 'bgcolor', 'border', - 'cellpadding', 'cellspacing', 'char', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'classid', 'clear', 'code', 'codebase', 'codetype', 'color', 'cols', 'colspan', 'compact', 'content', 'coords', - 'data', 'datetime', 'declare', 'defer', 'dir', 'disabled', - 'enctype', - 'face', 'for', 'frame', 'frameborder', - 'headers', 'height', 'href', 'hreflang', 'hspace', 'http-equiv', - 'id', 'ismap', - 'label', 'lang', 'language', 'link', 'longdesc', - 'marginheight', 'marginwidth', 'maxlength', 'media', 'method', 'multiple', - 'name', 'nohref', 'noresize', 'noshade', 'nowrap', - 'object', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'onselect', 'onsubmit', 'onunload', - 'profile', 'prompt', - 'readonly', 'rel', 'rev', 'rowspan', 'rows', 'rules', - 'scheme', 'scope', 'scrolling', 'selected', 'shape', 'size', 'span', 'src', 'standby', 'start', 'style', 'summary', - 'tabindex', 'target', 'text', 'title', 'type', - 'usemap', - 'valign', 'value', 'valuetype', 'version', 'vlink', 'vspace', - 'width' - ) - ), - 'SYMBOLS' => array( - '/', '=' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => false, - 2 => false, - 3 => false, - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #b1b100;', - 2 => 'color: #000000; font-weight: bold;', - 3 => 'color: #000066;' - ), - 'COMMENTS' => array( - 'MULTI' => '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;' - ), - 'SCRIPT' => array( - 0 => 'color: #00bbdd;', - 1 => 'color: #ddbb00;', - 2 => 'color: #009900;' - ), - 'REGEXPS' => array( - ) - ), - 'URLS' => array( - 1 => '', - 2 => 'http://december.com/html/4/element/{FNAME}.html', - 3 => '' - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_ALWAYS, - 'SCRIPT_DELIMITERS' => array( - 0 => array( - ' '>' - ), - 1 => array( - '&' => ';' - ), - 2 => array( - '<' => '>' - ) - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - 0 => false, - 1 => false, - 2 => true + '>', '<' + ), + 3 => array( + 'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alink', 'alt', 'archive', 'axis', + 'background', 'bgcolor', 'border', + 'cellpadding', 'cellspacing', 'char', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'classid', 'clear', 'code', 'codebase', 'codetype', 'color', 'cols', 'colspan', 'compact', 'content', 'coords', + 'data', 'datetime', 'declare', 'defer', 'dir', 'disabled', + 'enctype', + 'face', 'for', 'frame', 'frameborder', + 'headers', 'height', 'href', 'hreflang', 'hspace', 'http-equiv', + 'id', 'ismap', + 'label', 'lang', 'language', 'link', 'longdesc', + 'marginheight', 'marginwidth', 'maxlength', 'media', 'method', 'multiple', + 'name', 'nohref', 'noresize', 'noshade', 'nowrap', + 'object', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'onselect', 'onsubmit', 'onunload', + 'profile', 'prompt', + 'readonly', 'rel', 'rev', 'rowspan', 'rows', 'rules', + 'scheme', 'scope', 'scrolling', 'selected', 'shape', 'size', 'span', 'src', 'standby', 'start', 'style', 'summary', + 'tabindex', 'target', 'text', 'title', 'type', + 'usemap', + 'valign', 'value', 'valuetype', 'version', 'vlink', 'vspace', + 'width' + ) + ), + 'SYMBOLS' => array( + '/', '=' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;' + ), + 'COMMENTS' => array( + 'MULTI' => '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;' + ), + 'SCRIPT' => array( + 0 => 'color: #00bbdd;', + 1 => 'color: #ddbb00;', + 2 => 'color: #009900;' + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => 'http://december.com/html/4/element/{FNAME}.html', + 3 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_ALWAYS, + 'SCRIPT_DELIMITERS' => array( + 0 => array( + ' '>' + ), + 1 => array( + '&' => ';' + ), + 2 => array( + '<' => '>' + ) + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => false, + 1 => false, + 2 => true ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/plugins/geshi/idl.php b/plugins/geshi/idl.php old mode 100644 new mode 100755 index fd6829b..5beb096 --- a/plugins/geshi/idl.php +++ b/plugins/geshi/idl.php @@ -33,87 +33,85 @@ ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Uno Idl', - 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - 'published', 'get', 'set', 'service', 'singleton', 'type', 'module', 'interface', 'struct', - 'const', 'constants', 'exception', 'enum', 'raises', 'typedef' - ), - 2 => array( +$language_data = array( + 'LANG_NAME' => 'Uno Idl', + 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'published', 'get', 'set', 'service', 'singleton', 'type', 'module', 'interface', 'struct', + 'const', 'constants', 'exception', 'enum', 'raises', 'typedef' + ), + 2 => array( 'bound', 'maybeambiguous', 'maybedefault', 'maybevoid', 'oneway', 'optional', 'readonly', 'in', 'out', 'inout', 'attribute', 'transient', 'removable' - ), - 3 => array( - 'True', 'False', 'TRUE', 'FALSE' + ), + 3 => array( + 'True', 'False', 'TRUE', 'FALSE' ), - 4 => array( - 'string', 'long', 'byte', 'hyper', 'boolean', 'any', 'char', 'double', 'long', + 4 => array( + 'string', 'long', 'byte', 'hyper', 'boolean', 'any', 'char', 'double', 'long', 'void', 'sequence', 'unsigned', '...' ), - ), - 'SYMBOLS' => array( + ), + 'SYMBOLS' => array( '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':', ';' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => true, - 2 => true, - 3 => true, - 4 => true, - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #990078; font-weight: bold', - 2 => 'color: #36dd1c;', - 3 => 'color: #990078; font-weight: bold', - 4 => 'color: #0000ec;' - ), - 'COMMENTS' => array( - 1 => 'color: #3f7f5f;', - 2 => 'color: #808080;', - 'MULTI' => 'color: #4080ff; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #666666; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: #808080;' - ), - 'STRINGS' => array( - 0 => 'color: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #0000dd;' - ), - 'METHODS' => array( - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'REGEXPS' => array( - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - 1 => '::' - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #990078; font-weight: bold', + 2 => 'color: #36dd1c;', + 3 => 'color: #990078; font-weight: bold', + 4 => 'color: #0000ec;' + ), + 'COMMENTS' => array( + 1 => 'color: #3f7f5f;', + 2 => 'color: #808080;', + 'MULTI' => 'color: #4080ff; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #666666; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #808080;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '::' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/ini.php b/plugins/geshi/ini.php old mode 100644 new mode 100755 index b7de9af..3a0c55e --- a/plugins/geshi/ini.php +++ b/plugins/geshi/ini.php @@ -40,84 +40,82 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'INI', - 'COMMENT_SINGLE' => array(0 => ';'), - '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( - 0 => '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( - 0 => 'color: #000066; font-weight:bold;' - ), - 'REGEXPS' => array( - 0 => 'color: #000066; font-weight:bold;', - 1 => 'color: #000099;', - 2 => 'color: #660066;' - ), - 'SCRIPT' => array( - 0 => '' - ) - ), - 'URLS' => array( - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - 0 => '\[.+\]', - 1 => array( - GESHI_SEARCH => '([a-zA-Z0-9_]+\s*)=(.+)', - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '', - GESHI_AFTER => '=\\2' - ), - 2 => array( +$language_data = array( + 'LANG_NAME' => 'INI', + 'COMMENT_SINGLE' => array(0 => ';'), + '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( + 0 => '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( + 0 => 'color: #000066; font-weight:bold;' + ), + 'REGEXPS' => array( + 0 => 'color: #000066; font-weight:bold;', + 1 => 'color: #000099;', + 2 => 'color: #660066;' + ), + 'SCRIPT' => array( + 0 => '' + ) + ), + 'URLS' => array( + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 0 => '\[.+\]', + 1 => array( + GESHI_SEARCH => '([a-zA-Z0-9_]+\s*)=(.+)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '=\\2' + ), + 2 => array( // Evil hackery to get around GeSHi bug: <>" and ; are added so 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_]+\s*)=(.+)', - GESHI_REPLACE => '\\2', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '\\1=', - GESHI_AFTER => '' - ) - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + GESHI_SEARCH => '([<>";a-zA-Z0-9_]+\s*)=(.+)', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1=', + GESHI_AFTER => '' + ) + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/inno.php b/plugins/geshi/inno.php old mode 100644 new mode 100755 index 3b8fc92..4615e63 --- a/plugins/geshi/inno.php +++ b/plugins/geshi/inno.php @@ -37,177 +37,175 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Inno', - 'COMMENT_SINGLE' => array(1 => '//'), - 'COMMENT_MULTI' => array('(*' => '*)'), - 'CASE_KEYWORDS' => 0, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - 1 => array('Setup','Types','Components','Tasks','Dirs','Files','Icons','INI','InstallDelete','Languages','Messages', - 'CustomMessage','LangOptions','Registry','RUN','UninstallDelete','UninstallRun' - ,'app','win','sys','syswow64','src','sd','pf','pf32','pf64','cf','cf32','cf64','tmp','fonts','dao', - 'group','localappdata','sendto','userappdata','commonappdata','userdesktop','commondesktop','userdocs', - 'commondocs','userfavorites','commonfavorites','userprograms','commonprograms','userstartmenu', - 'commonstartmenu','userstartup','commonstartup','usertemplates','commontemplates' - ), - 2 => array( - 'nil', 'false', 'true', 'var', 'type', 'const','And', 'Array', 'As', 'Begin', 'Case', 'Class', 'Constructor', 'Destructor', 'Div', 'Do', 'DownTo', 'Else', - 'End', 'Except', 'File', 'Finally', 'For', 'Function', 'Goto', 'If', 'Implementation', 'In', 'Inherited', 'Interface', - 'Is', 'Mod', 'Not', 'Object', 'Of', 'On', 'Or', 'Packed', 'Procedure', 'Property', 'Raise', 'Record', - 'Repeat', 'Set', 'Shl', 'Shr', 'Then', 'ThreadVar', 'To', 'Try', 'Unit', 'Until', 'Uses', 'While', 'With', 'Xor', +$language_data = array( + 'LANG_NAME' => 'Inno', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('(*' => '*)'), + 'CASE_KEYWORDS' => 0, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array('Setup','Types','Components','Tasks','Dirs','Files','Icons','INI','InstallDelete','Languages','Messages', + 'CustomMessage','LangOptions','Registry','RUN','UninstallDelete','UninstallRun' + ,'app','win','sys','syswow64','src','sd','pf','pf32','pf64','cf','cf32','cf64','tmp','fonts','dao', + 'group','localappdata','sendto','userappdata','commonappdata','userdesktop','commondesktop','userdocs', + 'commondocs','userfavorites','commonfavorites','userprograms','commonprograms','userstartmenu', + 'commonstartmenu','userstartup','commonstartup','usertemplates','commontemplates' + ), + 2 => array( + 'nil', 'false', 'true', 'var', 'type', 'const','And', 'Array', 'As', 'Begin', 'Case', 'Class', 'Constructor', 'Destructor', 'Div', 'Do', 'DownTo', 'Else', + 'End', 'Except', 'File', 'Finally', 'For', 'Function', 'Goto', 'If', 'Implementation', 'In', 'Inherited', 'Interface', + 'Is', 'Mod', 'Not', 'Object', 'Of', 'On', 'Or', 'Packed', 'Procedure', 'Property', 'Raise', 'Record', + 'Repeat', 'Set', 'Shl', 'Shr', 'Then', 'ThreadVar', 'To', 'Try', 'Unit', 'Until', 'Uses', 'While', 'With', 'Xor', - 'HKCC','HKCR','HKCU','HKLM','HKU','alwaysoverwrite','alwaysskipifsameorolder','append', - 'binary','classic','closeonexit','comparetimestamp','confirmoverwrite', - 'createkeyifdoesntexist','createonlyiffileexists','createvalueifdoesntexist', - 'deleteafterinstall','deletekey','deletevalue','dirifempty','dontcloseonexit', - 'dontcopy','dontcreatekey','disablenouninstallwarning','dword','exclusive','expandsz', - 'external','files','filesandordirs','fixed','fontisnttruetype','ignoreversion','iscustom','isreadme', - 'modern','multisz','new','noerror','none','normal','nowait','onlyifdestfileexists', - 'onlyifdoesntexist','onlyifnewer','overwrite','overwritereadonly','postinstall', - 'preservestringtype','promptifolder','regserver','regtypelib','restart','restartreplace', - 'runhidden','runmaximized','runminimized','sharedfile','shellexec','showcheckbox', - 'skipifnotsilent','skipifsilent','silent','skipifdoesntexist', - 'skipifsourcedoesntexist','sortfilesbyextension','unchecked','uninsalwaysuninstall', - 'uninsclearvalue','uninsdeleteentry','uninsdeletekey','uninsdeletekeyifempty', - 'uninsdeletesection','uninsdeletesectionifempty','uninsdeletevalue', - 'uninsneveruninstall','useapppaths','verysilent','waituntilidle' + 'HKCC','HKCR','HKCU','HKLM','HKU','alwaysoverwrite','alwaysskipifsameorolder','append', + 'binary','classic','closeonexit','comparetimestamp','confirmoverwrite', + 'createkeyifdoesntexist','createonlyiffileexists','createvalueifdoesntexist', + 'deleteafterinstall','deletekey','deletevalue','dirifempty','dontcloseonexit', + 'dontcopy','dontcreatekey','disablenouninstallwarning','dword','exclusive','expandsz', + 'external','files','filesandordirs','fixed','fontisnttruetype','ignoreversion','iscustom','isreadme', + 'modern','multisz','new','noerror','none','normal','nowait','onlyifdestfileexists', + 'onlyifdoesntexist','onlyifnewer','overwrite','overwritereadonly','postinstall', + 'preservestringtype','promptifolder','regserver','regtypelib','restart','restartreplace', + 'runhidden','runmaximized','runminimized','sharedfile','shellexec','showcheckbox', + 'skipifnotsilent','skipifsilent','silent','skipifdoesntexist', + 'skipifsourcedoesntexist','sortfilesbyextension','unchecked','uninsalwaysuninstall', + 'uninsclearvalue','uninsdeleteentry','uninsdeletekey','uninsdeletekeyifempty', + 'uninsdeletesection','uninsdeletesectionifempty','uninsdeletevalue', + 'uninsneveruninstall','useapppaths','verysilent','waituntilidle' - ), - 3 => array( - 'Abs', 'Addr', 'AnsiCompareStr', 'AnsiCompareText', 'AnsiContainsStr', 'AnsiEndsStr', 'AnsiIndexStr', 'AnsiLeftStr', - 'AnsiLowerCase', 'AnsiMatchStr', 'AnsiMidStr', 'AnsiPos', 'AnsiReplaceStr', 'AnsiReverseString', 'AnsiRightStr', - 'AnsiStartsStr', 'AnsiUpperCase', 'ArcCos', 'ArcSin', 'ArcTan', 'Assigned', 'BeginThread', 'Bounds', 'CelsiusToFahrenheit', - 'ChangeFileExt', 'Chr', 'CompareStr', 'CompareText', 'Concat', 'Convert', 'Copy', 'Cos', 'CreateDir', 'CurrToStr', - 'CurrToStrF', 'Date', 'DateTimeToFileDate', 'DateTimeToStr', 'DateToStr', 'DayOfTheMonth', 'DayOfTheWeek', 'DayOfTheYear', - 'DayOfWeek', 'DaysBetween', 'DaysInAMonth', 'DaysInAYear', 'DaySpan', 'DegToRad', 'DeleteFile', 'DiskFree', 'DiskSize', - 'DupeString', 'EncodeDate', 'EncodeDateTime', 'EncodeTime', 'EndOfADay', 'EndOfAMonth', 'Eof', 'Eoln', 'Exp', 'ExtractFileDir', - 'ExtractFileDrive', 'ExtractFileExt', 'ExtractFileName', 'ExtractFilePath', 'FahrenheitToCelsius', 'FileAge', - 'FileDateToDateTime', 'FileExists', 'FilePos', 'FileSearch', 'FileSetDate', 'FileSize', 'FindClose', 'FindCmdLineSwitch', - 'FindFirst', 'FindNext', 'FloatToStr', 'FloatToStrF', 'Format', 'FormatCurr', 'FormatDateTime', 'FormatFloat', 'Frac', - 'GetCurrentDir', 'GetLastError', 'GetMem', 'High', 'IncDay', 'IncMinute', 'IncMonth', 'IncYear', 'InputBox', - 'InputQuery', 'Int', 'IntToHex', 'IntToStr', 'IOResult', 'IsInfinite', 'IsLeapYear', 'IsMultiThread', 'IsNaN', - 'LastDelimiter', 'Length', 'Ln', 'Lo', 'Log10', 'Low', 'LowerCase', 'Max', 'Mean', 'MessageDlg', 'MessageDlgPos', - 'MonthOfTheYear', 'Now', 'Odd', 'Ord', 'ParamCount', 'ParamStr', 'Pi', 'Point', 'PointsEqual', 'Pos', 'Pred', - 'Printer', 'PromptForFileName', 'PtInRect', 'RadToDeg', 'Random', 'RandomRange', 'RecodeDate', 'RecodeTime', 'Rect', - 'RemoveDir', 'RenameFile', 'Round', 'SeekEof', 'SeekEoln', 'SelectDirectory', 'SetCurrentDir', 'Sin', 'SizeOf', - 'Slice', 'Sqr', 'Sqrt', 'StringOfChar', 'StringReplace', 'StringToWideChar', 'StrToCurr', 'StrToDate', 'StrToDateTime', - 'StrToFloat', 'StrToInt', 'StrToInt64', 'StrToInt64Def', 'StrToIntDef', 'StrToTime', 'StuffString', 'Succ', 'Sum', 'Tan', - 'Time', 'TimeToStr', 'Tomorrow', 'Trunc', 'UpCase', 'UpperCase', 'VarType', 'WideCharToString', 'WrapText', 'Yesterday', - 'Append', 'AppendStr', 'Assign', 'AssignFile', 'AssignPrn', 'Beep', 'BlockRead', 'BlockWrite', 'Break', - 'ChDir', 'Close', 'CloseFile', 'Continue', 'DateTimeToString', 'Dec', 'DecodeDate', 'DecodeDateTime', - 'DecodeTime', 'Delete', 'Dispose', 'EndThread', 'Erase', 'Exclude', 'Exit', 'FillChar', 'Flush', 'FreeAndNil', - 'FreeMem', 'GetDir', 'GetLocaleFormatSettings', 'Halt', 'Inc', 'Include', 'Insert', 'MkDir', 'Move', 'New', - 'ProcessPath', 'Randomize', 'Read', 'ReadLn', 'ReallocMem', 'Rename', 'ReplaceDate', 'ReplaceTime', - 'Reset', 'ReWrite', 'RmDir', 'RunError', 'Seek', 'SetLength', 'SetString', 'ShowMessage', 'ShowMessageFmt', - 'ShowMessagePos', 'Str', 'Truncate', 'Val', 'Write', 'WriteLn', + ), + 3 => array( + 'Abs', 'Addr', 'AnsiCompareStr', 'AnsiCompareText', 'AnsiContainsStr', 'AnsiEndsStr', 'AnsiIndexStr', 'AnsiLeftStr', + 'AnsiLowerCase', 'AnsiMatchStr', 'AnsiMidStr', 'AnsiPos', 'AnsiReplaceStr', 'AnsiReverseString', 'AnsiRightStr', + 'AnsiStartsStr', 'AnsiUpperCase', 'ArcCos', 'ArcSin', 'ArcTan', 'Assigned', 'BeginThread', 'Bounds', 'CelsiusToFahrenheit', + 'ChangeFileExt', 'Chr', 'CompareStr', 'CompareText', 'Concat', 'Convert', 'Copy', 'Cos', 'CreateDir', 'CurrToStr', + 'CurrToStrF', 'Date', 'DateTimeToFileDate', 'DateTimeToStr', 'DateToStr', 'DayOfTheMonth', 'DayOfTheWeek', 'DayOfTheYear', + 'DayOfWeek', 'DaysBetween', 'DaysInAMonth', 'DaysInAYear', 'DaySpan', 'DegToRad', 'DeleteFile', 'DiskFree', 'DiskSize', + 'DupeString', 'EncodeDate', 'EncodeDateTime', 'EncodeTime', 'EndOfADay', 'EndOfAMonth', 'Eof', 'Eoln', 'Exp', 'ExtractFileDir', + 'ExtractFileDrive', 'ExtractFileExt', 'ExtractFileName', 'ExtractFilePath', 'FahrenheitToCelsius', 'FileAge', + 'FileDateToDateTime', 'FileExists', 'FilePos', 'FileSearch', 'FileSetDate', 'FileSize', 'FindClose', 'FindCmdLineSwitch', + 'FindFirst', 'FindNext', 'FloatToStr', 'FloatToStrF', 'Format', 'FormatCurr', 'FormatDateTime', 'FormatFloat', 'Frac', + 'GetCurrentDir', 'GetLastError', 'GetMem', 'High', 'IncDay', 'IncMinute', 'IncMonth', 'IncYear', 'InputBox', + 'InputQuery', 'Int', 'IntToHex', 'IntToStr', 'IOResult', 'IsInfinite', 'IsLeapYear', 'IsMultiThread', 'IsNaN', + 'LastDelimiter', 'Length', 'Ln', 'Lo', 'Log10', 'Low', 'LowerCase', 'Max', 'Mean', 'MessageDlg', 'MessageDlgPos', + 'MonthOfTheYear', 'Now', 'Odd', 'Ord', 'ParamCount', 'ParamStr', 'Pi', 'Point', 'PointsEqual', 'Pos', 'Pred', + 'Printer', 'PromptForFileName', 'PtInRect', 'RadToDeg', 'Random', 'RandomRange', 'RecodeDate', 'RecodeTime', 'Rect', + 'RemoveDir', 'RenameFile', 'Round', 'SeekEof', 'SeekEoln', 'SelectDirectory', 'SetCurrentDir', 'Sin', 'SizeOf', + 'Slice', 'Sqr', 'Sqrt', 'StringOfChar', 'StringReplace', 'StringToWideChar', 'StrToCurr', 'StrToDate', 'StrToDateTime', + 'StrToFloat', 'StrToInt', 'StrToInt64', 'StrToInt64Def', 'StrToIntDef', 'StrToTime', 'StuffString', 'Succ', 'Sum', 'Tan', + 'Time', 'TimeToStr', 'Tomorrow', 'Trunc', 'UpCase', 'UpperCase', 'VarType', 'WideCharToString', 'WrapText', 'Yesterday', + 'Append', 'AppendStr', 'Assign', 'AssignFile', 'AssignPrn', 'Beep', 'BlockRead', 'BlockWrite', 'Break', + 'ChDir', 'Close', 'CloseFile', 'Continue', 'DateTimeToString', 'Dec', 'DecodeDate', 'DecodeDateTime', + 'DecodeTime', 'Delete', 'Dispose', 'EndThread', 'Erase', 'Exclude', 'Exit', 'FillChar', 'Flush', 'FreeAndNil', + 'FreeMem', 'GetDir', 'GetLocaleFormatSettings', 'Halt', 'Inc', 'Include', 'Insert', 'MkDir', 'Move', 'New', + 'ProcessPath', 'Randomize', 'Read', 'ReadLn', 'ReallocMem', 'Rename', 'ReplaceDate', 'ReplaceTime', + 'Reset', 'ReWrite', 'RmDir', 'RunError', 'Seek', 'SetLength', 'SetString', 'ShowMessage', 'ShowMessageFmt', + 'ShowMessagePos', 'Str', 'Truncate', 'Val', 'Write', 'WriteLn', - 'AdminPrivilegesRequired','AfterInstall','AllowCancelDuringInstall','AllowNoIcons','AllowRootDirectory','AllowUNCPath','AlwaysRestart','AlwaysShowComponentsList','AlwaysShowDirOnReadyPage','AlwaysShowGroupOnReadyPage ','AlwaysUsePersonalGroup','AppComments','AppContact','AppCopyright','AppendDefaultDirName', - 'AppendDefaultGroupName','AppId','AppModifyPath','AppMutex','AppName','AppPublisher', - 'AppPublisherURL','AppReadmeFile','AppSupportURL','AppUpdatesURL','AppVerName','AppVersion', - 'Attribs','BackColor','BackColor2','BackColorDirection','BackSolid','BeforeInstall', - 'ChangesAssociations','ChangesEnvironment','Check','CodeFile','Comment','Components','Compression','CopyMode', - 'CreateAppDir','CreateUninstallRegKey','DefaultDirName','DefaultGroupName', - 'DefaultUserInfoName','DefaultUserInfoOrg','DefaultUserInfoSerial', - 'Description','DestDir','DestName','DirExistsWarning', - 'DisableDirPage','DisableFinishedPage', - 'DisableProgramGroupPage','DisableReadyMemo','DisableReadyPage', - 'DisableStartupPrompt','DiskClusterSize','DiskSliceSize','DiskSpaceMBLabel', - 'DiskSpanning','DontMergeDuplicateFiles','EnableDirDoesntExistWarning','Encryption', - 'Excludes','ExtraDiskSpaceRequired','Filename','Flags','FlatComponentsList','FontInstall', - 'GroupDescription','HotKey','IconFilename','IconIndex','InfoAfterFile','InfoBeforeFile', - 'InternalCompressLevel','Key','LanguageDetectionMethod','Languages', - 'LicenseFile','MergeDuplicateFiles','MessagesFile','MinVersion','Name', - 'OnlyBelowVersion','OutputBaseFilename','OutputManifestFile','OutputDir', - 'Parameters','Password','Permissions','PrivilegesRequired','ReserveBytes', - 'RestartIfNeededByRun','Root','RunOnceId','Section','SetupIconFile', - 'ShowComponentSizes','ShowLanguageDialog','ShowTasksTreeLines','SlicesPerDisk', - 'SolidCompression','Source','SourceDir','StatusMsg','Subkey','Tasks', - 'TimeStampRounding','TimeStampsInUTC','TouchDate','TouchTime','Type','Types', - 'UninstallDisplayIcon','UninstallDisplayName','UninstallFilesDir','UninstallIconFile', - 'UninstallLogMode','UninstallRestartComputer','UninstallStyle','Uninstallable', - 'UpdateUninstallLogAppName','UsePreviousAppDir','UsePreviousGroup', - 'UsePreviousTasks','UsePreviousSetupType','UsePreviousUserInfo', - 'UserInfoPage','UseSetupLdr','ValueData','ValueName','ValueType', - 'VersionInfoVersion','VersionInfoCompany','VersionInfoDescription','VersionInfoTextVersion', - 'WindowResizable','WindowShowCaption','WindowStartMaximized', - 'WindowVisible','WizardImageBackColor','WizardImageFile','WizardImageStretch','WizardSmallImageBackColor','WizardSmallImageFile','WizardStyle','WorkingDir' + 'AdminPrivilegesRequired','AfterInstall','AllowCancelDuringInstall','AllowNoIcons','AllowRootDirectory','AllowUNCPath','AlwaysRestart','AlwaysShowComponentsList','AlwaysShowDirOnReadyPage','AlwaysShowGroupOnReadyPage ','AlwaysUsePersonalGroup','AppComments','AppContact','AppCopyright','AppendDefaultDirName', + 'AppendDefaultGroupName','AppId','AppModifyPath','AppMutex','AppName','AppPublisher', + 'AppPublisherURL','AppReadmeFile','AppSupportURL','AppUpdatesURL','AppVerName','AppVersion', + 'Attribs','BackColor','BackColor2','BackColorDirection','BackSolid','BeforeInstall', + 'ChangesAssociations','ChangesEnvironment','Check','CodeFile','Comment','Components','Compression','CopyMode', + 'CreateAppDir','CreateUninstallRegKey','DefaultDirName','DefaultGroupName', + 'DefaultUserInfoName','DefaultUserInfoOrg','DefaultUserInfoSerial', + 'Description','DestDir','DestName','DirExistsWarning', + 'DisableDirPage','DisableFinishedPage', + 'DisableProgramGroupPage','DisableReadyMemo','DisableReadyPage', + 'DisableStartupPrompt','DiskClusterSize','DiskSliceSize','DiskSpaceMBLabel', + 'DiskSpanning','DontMergeDuplicateFiles','EnableDirDoesntExistWarning','Encryption', + 'Excludes','ExtraDiskSpaceRequired','Filename','Flags','FlatComponentsList','FontInstall', + 'GroupDescription','HotKey','IconFilename','IconIndex','InfoAfterFile','InfoBeforeFile', + 'InternalCompressLevel','Key','LanguageDetectionMethod','Languages', + 'LicenseFile','MergeDuplicateFiles','MessagesFile','MinVersion','Name', + 'OnlyBelowVersion','OutputBaseFilename','OutputManifestFile','OutputDir', + 'Parameters','Password','Permissions','PrivilegesRequired','ReserveBytes', + 'RestartIfNeededByRun','Root','RunOnceId','Section','SetupIconFile', + 'ShowComponentSizes','ShowLanguageDialog','ShowTasksTreeLines','SlicesPerDisk', + 'SolidCompression','Source','SourceDir','StatusMsg','Subkey','Tasks', + 'TimeStampRounding','TimeStampsInUTC','TouchDate','TouchTime','Type','Types', + 'UninstallDisplayIcon','UninstallDisplayName','UninstallFilesDir','UninstallIconFile', + 'UninstallLogMode','UninstallRestartComputer','UninstallStyle','Uninstallable', + 'UpdateUninstallLogAppName','UsePreviousAppDir','UsePreviousGroup', + 'UsePreviousTasks','UsePreviousSetupType','UsePreviousUserInfo', + 'UserInfoPage','UseSetupLdr','ValueData','ValueName','ValueType', + 'VersionInfoVersion','VersionInfoCompany','VersionInfoDescription','VersionInfoTextVersion', + 'WindowResizable','WindowShowCaption','WindowStartMaximized', + 'WindowVisible','WizardImageBackColor','WizardImageFile','WizardImageStretch','WizardSmallImageBackColor','WizardSmallImageFile','WizardStyle','WorkingDir' - ), - 4 => array( - 'AnsiChar', 'AnsiString', 'Boolean', 'Byte', 'Cardinal', 'Char', 'Comp', 'Currency', 'Double', 'Extended', - 'Int64', 'Integer', 'LongInt', 'LongWord', 'PAnsiChar', 'PAnsiString', 'PChar', 'PCurrency', 'PDateTime', - 'PExtended', 'PInt64', 'Pointer', 'PShortString', 'PString', 'PVariant', 'PWideChar', 'PWideString', - 'Real', 'Real48', 'ShortInt', 'ShortString', 'Single', 'SmallInt', 'String', 'TBits', 'TConvType', 'TDateTime', - 'Text', 'TextFile', 'TFloatFormat', 'TFormatSettings', 'TList', 'TObject', 'TOpenDialog', 'TPoint', - 'TPrintDialog', 'TRect', 'TReplaceFlags', 'TSaveDialog', 'TSearchRec', 'TStringList', 'TSysCharSet', - 'TThreadFunc', 'Variant', 'WideChar', 'WideString', 'Word' - ), - ), - 'SYMBOLS' => array( - '(', ')', '[', ']', '{', '}', '@', '%', '&', '*', '|', '/', '<', '>' - ), + ), + 4 => array( + 'AnsiChar', 'AnsiString', 'Boolean', 'Byte', 'Cardinal', 'Char', 'Comp', 'Currency', 'Double', 'Extended', + 'Int64', 'Integer', 'LongInt', 'LongWord', 'PAnsiChar', 'PAnsiString', 'PChar', 'PCurrency', 'PDateTime', + 'PExtended', 'PInt64', 'Pointer', 'PShortString', 'PString', 'PVariant', 'PWideChar', 'PWideString', + 'Real', 'Real48', 'ShortInt', 'ShortString', 'Single', 'SmallInt', 'String', 'TBits', 'TConvType', 'TDateTime', + 'Text', 'TextFile', 'TFloatFormat', 'TFormatSettings', 'TList', 'TObject', 'TOpenDialog', 'TPoint', + 'TPrintDialog', 'TRect', 'TReplaceFlags', 'TSaveDialog', 'TSearchRec', 'TStringList', 'TSysCharSet', + 'TThreadFunc', 'Variant', 'WideChar', 'WideString', 'Word' + ), + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '{', '}', '@', '%', '&', '*', '|', '/', '<', '>' + ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false, - 2 => false, - 3 => false, - 4 => false, - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #000000; font-weight: bold;',/*bold Black*/ - 2 => 'color: #000000;font-style: italic;',/*Black*/ - 3 => 'color: #0000FF;',/*blue*/ - 4 => 'color: #CC0000;'/*red*/ - ), - 'COMMENTS' => array( - 1 => 'color: #33FF00; font-style: italic;', - 'MULTI' => 'color: #33FF00; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - ), - 'BRACKETS' => array( - 0 => 'color: #66cc66;' - ), - 'STRINGS' => array( - 0 => 'color: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( - 1 => 'color: #006600;' - ), - 'REGEXPS' => array( - ), - 'SYMBOLS' => array( - 0 => 'color: #000000; font-weight: bold;', - ), - '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( - ) + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;',/*bold Black*/ + 2 => 'color: #000000;font-style: italic;',/*Black*/ + 3 => 'color: #0000FF;',/*blue*/ + 4 => 'color: #CC0000;'/*red*/ + ), + 'COMMENTS' => array( + 1 => 'color: #33FF00; font-style: italic;', + 'MULTI' => 'color: #33FF00; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;' + ), + 'REGEXPS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #000000; font-weight: bold;', + ), + '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/plugins/geshi/io.php b/plugins/geshi/io.php old mode 100644 new mode 100755 index 97c1c06..dc0b6c1 --- a/plugins/geshi/io.php +++ b/plugins/geshi/io.php @@ -38,18 +38,18 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Io', - 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array('"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( +$language_data = array( + 'LANG_NAME' => 'Io', + 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( 1 => array( 'and', 'break', 'else', 'elseif', 'exit', 'for', 'foreach', 'if', 'ifFalse', 'ifNil', 'ifTrue', 'or', 'pass', 'raise', 'return', 'then', 'try', 'wait', 'while', 'yield' - ), + ), 2 => array( 'activate', 'activeCoroCount', 'asString', 'block', 'catch', 'clone', 'collectGarbage', 'compileString', 'continue', 'do', 'doFile', 'doMessage', 'doString', 'forward', @@ -59,7 +59,7 @@ $language_data = array ( 'sender', 'setSchedulerSleepSeconds', 'setSlot', 'shallowCopy', 'slotNames', 'super', 'system', 'thisBlock', 'thisContext', 'thisMessage', 'type', 'uniqueId', 'updateSlot', 'write' - ), + ), 3 => array( 'Array', 'AudioDevice', 'AudioMixer', 'Block', 'Box', 'Buffer', 'CFunction', 'CGI', 'Color', 'Curses', 'DBM', 'DNSResolver', 'DOConnection', 'DOProxy', 'DOServer', @@ -72,68 +72,66 @@ $language_data = array ( 'Socket', 'SocketManager', 'Sound', 'Soup', 'Store', 'String', 'Tree', 'UDPSender', 'UDPReceiver', 'URL', 'User', 'Warning', 'WeakLink' ) - ), - 'SYMBOLS' => array( - '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => false, - 2 => false, - 3 => false, - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #b1b100;', - 2 => 'color: #000000; font-weight: bold;', - 3 => 'color: #000066;' - ), - 'COMMENTS' => array( - 1 => 'color: #808080; font-style: italic;', - 2 => 'color: #808080; 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: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( - 1 => 'color: #006600;', - 2 => 'color: #006600;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'REGEXPS' => array( - 0 => 'color: #0000ff;' - ), - 'SCRIPT' => array( - 0 => '' - ) - ), - 'URLS' => array( - 1 => '', - 2 => '', - 3 => '' - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 2 => 'color: #808080; 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: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;', + 2 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + 0 => 'color: #0000ff;' + ), + 'SCRIPT' => array( + 0 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/java.php b/plugins/geshi/java.php old mode 100644 new mode 100755 index 4c5689d..08a068e --- a/plugins/geshi/java.php +++ b/plugins/geshi/java.php @@ -49,1340 +49,1338 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Java', - 'COMMENT_SINGLE' => array(1 => '//', 2 => 'import'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - 'for', 'foreach', 'if', 'else', 'while', 'do', - 'switch', 'case' - ), - 2 => array( - 'null', 'return', 'false', 'final', 'true', 'public', - 'private', 'protected', 'extends', 'break', 'class', - 'new', 'try', 'catch', 'throws', 'finally', 'implements', - 'interface', 'throw', 'native', 'synchronized', 'this', +$language_data = array( + 'LANG_NAME' => 'Java', + 'COMMENT_SINGLE' => array(1 => '//', 2 => 'import'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'for', 'foreach', 'if', 'else', 'while', 'do', + 'switch', 'case' + ), + 2 => array( + 'null', 'return', 'false', 'final', 'true', 'public', + 'private', 'protected', 'extends', 'break', 'class', + 'new', 'try', 'catch', 'throws', 'finally', 'implements', + 'interface', 'throw', 'native', 'synchronized', 'this', 'abstract', 'transient', 'instanceof', 'assert', 'continue', 'default', 'enum', 'package', 'static', 'strictfp', 'super', 'volatile', 'const', 'goto' - ), - 3 => array( - 'AbstractAction', 'AbstractBorder', 'AbstractButton', 'AbstractCellEditor', - 'AbstractCollection', 'AbstractColorChooserPanel', 'AbstractDocument', - 'AbstractDocument.AttributeContext', 'AbstractDocument.Content', - 'AbstractDocument.ElementEdit', 'AbstractLayoutCache', - 'AbstractLayoutCache.NodeDimensions', 'AbstractList', 'AbstractListModel', - 'AbstractMap', 'AbstractMethodError', 'AbstractSequentialList', - 'AbstractSet', 'AbstractTableModel', 'AbstractUndoableEdit', 'AbstractWriter', - 'AccessControlContext', 'AccessControlException', 'AccessController', - 'AccessException', 'Accessible', 'AccessibleAction', 'AccessibleBundle', - 'AccessibleComponent', 'AccessibleContext', 'AccessibleHyperlink', - 'AccessibleHypertext', 'AccessibleIcon', 'AccessibleObject', - 'AccessibleRelation', 'AccessibleRelationSet', 'AccessibleResourceBundle', - 'AccessibleRole', 'AccessibleSelection', 'AccessibleState', - 'AccessibleStateSet', 'AccessibleTable', 'AccessibleTableModelChange', - 'AccessibleText', 'AccessibleValue', 'Acl', 'AclEntry', 'AclNotFoundException', - 'Action', 'ActionEvent', 'ActionListener', 'ActionMap', 'ActionMapUIResource', - 'Activatable', 'ActivateFailedException', 'ActivationDesc', - 'ActivationException', 'ActivationGroup', 'ActivationGroupDesc', - 'ActivationGroupDesc.CommandEnvironment', 'ActivationGroupID', 'ActivationID', - 'ActivationInstantiator', 'ActivationMonitor', 'ActivationSystem', - 'Activator', 'ActiveEvent', 'Adjustable', 'AdjustmentEvent', 'AdjustmentListener', - 'Adler32', 'AffineTransform', 'AffineTransformOp', 'AlgorithmParameterGenerator', - 'AlgorithmParameterGeneratorSpi', 'AlgorithmParameters', 'AlgorithmParameterSpec', - 'AlgorithmParametersSpi', 'AllPermission', 'AlphaComposite', 'AlreadyBound', - 'AlreadyBoundException', 'AlreadyBoundHelper', 'AlreadyBoundHolder', - 'AncestorEvent', 'AncestorListener', 'Annotation', 'Any', 'AnyHolder', - 'AnySeqHelper', 'AnySeqHolder', 'Applet', 'AppletContext', 'AppletInitializer', - 'AppletStub', 'ApplicationException', 'Arc2D', 'Arc2D.Double', 'Arc2D.Float', - 'Area', 'AreaAveragingScaleFilter', 'ARG_IN', 'ARG_INOUT', 'ARG_OUT', - 'ArithmeticException', 'Array', 'ArrayIndexOutOfBoundsException', - 'ArrayList', 'Arrays', 'ArrayStoreException', 'AsyncBoxView', - 'Attribute', 'AttributedCharacterIterator', 'AttributedCharacterIterator.Attribute', - 'AttributedString', 'AttributeInUseException', 'AttributeList', - 'AttributeModificationException', 'Attributes', 'Attributes.Name', - 'AttributeSet', 'AttributeSet.CharacterAttribute', 'AttributeSet.ColorAttribute', - 'AttributeSet.FontAttribute', 'AttributeSet.ParagraphAttribute', - 'AudioClip', 'AudioFileFormat', 'AudioFileFormat.Type', 'AudioFileReader', - 'AudioFileWriter', 'AudioFormat', 'AudioFormat.Encoding', 'AudioInputStream', - 'AudioPermission', 'AudioSystem', 'AuthenticationException', - 'AuthenticationNotSupportedException', 'Authenticator', 'Autoscroll', - 'AWTError', 'AWTEvent', 'AWTEventListener', 'AWTEventMulticaster', - 'AWTException', 'AWTPermission', 'BAD_CONTEXT', 'BAD_INV_ORDER', 'BAD_OPERATION', - 'BAD_PARAM', 'BAD_POLICY', 'BAD_POLICY_TYPE', 'BAD_POLICY_VALUE', 'BAD_TYPECODE', - 'BadKind', 'BadLocationException', 'BandCombineOp', 'BandedSampleModel','BasicArrowButton', - 'BasicAttribute', 'BasicAttributes', 'BasicBorders', 'BasicBorders.ButtonBorder', - 'BasicBorders.FieldBorder', 'BasicBorders.MarginBorder', 'BasicBorders.MenuBarBorder', - 'BasicBorders.RadioButtonBorder', 'BasicBorders.SplitPaneBorder', - 'BasicBorders.ToggleButtonBorder', 'BasicButtonListener', 'BasicButtonUI', - 'BasicCheckBoxMenuItemUI', 'BasicCheckBoxUI', 'BasicColorChooserUI', 'BasicComboBoxEditor', - 'BasicComboBoxEditor.UIResource', 'BasicComboBoxRenderer', 'BasicComboBoxRenderer.UIResource', - 'BasicComboBoxUI', 'BasicComboPopup', 'BasicDesktopIconUI', 'BasicDesktopPaneUI', - 'BasicDirectoryModel', 'BasicEditorPaneUI', 'BasicFileChooserUI', - 'BasicGraphicsUtils', 'BasicHTML', 'BasicIconFactory', 'BasicInternalFrameTitlePane', - 'BasicInternalFrameUI', 'BasicLabelUI', 'BasicListUI', 'BasicLookAndFeel', - 'BasicMenuBarUI', 'BasicMenuItemUI', 'BasicMenuUI', 'BasicOptionPaneUI', - 'BasicOptionPaneUI.ButtonAreaLayout', 'BasicPanelUI', 'BasicPasswordFieldUI', - 'BasicPermission', 'BasicPopupMenuSeparatorUI', 'BasicPopupMenuUI', - 'BasicProgressBarUI', 'BasicRadioButtonMenuItemUI', 'BasicRadioButtonUI', - 'BasicRootPaneUI', 'BasicScrollBarUI', 'BasicScrollPaneUI', 'BasicSeparatorUI', - 'BasicSliderUI', 'BasicSplitPaneDivider', 'BasicSplitPaneUI', 'BasicStroke', - 'BasicTabbedPaneUI', 'BasicTableHeaderUI', 'BasicTableUI', 'BasicTextAreaUI', - 'BasicTextFieldUI', 'BasicTextPaneUI', 'BasicTextUI', 'BasicTextUI.BasicCaret', - 'BasicTextUI.BasicHighlighter', 'BasicToggleButtonUI', 'BasicToolBarSeparatorUI', - 'BasicToolBarUI', 'BasicToolTipUI', 'BasicTreeUI', 'BasicViewportUI', - 'BatchUpdateException', 'BeanContext', 'BeanContextChild', - 'BeanContextChildComponentProxy', 'BeanContextChildSupport', 'BeanContextContainerProxy', - 'BeanContextEvent', 'BeanContextMembershipEvent', 'BeanContextMembershipListener', - 'BeanContextProxy', 'BeanContextServiceAvailableEvent', 'BeanContextServiceProvider', - 'BeanContextServiceProviderBeanInfo', 'BeanContextServiceRevokedEvent', - 'BeanContextServiceRevokedListener', 'BeanContextServices', - 'BeanContextServicesListener', 'BeanContextServicesSupport', - 'BeanContextServicesSupport.BCSSServiceProvider', 'BeanContextSupport', - 'BeanContextSupport.BCSIterator', 'BeanDescriptor', 'BeanInfo', 'Beans', - 'BevelBorder', 'BigDecimal', 'BigInteger', 'BinaryRefAddr', 'BindException', - 'Binding', 'BindingHelper', 'BindingHolder', 'BindingIterator', - 'BindingIteratorHelper', 'BindingIteratorHolder', 'BindingIteratorOperations', - 'BindingListHelper', 'BindingListHolder', 'BindingType', 'BindingTypeHelper', - 'BindingTypeHolder', 'BitSet', 'Blob', 'BlockView', 'Book', 'Boolean', - 'BooleanControl', 'BooleanControl.Type', 'BooleanHolder', 'BooleanSeqHelper', - 'BooleanSeqHolder', 'Border', 'BorderFactory', 'BorderLayout', 'BorderUIResource', - 'BorderUIResource.BevelBorderUIResource', 'BorderUIResource.CompoundBorderUIResource', - 'BorderUIResource.EmptyBorderUIResource', 'BorderUIResource.EtchedBorderUIResource', - 'BorderUIResource.LineBorderUIResource', 'BorderUIResource.MatteBorderUIResource', - 'BorderUIResource.TitledBorderUIResource', 'BoundedRangeModel', 'Bounds', - 'Box', 'Box.Filler', 'BoxedValueHelper', 'BoxLayout', 'BoxView', - 'BreakIterator', 'BufferedImage', 'BufferedImageFilter', 'BufferedImageOp', - 'BufferedInputStream', 'BufferedOutputStream', 'BufferedReader', 'BufferedWriter', - 'Button', 'ButtonGroup', 'ButtonModel', 'ButtonUI', 'Byte', 'ByteArrayInputStream', - 'ByteArrayOutputStream', 'ByteHolder', 'ByteLookupTable', 'Calendar', - 'CallableStatement', 'CannotProceed', 'CannotProceedException', 'CannotProceedHelper', - 'CannotProceedHolder', 'CannotRedoException', 'CannotUndoException', - 'Canvas', 'CardLayout', 'Caret', 'CaretEvent', 'CaretListener', 'CellEditor', - 'CellEditorListener', 'CellRendererPane', 'Certificate', 'Certificate.CertificateRep', - 'CertificateEncodingException', 'CertificateException', 'CertificateExpiredException', - 'CertificateFactory', 'CertificateFactorySpi', 'CertificateNotYetValidException', - 'CertificateParsingException', 'ChangedCharSetException', 'ChangeEvent', - 'ChangeListener', 'Character', 'Character.Subset', 'Character.UnicodeBlock', - 'CharacterIterator', 'CharArrayReader', 'CharArrayWriter', 'CharConversionException', - 'CharHolder', 'CharSeqHelper', 'CharSeqHolder', 'Checkbox', 'CheckboxGroup', - 'CheckboxMenuItem', 'CheckedInputStream', 'CheckedOutputStream', 'Checksum', - 'Choice', 'ChoiceFormat', 'Class', 'ClassCastException', 'ClassCircularityError', - 'ClassDesc', 'ClassFormatError', 'ClassLoader', 'ClassNotFoundException', - 'Clip', 'Clipboard', 'ClipboardOwner', 'Clob', 'Cloneable', 'CloneNotSupportedException', - 'CMMException', 'CodeSource', 'CollationElementIterator', 'CollationKey', - 'Collator', 'Collection', 'Collections', 'Color', 'ColorChooserComponentFactory', - 'ColorChooserUI', 'ColorConvertOp', 'ColorModel', 'ColorSelectionModel', - 'ColorSpace', 'ColorUIResource', 'ComboBoxEditor', 'ComboBoxModel', 'ComboBoxUI', - 'ComboPopup', 'COMM_FAILURE', 'CommunicationException', 'Comparable', - 'Comparator', 'Compiler', 'CompletionStatus', 'CompletionStatusHelper', - 'Component', 'ComponentAdapter', 'ComponentColorModel', 'ComponentEvent', - 'ComponentInputMap', 'ComponentInputMapUIResource', 'ComponentListener', - 'ComponentOrientation', 'ComponentSampleModel', 'ComponentUI', 'ComponentView', - 'Composite', 'CompositeContext', 'CompositeName','CompositeView', 'CompoundBorder', - 'CompoundControl', 'CompoundControl.Type', 'CompoundEdit', 'CompoundName', - 'ConcurrentModificationException', 'ConfigurationException', 'ConnectException', - 'ConnectException', 'ConnectIOException', 'Connection', 'Constructor', - 'Container', 'ContainerAdapter', 'ContainerEvent', 'ContainerListener', - 'ContentHandler', 'ContentHandlerFactory', 'ContentModel', 'Context', 'ContextList', - 'ContextNotEmptyException', 'ContextualRenderedImageFactory', 'Control', - 'Control.Type', 'ControlFactory', 'ControllerEventListener', 'ConvolveOp', - 'CRC32', 'CRL', 'CRLException', 'CropImageFilter', 'CSS', 'CSS.Attribute', - 'CTX_RESTRICT_SCOPE', 'CubicCurve2D', 'CubicCurve2D.Double', 'CubicCurve2D.Float', - 'Current', 'CurrentHelper', 'CurrentHolder', 'CurrentOperations', 'Cursor', - 'Customizer', 'CustomMarshal', 'CustomValue', 'DATA_CONVERSION', 'DatabaseMetaData', - 'DataBuffer', 'DataBufferByte', 'DataBufferInt', 'DataBufferShort', 'DataBufferUShort', - 'DataFlavor', 'DataFormatException', 'DatagramPacket', 'DatagramSocket', - 'DatagramSocketImpl', 'DatagramSocketImplFactory', 'DataInput', 'DataInputStream', - 'DataLine', 'DataLine.Info', 'DataOutput', 'DataOutputStream', 'DataOutputStream', - 'DataTruncation', 'Date', 'DateFormat', 'DateFormatSymbols', 'DebugGraphics', - 'DecimalFormat', 'DecimalFormatSymbols', 'DefaultBoundedRangeModel', - 'DefaultButtonModel', 'DefaultCaret', 'DefaultCellEditor', 'DefaultColorSelectionModel', - 'DefaultComboBoxModel', 'DefaultDesktopManager', 'DefaultEditorKit', - 'DefaultEditorKit.BeepAction', 'DefaultEditorKit.CopyAction', - 'DefaultEditorKit.CutAction', 'DefaultEditorKit.DefaultKeyTypedAction', - 'DefaultEditorKit.InsertBreakAction', 'DefaultEditorKit.InsertContentAction', - 'DefaultEditorKit.InsertTabAction', 'DefaultEditorKit.PasteAction,', - 'DefaultFocusManager', 'DefaultHighlighter', 'DefaultHighlighter.DefaultHighlightPainter', - 'DefaultListCellRenderer', 'DefaultListCellRenderer.UIResource', 'DefaultListModel', - 'DefaultListSelectionModel', 'DefaultMenuLayout', 'DefaultMetalTheme', - 'DefaultMutableTreeNode', 'DefaultSingleSelectionModel', 'DefaultStyledDocument', - 'DefaultStyledDocument.AttributeUndoableEdit', 'DefaultStyledDocument.ElementSpec', - 'DefaultTableCellRenderer', 'DefaultTableCellRenderer.UIResource', 'DefaultTableColumnModel', - 'DefaultTableModel', 'DefaultTextUI', 'DefaultTreeCellEditor', 'DefaultTreeCellRenderer', - 'DefaultTreeModel', 'DefaultTreeSelectionModel', 'DefinitionKind', 'DefinitionKindHelper', - 'Deflater', 'DeflaterOutputStream', 'Delegate', 'DesignMode', 'DesktopIconUI', - 'DesktopManager', 'DesktopPaneUI', 'DGC', 'Dialog', 'Dictionary', 'DigestException', - 'DigestInputStream', 'DigestOutputStream', 'Dimension', 'Dimension2D', - 'DimensionUIResource', 'DirContext', 'DirectColorModel', 'DirectoryManager', - 'DirObjectFactory', 'DirStateFactory', 'DirStateFactory.Result', 'DnDConstants', - 'Document', 'DocumentEvent', 'DocumentEvent.ElementChange', 'DocumentEvent.EventType', - 'DocumentListener', 'DocumentParser', 'DomainCombiner', 'DomainManager', - 'DomainManagerOperations', 'Double', 'DoubleHolder', 'DoubleSeqHelper', - 'DoubleSeqHolder', 'DragGestureEvent', 'DragGestureListener', 'DragGestureRecognizer', - 'DragSource', 'DragSourceContext', 'DragSourceDragEvent', 'DragSourceDropEvent', - 'DragSourceEvent', 'DragSourceListener', 'Driver', 'DriverManager', - 'DriverPropertyInfo', 'DropTarget', 'DropTarget.DropTargetAutoScroller', - 'DropTargetContext', 'DropTargetDragEvent', 'DropTargetDropEvent', - 'DropTargetEvent', 'DropTargetListener', 'DSAKey', 'DSAKeyPairGenerator', - 'DSAParameterSpec', 'DSAParams', 'DSAPrivateKey', 'DSAPrivateKeySpec', - 'DSAPublicKey', 'DSAPublicKeySpec', 'DTD', 'DTDConstants', 'DynamicImplementation', - 'DynAny', 'DynArray', 'DynEnum', 'DynFixed', 'DynSequence', 'DynStruct', - 'DynUnion', 'DynValue', 'EditorKit', 'Element', 'ElementIterator', 'Ellipse2D', - 'Ellipse2D.Double', 'Ellipse2D.Float', 'EmptyBorder', 'EmptyStackException', - 'EncodedKeySpec', 'Entity', 'EnumControl', 'EnumControl.Type','Enumeration', - 'Environment', 'EOFException', 'Error', 'EtchedBorder', 'Event', 'EventContext', - 'EventDirContext', 'EventListener', 'EventListenerList', 'EventObject', 'EventQueue', - 'EventSetDescriptor', 'Exception', 'ExceptionInInitializerError', 'ExceptionList', - 'ExpandVetoException', 'ExportException', 'ExtendedRequest', 'ExtendedResponse', - 'Externalizable', 'FeatureDescriptor', 'Field', 'FieldNameHelper', - 'FieldPosition', 'FieldView', 'File', 'FileChooserUI', 'FileDescriptor', - 'FileDialog', 'FileFilter', 'FileFilter', 'FileInputStream', 'FilenameFilter', - 'FileNameMap', 'FileNotFoundException', 'FileOutputStream', 'FilePermission', - 'FileReader', 'FileSystemView', 'FileView', 'FileWriter', 'FilteredImageSource', - 'FilterInputStream', 'FilterOutputStream', 'FilterReader', 'FilterWriter', - 'FixedHeightLayoutCache', 'FixedHolder', 'FlatteningPathIterator', 'FlavorMap', - 'Float', 'FloatControl', 'FloatControl.Type', 'FloatHolder', 'FloatSeqHelper', - 'FloatSeqHolder', 'FlowLayout', 'FlowView', 'FlowView.FlowStrategy', 'FocusAdapter', - 'FocusEvent', 'FocusListener', 'FocusManager', 'Font', 'FontFormatException', - 'FontMetrics', 'FontRenderContext', 'FontUIResource', 'Format', 'FormatConversionProvider', - 'FormView', 'Frame', 'FREE_MEM', 'GapContent', 'GeneralPath', 'GeneralSecurityException', - 'GlyphJustificationInfo', 'GlyphMetrics', 'GlyphVector', 'GlyphView', 'GlyphView.GlyphPainter', - 'GradientPaint', 'GraphicAttribute', 'Graphics', 'Graphics2D', 'GraphicsConfigTemplate', - 'GraphicsConfiguration', 'GraphicsDevice', 'GraphicsEnvironment', 'GrayFilter', + ), + 3 => array( + 'AbstractAction', 'AbstractBorder', 'AbstractButton', 'AbstractCellEditor', + 'AbstractCollection', 'AbstractColorChooserPanel', 'AbstractDocument', + 'AbstractDocument.AttributeContext', 'AbstractDocument.Content', + 'AbstractDocument.ElementEdit', 'AbstractLayoutCache', + 'AbstractLayoutCache.NodeDimensions', 'AbstractList', 'AbstractListModel', + 'AbstractMap', 'AbstractMethodError', 'AbstractSequentialList', + 'AbstractSet', 'AbstractTableModel', 'AbstractUndoableEdit', 'AbstractWriter', + 'AccessControlContext', 'AccessControlException', 'AccessController', + 'AccessException', 'Accessible', 'AccessibleAction', 'AccessibleBundle', + 'AccessibleComponent', 'AccessibleContext', 'AccessibleHyperlink', + 'AccessibleHypertext', 'AccessibleIcon', 'AccessibleObject', + 'AccessibleRelation', 'AccessibleRelationSet', 'AccessibleResourceBundle', + 'AccessibleRole', 'AccessibleSelection', 'AccessibleState', + 'AccessibleStateSet', 'AccessibleTable', 'AccessibleTableModelChange', + 'AccessibleText', 'AccessibleValue', 'Acl', 'AclEntry', 'AclNotFoundException', + 'Action', 'ActionEvent', 'ActionListener', 'ActionMap', 'ActionMapUIResource', + 'Activatable', 'ActivateFailedException', 'ActivationDesc', + 'ActivationException', 'ActivationGroup', 'ActivationGroupDesc', + 'ActivationGroupDesc.CommandEnvironment', 'ActivationGroupID', 'ActivationID', + 'ActivationInstantiator', 'ActivationMonitor', 'ActivationSystem', + 'Activator', 'ActiveEvent', 'Adjustable', 'AdjustmentEvent', 'AdjustmentListener', + 'Adler32', 'AffineTransform', 'AffineTransformOp', 'AlgorithmParameterGenerator', + 'AlgorithmParameterGeneratorSpi', 'AlgorithmParameters', 'AlgorithmParameterSpec', + 'AlgorithmParametersSpi', 'AllPermission', 'AlphaComposite', 'AlreadyBound', + 'AlreadyBoundException', 'AlreadyBoundHelper', 'AlreadyBoundHolder', + 'AncestorEvent', 'AncestorListener', 'Annotation', 'Any', 'AnyHolder', + 'AnySeqHelper', 'AnySeqHolder', 'Applet', 'AppletContext', 'AppletInitializer', + 'AppletStub', 'ApplicationException', 'Arc2D', 'Arc2D.Double', 'Arc2D.Float', + 'Area', 'AreaAveragingScaleFilter', 'ARG_IN', 'ARG_INOUT', 'ARG_OUT', + 'ArithmeticException', 'Array', 'ArrayIndexOutOfBoundsException', + 'ArrayList', 'Arrays', 'ArrayStoreException', 'AsyncBoxView', + 'Attribute', 'AttributedCharacterIterator', 'AttributedCharacterIterator.Attribute', + 'AttributedString', 'AttributeInUseException', 'AttributeList', + 'AttributeModificationException', 'Attributes', 'Attributes.Name', + 'AttributeSet', 'AttributeSet.CharacterAttribute', 'AttributeSet.ColorAttribute', + 'AttributeSet.FontAttribute', 'AttributeSet.ParagraphAttribute', + 'AudioClip', 'AudioFileFormat', 'AudioFileFormat.Type', 'AudioFileReader', + 'AudioFileWriter', 'AudioFormat', 'AudioFormat.Encoding', 'AudioInputStream', + 'AudioPermission', 'AudioSystem', 'AuthenticationException', + 'AuthenticationNotSupportedException', 'Authenticator', 'Autoscroll', + 'AWTError', 'AWTEvent', 'AWTEventListener', 'AWTEventMulticaster', + 'AWTException', 'AWTPermission', 'BAD_CONTEXT', 'BAD_INV_ORDER', 'BAD_OPERATION', + 'BAD_PARAM', 'BAD_POLICY', 'BAD_POLICY_TYPE', 'BAD_POLICY_VALUE', 'BAD_TYPECODE', + 'BadKind', 'BadLocationException', 'BandCombineOp', 'BandedSampleModel','BasicArrowButton', + 'BasicAttribute', 'BasicAttributes', 'BasicBorders', 'BasicBorders.ButtonBorder', + 'BasicBorders.FieldBorder', 'BasicBorders.MarginBorder', 'BasicBorders.MenuBarBorder', + 'BasicBorders.RadioButtonBorder', 'BasicBorders.SplitPaneBorder', + 'BasicBorders.ToggleButtonBorder', 'BasicButtonListener', 'BasicButtonUI', + 'BasicCheckBoxMenuItemUI', 'BasicCheckBoxUI', 'BasicColorChooserUI', 'BasicComboBoxEditor', + 'BasicComboBoxEditor.UIResource', 'BasicComboBoxRenderer', 'BasicComboBoxRenderer.UIResource', + 'BasicComboBoxUI', 'BasicComboPopup', 'BasicDesktopIconUI', 'BasicDesktopPaneUI', + 'BasicDirectoryModel', 'BasicEditorPaneUI', 'BasicFileChooserUI', + 'BasicGraphicsUtils', 'BasicHTML', 'BasicIconFactory', 'BasicInternalFrameTitlePane', + 'BasicInternalFrameUI', 'BasicLabelUI', 'BasicListUI', 'BasicLookAndFeel', + 'BasicMenuBarUI', 'BasicMenuItemUI', 'BasicMenuUI', 'BasicOptionPaneUI', + 'BasicOptionPaneUI.ButtonAreaLayout', 'BasicPanelUI', 'BasicPasswordFieldUI', + 'BasicPermission', 'BasicPopupMenuSeparatorUI', 'BasicPopupMenuUI', + 'BasicProgressBarUI', 'BasicRadioButtonMenuItemUI', 'BasicRadioButtonUI', + 'BasicRootPaneUI', 'BasicScrollBarUI', 'BasicScrollPaneUI', 'BasicSeparatorUI', + 'BasicSliderUI', 'BasicSplitPaneDivider', 'BasicSplitPaneUI', 'BasicStroke', + 'BasicTabbedPaneUI', 'BasicTableHeaderUI', 'BasicTableUI', 'BasicTextAreaUI', + 'BasicTextFieldUI', 'BasicTextPaneUI', 'BasicTextUI', 'BasicTextUI.BasicCaret', + 'BasicTextUI.BasicHighlighter', 'BasicToggleButtonUI', 'BasicToolBarSeparatorUI', + 'BasicToolBarUI', 'BasicToolTipUI', 'BasicTreeUI', 'BasicViewportUI', + 'BatchUpdateException', 'BeanContext', 'BeanContextChild', + 'BeanContextChildComponentProxy', 'BeanContextChildSupport', 'BeanContextContainerProxy', + 'BeanContextEvent', 'BeanContextMembershipEvent', 'BeanContextMembershipListener', + 'BeanContextProxy', 'BeanContextServiceAvailableEvent', 'BeanContextServiceProvider', + 'BeanContextServiceProviderBeanInfo', 'BeanContextServiceRevokedEvent', + 'BeanContextServiceRevokedListener', 'BeanContextServices', + 'BeanContextServicesListener', 'BeanContextServicesSupport', + 'BeanContextServicesSupport.BCSSServiceProvider', 'BeanContextSupport', + 'BeanContextSupport.BCSIterator', 'BeanDescriptor', 'BeanInfo', 'Beans', + 'BevelBorder', 'BigDecimal', 'BigInteger', 'BinaryRefAddr', 'BindException', + 'Binding', 'BindingHelper', 'BindingHolder', 'BindingIterator', + 'BindingIteratorHelper', 'BindingIteratorHolder', 'BindingIteratorOperations', + 'BindingListHelper', 'BindingListHolder', 'BindingType', 'BindingTypeHelper', + 'BindingTypeHolder', 'BitSet', 'Blob', 'BlockView', 'Book', 'Boolean', + 'BooleanControl', 'BooleanControl.Type', 'BooleanHolder', 'BooleanSeqHelper', + 'BooleanSeqHolder', 'Border', 'BorderFactory', 'BorderLayout', 'BorderUIResource', + 'BorderUIResource.BevelBorderUIResource', 'BorderUIResource.CompoundBorderUIResource', + 'BorderUIResource.EmptyBorderUIResource', 'BorderUIResource.EtchedBorderUIResource', + 'BorderUIResource.LineBorderUIResource', 'BorderUIResource.MatteBorderUIResource', + 'BorderUIResource.TitledBorderUIResource', 'BoundedRangeModel', 'Bounds', + 'Box', 'Box.Filler', 'BoxedValueHelper', 'BoxLayout', 'BoxView', + 'BreakIterator', 'BufferedImage', 'BufferedImageFilter', 'BufferedImageOp', + 'BufferedInputStream', 'BufferedOutputStream', 'BufferedReader', 'BufferedWriter', + 'Button', 'ButtonGroup', 'ButtonModel', 'ButtonUI', 'Byte', 'ByteArrayInputStream', + 'ByteArrayOutputStream', 'ByteHolder', 'ByteLookupTable', 'Calendar', + 'CallableStatement', 'CannotProceed', 'CannotProceedException', 'CannotProceedHelper', + 'CannotProceedHolder', 'CannotRedoException', 'CannotUndoException', + 'Canvas', 'CardLayout', 'Caret', 'CaretEvent', 'CaretListener', 'CellEditor', + 'CellEditorListener', 'CellRendererPane', 'Certificate', 'Certificate.CertificateRep', + 'CertificateEncodingException', 'CertificateException', 'CertificateExpiredException', + 'CertificateFactory', 'CertificateFactorySpi', 'CertificateNotYetValidException', + 'CertificateParsingException', 'ChangedCharSetException', 'ChangeEvent', + 'ChangeListener', 'Character', 'Character.Subset', 'Character.UnicodeBlock', + 'CharacterIterator', 'CharArrayReader', 'CharArrayWriter', 'CharConversionException', + 'CharHolder', 'CharSeqHelper', 'CharSeqHolder', 'Checkbox', 'CheckboxGroup', + 'CheckboxMenuItem', 'CheckedInputStream', 'CheckedOutputStream', 'Checksum', + 'Choice', 'ChoiceFormat', 'Class', 'ClassCastException', 'ClassCircularityError', + 'ClassDesc', 'ClassFormatError', 'ClassLoader', 'ClassNotFoundException', + 'Clip', 'Clipboard', 'ClipboardOwner', 'Clob', 'Cloneable', 'CloneNotSupportedException', + 'CMMException', 'CodeSource', 'CollationElementIterator', 'CollationKey', + 'Collator', 'Collection', 'Collections', 'Color', 'ColorChooserComponentFactory', + 'ColorChooserUI', 'ColorConvertOp', 'ColorModel', 'ColorSelectionModel', + 'ColorSpace', 'ColorUIResource', 'ComboBoxEditor', 'ComboBoxModel', 'ComboBoxUI', + 'ComboPopup', 'COMM_FAILURE', 'CommunicationException', 'Comparable', + 'Comparator', 'Compiler', 'CompletionStatus', 'CompletionStatusHelper', + 'Component', 'ComponentAdapter', 'ComponentColorModel', 'ComponentEvent', + 'ComponentInputMap', 'ComponentInputMapUIResource', 'ComponentListener', + 'ComponentOrientation', 'ComponentSampleModel', 'ComponentUI', 'ComponentView', + 'Composite', 'CompositeContext', 'CompositeName','CompositeView', 'CompoundBorder', + 'CompoundControl', 'CompoundControl.Type', 'CompoundEdit', 'CompoundName', + 'ConcurrentModificationException', 'ConfigurationException', 'ConnectException', + 'ConnectException', 'ConnectIOException', 'Connection', 'Constructor', + 'Container', 'ContainerAdapter', 'ContainerEvent', 'ContainerListener', + 'ContentHandler', 'ContentHandlerFactory', 'ContentModel', 'Context', 'ContextList', + 'ContextNotEmptyException', 'ContextualRenderedImageFactory', 'Control', + 'Control.Type', 'ControlFactory', 'ControllerEventListener', 'ConvolveOp', + 'CRC32', 'CRL', 'CRLException', 'CropImageFilter', 'CSS', 'CSS.Attribute', + 'CTX_RESTRICT_SCOPE', 'CubicCurve2D', 'CubicCurve2D.Double', 'CubicCurve2D.Float', + 'Current', 'CurrentHelper', 'CurrentHolder', 'CurrentOperations', 'Cursor', + 'Customizer', 'CustomMarshal', 'CustomValue', 'DATA_CONVERSION', 'DatabaseMetaData', + 'DataBuffer', 'DataBufferByte', 'DataBufferInt', 'DataBufferShort', 'DataBufferUShort', + 'DataFlavor', 'DataFormatException', 'DatagramPacket', 'DatagramSocket', + 'DatagramSocketImpl', 'DatagramSocketImplFactory', 'DataInput', 'DataInputStream', + 'DataLine', 'DataLine.Info', 'DataOutput', 'DataOutputStream', 'DataOutputStream', + 'DataTruncation', 'Date', 'DateFormat', 'DateFormatSymbols', 'DebugGraphics', + 'DecimalFormat', 'DecimalFormatSymbols', 'DefaultBoundedRangeModel', + 'DefaultButtonModel', 'DefaultCaret', 'DefaultCellEditor', 'DefaultColorSelectionModel', + 'DefaultComboBoxModel', 'DefaultDesktopManager', 'DefaultEditorKit', + 'DefaultEditorKit.BeepAction', 'DefaultEditorKit.CopyAction', + 'DefaultEditorKit.CutAction', 'DefaultEditorKit.DefaultKeyTypedAction', + 'DefaultEditorKit.InsertBreakAction', 'DefaultEditorKit.InsertContentAction', + 'DefaultEditorKit.InsertTabAction', 'DefaultEditorKit.PasteAction,', + 'DefaultFocusManager', 'DefaultHighlighter', 'DefaultHighlighter.DefaultHighlightPainter', + 'DefaultListCellRenderer', 'DefaultListCellRenderer.UIResource', 'DefaultListModel', + 'DefaultListSelectionModel', 'DefaultMenuLayout', 'DefaultMetalTheme', + 'DefaultMutableTreeNode', 'DefaultSingleSelectionModel', 'DefaultStyledDocument', + 'DefaultStyledDocument.AttributeUndoableEdit', 'DefaultStyledDocument.ElementSpec', + 'DefaultTableCellRenderer', 'DefaultTableCellRenderer.UIResource', 'DefaultTableColumnModel', + 'DefaultTableModel', 'DefaultTextUI', 'DefaultTreeCellEditor', 'DefaultTreeCellRenderer', + 'DefaultTreeModel', 'DefaultTreeSelectionModel', 'DefinitionKind', 'DefinitionKindHelper', + 'Deflater', 'DeflaterOutputStream', 'Delegate', 'DesignMode', 'DesktopIconUI', + 'DesktopManager', 'DesktopPaneUI', 'DGC', 'Dialog', 'Dictionary', 'DigestException', + 'DigestInputStream', 'DigestOutputStream', 'Dimension', 'Dimension2D', + 'DimensionUIResource', 'DirContext', 'DirectColorModel', 'DirectoryManager', + 'DirObjectFactory', 'DirStateFactory', 'DirStateFactory.Result', 'DnDConstants', + 'Document', 'DocumentEvent', 'DocumentEvent.ElementChange', 'DocumentEvent.EventType', + 'DocumentListener', 'DocumentParser', 'DomainCombiner', 'DomainManager', + 'DomainManagerOperations', 'Double', 'DoubleHolder', 'DoubleSeqHelper', + 'DoubleSeqHolder', 'DragGestureEvent', 'DragGestureListener', 'DragGestureRecognizer', + 'DragSource', 'DragSourceContext', 'DragSourceDragEvent', 'DragSourceDropEvent', + 'DragSourceEvent', 'DragSourceListener', 'Driver', 'DriverManager', + 'DriverPropertyInfo', 'DropTarget', 'DropTarget.DropTargetAutoScroller', + 'DropTargetContext', 'DropTargetDragEvent', 'DropTargetDropEvent', + 'DropTargetEvent', 'DropTargetListener', 'DSAKey', 'DSAKeyPairGenerator', + 'DSAParameterSpec', 'DSAParams', 'DSAPrivateKey', 'DSAPrivateKeySpec', + 'DSAPublicKey', 'DSAPublicKeySpec', 'DTD', 'DTDConstants', 'DynamicImplementation', + 'DynAny', 'DynArray', 'DynEnum', 'DynFixed', 'DynSequence', 'DynStruct', + 'DynUnion', 'DynValue', 'EditorKit', 'Element', 'ElementIterator', 'Ellipse2D', + 'Ellipse2D.Double', 'Ellipse2D.Float', 'EmptyBorder', 'EmptyStackException', + 'EncodedKeySpec', 'Entity', 'EnumControl', 'EnumControl.Type','Enumeration', + 'Environment', 'EOFException', 'Error', 'EtchedBorder', 'Event', 'EventContext', + 'EventDirContext', 'EventListener', 'EventListenerList', 'EventObject', 'EventQueue', + 'EventSetDescriptor', 'Exception', 'ExceptionInInitializerError', 'ExceptionList', + 'ExpandVetoException', 'ExportException', 'ExtendedRequest', 'ExtendedResponse', + 'Externalizable', 'FeatureDescriptor', 'Field', 'FieldNameHelper', + 'FieldPosition', 'FieldView', 'File', 'FileChooserUI', 'FileDescriptor', + 'FileDialog', 'FileFilter', 'FileFilter', 'FileInputStream', 'FilenameFilter', + 'FileNameMap', 'FileNotFoundException', 'FileOutputStream', 'FilePermission', + 'FileReader', 'FileSystemView', 'FileView', 'FileWriter', 'FilteredImageSource', + 'FilterInputStream', 'FilterOutputStream', 'FilterReader', 'FilterWriter', + 'FixedHeightLayoutCache', 'FixedHolder', 'FlatteningPathIterator', 'FlavorMap', + 'Float', 'FloatControl', 'FloatControl.Type', 'FloatHolder', 'FloatSeqHelper', + 'FloatSeqHolder', 'FlowLayout', 'FlowView', 'FlowView.FlowStrategy', 'FocusAdapter', + 'FocusEvent', 'FocusListener', 'FocusManager', 'Font', 'FontFormatException', + 'FontMetrics', 'FontRenderContext', 'FontUIResource', 'Format', 'FormatConversionProvider', + 'FormView', 'Frame', 'FREE_MEM', 'GapContent', 'GeneralPath', 'GeneralSecurityException', + 'GlyphJustificationInfo', 'GlyphMetrics', 'GlyphVector', 'GlyphView', 'GlyphView.GlyphPainter', + 'GradientPaint', 'GraphicAttribute', 'Graphics', 'Graphics2D', 'GraphicsConfigTemplate', + 'GraphicsConfiguration', 'GraphicsDevice', 'GraphicsEnvironment', 'GrayFilter', 'GregorianCalendar', 'GridBagConstraints', 'GridBagLayout', 'GridLayout', 'Group', 'Guard', - 'GuardedObject', 'GZIPInputStream', 'GZIPOutputStream', - 'HasControls', - 'HashMap', - 'HashSet', - 'Hashtable', - 'HierarchyBoundsAdapter', - 'HierarchyBoundsListener', - 'HierarchyEvent', - 'HierarchyListener', - 'Highlighter', - 'Highlighter.Highlight', - 'Highlighter.HighlightPainter', - 'HTML', - 'HTML.Attribute', - 'HTML.Tag', - 'HTML.UnknownTag', - 'HTMLDocument', - 'HTMLDocument.Iterator', - 'HTMLEditorKit', - 'HTMLEditorKit.HTMLFactory', - 'HTMLEditorKit.HTMLTextAction', - 'HTMLEditorKit.InsertHTMLTextAction', - 'HTMLEditorKit.LinkController', - 'HTMLEditorKit.Parser', - 'HTMLEditorKit.ParserCallback', - 'HTMLFrameHyperlinkEvent', - 'HTMLWriter', - 'HttpURLConnection', - 'HyperlinkEvent', - 'HyperlinkEvent.EventType', - 'HyperlinkListener', - 'ICC_ColorSpace', - 'ICC_Profile', - 'ICC_ProfileGray', - 'ICC_ProfileRGB', - 'Icon', - 'IconUIResource', - 'IconView', - 'IdentifierHelper', - 'Identity', - 'IdentityScope', - 'IDLEntity', - 'IDLType', - 'IDLTypeHelper', 'IDLTypeOperations', - 'IllegalAccessError', - 'IllegalAccessException', - 'IllegalArgumentException', - 'IllegalComponentStateException', - 'IllegalMonitorStateException', - 'IllegalPathStateException', - 'IllegalStateException', - 'IllegalThreadStateException', - 'Image', - 'ImageConsumer', - 'ImageFilter', - 'ImageGraphicAttribute', - 'ImageIcon', - 'ImageObserver', - 'ImageProducer', - 'ImagingOpException', - 'IMP_LIMIT', - 'IncompatibleClassChangeError', - 'InconsistentTypeCode', - 'IndexColorModel', - 'IndexedPropertyDescriptor', - 'IndexOutOfBoundsException', - 'IndirectionException', - 'InetAddress', - 'Inflater', - 'InflaterInputStream', - 'InheritableThreadLocal', - 'InitialContext', - 'InitialContextFactory', - 'InitialContextFactoryBuilder', - 'InitialDirContext', - 'INITIALIZE', - 'Initializer', - 'InitialLdapContext', - 'InlineView', - 'InputContext', - 'InputEvent', - 'InputMap', - 'InputMapUIResource', - 'InputMethod', - 'InputMethodContext', - 'InputMethodDescriptor', - 'InputMethodEvent', - 'InputMethodHighlight', - 'InputMethodListener', - 'InputMethodRequests', - 'InputStream', - 'InputStream', - 'InputStream', - 'InputStreamReader', - 'InputSubset', - 'InputVerifier', - 'Insets', - 'InsetsUIResource', - 'InstantiationError', - 'InstantiationException', - 'Instrument', - 'InsufficientResourcesException', - 'Integer', - 'INTERNAL', - 'InternalError', 'InternalFrameAdapter', - 'InternalFrameEvent', - 'InternalFrameListener', - 'InternalFrameUI', - 'InterruptedException', - 'InterruptedIOException', - 'InterruptedNamingException', - 'INTF_REPOS', - 'IntHolder', - 'IntrospectionException', - 'Introspector', - 'INV_FLAG', - 'INV_IDENT', - 'INV_OBJREF', - 'INV_POLICY', - 'Invalid', - 'INVALID_TRANSACTION', - 'InvalidAlgorithmParameterException', - 'InvalidAttributeIdentifierException', - 'InvalidAttributesException', - 'InvalidAttributeValueException', - 'InvalidClassException', - 'InvalidDnDOperationException', - 'InvalidKeyException', - 'InvalidKeySpecException', - 'InvalidMidiDataException', - 'InvalidName', - 'InvalidName', - 'InvalidNameException', - 'InvalidNameHelper', - 'InvalidNameHolder', - 'InvalidObjectException', - 'InvalidParameterException', - 'InvalidParameterSpecException', - 'InvalidSearchControlsException', - 'InvalidSearchFilterException', - 'InvalidSeq', - 'InvalidTransactionException', - 'InvalidValue', - 'InvocationEvent', - 'InvocationHandler', - 'InvocationTargetException', - 'InvokeHandler', - 'IOException', - 'IRObject', - 'IRObjectOperations', 'IstringHelper', 'ItemEvent', 'ItemListener', - 'ItemSelectable', 'Iterator', 'JApplet', 'JarEntry', 'JarException', - 'JarFile', 'JarInputStream', 'JarOutputStream', 'JarURLConnection', - 'JButton', 'JCheckBox', 'JCheckBoxMenuItem', 'JColorChooser', - 'JComboBox', - 'JComboBox.KeySelectionManager', - 'JComponent', - 'JDesktopPane', - 'JDialog', - 'JEditorPane', - 'JFileChooser', - 'JFrame', - 'JInternalFrame', - 'JInternalFrame.JDesktopIcon', - 'JLabel', - 'JLayeredPane', - 'JList', - 'JMenu', - 'JMenuBar', - 'JMenuItem', - 'JobAttributes', - 'JobAttributes.DefaultSelectionType', - 'JobAttributes.DestinationType', - 'JobAttributes.DialogType', - 'JobAttributes.MultipleDocumentHandlingType', - 'JobAttributes.SidesType', - 'JOptionPane', - 'JPanel', - 'JPasswordField', - 'JPopupMenu', - 'JPopupMenu.Separator', - 'JProgressBar', - 'JRadioButton', - 'JRadioButtonMenuItem', - 'JRootPane', - 'JScrollBar', - 'JScrollPane', - 'JSeparator', - 'JSlider', - 'JSplitPane', - 'JTabbedPane', - 'JTable', - 'JTableHeader', - 'JTextArea', - 'JTextComponent', - 'JTextComponent.KeyBinding', 'JTextField', - 'JTextPane', - 'JToggleButton', - 'JToggleButton.ToggleButtonModel', - 'JToolBar', - 'JToolBar.Separator', - 'JToolTip', - 'JTree', - 'JTree.DynamicUtilTreeNode', - 'JTree.EmptySelectionModel', - 'JViewport', - 'JWindow', - 'Kernel', - 'Key', - 'KeyAdapter', - 'KeyEvent', - 'KeyException', - 'KeyFactory', - 'KeyFactorySpi', - 'KeyListener', - 'KeyManagementException', - 'Keymap', - 'KeyPair', - 'KeyPairGenerator', - 'KeyPairGeneratorSpi', - 'KeySpec', - 'KeyStore', - 'KeyStoreException', - 'KeyStoreSpi', - 'KeyStroke', - 'Label', - 'LabelUI', - 'LabelView', - 'LastOwnerException', - 'LayeredHighlighter', - 'LayeredHighlighter.LayerPainter', - 'LayoutManager', - 'LayoutManager2', - 'LayoutQueue', - 'LdapContext', - 'LdapReferralException', - 'Lease', - 'LimitExceededException', - 'Line', - 'Line.Info', - 'Line2D', - 'Line2D.Double', - 'Line2D.Float', - 'LineBorder', - 'LineBreakMeasurer', - 'LineEvent', - 'LineEvent.Type', - 'LineListener', - 'LineMetrics', - 'LineNumberInputStream', - 'LineNumberReader', - 'LineUnavailableException', - 'LinkageError', - 'LinkedList', - 'LinkException', - 'LinkLoopException', - 'LinkRef', - 'List', - 'List', - 'ListCellRenderer', - 'ListDataEvent', - 'ListDataListener', - 'ListIterator', - 'ListModel', - 'ListResourceBundle', - 'ListSelectionEvent', - 'ListSelectionListener', - 'ListSelectionModel', - 'ListUI', - 'ListView', - 'LoaderHandler', - 'Locale', - 'LocateRegistry', - 'LogStream', - 'Long', - 'LongHolder', - 'LongLongSeqHelper', - 'LongLongSeqHolder', - 'LongSeqHelper', - 'LongSeqHolder', - 'LookAndFeel', - 'LookupOp', - 'LookupTable', - 'MalformedLinkException', - 'MalformedURLException', - 'Manifest', 'Map', - 'Map.Entry', - 'MARSHAL', - 'MarshalException', - 'MarshalledObject', - 'Math', - 'MatteBorder', - 'MediaTracker', - 'Member', - 'MemoryImageSource', - 'Menu', - 'MenuBar', - 'MenuBarUI', - 'MenuComponent', - 'MenuContainer', - 'MenuDragMouseEvent', - 'MenuDragMouseListener', - 'MenuElement', - 'MenuEvent', - 'MenuItem', - 'MenuItemUI', - 'MenuKeyEvent', - 'MenuKeyListener', - 'MenuListener', - 'MenuSelectionManager', - 'MenuShortcut', - 'MessageDigest', - 'MessageDigestSpi', - 'MessageFormat', - 'MetaEventListener', - 'MetalBorders', - 'MetalBorders.ButtonBorder', - 'MetalBorders.Flush3DBorder', - 'MetalBorders.InternalFrameBorder', - 'MetalBorders.MenuBarBorder', - 'MetalBorders.MenuItemBorder', - 'MetalBorders.OptionDialogBorder', - 'MetalBorders.PaletteBorder', - 'MetalBorders.PopupMenuBorder', - 'MetalBorders.RolloverButtonBorder', - 'MetalBorders.ScrollPaneBorder', - 'MetalBorders.TableHeaderBorder', - 'MetalBorders.TextFieldBorder', - 'MetalBorders.ToggleButtonBorder', - 'MetalBorders.ToolBarBorder', - 'MetalButtonUI', - 'MetalCheckBoxIcon', - 'MetalCheckBoxUI', - 'MetalComboBoxButton', - 'MetalComboBoxEditor', - 'MetalComboBoxEditor.UIResource', - 'MetalComboBoxIcon', - 'MetalComboBoxUI', - 'MetalDesktopIconUI', - 'MetalFileChooserUI', - 'MetalIconFactory', - 'MetalIconFactory.FileIcon16', - 'MetalIconFactory.FolderIcon16', - 'MetalIconFactory.PaletteCloseIcon', - 'MetalIconFactory.TreeControlIcon', - 'MetalIconFactory.TreeFolderIcon', - 'MetalIconFactory.TreeLeafIcon', - 'MetalInternalFrameTitlePane', - 'MetalInternalFrameUI', - 'MetalLabelUI', - 'MetalLookAndFeel', - 'MetalPopupMenuSeparatorUI', - 'MetalProgressBarUI', - 'MetalRadioButtonUI', - 'MetalScrollBarUI', - 'MetalScrollButton', - 'MetalScrollPaneUI', - 'MetalSeparatorUI', - 'MetalSliderUI', - 'MetalSplitPaneUI', - 'MetalTabbedPaneUI', - 'MetalTextFieldUI', - 'MetalTheme', - 'MetalToggleButtonUI', - 'MetalToolBarUI', - 'MetalToolTipUI', - 'MetalTreeUI', - 'MetaMessage', - 'Method', - 'MethodDescriptor', - 'MidiChannel', - 'MidiDevice', - 'MidiDevice.Info', - 'MidiDeviceProvider', - 'MidiEvent', - 'MidiFileFormat', - 'MidiFileReader', - 'MidiFileWriter', - 'MidiMessage', - 'MidiSystem', - 'MidiUnavailableException', - 'MimeTypeParseException', - 'MinimalHTMLWriter', - 'MissingResourceException', - 'Mixer', - 'Mixer.Info', - 'MixerProvider', - 'ModificationItem', - 'Modifier', - 'MouseAdapter', - 'MouseDragGestureRecognizer', - 'MouseEvent', - 'MouseInputAdapter', - 'MouseInputListener', - 'MouseListener', - 'MouseMotionAdapter', - 'MouseMotionListener', - 'MultiButtonUI', - 'MulticastSocket', - 'MultiColorChooserUI', - 'MultiComboBoxUI', - 'MultiDesktopIconUI', - 'MultiDesktopPaneUI', - 'MultiFileChooserUI', - 'MultiInternalFrameUI', - 'MultiLabelUI', 'MultiListUI', - 'MultiLookAndFeel', - 'MultiMenuBarUI', - 'MultiMenuItemUI', - 'MultiOptionPaneUI', - 'MultiPanelUI', - 'MultiPixelPackedSampleModel', - 'MultipleMaster', - 'MultiPopupMenuUI', - 'MultiProgressBarUI', - 'MultiScrollBarUI', - 'MultiScrollPaneUI', - 'MultiSeparatorUI', - 'MultiSliderUI', - 'MultiSplitPaneUI', - 'MultiTabbedPaneUI', - 'MultiTableHeaderUI', - 'MultiTableUI', - 'MultiTextUI', - 'MultiToolBarUI', - 'MultiToolTipUI', - 'MultiTreeUI', - 'MultiViewportUI', - 'MutableAttributeSet', - 'MutableComboBoxModel', - 'MutableTreeNode', - 'Name', - 'NameAlreadyBoundException', - 'NameClassPair', - 'NameComponent', - 'NameComponentHelper', - 'NameComponentHolder', - 'NamedValue', - 'NameHelper', - 'NameHolder', - 'NameNotFoundException', - 'NameParser', - 'NamespaceChangeListener', - 'NameValuePair', - 'NameValuePairHelper', - 'Naming', - 'NamingContext', - 'NamingContextHelper', - 'NamingContextHolder', - 'NamingContextOperations', - 'NamingEnumeration', - 'NamingEvent', - 'NamingException', - 'NamingExceptionEvent', - 'NamingListener', - 'NamingManager', - 'NamingSecurityException', - 'NegativeArraySizeException', - 'NetPermission', - 'NO_IMPLEMENT', - 'NO_MEMORY', - 'NO_PERMISSION', - 'NO_RESOURCES', - 'NO_RESPONSE', - 'NoClassDefFoundError', - 'NoInitialContextException', 'NoninvertibleTransformException', - 'NoPermissionException', - 'NoRouteToHostException', - 'NoSuchAlgorithmException', - 'NoSuchAttributeException', - 'NoSuchElementException', - 'NoSuchFieldError', - 'NoSuchFieldException', - 'NoSuchMethodError', - 'NoSuchMethodException', - 'NoSuchObjectException', - 'NoSuchProviderException', - 'NotActiveException', - 'NotBoundException', - 'NotContextException', - 'NotEmpty', - 'NotEmptyHelper', - 'NotEmptyHolder', - 'NotFound', - 'NotFoundHelper', - 'NotFoundHolder', - 'NotFoundReason', - 'NotFoundReasonHelper', - 'NotFoundReasonHolder', - 'NotOwnerException', - 'NotSerializableException', - 'NullPointerException', - 'Number', - 'NumberFormat', 'NumberFormatException', 'NVList', - 'OBJ_ADAPTER', 'Object', 'OBJECT_NOT_EXIST', 'ObjectChangeListener', - 'ObjectFactory', - 'ObjectFactoryBuilder', - 'ObjectHelper', - 'ObjectHolder', - 'ObjectImpl', 'ObjectImpl', - 'ObjectInput', - 'ObjectInputStream', - 'ObjectInputStream.GetField', - 'ObjectInputValidation', - 'ObjectOutput', - 'ObjectOutputStream', - 'ObjectOutputStream.PutField', - 'ObjectStreamClass', - 'ObjectStreamConstants', - 'ObjectStreamException', - 'ObjectStreamField', - 'ObjectView', - 'ObjID', - 'Observable', - 'Observer', - 'OctetSeqHelper', - 'OctetSeqHolder', - 'OMGVMCID', - 'OpenType', - 'Operation', - 'OperationNotSupportedException', - 'Option', - 'OptionalDataException', - 'OptionPaneUI', - 'ORB', - 'OutOfMemoryError', - 'OutputStream', - 'OutputStreamWriter', - 'OverlayLayout', - 'Owner', - 'Package', - 'PackedColorModel', - 'Pageable', - 'PageAttributes', - 'PageAttributes.ColorType', - 'PageAttributes.MediaType', - 'PageAttributes.OrientationRequestedType', - 'PageAttributes.OriginType', - 'PageAttributes.PrintQualityType', - 'PageFormat', - 'Paint', - 'PaintContext', - 'PaintEvent', - 'Panel', - 'PanelUI', - 'Paper', - 'ParagraphView', - 'ParagraphView', - 'ParameterBlock', - 'ParameterDescriptor', - 'ParseException', - 'ParsePosition', - 'Parser', - 'ParserDelegator', - 'PartialResultException', - 'PasswordAuthentication', - 'PasswordView', - 'Patch', - 'PathIterator', - 'Permission', - 'Permission', - 'PermissionCollection', - 'Permissions', - 'PERSIST_STORE', - 'PhantomReference', - 'PipedInputStream', - 'PipedOutputStream', - 'PipedReader', - 'PipedWriter', - 'PixelGrabber', - 'PixelInterleavedSampleModel', - 'PKCS8EncodedKeySpec', - 'PlainDocument', - 'PlainView', - 'Point', - 'Point2D', - 'Point2D.Double', - 'Point2D.Float', - 'Policy', - 'Policy', - 'PolicyError', - 'PolicyHelper', - 'PolicyHolder', - 'PolicyListHelper', - 'PolicyListHolder', - 'PolicyOperations', 'PolicyTypeHelper', - 'Polygon', - 'PopupMenu', - 'PopupMenuEvent', - 'PopupMenuListener', - 'PopupMenuUI', - 'Port', - 'Port.Info', - 'PortableRemoteObject', - 'PortableRemoteObjectDelegate', - 'Position', - 'Position.Bias', - 'PreparedStatement', - 'Principal', - 'Principal', - 'PrincipalHolder', - 'Printable', - 'PrinterAbortException', - 'PrinterException', - 'PrinterGraphics', - 'PrinterIOException', - 'PrinterJob', - 'PrintGraphics', - 'PrintJob', - 'PrintStream', - 'PrintWriter', - 'PRIVATE_MEMBER', - 'PrivateKey', - 'PrivilegedAction', - 'PrivilegedActionException', - 'PrivilegedExceptionAction', - 'Process', - 'ProfileDataException', - 'ProgressBarUI', - 'ProgressMonitor', - 'ProgressMonitorInputStream', - 'Properties', - 'PropertyChangeEvent', - 'PropertyChangeListener', - 'PropertyChangeSupport', - 'PropertyDescriptor', - 'PropertyEditor', - 'PropertyEditorManager', - 'PropertyEditorSupport', - 'PropertyPermission', - 'PropertyResourceBundle', - 'PropertyVetoException', - 'ProtectionDomain', - 'ProtocolException', - 'Provider', - 'ProviderException', - 'Proxy', - 'PUBLIC_MEMBER', - 'PublicKey', - 'PushbackInputStream', - 'PushbackReader', - 'QuadCurve2D', - 'QuadCurve2D.Double', - 'QuadCurve2D.Float', - 'Random', - 'RandomAccessFile', 'Raster', 'RasterFormatException', 'RasterOp', - 'Reader', 'Receiver', 'Rectangle', 'Rectangle2D', 'Rectangle2D.Double', - 'Rectangle2D.Float', 'RectangularShape', 'Ref', 'RefAddr', 'Reference', - 'Referenceable', 'ReferenceQueue', 'ReferralException', - 'ReflectPermission', 'Registry', 'RegistryHandler', 'RemarshalException', - 'Remote', 'RemoteCall', 'RemoteException', 'RemoteObject', 'RemoteRef', - 'RemoteServer', - 'RemoteStub', - 'RenderableImage', - 'RenderableImageOp', - 'RenderableImageProducer', - 'RenderContext', - 'RenderedImage', - 'RenderedImageFactory', - 'Renderer', - 'RenderingHints', - 'RenderingHints.Key', - 'RepaintManager', - 'ReplicateScaleFilter', - 'Repository', - 'RepositoryIdHelper', - 'Request', - 'RescaleOp', - 'Resolver', - 'ResolveResult', - 'ResourceBundle', - 'ResponseHandler', - 'ResultSet', - 'ResultSetMetaData', - 'ReverbType', - 'RGBImageFilter', - 'RMIClassLoader', - 'RMIClientSocketFactory', - 'RMIFailureHandler', - 'RMISecurityException', - 'RMISecurityManager', - 'RMIServerSocketFactory', - 'RMISocketFactory', - 'Robot', - 'RootPaneContainer', - 'RootPaneUI', - 'RoundRectangle2D', - 'RoundRectangle2D.Double', - 'RoundRectangle2D.Float', - 'RowMapper', - 'RSAKey', - 'RSAKeyGenParameterSpec', - 'RSAPrivateCrtKey', - 'RSAPrivateCrtKeySpec', - 'RSAPrivateKey', - 'RSAPrivateKeySpec', - 'RSAPublicKey', - 'RSAPublicKeySpec', - 'RTFEditorKit', - 'RuleBasedCollator', - 'Runnable', - 'Runtime', - 'RunTime', - 'RuntimeException', - 'RunTimeOperations', - 'RuntimePermission', - 'SampleModel', - 'SchemaViolationException', - 'Scrollable', - 'Scrollbar', - 'ScrollBarUI', - 'ScrollPane', - 'ScrollPaneConstants', - 'ScrollPaneLayout', - 'ScrollPaneLayout.UIResource', - 'ScrollPaneUI', - 'SearchControls', - 'SearchResult', - 'SecureClassLoader', - 'SecureRandom', - 'SecureRandomSpi', - 'Security', - 'SecurityException', - 'SecurityManager', - 'SecurityPermission', - 'Segment', - 'SeparatorUI', - 'Sequence', - 'SequenceInputStream', - 'Sequencer', - 'Sequencer.SyncMode', - 'Serializable', - 'SerializablePermission', - 'ServantObject', - 'ServerCloneException', - 'ServerError', 'ServerException', - 'ServerNotActiveException', - 'ServerRef', - 'ServerRequest', - 'ServerRuntimeException', - 'ServerSocket', - 'ServiceDetail', - 'ServiceDetailHelper', - 'ServiceInformation', - 'ServiceInformationHelper', - 'ServiceInformationHolder', - 'ServiceUnavailableException', - 'Set', - 'SetOverrideType', - 'SetOverrideTypeHelper', - 'Shape', - 'ShapeGraphicAttribute', - 'Short', - 'ShortHolder', - 'ShortLookupTable', - 'ShortMessage', - 'ShortSeqHelper', - 'ShortSeqHolder', - 'Signature', - 'SignatureException', - 'SignatureSpi', - 'SignedObject', - 'Signer', - 'SimpleAttributeSet', - 'SimpleBeanInfo', - 'SimpleDateFormat', - 'SimpleTimeZone', - 'SinglePixelPackedSampleModel', - 'SingleSelectionModel', - 'SizeLimitExceededException', - 'SizeRequirements', - 'SizeSequence', - 'Skeleton', - 'SkeletonMismatchException', - 'SkeletonNotFoundException', - 'SliderUI', - 'Socket', - 'SocketException', - 'SocketImpl', - 'SocketImplFactory', - 'SocketOptions', - 'SocketPermission', - 'SocketSecurityException', - 'SoftBevelBorder', - 'SoftReference', - 'SortedMap', - 'SortedSet', - 'Soundbank', - 'SoundbankReader', - 'SoundbankResource', - 'SourceDataLine', - 'SplitPaneUI', - 'SQLData', - 'SQLException', - 'SQLInput', - 'SQLOutput', 'SQLPermission', - 'SQLWarning', - 'Stack', - 'StackOverflowError', - 'StateEdit', - 'StateEditable', - 'StateFactory', - 'Statement', - 'Streamable', - 'StreamableValue', - 'StreamCorruptedException', - 'StreamTokenizer', - 'StrictMath', - 'String', - 'StringBuffer', - 'StringBufferInputStream', - 'StringCharacterIterator', - 'StringContent', - 'StringHolder', - 'StringIndexOutOfBoundsException', - 'StringReader', - 'StringRefAddr', - 'StringSelection', - 'StringTokenizer', - 'StringValueHelper', - 'StringWriter', - 'Stroke', - 'Struct', - 'StructMember', - 'StructMemberHelper', - 'Stub', - 'StubDelegate', - 'StubNotFoundException', - 'Style', - 'StyleConstants', - 'StyleConstants.CharacterConstants', - 'StyleConstants.ColorConstants', - 'StyleConstants.FontConstants', - 'StyleConstants.ParagraphConstants', - 'StyleContext', - 'StyledDocument', - 'StyledEditorKit', - 'StyledEditorKit.AlignmentAction', - 'StyledEditorKit.BoldAction', - 'StyledEditorKit.FontFamilyAction', - 'StyledEditorKit.FontSizeAction', - 'StyledEditorKit.ForegroundAction', - 'StyledEditorKit.ItalicAction', - 'StyledEditorKit.StyledTextAction', - 'StyledEditorKit.UnderlineAction', - 'StyleSheet', - 'StyleSheet.BoxPainter', - 'StyleSheet.ListPainter', - 'SwingConstants', - 'SwingPropertyChangeSupport', - 'SwingUtilities', - 'SyncFailedException', - 'Synthesizer', - 'SysexMessage', - 'System', - 'SystemColor', 'SystemException', - 'SystemFlavorMap', - 'TabableView', - 'TabbedPaneUI', - 'TabExpander', - 'TableCellEditor', - 'TableCellRenderer', - 'TableColumn', - 'TableColumnModel', - 'TableColumnModelEvent', - 'TableColumnModelListener', - 'TableHeaderUI', - 'TableModel', - 'TableModelEvent', - 'TableModelListener', - 'TableUI', - 'TableView', - 'TabSet', - 'TabStop', - 'TagElement', - 'TargetDataLine', - 'TCKind', - 'TextAction', - 'TextArea', - 'TextAttribute', - 'TextComponent', - 'TextEvent', - 'TextField', - 'TextHitInfo', - 'TextLayout', - 'TextLayout.CaretPolicy', - 'TextListener', - 'TextMeasurer', - 'TextUI', - 'TexturePaint', - 'Thread', - 'ThreadDeath', - 'ThreadGroup', - 'ThreadLocal', - 'Throwable', - 'Tie', - 'TileObserver', - 'Time', - 'TimeLimitExceededException', - 'Timer', - 'Timer', - 'TimerTask', - 'Timestamp', - 'TimeZone', - 'TitledBorder', - 'ToolBarUI', - 'Toolkit', - 'ToolTipManager', - 'ToolTipUI', - 'TooManyListenersException', - 'Track', - 'TRANSACTION_REQUIRED', - 'TRANSACTION_ROLLEDBACK', - 'TransactionRequiredException', - 'TransactionRolledbackException', - 'Transferable', - 'TransformAttribute', - 'TRANSIENT', - 'Transmitter', - 'Transparency', - 'TreeCellEditor', - 'TreeCellRenderer', - 'TreeExpansionEvent', - 'TreeExpansionListener', - 'TreeMap', - 'TreeModel', - 'TreeModelEvent', - 'TreeModelListener', - 'TreeNode', - 'TreePath', - 'TreeSelectionEvent', - 'TreeSelectionListener', - 'TreeSelectionModel', - 'TreeSet', - 'TreeUI', - 'TreeWillExpandListener', - 'TypeCode', - 'TypeCodeHolder', - 'TypeMismatch', - 'Types', - 'UID', - 'UIDefaults', - 'UIDefaults.ActiveValue', - 'UIDefaults.LazyInputMap', - 'UIDefaults.LazyValue', - 'UIDefaults.ProxyLazyValue', 'UIManager', - 'UIManager.LookAndFeelInfo', - 'UIResource', - 'ULongLongSeqHelper', - 'ULongLongSeqHolder', - 'ULongSeqHelper', - 'ULongSeqHolder', - 'UndeclaredThrowableException', - 'UndoableEdit', - 'UndoableEditEvent', - 'UndoableEditListener', - 'UndoableEditSupport', - 'UndoManager', - 'UnexpectedException', - 'UnicastRemoteObject', - 'UnionMember', - 'UnionMemberHelper', - 'UNKNOWN', - 'UnknownError', - 'UnknownException', - 'UnknownGroupException', - 'UnknownHostException', - 'UnknownHostException', - 'UnknownObjectException', - 'UnknownServiceException', - 'UnknownUserException', - 'UnmarshalException', - 'UnrecoverableKeyException', - 'Unreferenced', - 'UnresolvedPermission', - 'UnsatisfiedLinkError', - 'UnsolicitedNotification', - 'UnsolicitedNotificationEvent', - 'UnsolicitedNotificationListener', - 'UNSUPPORTED_POLICY', - 'UNSUPPORTED_POLICY_VALUE', - 'UnsupportedAudioFileException', - 'UnsupportedClassVersionError', - 'UnsupportedEncodingException', - 'UnsupportedFlavorException', - 'UnsupportedLookAndFeelException', - 'UnsupportedOperationException', - 'URL', - 'URLClassLoader', - 'URLConnection', - 'URLDecoder', - 'URLEncoder', - 'URLStreamHandler', - 'URLStreamHandlerFactory', - 'UserException', - 'UShortSeqHelper', - 'UShortSeqHolder', - 'UTFDataFormatException', - 'Util', - 'UtilDelegate', - 'Utilities', - 'ValueBase', - 'ValueBaseHelper', - 'ValueBaseHolder', - 'ValueFactory', - 'ValueHandler', - 'ValueMember', - 'ValueMemberHelper', - 'VariableHeightLayoutCache', - 'Vector', - 'VerifyError', - 'VersionSpecHelper', - 'VetoableChangeListener', - 'VetoableChangeSupport', - 'View', - 'ViewFactory', - 'ViewportLayout', - 'ViewportUI', - 'VirtualMachineError', - 'Visibility', - 'VisibilityHelper', - 'VM_ABSTRACT', - 'VM_CUSTOM', - 'VM_NONE', - 'VM_TRUNCATABLE', - 'VMID', - 'VoiceStatus', - 'Void', - 'WCharSeqHelper', - 'WCharSeqHolder', - 'WeakHashMap', - 'WeakReference', - 'Window', - 'WindowAdapter', - 'WindowConstants', - 'WindowEvent', 'WindowListener', - 'WrappedPlainView', - 'WritableRaster', - 'WritableRenderedImage', - 'WriteAbortedException', - 'Writer', - 'WrongTransaction', - 'WStringValueHelper', - 'X509Certificate', - 'X509CRL', - 'X509CRLEntry', - 'X509EncodedKeySpec', - 'X509Extension', - 'ZipEntry', - 'ZipException', - 'ZipFile', - 'ZipInputStream', - 'ZipOutputStream', - 'ZoneView', - '_BindingIteratorImplBase', - '_BindingIteratorStub', - '_IDLTypeStub', - '_NamingContextImplBase', - '_NamingContextStub', - '_PolicyStub', - '_Remote_Stub ' - ), - 4 => array( - 'void', 'double', 'int', 'boolean', 'byte', 'short', 'long', 'char', 'float' - ) - ), - 'SYMBOLS' => array( - '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false, - 2 => false, - 3 => true, - 4 => true - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #b1b100;', - 2 => 'color: #000000; font-weight: bold;', - 3 => 'color: #aaaadd; font-weight: bold;', - 4 => 'color: #993333;' - ), - 'COMMENTS' => array( - 1=> 'color: #808080; font-style: italic;', - 2=> 'color: #a1a100;', - 'MULTI' => '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( - 1 => 'color: #006600;', - 2 => 'color: #006600;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'SCRIPT' => array( - ), - 'REGEXPS' => array( - ) - ), - 'URLS' => array( - 1 => '', - 2 => '', - 3 => 'http://www.google.com/search?hl=en&q=allinurl%3A{FNAME}+java.sun.com&btnI=I%27m%20Feeling%20Lucky', - 4 => '' - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.' - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + 'GuardedObject', 'GZIPInputStream', 'GZIPOutputStream', + 'HasControls', + 'HashMap', + 'HashSet', + 'Hashtable', + 'HierarchyBoundsAdapter', + 'HierarchyBoundsListener', + 'HierarchyEvent', + 'HierarchyListener', + 'Highlighter', + 'Highlighter.Highlight', + 'Highlighter.HighlightPainter', + 'HTML', + 'HTML.Attribute', + 'HTML.Tag', + 'HTML.UnknownTag', + 'HTMLDocument', + 'HTMLDocument.Iterator', + 'HTMLEditorKit', + 'HTMLEditorKit.HTMLFactory', + 'HTMLEditorKit.HTMLTextAction', + 'HTMLEditorKit.InsertHTMLTextAction', + 'HTMLEditorKit.LinkController', + 'HTMLEditorKit.Parser', + 'HTMLEditorKit.ParserCallback', + 'HTMLFrameHyperlinkEvent', + 'HTMLWriter', + 'HttpURLConnection', + 'HyperlinkEvent', + 'HyperlinkEvent.EventType', + 'HyperlinkListener', + 'ICC_ColorSpace', + 'ICC_Profile', + 'ICC_ProfileGray', + 'ICC_ProfileRGB', + 'Icon', + 'IconUIResource', + 'IconView', + 'IdentifierHelper', + 'Identity', + 'IdentityScope', + 'IDLEntity', + 'IDLType', + 'IDLTypeHelper', 'IDLTypeOperations', + 'IllegalAccessError', + 'IllegalAccessException', + 'IllegalArgumentException', + 'IllegalComponentStateException', + 'IllegalMonitorStateException', + 'IllegalPathStateException', + 'IllegalStateException', + 'IllegalThreadStateException', + 'Image', + 'ImageConsumer', + 'ImageFilter', + 'ImageGraphicAttribute', + 'ImageIcon', + 'ImageObserver', + 'ImageProducer', + 'ImagingOpException', + 'IMP_LIMIT', + 'IncompatibleClassChangeError', + 'InconsistentTypeCode', + 'IndexColorModel', + 'IndexedPropertyDescriptor', + 'IndexOutOfBoundsException', + 'IndirectionException', + 'InetAddress', + 'Inflater', + 'InflaterInputStream', + 'InheritableThreadLocal', + 'InitialContext', + 'InitialContextFactory', + 'InitialContextFactoryBuilder', + 'InitialDirContext', + 'INITIALIZE', + 'Initializer', + 'InitialLdapContext', + 'InlineView', + 'InputContext', + 'InputEvent', + 'InputMap', + 'InputMapUIResource', + 'InputMethod', + 'InputMethodContext', + 'InputMethodDescriptor', + 'InputMethodEvent', + 'InputMethodHighlight', + 'InputMethodListener', + 'InputMethodRequests', + 'InputStream', + 'InputStream', + 'InputStream', + 'InputStreamReader', + 'InputSubset', + 'InputVerifier', + 'Insets', + 'InsetsUIResource', + 'InstantiationError', + 'InstantiationException', + 'Instrument', + 'InsufficientResourcesException', + 'Integer', + 'INTERNAL', + 'InternalError', 'InternalFrameAdapter', + 'InternalFrameEvent', + 'InternalFrameListener', + 'InternalFrameUI', + 'InterruptedException', + 'InterruptedIOException', + 'InterruptedNamingException', + 'INTF_REPOS', + 'IntHolder', + 'IntrospectionException', + 'Introspector', + 'INV_FLAG', + 'INV_IDENT', + 'INV_OBJREF', + 'INV_POLICY', + 'Invalid', + 'INVALID_TRANSACTION', + 'InvalidAlgorithmParameterException', + 'InvalidAttributeIdentifierException', + 'InvalidAttributesException', + 'InvalidAttributeValueException', + 'InvalidClassException', + 'InvalidDnDOperationException', + 'InvalidKeyException', + 'InvalidKeySpecException', + 'InvalidMidiDataException', + 'InvalidName', + 'InvalidName', + 'InvalidNameException', + 'InvalidNameHelper', + 'InvalidNameHolder', + 'InvalidObjectException', + 'InvalidParameterException', + 'InvalidParameterSpecException', + 'InvalidSearchControlsException', + 'InvalidSearchFilterException', + 'InvalidSeq', + 'InvalidTransactionException', + 'InvalidValue', + 'InvocationEvent', + 'InvocationHandler', + 'InvocationTargetException', + 'InvokeHandler', + 'IOException', + 'IRObject', + 'IRObjectOperations', 'IstringHelper', 'ItemEvent', 'ItemListener', + 'ItemSelectable', 'Iterator', 'JApplet', 'JarEntry', 'JarException', + 'JarFile', 'JarInputStream', 'JarOutputStream', 'JarURLConnection', + 'JButton', 'JCheckBox', 'JCheckBoxMenuItem', 'JColorChooser', + 'JComboBox', + 'JComboBox.KeySelectionManager', + 'JComponent', + 'JDesktopPane', + 'JDialog', + 'JEditorPane', + 'JFileChooser', + 'JFrame', + 'JInternalFrame', + 'JInternalFrame.JDesktopIcon', + 'JLabel', + 'JLayeredPane', + 'JList', + 'JMenu', + 'JMenuBar', + 'JMenuItem', + 'JobAttributes', + 'JobAttributes.DefaultSelectionType', + 'JobAttributes.DestinationType', + 'JobAttributes.DialogType', + 'JobAttributes.MultipleDocumentHandlingType', + 'JobAttributes.SidesType', + 'JOptionPane', + 'JPanel', + 'JPasswordField', + 'JPopupMenu', + 'JPopupMenu.Separator', + 'JProgressBar', + 'JRadioButton', + 'JRadioButtonMenuItem', + 'JRootPane', + 'JScrollBar', + 'JScrollPane', + 'JSeparator', + 'JSlider', + 'JSplitPane', + 'JTabbedPane', + 'JTable', + 'JTableHeader', + 'JTextArea', + 'JTextComponent', + 'JTextComponent.KeyBinding', 'JTextField', + 'JTextPane', + 'JToggleButton', + 'JToggleButton.ToggleButtonModel', + 'JToolBar', + 'JToolBar.Separator', + 'JToolTip', + 'JTree', + 'JTree.DynamicUtilTreeNode', + 'JTree.EmptySelectionModel', + 'JViewport', + 'JWindow', + 'Kernel', + 'Key', + 'KeyAdapter', + 'KeyEvent', + 'KeyException', + 'KeyFactory', + 'KeyFactorySpi', + 'KeyListener', + 'KeyManagementException', + 'Keymap', + 'KeyPair', + 'KeyPairGenerator', + 'KeyPairGeneratorSpi', + 'KeySpec', + 'KeyStore', + 'KeyStoreException', + 'KeyStoreSpi', + 'KeyStroke', + 'Label', + 'LabelUI', + 'LabelView', + 'LastOwnerException', + 'LayeredHighlighter', + 'LayeredHighlighter.LayerPainter', + 'LayoutManager', + 'LayoutManager2', + 'LayoutQueue', + 'LdapContext', + 'LdapReferralException', + 'Lease', + 'LimitExceededException', + 'Line', + 'Line.Info', + 'Line2D', + 'Line2D.Double', + 'Line2D.Float', + 'LineBorder', + 'LineBreakMeasurer', + 'LineEvent', + 'LineEvent.Type', + 'LineListener', + 'LineMetrics', + 'LineNumberInputStream', + 'LineNumberReader', + 'LineUnavailableException', + 'LinkageError', + 'LinkedList', + 'LinkException', + 'LinkLoopException', + 'LinkRef', + 'List', + 'List', + 'ListCellRenderer', + 'ListDataEvent', + 'ListDataListener', + 'ListIterator', + 'ListModel', + 'ListResourceBundle', + 'ListSelectionEvent', + 'ListSelectionListener', + 'ListSelectionModel', + 'ListUI', + 'ListView', + 'LoaderHandler', + 'Locale', + 'LocateRegistry', + 'LogStream', + 'Long', + 'LongHolder', + 'LongLongSeqHelper', + 'LongLongSeqHolder', + 'LongSeqHelper', + 'LongSeqHolder', + 'LookAndFeel', + 'LookupOp', + 'LookupTable', + 'MalformedLinkException', + 'MalformedURLException', + 'Manifest', 'Map', + 'Map.Entry', + 'MARSHAL', + 'MarshalException', + 'MarshalledObject', + 'Math', + 'MatteBorder', + 'MediaTracker', + 'Member', + 'MemoryImageSource', + 'Menu', + 'MenuBar', + 'MenuBarUI', + 'MenuComponent', + 'MenuContainer', + 'MenuDragMouseEvent', + 'MenuDragMouseListener', + 'MenuElement', + 'MenuEvent', + 'MenuItem', + 'MenuItemUI', + 'MenuKeyEvent', + 'MenuKeyListener', + 'MenuListener', + 'MenuSelectionManager', + 'MenuShortcut', + 'MessageDigest', + 'MessageDigestSpi', + 'MessageFormat', + 'MetaEventListener', + 'MetalBorders', + 'MetalBorders.ButtonBorder', + 'MetalBorders.Flush3DBorder', + 'MetalBorders.InternalFrameBorder', + 'MetalBorders.MenuBarBorder', + 'MetalBorders.MenuItemBorder', + 'MetalBorders.OptionDialogBorder', + 'MetalBorders.PaletteBorder', + 'MetalBorders.PopupMenuBorder', + 'MetalBorders.RolloverButtonBorder', + 'MetalBorders.ScrollPaneBorder', + 'MetalBorders.TableHeaderBorder', + 'MetalBorders.TextFieldBorder', + 'MetalBorders.ToggleButtonBorder', + 'MetalBorders.ToolBarBorder', + 'MetalButtonUI', + 'MetalCheckBoxIcon', + 'MetalCheckBoxUI', + 'MetalComboBoxButton', + 'MetalComboBoxEditor', + 'MetalComboBoxEditor.UIResource', + 'MetalComboBoxIcon', + 'MetalComboBoxUI', + 'MetalDesktopIconUI', + 'MetalFileChooserUI', + 'MetalIconFactory', + 'MetalIconFactory.FileIcon16', + 'MetalIconFactory.FolderIcon16', + 'MetalIconFactory.PaletteCloseIcon', + 'MetalIconFactory.TreeControlIcon', + 'MetalIconFactory.TreeFolderIcon', + 'MetalIconFactory.TreeLeafIcon', + 'MetalInternalFrameTitlePane', + 'MetalInternalFrameUI', + 'MetalLabelUI', + 'MetalLookAndFeel', + 'MetalPopupMenuSeparatorUI', + 'MetalProgressBarUI', + 'MetalRadioButtonUI', + 'MetalScrollBarUI', + 'MetalScrollButton', + 'MetalScrollPaneUI', + 'MetalSeparatorUI', + 'MetalSliderUI', + 'MetalSplitPaneUI', + 'MetalTabbedPaneUI', + 'MetalTextFieldUI', + 'MetalTheme', + 'MetalToggleButtonUI', + 'MetalToolBarUI', + 'MetalToolTipUI', + 'MetalTreeUI', + 'MetaMessage', + 'Method', + 'MethodDescriptor', + 'MidiChannel', + 'MidiDevice', + 'MidiDevice.Info', + 'MidiDeviceProvider', + 'MidiEvent', + 'MidiFileFormat', + 'MidiFileReader', + 'MidiFileWriter', + 'MidiMessage', + 'MidiSystem', + 'MidiUnavailableException', + 'MimeTypeParseException', + 'MinimalHTMLWriter', + 'MissingResourceException', + 'Mixer', + 'Mixer.Info', + 'MixerProvider', + 'ModificationItem', + 'Modifier', + 'MouseAdapter', + 'MouseDragGestureRecognizer', + 'MouseEvent', + 'MouseInputAdapter', + 'MouseInputListener', + 'MouseListener', + 'MouseMotionAdapter', + 'MouseMotionListener', + 'MultiButtonUI', + 'MulticastSocket', + 'MultiColorChooserUI', + 'MultiComboBoxUI', + 'MultiDesktopIconUI', + 'MultiDesktopPaneUI', + 'MultiFileChooserUI', + 'MultiInternalFrameUI', + 'MultiLabelUI', 'MultiListUI', + 'MultiLookAndFeel', + 'MultiMenuBarUI', + 'MultiMenuItemUI', + 'MultiOptionPaneUI', + 'MultiPanelUI', + 'MultiPixelPackedSampleModel', + 'MultipleMaster', + 'MultiPopupMenuUI', + 'MultiProgressBarUI', + 'MultiScrollBarUI', + 'MultiScrollPaneUI', + 'MultiSeparatorUI', + 'MultiSliderUI', + 'MultiSplitPaneUI', + 'MultiTabbedPaneUI', + 'MultiTableHeaderUI', + 'MultiTableUI', + 'MultiTextUI', + 'MultiToolBarUI', + 'MultiToolTipUI', + 'MultiTreeUI', + 'MultiViewportUI', + 'MutableAttributeSet', + 'MutableComboBoxModel', + 'MutableTreeNode', + 'Name', + 'NameAlreadyBoundException', + 'NameClassPair', + 'NameComponent', + 'NameComponentHelper', + 'NameComponentHolder', + 'NamedValue', + 'NameHelper', + 'NameHolder', + 'NameNotFoundException', + 'NameParser', + 'NamespaceChangeListener', + 'NameValuePair', + 'NameValuePairHelper', + 'Naming', + 'NamingContext', + 'NamingContextHelper', + 'NamingContextHolder', + 'NamingContextOperations', + 'NamingEnumeration', + 'NamingEvent', + 'NamingException', + 'NamingExceptionEvent', + 'NamingListener', + 'NamingManager', + 'NamingSecurityException', + 'NegativeArraySizeException', + 'NetPermission', + 'NO_IMPLEMENT', + 'NO_MEMORY', + 'NO_PERMISSION', + 'NO_RESOURCES', + 'NO_RESPONSE', + 'NoClassDefFoundError', + 'NoInitialContextException', 'NoninvertibleTransformException', + 'NoPermissionException', + 'NoRouteToHostException', + 'NoSuchAlgorithmException', + 'NoSuchAttributeException', + 'NoSuchElementException', + 'NoSuchFieldError', + 'NoSuchFieldException', + 'NoSuchMethodError', + 'NoSuchMethodException', + 'NoSuchObjectException', + 'NoSuchProviderException', + 'NotActiveException', + 'NotBoundException', + 'NotContextException', + 'NotEmpty', + 'NotEmptyHelper', + 'NotEmptyHolder', + 'NotFound', + 'NotFoundHelper', + 'NotFoundHolder', + 'NotFoundReason', + 'NotFoundReasonHelper', + 'NotFoundReasonHolder', + 'NotOwnerException', + 'NotSerializableException', + 'NullPointerException', + 'Number', + 'NumberFormat', 'NumberFormatException', 'NVList', + 'OBJ_ADAPTER', 'Object', 'OBJECT_NOT_EXIST', 'ObjectChangeListener', + 'ObjectFactory', + 'ObjectFactoryBuilder', + 'ObjectHelper', + 'ObjectHolder', + 'ObjectImpl', 'ObjectImpl', + 'ObjectInput', + 'ObjectInputStream', + 'ObjectInputStream.GetField', + 'ObjectInputValidation', + 'ObjectOutput', + 'ObjectOutputStream', + 'ObjectOutputStream.PutField', + 'ObjectStreamClass', + 'ObjectStreamConstants', + 'ObjectStreamException', + 'ObjectStreamField', + 'ObjectView', + 'ObjID', + 'Observable', + 'Observer', + 'OctetSeqHelper', + 'OctetSeqHolder', + 'OMGVMCID', + 'OpenType', + 'Operation', + 'OperationNotSupportedException', + 'Option', + 'OptionalDataException', + 'OptionPaneUI', + 'ORB', + 'OutOfMemoryError', + 'OutputStream', + 'OutputStreamWriter', + 'OverlayLayout', + 'Owner', + 'Package', + 'PackedColorModel', + 'Pageable', + 'PageAttributes', + 'PageAttributes.ColorType', + 'PageAttributes.MediaType', + 'PageAttributes.OrientationRequestedType', + 'PageAttributes.OriginType', + 'PageAttributes.PrintQualityType', + 'PageFormat', + 'Paint', + 'PaintContext', + 'PaintEvent', + 'Panel', + 'PanelUI', + 'Paper', + 'ParagraphView', + 'ParagraphView', + 'ParameterBlock', + 'ParameterDescriptor', + 'ParseException', + 'ParsePosition', + 'Parser', + 'ParserDelegator', + 'PartialResultException', + 'PasswordAuthentication', + 'PasswordView', + 'Patch', + 'PathIterator', + 'Permission', + 'Permission', + 'PermissionCollection', + 'Permissions', + 'PERSIST_STORE', + 'PhantomReference', + 'PipedInputStream', + 'PipedOutputStream', + 'PipedReader', + 'PipedWriter', + 'PixelGrabber', + 'PixelInterleavedSampleModel', + 'PKCS8EncodedKeySpec', + 'PlainDocument', + 'PlainView', + 'Point', + 'Point2D', + 'Point2D.Double', + 'Point2D.Float', + 'Policy', + 'Policy', + 'PolicyError', + 'PolicyHelper', + 'PolicyHolder', + 'PolicyListHelper', + 'PolicyListHolder', + 'PolicyOperations', 'PolicyTypeHelper', + 'Polygon', + 'PopupMenu', + 'PopupMenuEvent', + 'PopupMenuListener', + 'PopupMenuUI', + 'Port', + 'Port.Info', + 'PortableRemoteObject', + 'PortableRemoteObjectDelegate', + 'Position', + 'Position.Bias', + 'PreparedStatement', + 'Principal', + 'Principal', + 'PrincipalHolder', + 'Printable', + 'PrinterAbortException', + 'PrinterException', + 'PrinterGraphics', + 'PrinterIOException', + 'PrinterJob', + 'PrintGraphics', + 'PrintJob', + 'PrintStream', + 'PrintWriter', + 'PRIVATE_MEMBER', + 'PrivateKey', + 'PrivilegedAction', + 'PrivilegedActionException', + 'PrivilegedExceptionAction', + 'Process', + 'ProfileDataException', + 'ProgressBarUI', + 'ProgressMonitor', + 'ProgressMonitorInputStream', + 'Properties', + 'PropertyChangeEvent', + 'PropertyChangeListener', + 'PropertyChangeSupport', + 'PropertyDescriptor', + 'PropertyEditor', + 'PropertyEditorManager', + 'PropertyEditorSupport', + 'PropertyPermission', + 'PropertyResourceBundle', + 'PropertyVetoException', + 'ProtectionDomain', + 'ProtocolException', + 'Provider', + 'ProviderException', + 'Proxy', + 'PUBLIC_MEMBER', + 'PublicKey', + 'PushbackInputStream', + 'PushbackReader', + 'QuadCurve2D', + 'QuadCurve2D.Double', + 'QuadCurve2D.Float', + 'Random', + 'RandomAccessFile', 'Raster', 'RasterFormatException', 'RasterOp', + 'Reader', 'Receiver', 'Rectangle', 'Rectangle2D', 'Rectangle2D.Double', + 'Rectangle2D.Float', 'RectangularShape', 'Ref', 'RefAddr', 'Reference', + 'Referenceable', 'ReferenceQueue', 'ReferralException', + 'ReflectPermission', 'Registry', 'RegistryHandler', 'RemarshalException', + 'Remote', 'RemoteCall', 'RemoteException', 'RemoteObject', 'RemoteRef', + 'RemoteServer', + 'RemoteStub', + 'RenderableImage', + 'RenderableImageOp', + 'RenderableImageProducer', + 'RenderContext', + 'RenderedImage', + 'RenderedImageFactory', + 'Renderer', + 'RenderingHints', + 'RenderingHints.Key', + 'RepaintManager', + 'ReplicateScaleFilter', + 'Repository', + 'RepositoryIdHelper', + 'Request', + 'RescaleOp', + 'Resolver', + 'ResolveResult', + 'ResourceBundle', + 'ResponseHandler', + 'ResultSet', + 'ResultSetMetaData', + 'ReverbType', + 'RGBImageFilter', + 'RMIClassLoader', + 'RMIClientSocketFactory', + 'RMIFailureHandler', + 'RMISecurityException', + 'RMISecurityManager', + 'RMIServerSocketFactory', + 'RMISocketFactory', + 'Robot', + 'RootPaneContainer', + 'RootPaneUI', + 'RoundRectangle2D', + 'RoundRectangle2D.Double', + 'RoundRectangle2D.Float', + 'RowMapper', + 'RSAKey', + 'RSAKeyGenParameterSpec', + 'RSAPrivateCrtKey', + 'RSAPrivateCrtKeySpec', + 'RSAPrivateKey', + 'RSAPrivateKeySpec', + 'RSAPublicKey', + 'RSAPublicKeySpec', + 'RTFEditorKit', + 'RuleBasedCollator', + 'Runnable', + 'Runtime', + 'RunTime', + 'RuntimeException', + 'RunTimeOperations', + 'RuntimePermission', + 'SampleModel', + 'SchemaViolationException', + 'Scrollable', + 'Scrollbar', + 'ScrollBarUI', + 'ScrollPane', + 'ScrollPaneConstants', + 'ScrollPaneLayout', + 'ScrollPaneLayout.UIResource', + 'ScrollPaneUI', + 'SearchControls', + 'SearchResult', + 'SecureClassLoader', + 'SecureRandom', + 'SecureRandomSpi', + 'Security', + 'SecurityException', + 'SecurityManager', + 'SecurityPermission', + 'Segment', + 'SeparatorUI', + 'Sequence', + 'SequenceInputStream', + 'Sequencer', + 'Sequencer.SyncMode', + 'Serializable', + 'SerializablePermission', + 'ServantObject', + 'ServerCloneException', + 'ServerError', 'ServerException', + 'ServerNotActiveException', + 'ServerRef', + 'ServerRequest', + 'ServerRuntimeException', + 'ServerSocket', + 'ServiceDetail', + 'ServiceDetailHelper', + 'ServiceInformation', + 'ServiceInformationHelper', + 'ServiceInformationHolder', + 'ServiceUnavailableException', + 'Set', + 'SetOverrideType', + 'SetOverrideTypeHelper', + 'Shape', + 'ShapeGraphicAttribute', + 'Short', + 'ShortHolder', + 'ShortLookupTable', + 'ShortMessage', + 'ShortSeqHelper', + 'ShortSeqHolder', + 'Signature', + 'SignatureException', + 'SignatureSpi', + 'SignedObject', + 'Signer', + 'SimpleAttributeSet', + 'SimpleBeanInfo', + 'SimpleDateFormat', + 'SimpleTimeZone', + 'SinglePixelPackedSampleModel', + 'SingleSelectionModel', + 'SizeLimitExceededException', + 'SizeRequirements', + 'SizeSequence', + 'Skeleton', + 'SkeletonMismatchException', + 'SkeletonNotFoundException', + 'SliderUI', + 'Socket', + 'SocketException', + 'SocketImpl', + 'SocketImplFactory', + 'SocketOptions', + 'SocketPermission', + 'SocketSecurityException', + 'SoftBevelBorder', + 'SoftReference', + 'SortedMap', + 'SortedSet', + 'Soundbank', + 'SoundbankReader', + 'SoundbankResource', + 'SourceDataLine', + 'SplitPaneUI', + 'SQLData', + 'SQLException', + 'SQLInput', + 'SQLOutput', 'SQLPermission', + 'SQLWarning', + 'Stack', + 'StackOverflowError', + 'StateEdit', + 'StateEditable', + 'StateFactory', + 'Statement', + 'Streamable', + 'StreamableValue', + 'StreamCorruptedException', + 'StreamTokenizer', + 'StrictMath', + 'String', + 'StringBuffer', + 'StringBufferInputStream', + 'StringCharacterIterator', + 'StringContent', + 'StringHolder', + 'StringIndexOutOfBoundsException', + 'StringReader', + 'StringRefAddr', + 'StringSelection', + 'StringTokenizer', + 'StringValueHelper', + 'StringWriter', + 'Stroke', + 'Struct', + 'StructMember', + 'StructMemberHelper', + 'Stub', + 'StubDelegate', + 'StubNotFoundException', + 'Style', + 'StyleConstants', + 'StyleConstants.CharacterConstants', + 'StyleConstants.ColorConstants', + 'StyleConstants.FontConstants', + 'StyleConstants.ParagraphConstants', + 'StyleContext', + 'StyledDocument', + 'StyledEditorKit', + 'StyledEditorKit.AlignmentAction', + 'StyledEditorKit.BoldAction', + 'StyledEditorKit.FontFamilyAction', + 'StyledEditorKit.FontSizeAction', + 'StyledEditorKit.ForegroundAction', + 'StyledEditorKit.ItalicAction', + 'StyledEditorKit.StyledTextAction', + 'StyledEditorKit.UnderlineAction', + 'StyleSheet', + 'StyleSheet.BoxPainter', + 'StyleSheet.ListPainter', + 'SwingConstants', + 'SwingPropertyChangeSupport', + 'SwingUtilities', + 'SyncFailedException', + 'Synthesizer', + 'SysexMessage', + 'System', + 'SystemColor', 'SystemException', + 'SystemFlavorMap', + 'TabableView', + 'TabbedPaneUI', + 'TabExpander', + 'TableCellEditor', + 'TableCellRenderer', + 'TableColumn', + 'TableColumnModel', + 'TableColumnModelEvent', + 'TableColumnModelListener', + 'TableHeaderUI', + 'TableModel', + 'TableModelEvent', + 'TableModelListener', + 'TableUI', + 'TableView', + 'TabSet', + 'TabStop', + 'TagElement', + 'TargetDataLine', + 'TCKind', + 'TextAction', + 'TextArea', + 'TextAttribute', + 'TextComponent', + 'TextEvent', + 'TextField', + 'TextHitInfo', + 'TextLayout', + 'TextLayout.CaretPolicy', + 'TextListener', + 'TextMeasurer', + 'TextUI', + 'TexturePaint', + 'Thread', + 'ThreadDeath', + 'ThreadGroup', + 'ThreadLocal', + 'Throwable', + 'Tie', + 'TileObserver', + 'Time', + 'TimeLimitExceededException', + 'Timer', + 'Timer', + 'TimerTask', + 'Timestamp', + 'TimeZone', + 'TitledBorder', + 'ToolBarUI', + 'Toolkit', + 'ToolTipManager', + 'ToolTipUI', + 'TooManyListenersException', + 'Track', + 'TRANSACTION_REQUIRED', + 'TRANSACTION_ROLLEDBACK', + 'TransactionRequiredException', + 'TransactionRolledbackException', + 'Transferable', + 'TransformAttribute', + 'TRANSIENT', + 'Transmitter', + 'Transparency', + 'TreeCellEditor', + 'TreeCellRenderer', + 'TreeExpansionEvent', + 'TreeExpansionListener', + 'TreeMap', + 'TreeModel', + 'TreeModelEvent', + 'TreeModelListener', + 'TreeNode', + 'TreePath', + 'TreeSelectionEvent', + 'TreeSelectionListener', + 'TreeSelectionModel', + 'TreeSet', + 'TreeUI', + 'TreeWillExpandListener', + 'TypeCode', + 'TypeCodeHolder', + 'TypeMismatch', + 'Types', + 'UID', + 'UIDefaults', + 'UIDefaults.ActiveValue', + 'UIDefaults.LazyInputMap', + 'UIDefaults.LazyValue', + 'UIDefaults.ProxyLazyValue', 'UIManager', + 'UIManager.LookAndFeelInfo', + 'UIResource', + 'ULongLongSeqHelper', + 'ULongLongSeqHolder', + 'ULongSeqHelper', + 'ULongSeqHolder', + 'UndeclaredThrowableException', + 'UndoableEdit', + 'UndoableEditEvent', + 'UndoableEditListener', + 'UndoableEditSupport', + 'UndoManager', + 'UnexpectedException', + 'UnicastRemoteObject', + 'UnionMember', + 'UnionMemberHelper', + 'UNKNOWN', + 'UnknownError', + 'UnknownException', + 'UnknownGroupException', + 'UnknownHostException', + 'UnknownHostException', + 'UnknownObjectException', + 'UnknownServiceException', + 'UnknownUserException', + 'UnmarshalException', + 'UnrecoverableKeyException', + 'Unreferenced', + 'UnresolvedPermission', + 'UnsatisfiedLinkError', + 'UnsolicitedNotification', + 'UnsolicitedNotificationEvent', + 'UnsolicitedNotificationListener', + 'UNSUPPORTED_POLICY', + 'UNSUPPORTED_POLICY_VALUE', + 'UnsupportedAudioFileException', + 'UnsupportedClassVersionError', + 'UnsupportedEncodingException', + 'UnsupportedFlavorException', + 'UnsupportedLookAndFeelException', + 'UnsupportedOperationException', + 'URL', + 'URLClassLoader', + 'URLConnection', + 'URLDecoder', + 'URLEncoder', + 'URLStreamHandler', + 'URLStreamHandlerFactory', + 'UserException', + 'UShortSeqHelper', + 'UShortSeqHolder', + 'UTFDataFormatException', + 'Util', + 'UtilDelegate', + 'Utilities', + 'ValueBase', + 'ValueBaseHelper', + 'ValueBaseHolder', + 'ValueFactory', + 'ValueHandler', + 'ValueMember', + 'ValueMemberHelper', + 'VariableHeightLayoutCache', + 'Vector', + 'VerifyError', + 'VersionSpecHelper', + 'VetoableChangeListener', + 'VetoableChangeSupport', + 'View', + 'ViewFactory', + 'ViewportLayout', + 'ViewportUI', + 'VirtualMachineError', + 'Visibility', + 'VisibilityHelper', + 'VM_ABSTRACT', + 'VM_CUSTOM', + 'VM_NONE', + 'VM_TRUNCATABLE', + 'VMID', + 'VoiceStatus', + 'Void', + 'WCharSeqHelper', + 'WCharSeqHolder', + 'WeakHashMap', + 'WeakReference', + 'Window', + 'WindowAdapter', + 'WindowConstants', + 'WindowEvent', 'WindowListener', + 'WrappedPlainView', + 'WritableRaster', + 'WritableRenderedImage', + 'WriteAbortedException', + 'Writer', + 'WrongTransaction', + 'WStringValueHelper', + 'X509Certificate', + 'X509CRL', + 'X509CRLEntry', + 'X509EncodedKeySpec', + 'X509Extension', + 'ZipEntry', + 'ZipException', + 'ZipFile', + 'ZipInputStream', + 'ZipOutputStream', + 'ZoneView', + '_BindingIteratorImplBase', + '_BindingIteratorStub', + '_IDLTypeStub', + '_NamingContextImplBase', + '_NamingContextStub', + '_PolicyStub', + '_Remote_Stub ' + ), + 4 => array( + 'void', 'double', 'int', 'boolean', 'byte', 'short', 'long', 'char', 'float' + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false, + 2 => false, + 3 => true, + 4 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #aaaadd; font-weight: bold;', + 4 => 'color: #993333;' + ), + 'COMMENTS' => array( + 1=> 'color: #808080; font-style: italic;', + 2=> 'color: #a1a100;', + 'MULTI' => '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( + 1 => 'color: #006600;', + 2 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => 'http://www.google.com/search?hl=en&q=allinurl%3A{FNAME}+java.sun.com&btnI=I%27m%20Feeling%20Lucky', + 4 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/java5.php b/plugins/geshi/java5.php old mode 100644 new mode 100755 index d1699de..185231b --- a/plugins/geshi/java5.php +++ b/plugins/geshi/java5.php @@ -48,974 +48,972 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Java(TM) 2 Platform Standard Edition 5.0', - 'COMMENT_SINGLE' => array(1 => '//'), /* import statements are not comments! */ - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - /* see the authoritative list of all 50 Java keywords at */ - /* http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#229308 */ +$language_data = array( + 'LANG_NAME' => 'Java(TM) 2 Platform Standard Edition 5.0', + 'COMMENT_SINGLE' => array(1 => '//'), /* import statements are not comments! */ + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + /* see the authoritative list of all 50 Java keywords at */ + /* http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#229308 */ - /* java keywords, part 1: control flow */ - 'case', 'default', 'do', 'else', 'for', - 'goto', 'if', 'switch', 'while' + /* java keywords, part 1: control flow */ + 'case', 'default', 'do', 'else', 'for', + 'goto', 'if', 'switch', 'while' - /* IMO 'break', 'continue', 'return' and 'throw' */ + /* IMO 'break', 'continue', 'return' and 'throw' */ /* should also be added to this group, as they */ - /* also manage the control flow, */ - /* arguably 'try'/'catch'/'finally' as well */ - ), - 2 => array( - /* java keywords, part 2 */ + /* also manage the control flow, */ + /* arguably 'try'/'catch'/'finally' as well */ + ), + 2 => array( + /* java keywords, part 2 */ - 'break', 'continue', 'return', 'throw', - 'try', 'catch', 'finally', + 'break', 'continue', 'return', 'throw', + 'try', 'catch', 'finally', - 'abstract', 'assert', 'class', 'const', 'enum', 'extends', - 'final', 'implements', 'import', 'instanceof', 'interface', - 'native', 'new', 'package', 'private', 'protected', - 'public', 'static', 'strictfp', 'super', 'synchronized', - 'this', 'throws', 'transient', 'volatile' - ), - 3 => array( - /* Java keywords, part 3: primitive data types and 'void' */ - 'boolean', 'byte', 'char', 'double', - 'float', 'int', 'long', 'short', 'void' - ), - 4 => array( - /* other reserved words in Java: literals */ - /* should be styled to look similar to numbers and Strings */ - 'false', 'null', 'true' - ), - 5 => array ( - 'Applet', 'AppletContext', 'AppletStub', 'AudioClip' - ), - 6 => array ( - 'AWTError', 'AWTEvent', 'AWTEventMulticaster', 'AWTException', 'AWTKeyStroke', 'AWTPermission', 'ActiveEvent', 'Adjustable', 'AlphaComposite', 'BasicStroke', 'BorderLayout', 'BufferCapabilities', 'BufferCapabilities.FlipContents', 'Button', 'Canvas', 'CardLayout', 'Checkbox', 'CheckboxGroup', 'CheckboxMenuItem', 'Choice', 'Color', 'Component', 'ComponentOrientation', 'Composite', 'CompositeContext', 'Container', 'ContainerOrderFocusTraversalPolicy', 'Cursor', 'DefaultFocusTraversalPolicy', 'DefaultKeyboardFocusManager', 'Dialog', 'Dimension', 'DisplayMode', 'EventQueue', 'FileDialog', 'FlowLayout', 'FocusTraversalPolicy', 'Font', 'FontFormatException', 'FontMetrics', 'Frame', 'GradientPaint', 'Graphics', 'Graphics2D', 'GraphicsConfigTemplate', 'GraphicsConfiguration', 'GraphicsDevice', 'GraphicsEnvironment', 'GridBagConstraints', 'GridBagLayout', 'GridLayout', 'HeadlessException', 'IllegalComponentStateException', 'Image', 'ImageCapabilities', 'Insets', 'ItemSelectable', 'JobAttributes', - 'JobAttributes.DefaultSelectionType', 'JobAttributes.DestinationType', 'JobAttributes.DialogType', 'JobAttributes.MultipleDocumentHandlingType', 'JobAttributes.SidesType', 'KeyEventDispatcher', 'KeyEventPostProcessor', 'KeyboardFocusManager', 'Label', 'LayoutManager', 'LayoutManager2', 'MediaTracker', 'Menu', 'MenuBar', 'MenuComponent', 'MenuContainer', 'MenuItem', 'MenuShortcut', 'MouseInfo', 'PageAttributes', 'PageAttributes.ColorType', 'PageAttributes.MediaType', 'PageAttributes.OrientationRequestedType', 'PageAttributes.OriginType', 'PageAttributes.PrintQualityType', 'Paint', 'PaintContext', 'Panel', 'Point', 'PointerInfo', 'Polygon', 'PopupMenu', 'PrintGraphics', 'PrintJob', 'Rectangle', 'RenderingHints', 'RenderingHints.Key', 'Robot', 'ScrollPane', 'ScrollPaneAdjustable', 'Scrollbar', 'Shape', 'Stroke', 'SystemColor', 'TextArea', 'TextComponent', 'TextField', 'TexturePaint', 'Toolkit', 'Transparency', 'Window' - ), - 7 => array ( - 'CMMException', 'ColorSpace', 'ICC_ColorSpace', 'ICC_Profile', 'ICC_ProfileGray', 'ICC_ProfileRGB', 'ProfileDataException' - ), - 8 => array ( - 'Clipboard', 'ClipboardOwner', 'DataFlavor', 'FlavorEvent', 'FlavorListener', 'FlavorMap', 'FlavorTable', 'MimeTypeParseException', 'StringSelection', 'SystemFlavorMap', 'Transferable', 'UnsupportedFlavorException' - ), - 9 => array ( - 'Autoscroll', 'DnDConstants', 'DragGestureEvent', 'DragGestureListener', 'DragGestureRecognizer', 'DragSource', 'DragSourceAdapter', 'DragSourceContext', 'DragSourceDragEvent', 'DragSourceDropEvent', 'DragSourceEvent', 'DragSourceListener', 'DragSourceMotionListener', 'DropTarget', 'DropTarget.DropTargetAutoScroller', 'DropTargetAdapter', 'DropTargetContext', 'DropTargetDragEvent', 'DropTargetDropEvent', 'DropTargetEvent', 'DropTargetListener', 'InvalidDnDOperationException', 'MouseDragGestureRecognizer' - ), - 10 => array ( - 'AWTEventListener', 'AWTEventListenerProxy', 'ActionEvent', 'ActionListener', 'AdjustmentEvent', 'AdjustmentListener', 'ComponentAdapter', 'ComponentEvent', 'ComponentListener', 'ContainerAdapter', 'ContainerEvent', 'ContainerListener', 'FocusAdapter', 'FocusEvent', 'FocusListener', 'HierarchyBoundsAdapter', 'HierarchyBoundsListener', 'HierarchyEvent', 'HierarchyListener', 'InputEvent', 'InputMethodEvent', 'InputMethodListener', 'InvocationEvent', 'ItemEvent', 'ItemListener', 'KeyAdapter', 'KeyEvent', 'KeyListener', 'MouseAdapter', 'MouseListener', 'MouseMotionAdapter', 'MouseMotionListener', 'MouseWheelEvent', 'MouseWheelListener', 'PaintEvent', 'TextEvent', 'TextListener', 'WindowAdapter', 'WindowEvent', 'WindowFocusListener', 'WindowListener', 'WindowStateListener' - ), - 11 => array ( - 'FontRenderContext', 'GlyphJustificationInfo', 'GlyphMetrics', 'GlyphVector', 'GraphicAttribute', 'ImageGraphicAttribute', 'LineBreakMeasurer', 'LineMetrics', 'MultipleMaster', 'NumericShaper', 'ShapeGraphicAttribute', 'TextAttribute', 'TextHitInfo', 'TextLayout', 'TextLayout.CaretPolicy', 'TextMeasurer', 'TransformAttribute' - ), - 12 => array ( - 'AffineTransform', 'Arc2D', 'Arc2D.Double', 'Arc2D.Float', 'Area', 'CubicCurve2D', 'CubicCurve2D.Double', 'CubicCurve2D.Float', 'Dimension2D', 'Ellipse2D', 'Ellipse2D.Double', 'Ellipse2D.Float', 'FlatteningPathIterator', 'GeneralPath', 'IllegalPathStateException', 'Line2D', 'Line2D.Double', 'Line2D.Float', 'NoninvertibleTransformException', 'PathIterator', 'Point2D', 'Point2D.Double', 'Point2D.Float', 'QuadCurve2D', 'QuadCurve2D.Double', 'QuadCurve2D.Float', 'Rectangle2D', 'Rectangle2D.Double', 'Rectangle2D.Float', 'RectangularShape', 'RoundRectangle2D', 'RoundRectangle2D.Double', 'RoundRectangle2D.Float' - ), - 13 => array ( - 'InputContext', 'InputMethodHighlight', 'InputMethodRequests', 'InputSubset' - ), - 14 => array ( - 'InputMethod', 'InputMethodContext', 'InputMethodDescriptor' - ), - 15 => array ( - 'AffineTransformOp', 'AreaAveragingScaleFilter', 'BandCombineOp', 'BandedSampleModel', 'BufferStrategy', 'BufferedImage', 'BufferedImageFilter', 'BufferedImageOp', 'ByteLookupTable', 'ColorConvertOp', 'ColorModel', 'ComponentColorModel', 'ComponentSampleModel', 'ConvolveOp', 'CropImageFilter', 'DataBuffer', 'DataBufferByte', 'DataBufferDouble', 'DataBufferFloat', 'DataBufferInt', 'DataBufferShort', 'DataBufferUShort', 'DirectColorModel', 'FilteredImageSource', 'ImageConsumer', 'ImageFilter', 'ImageObserver', 'ImageProducer', 'ImagingOpException', 'IndexColorModel', 'Kernel', 'LookupOp', 'LookupTable', 'MemoryImageSource', 'MultiPixelPackedSampleModel', 'PackedColorModel', 'PixelGrabber', 'PixelInterleavedSampleModel', 'RGBImageFilter', 'Raster', 'RasterFormatException', 'RasterOp', 'RenderedImage', 'ReplicateScaleFilter', 'RescaleOp', 'SampleModel', 'ShortLookupTable', 'SinglePixelPackedSampleModel', 'TileObserver', 'VolatileImage', 'WritableRaster', 'WritableRenderedImage' - ), - 16 => array ( - 'ContextualRenderedImageFactory', 'ParameterBlock', 'RenderContext', 'RenderableImage', 'RenderableImageOp', 'RenderableImageProducer', 'RenderedImageFactory' - ), - 17 => array ( - 'Book', 'PageFormat', 'Pageable', 'Paper', 'Printable', 'PrinterAbortException', 'PrinterException', 'PrinterGraphics', 'PrinterIOException', 'PrinterJob' - ), - 18 => array ( - 'AppletInitializer', 'BeanDescriptor', 'BeanInfo', 'Beans', 'Customizer', 'DefaultPersistenceDelegate', 'DesignMode', 'Encoder', 'EventHandler', 'EventSetDescriptor', 'ExceptionListener', 'Expression', 'FeatureDescriptor', 'IndexedPropertyChangeEvent', 'IndexedPropertyDescriptor', 'Introspector', 'MethodDescriptor', 'ParameterDescriptor', 'PersistenceDelegate', 'PropertyChangeEvent', 'PropertyChangeListener', 'PropertyChangeListenerProxy', 'PropertyChangeSupport', 'PropertyDescriptor', 'PropertyEditor', 'PropertyEditorManager', 'PropertyEditorSupport', 'PropertyVetoException', 'SimpleBeanInfo', 'VetoableChangeListener', 'VetoableChangeListenerProxy', 'VetoableChangeSupport', 'Visibility', 'XMLDecoder', 'XMLEncoder' - ), - 19 => array ( - 'BeanContext', 'BeanContextChild', 'BeanContextChildComponentProxy', 'BeanContextChildSupport', 'BeanContextContainerProxy', 'BeanContextEvent', 'BeanContextMembershipEvent', 'BeanContextMembershipListener', 'BeanContextProxy', 'BeanContextServiceAvailableEvent', 'BeanContextServiceProvider', 'BeanContextServiceProviderBeanInfo', 'BeanContextServiceRevokedEvent', 'BeanContextServiceRevokedListener', 'BeanContextServices', 'BeanContextServicesListener', 'BeanContextServicesSupport', 'BeanContextServicesSupport.BCSSServiceProvider', 'BeanContextSupport', 'BeanContextSupport.BCSIterator' - ), - 20 => array ( - 'BufferedInputStream', 'BufferedOutputStream', 'BufferedReader', 'BufferedWriter', 'ByteArrayInputStream', 'ByteArrayOutputStream', 'CharArrayReader', 'CharArrayWriter', 'CharConversionException', 'Closeable', 'DataInput', 'DataOutput', 'EOFException', 'Externalizable', 'File', 'FileDescriptor', 'FileInputStream', 'FileNotFoundException', 'FileOutputStream', 'FilePermission', 'FileReader', 'FileWriter', 'FilenameFilter', 'FilterInputStream', 'FilterOutputStream', 'FilterReader', 'FilterWriter', 'Flushable', 'IOException', 'InputStreamReader', 'InterruptedIOException', 'InvalidClassException', 'InvalidObjectException', 'LineNumberInputStream', 'LineNumberReader', 'NotActiveException', 'NotSerializableException', 'ObjectInput', 'ObjectInputStream', 'ObjectInputStream.GetField', 'ObjectInputValidation', 'ObjectOutput', 'ObjectOutputStream', 'ObjectOutputStream.PutField', 'ObjectStreamClass', 'ObjectStreamConstants', 'ObjectStreamException', 'ObjectStreamField', 'OptionalDataException', 'OutputStreamWriter', - 'PipedInputStream', 'PipedOutputStream', 'PipedReader', 'PipedWriter', 'PrintStream', 'PrintWriter', 'PushbackInputStream', 'PushbackReader', 'RandomAccessFile', 'Reader', 'SequenceInputStream', 'Serializable', 'SerializablePermission', 'StreamCorruptedException', 'StreamTokenizer', 'StringBufferInputStream', 'StringReader', 'StringWriter', 'SyncFailedException', 'UTFDataFormatException', 'UnsupportedEncodingException', 'WriteAbortedException', 'Writer' - ), - 21 => array ( - 'AbstractMethodError', 'Appendable', 'ArithmeticException', 'ArrayIndexOutOfBoundsException', 'ArrayStoreException', 'AssertionError', 'Boolean', 'Byte', 'CharSequence', 'Character', 'Character.Subset', 'Character.UnicodeBlock', 'Class', 'ClassCastException', 'ClassCircularityError', 'ClassFormatError', 'ClassLoader', 'ClassNotFoundException', 'CloneNotSupportedException', 'Cloneable', 'Comparable', 'Compiler', 'Deprecated', 'Double', 'Enum', 'EnumConstantNotPresentException', 'Error', 'Exception', 'ExceptionInInitializerError', 'Float', 'IllegalAccessError', 'IllegalAccessException', 'IllegalArgumentException', 'IllegalMonitorStateException', 'IllegalStateException', 'IllegalThreadStateException', 'IncompatibleClassChangeError', 'IndexOutOfBoundsException', 'InheritableThreadLocal', 'InstantiationError', 'InstantiationException', 'Integer', 'InternalError', 'InterruptedException', 'Iterable', 'LinkageError', 'Long', 'Math', 'NegativeArraySizeException', 'NoClassDefFoundError', 'NoSuchFieldError', - 'NoSuchFieldException', 'NoSuchMethodError', 'NoSuchMethodException', 'NullPointerException', 'Number', 'NumberFormatException', 'OutOfMemoryError', 'Override', 'Package', 'Process', 'ProcessBuilder', 'Readable', 'Runnable', 'Runtime', 'RuntimeException', 'RuntimePermission', 'SecurityException', 'SecurityManager', 'Short', 'StackOverflowError', 'StackTraceElement', 'StrictMath', 'String', 'StringBuffer', 'StringBuilder', 'StringIndexOutOfBoundsException', 'SuppressWarnings', 'System', 'Thread', 'Thread.State', 'Thread.UncaughtExceptionHandler', 'ThreadDeath', 'ThreadGroup', 'ThreadLocal', 'Throwable', 'TypeNotPresentException', 'UnknownError', 'UnsatisfiedLinkError', 'UnsupportedClassVersionError', 'UnsupportedOperationException', 'VerifyError', 'VirtualMachineError', 'Void' - ), - 22 => array ( - 'AnnotationFormatError', 'AnnotationTypeMismatchException', 'Documented', 'ElementType', 'IncompleteAnnotationException', 'Inherited', 'Retention', 'RetentionPolicy', 'Target' - ), - 23 => array ( - 'ClassDefinition', 'ClassFileTransformer', 'IllegalClassFormatException', 'Instrumentation', 'UnmodifiableClassException' - ), - 24 => array ( - 'ClassLoadingMXBean', 'CompilationMXBean', 'GarbageCollectorMXBean', 'ManagementFactory', 'ManagementPermission', 'MemoryMXBean', 'MemoryManagerMXBean', 'MemoryNotificationInfo', 'MemoryPoolMXBean', 'MemoryType', 'MemoryUsage', 'OperatingSystemMXBean', 'RuntimeMXBean', 'ThreadInfo', 'ThreadMXBean' - ), - 25 => array ( - 'PhantomReference', 'ReferenceQueue', 'SoftReference', 'WeakReference' - ), - 26 => array ( - 'AccessibleObject', 'AnnotatedElement', 'Constructor', 'Field', 'GenericArrayType', 'GenericDeclaration', 'GenericSignatureFormatError', 'InvocationHandler', 'InvocationTargetException', 'MalformedParameterizedTypeException', 'Member', 'Method', 'Modifier', 'ParameterizedType', 'ReflectPermission', 'Type', 'TypeVariable', 'UndeclaredThrowableException', 'WildcardType' - ), - 27 => array ( - 'BigDecimal', 'BigInteger', 'MathContext', 'RoundingMode' - ), - 28 => array ( - 'Authenticator', 'Authenticator.RequestorType', 'BindException', 'CacheRequest', 'CacheResponse', 'ContentHandlerFactory', 'CookieHandler', 'DatagramPacket', 'DatagramSocket', 'DatagramSocketImpl', 'DatagramSocketImplFactory', 'FileNameMap', 'HttpRetryException', 'HttpURLConnection', 'Inet4Address', 'Inet6Address', 'InetAddress', 'InetSocketAddress', 'JarURLConnection', 'MalformedURLException', 'MulticastSocket', 'NetPermission', 'NetworkInterface', 'NoRouteToHostException', 'PasswordAuthentication', 'PortUnreachableException', 'ProtocolException', 'Proxy.Type', 'ProxySelector', 'ResponseCache', 'SecureCacheResponse', 'ServerSocket', 'Socket', 'SocketAddress', 'SocketException', 'SocketImpl', 'SocketImplFactory', 'SocketOptions', 'SocketPermission', 'SocketTimeoutException', 'URI', 'URISyntaxException', 'URL', 'URLClassLoader', 'URLConnection', 'URLDecoder', 'URLEncoder', 'URLStreamHandler', 'URLStreamHandlerFactory', 'UnknownServiceException' - ), - 29 => array ( - 'Buffer', 'BufferOverflowException', 'BufferUnderflowException', 'ByteBuffer', 'ByteOrder', 'CharBuffer', 'DoubleBuffer', 'FloatBuffer', 'IntBuffer', 'InvalidMarkException', 'LongBuffer', 'MappedByteBuffer', 'ReadOnlyBufferException', 'ShortBuffer' - ), - 30 => array ( - 'AlreadyConnectedException', 'AsynchronousCloseException', 'ByteChannel', 'CancelledKeyException', 'Channel', 'Channels', 'ClosedByInterruptException', 'ClosedChannelException', 'ClosedSelectorException', 'ConnectionPendingException', 'DatagramChannel', 'FileChannel', 'FileChannel.MapMode', 'FileLock', 'FileLockInterruptionException', 'GatheringByteChannel', 'IllegalBlockingModeException', 'IllegalSelectorException', 'InterruptibleChannel', 'NoConnectionPendingException', 'NonReadableChannelException', 'NonWritableChannelException', 'NotYetBoundException', 'NotYetConnectedException', 'OverlappingFileLockException', 'Pipe', 'Pipe.SinkChannel', 'Pipe.SourceChannel', 'ReadableByteChannel', 'ScatteringByteChannel', 'SelectableChannel', 'SelectionKey', 'Selector', 'ServerSocketChannel', 'SocketChannel', 'UnresolvedAddressException', 'UnsupportedAddressTypeException', 'WritableByteChannel' - ), - 31 => array ( - 'AbstractInterruptibleChannel', 'AbstractSelectableChannel', 'AbstractSelectionKey', 'AbstractSelector', 'SelectorProvider' - ), - 32 => array ( - 'CharacterCodingException', 'Charset', 'CharsetDecoder', 'CharsetEncoder', 'CoderMalfunctionError', 'CoderResult', 'CodingErrorAction', 'IllegalCharsetNameException', 'MalformedInputException', 'UnmappableCharacterException', 'UnsupportedCharsetException' - ), - 33 => array ( - 'CharsetProvider' - ), - 34 => array ( - 'AccessException', 'AlreadyBoundException', 'ConnectIOException', 'MarshalException', 'MarshalledObject', 'Naming', 'NoSuchObjectException', 'NotBoundException', 'RMISecurityException', 'RMISecurityManager', 'Remote', 'RemoteException', 'ServerError', 'ServerException', 'ServerRuntimeException', 'StubNotFoundException', 'UnexpectedException', 'UnmarshalException' - ), - 35 => array ( - 'Activatable', 'ActivateFailedException', 'ActivationDesc', 'ActivationException', 'ActivationGroup', 'ActivationGroupDesc', 'ActivationGroupDesc.CommandEnvironment', 'ActivationGroupID', 'ActivationGroup_Stub', 'ActivationID', 'ActivationInstantiator', 'ActivationMonitor', 'ActivationSystem', 'Activator', 'UnknownGroupException', 'UnknownObjectException' - ), - 36 => array ( - 'DGC', 'Lease', 'VMID' - ), - 37 => array ( - 'LocateRegistry', 'Registry', 'RegistryHandler' - ), - 38 => array ( - 'ExportException', 'LoaderHandler', 'LogStream', 'ObjID', 'Operation', 'RMIClassLoader', 'RMIClassLoaderSpi', 'RMIClientSocketFactory', 'RMIFailureHandler', 'RMIServerSocketFactory', 'RMISocketFactory', 'RemoteCall', 'RemoteObject', 'RemoteObjectInvocationHandler', 'RemoteRef', 'RemoteServer', 'RemoteStub', 'ServerCloneException', 'ServerNotActiveException', 'ServerRef', 'Skeleton', 'SkeletonMismatchException', 'SkeletonNotFoundException', 'SocketSecurityException', 'UID', 'UnicastRemoteObject', 'Unreferenced' - ), - 39 => array ( - 'AccessControlContext', 'AccessControlException', 'AccessController', 'AlgorithmParameterGenerator', 'AlgorithmParameterGeneratorSpi', 'AlgorithmParameters', 'AlgorithmParametersSpi', 'AllPermission', 'AuthProvider', 'BasicPermission', 'CodeSigner', 'CodeSource', 'DigestException', 'DigestInputStream', 'DigestOutputStream', 'DomainCombiner', 'GeneralSecurityException', 'Guard', 'GuardedObject', 'Identity', 'IdentityScope', 'InvalidAlgorithmParameterException', 'InvalidParameterException', 'Key', 'KeyException', 'KeyFactory', 'KeyFactorySpi', 'KeyManagementException', 'KeyPair', 'KeyPairGenerator', 'KeyPairGeneratorSpi', 'KeyRep', 'KeyRep.Type', 'KeyStore', 'KeyStore.Builder', 'KeyStore.CallbackHandlerProtection', 'KeyStore.Entry', 'KeyStore.LoadStoreParameter', 'KeyStore.PasswordProtection', 'KeyStore.PrivateKeyEntry', 'KeyStore.ProtectionParameter', 'KeyStore.SecretKeyEntry', 'KeyStore.TrustedCertificateEntry', 'KeyStoreException', 'KeyStoreSpi', 'MessageDigest', 'MessageDigestSpi', - 'NoSuchAlgorithmException', 'NoSuchProviderException', 'PermissionCollection', 'Permissions', 'PrivateKey', 'PrivilegedAction', 'PrivilegedActionException', 'PrivilegedExceptionAction', 'ProtectionDomain', 'Provider', 'Provider.Service', 'ProviderException', 'PublicKey', 'SecureClassLoader', 'SecureRandom', 'SecureRandomSpi', 'Security', 'SecurityPermission', 'Signature', 'SignatureException', 'SignatureSpi', 'SignedObject', 'Signer', 'UnrecoverableEntryException', 'UnrecoverableKeyException', 'UnresolvedPermission' - ), - 40 => array ( - 'Acl', 'AclEntry', 'AclNotFoundException', 'Group', 'LastOwnerException', 'NotOwnerException', 'Owner' - ), - 41 => array ( - 'CRL', 'CRLException', 'CRLSelector', 'CertPath', 'CertPath.CertPathRep', 'CertPathBuilder', 'CertPathBuilderException', 'CertPathBuilderResult', 'CertPathBuilderSpi', 'CertPathParameters', 'CertPathValidator', 'CertPathValidatorException', 'CertPathValidatorResult', 'CertPathValidatorSpi', 'CertSelector', 'CertStore', 'CertStoreException', 'CertStoreParameters', 'CertStoreSpi', 'Certificate.CertificateRep', 'CertificateFactory', 'CertificateFactorySpi', 'CollectionCertStoreParameters', 'LDAPCertStoreParameters', 'PKIXBuilderParameters', 'PKIXCertPathBuilderResult', 'PKIXCertPathChecker', 'PKIXCertPathValidatorResult', 'PKIXParameters', 'PolicyNode', 'PolicyQualifierInfo', 'TrustAnchor', 'X509CRL', 'X509CRLEntry', 'X509CRLSelector', 'X509CertSelector', 'X509Extension' - ), - 42 => array ( - 'DSAKey', 'DSAKeyPairGenerator', 'DSAParams', 'DSAPrivateKey', 'DSAPublicKey', 'ECKey', 'ECPrivateKey', 'ECPublicKey', 'RSAKey', 'RSAMultiPrimePrivateCrtKey', 'RSAPrivateCrtKey', 'RSAPrivateKey', 'RSAPublicKey' - ), - 43 => array ( - 'AlgorithmParameterSpec', 'DSAParameterSpec', 'DSAPrivateKeySpec', 'DSAPublicKeySpec', 'ECField', 'ECFieldF2m', 'ECFieldFp', 'ECGenParameterSpec', 'ECParameterSpec', 'ECPoint', 'ECPrivateKeySpec', 'ECPublicKeySpec', 'EllipticCurve', 'EncodedKeySpec', 'InvalidKeySpecException', 'InvalidParameterSpecException', 'KeySpec', 'MGF1ParameterSpec', 'PKCS8EncodedKeySpec', 'PSSParameterSpec', 'RSAKeyGenParameterSpec', 'RSAMultiPrimePrivateCrtKeySpec', 'RSAOtherPrimeInfo', 'RSAPrivateCrtKeySpec', 'RSAPrivateKeySpec', 'RSAPublicKeySpec', 'X509EncodedKeySpec' - ), - 44 => array ( - 'BatchUpdateException', 'Blob', 'CallableStatement', 'Clob', 'Connection', 'DataTruncation', 'DatabaseMetaData', 'Driver', 'DriverManager', 'DriverPropertyInfo', 'ParameterMetaData', 'PreparedStatement', 'Ref', 'ResultSet', 'ResultSetMetaData', 'SQLData', 'SQLException', 'SQLInput', 'SQLOutput', 'SQLPermission', 'SQLWarning', 'Savepoint', 'Struct', 'Time', 'Types' - ), - 45 => array ( - 'AttributedCharacterIterator', 'AttributedCharacterIterator.Attribute', 'AttributedString', 'Bidi', 'BreakIterator', 'CharacterIterator', 'ChoiceFormat', 'CollationElementIterator', 'CollationKey', 'Collator', 'DateFormat', 'DateFormat.Field', 'DateFormatSymbols', 'DecimalFormat', 'DecimalFormatSymbols', 'FieldPosition', 'Format', 'Format.Field', 'MessageFormat', 'MessageFormat.Field', 'NumberFormat', 'NumberFormat.Field', 'ParseException', 'ParsePosition', 'RuleBasedCollator', 'SimpleDateFormat', 'StringCharacterIterator' - ), - 46 => array ( - 'AbstractCollection', 'AbstractList', 'AbstractMap', 'AbstractQueue', 'AbstractSequentialList', 'AbstractSet', 'ArrayList', 'Arrays', 'BitSet', 'Calendar', 'Collection', 'Collections', 'Comparator', 'ConcurrentModificationException', 'Currency', 'Dictionary', 'DuplicateFormatFlagsException', 'EmptyStackException', 'EnumMap', 'EnumSet', 'Enumeration', 'EventListenerProxy', 'EventObject', 'FormatFlagsConversionMismatchException', 'Formattable', 'FormattableFlags', 'Formatter.BigDecimalLayoutForm', 'FormatterClosedException', 'GregorianCalendar', 'HashMap', 'HashSet', 'Hashtable', 'IdentityHashMap', 'IllegalFormatCodePointException', 'IllegalFormatConversionException', 'IllegalFormatException', 'IllegalFormatFlagsException', 'IllegalFormatPrecisionException', 'IllegalFormatWidthException', 'InputMismatchException', 'InvalidPropertiesFormatException', 'Iterator', 'LinkedHashMap', 'LinkedHashSet', 'LinkedList', 'ListIterator', 'ListResourceBundle', 'Locale', 'Map', 'Map.Entry', 'MissingFormatArgumentException', - 'MissingFormatWidthException', 'MissingResourceException', 'NoSuchElementException', 'Observable', 'Observer', 'PriorityQueue', 'Properties', 'PropertyPermission', 'PropertyResourceBundle', 'Queue', 'Random', 'RandomAccess', 'ResourceBundle', 'Scanner', 'Set', 'SimpleTimeZone', 'SortedMap', 'SortedSet', 'Stack', 'StringTokenizer', 'TimeZone', 'TimerTask', 'TooManyListenersException', 'TreeMap', 'TreeSet', 'UUID', 'UnknownFormatConversionException', 'UnknownFormatFlagsException', 'Vector', 'WeakHashMap' - ), - 47 => array ( - 'AbstractExecutorService', 'ArrayBlockingQueue', 'BlockingQueue', 'BrokenBarrierException', 'Callable', 'CancellationException', 'CompletionService', 'ConcurrentHashMap', 'ConcurrentLinkedQueue', 'ConcurrentMap', 'CopyOnWriteArrayList', 'CopyOnWriteArraySet', 'CountDownLatch', 'CyclicBarrier', 'DelayQueue', 'Delayed', 'Exchanger', 'ExecutionException', 'Executor', 'ExecutorCompletionService', 'ExecutorService', 'Executors', 'Future', 'FutureTask', 'LinkedBlockingQueue', 'PriorityBlockingQueue', 'RejectedExecutionException', 'RejectedExecutionHandler', 'ScheduledExecutorService', 'ScheduledFuture', 'ScheduledThreadPoolExecutor', 'Semaphore', 'SynchronousQueue', 'ThreadFactory', 'ThreadPoolExecutor', 'ThreadPoolExecutor.AbortPolicy', 'ThreadPoolExecutor.CallerRunsPolicy', 'ThreadPoolExecutor.DiscardOldestPolicy', 'ThreadPoolExecutor.DiscardPolicy', 'TimeUnit', 'TimeoutException' - ), - 48 => array ( - 'AtomicBoolean', 'AtomicInteger', 'AtomicIntegerArray', 'AtomicIntegerFieldUpdater', 'AtomicLong', 'AtomicLongArray', 'AtomicLongFieldUpdater', 'AtomicMarkableReference', 'AtomicReference', 'AtomicReferenceArray', 'AtomicReferenceFieldUpdater', 'AtomicStampedReference' - ), - 49 => array ( - 'AbstractQueuedSynchronizer', 'Condition', 'Lock', 'LockSupport', 'ReadWriteLock', 'ReentrantLock', 'ReentrantReadWriteLock', 'ReentrantReadWriteLock.ReadLock', 'ReentrantReadWriteLock.WriteLock' - ), - 50 => array ( - 'Attributes.Name', 'JarEntry', 'JarException', 'JarFile', 'JarInputStream', 'JarOutputStream', 'Manifest', 'Pack200', 'Pack200.Packer', 'Pack200.Unpacker' - ), - 51 => array ( - 'ConsoleHandler', 'ErrorManager', 'FileHandler', 'Filter', 'Handler', 'Level', 'LogManager', 'LogRecord', 'Logger', 'LoggingMXBean', 'LoggingPermission', 'MemoryHandler', 'SimpleFormatter', 'SocketHandler', 'StreamHandler', 'XMLFormatter' - ), - 52 => array ( - 'AbstractPreferences', 'BackingStoreException', 'InvalidPreferencesFormatException', 'NodeChangeEvent', 'NodeChangeListener', 'PreferenceChangeEvent', 'PreferenceChangeListener', 'Preferences', 'PreferencesFactory' - ), - 53 => array ( - 'MatchResult', 'Matcher', 'Pattern', 'PatternSyntaxException' - ), - 54 => array ( - 'Adler32', 'CRC32', 'CheckedInputStream', 'CheckedOutputStream', 'Checksum', 'DataFormatException', 'Deflater', 'DeflaterOutputStream', 'GZIPInputStream', 'GZIPOutputStream', 'Inflater', 'InflaterInputStream', 'ZipEntry', 'ZipException', 'ZipFile', 'ZipInputStream', 'ZipOutputStream' - ), - 55 => array ( - 'Accessible', 'AccessibleAction', 'AccessibleAttributeSequence', 'AccessibleBundle', 'AccessibleComponent', 'AccessibleContext', 'AccessibleEditableText', 'AccessibleExtendedComponent', 'AccessibleExtendedTable', 'AccessibleExtendedText', 'AccessibleHyperlink', 'AccessibleHypertext', 'AccessibleIcon', 'AccessibleKeyBinding', 'AccessibleRelation', 'AccessibleRelationSet', 'AccessibleResourceBundle', 'AccessibleRole', 'AccessibleSelection', 'AccessibleState', 'AccessibleStateSet', 'AccessibleStreamable', 'AccessibleTable', 'AccessibleTableModelChange', 'AccessibleText', 'AccessibleTextSequence', 'AccessibleValue' - ), - 56 => array ( - 'ActivityCompletedException', 'ActivityRequiredException', 'InvalidActivityException' - ), - 57 => array ( - 'BadPaddingException', 'Cipher', 'CipherInputStream', 'CipherOutputStream', 'CipherSpi', 'EncryptedPrivateKeyInfo', 'ExemptionMechanism', 'ExemptionMechanismException', 'ExemptionMechanismSpi', 'IllegalBlockSizeException', 'KeyAgreement', 'KeyAgreementSpi', 'KeyGenerator', 'KeyGeneratorSpi', 'Mac', 'MacSpi', 'NoSuchPaddingException', 'NullCipher', 'SealedObject', 'SecretKey', 'SecretKeyFactory', 'SecretKeyFactorySpi', 'ShortBufferException' - ), - 58 => array ( - 'DHKey', 'DHPrivateKey', 'DHPublicKey', 'PBEKey' - ), - 59 => array ( - 'DESKeySpec', 'DESedeKeySpec', 'DHGenParameterSpec', 'DHParameterSpec', 'DHPrivateKeySpec', 'DHPublicKeySpec', 'IvParameterSpec', 'OAEPParameterSpec', 'PBEKeySpec', 'PBEParameterSpec', 'PSource', 'PSource.PSpecified', 'RC2ParameterSpec', 'RC5ParameterSpec', 'SecretKeySpec' - ), - 60 => array ( - 'IIOException', 'IIOImage', 'IIOParam', 'IIOParamController', 'ImageIO', 'ImageReadParam', 'ImageReader', 'ImageTranscoder', 'ImageTypeSpecifier', 'ImageWriteParam', 'ImageWriter' - ), - 61 => array ( - 'IIOReadProgressListener', 'IIOReadUpdateListener', 'IIOReadWarningListener', 'IIOWriteProgressListener', 'IIOWriteWarningListener' - ), - 62 => array ( - 'IIOInvalidTreeException', 'IIOMetadata', 'IIOMetadataController', 'IIOMetadataFormat', 'IIOMetadataFormatImpl', 'IIOMetadataNode' - ), - 63 => array ( - 'BMPImageWriteParam' - ), - 64 => array ( - 'JPEGHuffmanTable', 'JPEGImageReadParam', 'JPEGImageWriteParam', 'JPEGQTable' - ), - 65 => array ( - 'IIORegistry', 'IIOServiceProvider', 'ImageInputStreamSpi', 'ImageOutputStreamSpi', 'ImageReaderSpi', 'ImageReaderWriterSpi', 'ImageTranscoderSpi', 'ImageWriterSpi', 'RegisterableService', 'ServiceRegistry', 'ServiceRegistry.Filter' - ), - 66 => array ( - 'FileCacheImageInputStream', 'FileCacheImageOutputStream', 'FileImageInputStream', 'FileImageOutputStream', 'IIOByteBuffer', 'ImageInputStream', 'ImageInputStreamImpl', 'ImageOutputStream', 'ImageOutputStreamImpl', 'MemoryCacheImageInputStream', 'MemoryCacheImageOutputStream' - ), - 67 => array ( - 'AttributeChangeNotification', 'AttributeChangeNotificationFilter', 'AttributeNotFoundException', 'AttributeValueExp', 'BadAttributeValueExpException', 'BadBinaryOpValueExpException', 'BadStringOperationException', 'Descriptor', 'DescriptorAccess', 'DynamicMBean', 'InstanceAlreadyExistsException', 'InstanceNotFoundException', 'InvalidApplicationException', 'JMException', 'JMRuntimeException', 'ListenerNotFoundException', 'MBeanAttributeInfo', 'MBeanConstructorInfo', 'MBeanException', 'MBeanFeatureInfo', 'MBeanInfo', 'MBeanNotificationInfo', 'MBeanOperationInfo', 'MBeanParameterInfo', 'MBeanPermission', 'MBeanRegistration', 'MBeanRegistrationException', 'MBeanServer', 'MBeanServerBuilder', 'MBeanServerConnection', 'MBeanServerDelegate', 'MBeanServerDelegateMBean', 'MBeanServerFactory', 'MBeanServerInvocationHandler', 'MBeanServerNotification', 'MBeanServerPermission', 'MBeanTrustPermission', 'MalformedObjectNameException', 'NotCompliantMBeanException', 'Notification', 'NotificationBroadcaster', - 'NotificationBroadcasterSupport', 'NotificationEmitter', 'NotificationFilter', 'NotificationFilterSupport', 'NotificationListener', 'ObjectInstance', 'ObjectName', 'OperationsException', 'PersistentMBean', 'Query', 'QueryEval', 'QueryExp', 'ReflectionException', 'RuntimeErrorException', 'RuntimeMBeanException', 'RuntimeOperationsException', 'ServiceNotFoundException', 'StandardMBean', 'StringValueExp', 'ValueExp' - ), - 68 => array ( - 'ClassLoaderRepository', 'MLet', 'MLetMBean', 'PrivateClassLoader', 'PrivateMLet' - ), - 69 => array ( - 'DescriptorSupport', 'InvalidTargetObjectTypeException', 'ModelMBean', 'ModelMBeanAttributeInfo', 'ModelMBeanConstructorInfo', 'ModelMBeanInfo', 'ModelMBeanInfoSupport', 'ModelMBeanNotificationBroadcaster', 'ModelMBeanNotificationInfo', 'ModelMBeanOperationInfo', 'RequiredModelMBean', 'XMLParseException' - ), - 70 => array ( - 'CounterMonitor', 'CounterMonitorMBean', 'GaugeMonitor', 'GaugeMonitorMBean', 'Monitor', 'MonitorMBean', 'MonitorNotification', 'MonitorSettingException', 'StringMonitor', 'StringMonitorMBean' - ), - 71 => array ( - 'ArrayType', 'CompositeData', 'CompositeDataSupport', 'CompositeType', 'InvalidOpenTypeException', 'KeyAlreadyExistsException', 'OpenDataException', 'OpenMBeanAttributeInfo', 'OpenMBeanAttributeInfoSupport', 'OpenMBeanConstructorInfo', 'OpenMBeanConstructorInfoSupport', 'OpenMBeanInfo', 'OpenMBeanInfoSupport', 'OpenMBeanOperationInfo', 'OpenMBeanOperationInfoSupport', 'OpenMBeanParameterInfo', 'OpenMBeanParameterInfoSupport', 'SimpleType', 'TabularData', 'TabularDataSupport', 'TabularType' - ), - 72 => array ( - 'InvalidRelationIdException', 'InvalidRelationServiceException', 'InvalidRelationTypeException', 'InvalidRoleInfoException', 'InvalidRoleValueException', 'MBeanServerNotificationFilter', 'Relation', 'RelationException', 'RelationNotFoundException', 'RelationNotification', 'RelationService', 'RelationServiceMBean', 'RelationServiceNotRegisteredException', 'RelationSupport', 'RelationSupportMBean', 'RelationType', 'RelationTypeNotFoundException', 'RelationTypeSupport', 'Role', 'RoleInfo', 'RoleInfoNotFoundException', 'RoleList', 'RoleNotFoundException', 'RoleResult', 'RoleStatus', 'RoleUnresolved', 'RoleUnresolvedList' - ), - 73 => array ( - 'JMXAuthenticator', 'JMXConnectionNotification', 'JMXConnector', 'JMXConnectorFactory', 'JMXConnectorProvider', 'JMXConnectorServer', 'JMXConnectorServerFactory', 'JMXConnectorServerMBean', 'JMXConnectorServerProvider', 'JMXPrincipal', 'JMXProviderException', 'JMXServerErrorException', 'JMXServiceURL', 'MBeanServerForwarder', 'NotificationResult', 'SubjectDelegationPermission', 'TargetedNotification' - ), - 74 => array ( - 'RMIConnection', 'RMIConnectionImpl', 'RMIConnectionImpl_Stub', 'RMIConnector', 'RMIConnectorServer', 'RMIIIOPServerImpl', 'RMIJRMPServerImpl', 'RMIServer', 'RMIServerImpl', 'RMIServerImpl_Stub' - ), - 75 => array ( - 'TimerAlarmClockNotification', 'TimerMBean', 'TimerNotification' - ), - 76 => array ( - 'AuthenticationNotSupportedException', 'BinaryRefAddr', 'CannotProceedException', 'CommunicationException', 'CompositeName', 'CompoundName', 'ConfigurationException', 'ContextNotEmptyException', 'InitialContext', 'InsufficientResourcesException', 'InterruptedNamingException', 'InvalidNameException', 'LimitExceededException', 'LinkException', 'LinkLoopException', 'LinkRef', 'MalformedLinkException', 'Name', 'NameAlreadyBoundException', 'NameClassPair', 'NameNotFoundException', 'NameParser', 'NamingEnumeration', 'NamingException', 'NamingSecurityException', 'NoInitialContextException', 'NoPermissionException', 'NotContextException', 'OperationNotSupportedException', 'PartialResultException', 'RefAddr', 'Referenceable', 'ReferralException', 'ServiceUnavailableException', 'SizeLimitExceededException', 'StringRefAddr', 'TimeLimitExceededException' - ), - 77 => array ( - 'AttributeInUseException', 'AttributeModificationException', 'BasicAttribute', 'BasicAttributes', 'DirContext', 'InitialDirContext', 'InvalidAttributeIdentifierException', 'InvalidAttributesException', 'InvalidSearchControlsException', 'InvalidSearchFilterException', 'ModificationItem', 'NoSuchAttributeException', 'SchemaViolationException', 'SearchControls', 'SearchResult' - ), - 78 => array ( - 'EventContext', 'EventDirContext', 'NamespaceChangeListener', 'NamingEvent', 'NamingExceptionEvent', 'NamingListener', 'ObjectChangeListener' - ), - 79 => array ( - 'BasicControl', 'ControlFactory', 'ExtendedRequest', 'ExtendedResponse', 'HasControls', 'InitialLdapContext', 'LdapContext', 'LdapName', 'LdapReferralException', 'ManageReferralControl', 'PagedResultsControl', 'PagedResultsResponseControl', 'Rdn', 'SortControl', 'SortKey', 'SortResponseControl', 'StartTlsRequest', 'StartTlsResponse', 'UnsolicitedNotification', 'UnsolicitedNotificationEvent', 'UnsolicitedNotificationListener' - ), - 80 => array ( - 'DirObjectFactory', 'DirStateFactory', 'DirStateFactory.Result', 'DirectoryManager', 'InitialContextFactory', 'InitialContextFactoryBuilder', 'NamingManager', 'ObjectFactory', 'ObjectFactoryBuilder', 'ResolveResult', 'Resolver', 'StateFactory' - ), - 81 => array ( - 'ServerSocketFactory', 'SocketFactory' - ), - 82 => array ( - 'CertPathTrustManagerParameters', 'HandshakeCompletedEvent', 'HandshakeCompletedListener', 'HostnameVerifier', 'HttpsURLConnection', 'KeyManager', 'KeyManagerFactory', 'KeyManagerFactorySpi', 'KeyStoreBuilderParameters', 'ManagerFactoryParameters', 'SSLContext', 'SSLContextSpi', 'SSLEngine', 'SSLEngineResult', 'SSLEngineResult.HandshakeStatus', 'SSLEngineResult.Status', 'SSLException', 'SSLHandshakeException', 'SSLKeyException', 'SSLPeerUnverifiedException', 'SSLPermission', 'SSLProtocolException', 'SSLServerSocket', 'SSLServerSocketFactory', 'SSLSession', 'SSLSessionBindingEvent', 'SSLSessionBindingListener', 'SSLSessionContext', 'SSLSocket', 'SSLSocketFactory', 'TrustManager', 'TrustManagerFactory', 'TrustManagerFactorySpi', 'X509ExtendedKeyManager', 'X509KeyManager', 'X509TrustManager' - ), - 83 => array ( - 'AttributeException', 'CancelablePrintJob', 'Doc', 'DocFlavor', 'DocFlavor.BYTE_ARRAY', 'DocFlavor.CHAR_ARRAY', 'DocFlavor.INPUT_STREAM', 'DocFlavor.READER', 'DocFlavor.SERVICE_FORMATTED', 'DocFlavor.STRING', 'DocFlavor.URL', 'DocPrintJob', 'FlavorException', 'MultiDoc', 'MultiDocPrintJob', 'MultiDocPrintService', 'PrintException', 'PrintService', 'PrintServiceLookup', 'ServiceUI', 'ServiceUIFactory', 'SimpleDoc', 'StreamPrintService', 'StreamPrintServiceFactory', 'URIException' - ), - 84 => array ( - 'AttributeSetUtilities', 'DateTimeSyntax', 'DocAttribute', 'DocAttributeSet', 'EnumSyntax', 'HashAttributeSet', 'HashDocAttributeSet', 'HashPrintJobAttributeSet', 'HashPrintRequestAttributeSet', 'HashPrintServiceAttributeSet', 'IntegerSyntax', 'PrintJobAttribute', 'PrintJobAttributeSet', 'PrintRequestAttribute', 'PrintRequestAttributeSet', 'PrintServiceAttribute', 'PrintServiceAttributeSet', 'ResolutionSyntax', 'SetOfIntegerSyntax', 'Size2DSyntax', 'SupportedValuesAttribute', 'TextSyntax', 'URISyntax', 'UnmodifiableSetException' - ), - 85 => array ( - 'Chromaticity', 'ColorSupported', 'Compression', 'Copies', 'CopiesSupported', 'DateTimeAtCompleted', 'DateTimeAtCreation', 'DateTimeAtProcessing', 'Destination', 'DocumentName', 'Fidelity', 'Finishings', 'JobHoldUntil', 'JobImpressions', 'JobImpressionsCompleted', 'JobImpressionsSupported', 'JobKOctets', 'JobKOctetsProcessed', 'JobKOctetsSupported', 'JobMediaSheets', 'JobMediaSheetsCompleted', 'JobMediaSheetsSupported', 'JobMessageFromOperator', 'JobName', 'JobOriginatingUserName', 'JobPriority', 'JobPrioritySupported', 'JobSheets', 'JobState', 'JobStateReason', 'JobStateReasons', 'Media', 'MediaName', 'MediaPrintableArea', 'MediaSize', 'MediaSize.Engineering', 'MediaSize.ISO', 'MediaSize.JIS', 'MediaSize.NA', 'MediaSize.Other', 'MediaSizeName', 'MediaTray', 'MultipleDocumentHandling', 'NumberOfDocuments', 'NumberOfInterveningJobs', 'NumberUp', 'NumberUpSupported', 'OrientationRequested', 'OutputDeviceAssigned', 'PDLOverrideSupported', 'PageRanges', 'PagesPerMinute', 'PagesPerMinuteColor', - 'PresentationDirection', 'PrintQuality', 'PrinterInfo', 'PrinterIsAcceptingJobs', 'PrinterLocation', 'PrinterMakeAndModel', 'PrinterMessageFromOperator', 'PrinterMoreInfo', 'PrinterMoreInfoManufacturer', 'PrinterName', 'PrinterResolution', 'PrinterState', 'PrinterStateReason', 'PrinterStateReasons', 'PrinterURI', 'QueuedJobCount', 'ReferenceUriSchemesSupported', 'RequestingUserName', 'Severity', 'SheetCollate', 'Sides' - ), - 86 => array ( - 'PrintEvent', 'PrintJobAdapter', 'PrintJobAttributeEvent', 'PrintJobAttributeListener', 'PrintJobEvent', 'PrintJobListener', 'PrintServiceAttributeEvent', 'PrintServiceAttributeListener' - ), - 87 => array ( - 'PortableRemoteObject' - ), - 88 => array ( - 'ClassDesc', 'PortableRemoteObjectDelegate', 'Stub', 'StubDelegate', 'Tie', 'Util', 'UtilDelegate', 'ValueHandler', 'ValueHandlerMultiFormat' - ), - 89 => array ( - 'SslRMIClientSocketFactory', 'SslRMIServerSocketFactory' - ), - 90 => array ( - 'AuthPermission', 'DestroyFailedException', 'Destroyable', 'PrivateCredentialPermission', 'RefreshFailedException', 'Refreshable', 'Subject', 'SubjectDomainCombiner' - ), - 91 => array ( - 'Callback', 'CallbackHandler', 'ChoiceCallback', 'ConfirmationCallback', 'LanguageCallback', 'NameCallback', 'PasswordCallback', 'TextInputCallback', 'TextOutputCallback', 'UnsupportedCallbackException' - ), - 92 => array ( - 'DelegationPermission', 'KerberosKey', 'KerberosPrincipal', 'KerberosTicket', 'ServicePermission' - ), - 93 => array ( - 'AccountException', 'AccountExpiredException', 'AccountLockedException', 'AccountNotFoundException', 'AppConfigurationEntry', 'AppConfigurationEntry.LoginModuleControlFlag', 'Configuration', 'CredentialException', 'CredentialExpiredException', 'CredentialNotFoundException', 'FailedLoginException', 'LoginContext', 'LoginException' - ), - 94 => array ( - 'LoginModule' - ), - 95 => array ( - 'X500Principal', 'X500PrivateCredential' - ), - 96 => array ( - 'AuthorizeCallback', 'RealmCallback', 'RealmChoiceCallback', 'Sasl', 'SaslClient', 'SaslClientFactory', 'SaslException', 'SaslServer', 'SaslServerFactory' - ), - 97 => array ( - 'ControllerEventListener', 'Instrument', 'InvalidMidiDataException', 'MetaEventListener', 'MetaMessage', 'MidiChannel', 'MidiDevice', 'MidiDevice.Info', 'MidiEvent', 'MidiFileFormat', 'MidiMessage', 'MidiSystem', 'MidiUnavailableException', 'Patch', 'Receiver', 'Sequence', 'Sequencer', 'Sequencer.SyncMode', 'ShortMessage', 'Soundbank', 'SoundbankResource', 'Synthesizer', 'SysexMessage', 'Track', 'Transmitter', 'VoiceStatus' - ), - 98 => array ( - 'MidiDeviceProvider', 'MidiFileReader', 'MidiFileWriter', 'SoundbankReader' - ), - 99 => array ( - 'AudioFileFormat', 'AudioFileFormat.Type', 'AudioFormat', 'AudioFormat.Encoding', 'AudioInputStream', 'AudioPermission', 'AudioSystem', 'BooleanControl', 'BooleanControl.Type', 'Clip', 'CompoundControl', 'CompoundControl.Type', 'Control.Type', 'DataLine', 'DataLine.Info', 'EnumControl', 'EnumControl.Type', 'FloatControl', 'FloatControl.Type', 'Line', 'Line.Info', 'LineEvent', 'LineEvent.Type', 'LineListener', 'LineUnavailableException', 'Mixer', 'Mixer.Info', 'Port', 'Port.Info', 'ReverbType', 'SourceDataLine', 'TargetDataLine', 'UnsupportedAudioFileException' - ), - 100 => array ( - 'AudioFileReader', 'AudioFileWriter', 'FormatConversionProvider', 'MixerProvider' - ), - 101 => array ( - 'ConnectionEvent', 'ConnectionEventListener', 'ConnectionPoolDataSource', 'DataSource', 'PooledConnection', 'RowSet', 'RowSetEvent', 'RowSetInternal', 'RowSetListener', 'RowSetMetaData', 'RowSetReader', 'RowSetWriter', 'XAConnection', 'XADataSource' - ), - 102 => array ( - 'BaseRowSet', 'CachedRowSet', 'FilteredRowSet', 'JdbcRowSet', 'JoinRowSet', 'Joinable', 'Predicate', 'RowSetMetaDataImpl', 'RowSetWarning', 'WebRowSet' - ), - 103 => array ( - 'SQLInputImpl', 'SQLOutputImpl', 'SerialArray', 'SerialBlob', 'SerialClob', 'SerialDatalink', 'SerialException', 'SerialJavaObject', 'SerialRef', 'SerialStruct' - ), - 104 => array ( - 'SyncFactory', 'SyncFactoryException', 'SyncProvider', 'SyncProviderException', 'SyncResolver', 'TransactionalWriter', 'XmlReader', 'XmlWriter' - ), - 105 => array ( - 'AbstractAction', 'AbstractButton', 'AbstractCellEditor', 'AbstractListModel', 'AbstractSpinnerModel', 'Action', 'ActionMap', 'BorderFactory', 'BoundedRangeModel', 'Box', 'Box.Filler', 'BoxLayout', 'ButtonGroup', 'ButtonModel', 'CellEditor', 'CellRendererPane', 'ComboBoxEditor', 'ComboBoxModel', 'ComponentInputMap', 'DebugGraphics', 'DefaultBoundedRangeModel', 'DefaultButtonModel', 'DefaultCellEditor', 'DefaultComboBoxModel', 'DefaultDesktopManager', 'DefaultFocusManager', 'DefaultListCellRenderer', 'DefaultListCellRenderer.UIResource', 'DefaultListModel', 'DefaultListSelectionModel', 'DefaultSingleSelectionModel', 'DesktopManager', 'FocusManager', 'GrayFilter', 'Icon', 'ImageIcon', 'InputMap', 'InputVerifier', 'InternalFrameFocusTraversalPolicy', 'JApplet', 'JButton', 'JCheckBox', 'JCheckBoxMenuItem', 'JColorChooser', 'JComboBox', 'JComboBox.KeySelectionManager', 'JComponent', 'JDesktopPane', 'JDialog', 'JEditorPane', 'JFileChooser', 'JFormattedTextField', 'JFormattedTextField.AbstractFormatter', - 'JFormattedTextField.AbstractFormatterFactory', 'JFrame', 'JInternalFrame', 'JInternalFrame.JDesktopIcon', 'JLabel', 'JLayeredPane', 'JList', 'JMenu', 'JMenuBar', 'JMenuItem', 'JOptionPane', 'JPanel', 'JPasswordField', 'JPopupMenu', 'JPopupMenu.Separator', 'JProgressBar', 'JRadioButton', 'JRadioButtonMenuItem', 'JRootPane', 'JScrollBar', 'JScrollPane', 'JSeparator', 'JSlider', 'JSpinner', 'JSpinner.DateEditor', 'JSpinner.DefaultEditor', 'JSpinner.ListEditor', 'JSpinner.NumberEditor', 'JSplitPane', 'JTabbedPane', 'JTable', 'JTable.PrintMode', 'JTextArea', 'JTextField', 'JTextPane', 'JToggleButton', 'JToggleButton.ToggleButtonModel', 'JToolBar', 'JToolBar.Separator', 'JToolTip', 'JTree', 'JTree.DynamicUtilTreeNode', 'JTree.EmptySelectionModel', 'JViewport', 'JWindow', 'KeyStroke', 'LayoutFocusTraversalPolicy', 'ListCellRenderer', 'ListModel', 'ListSelectionModel', 'LookAndFeel', 'MenuElement', 'MenuSelectionManager', 'MutableComboBoxModel', 'OverlayLayout', 'Popup', 'PopupFactory', 'ProgressMonitor', - 'ProgressMonitorInputStream', 'Renderer', 'RepaintManager', 'RootPaneContainer', 'ScrollPaneConstants', 'ScrollPaneLayout', 'ScrollPaneLayout.UIResource', 'Scrollable', 'SingleSelectionModel', 'SizeRequirements', 'SizeSequence', 'SortingFocusTraversalPolicy', 'SpinnerDateModel', 'SpinnerListModel', 'SpinnerModel', 'SpinnerNumberModel', 'Spring', 'SpringLayout', 'SpringLayout.Constraints', 'SwingConstants', 'SwingUtilities', 'ToolTipManager', 'TransferHandler', 'UIDefaults', 'UIDefaults.ActiveValue', 'UIDefaults.LazyInputMap', 'UIDefaults.LazyValue', 'UIDefaults.ProxyLazyValue', 'UIManager', 'UIManager.LookAndFeelInfo', 'UnsupportedLookAndFeelException', 'ViewportLayout', 'WindowConstants' - ), - 106 => array ( - 'AbstractBorder', 'BevelBorder', 'Border', 'CompoundBorder', 'EmptyBorder', 'EtchedBorder', 'LineBorder', 'MatteBorder', 'SoftBevelBorder', 'TitledBorder' - ), - 107 => array ( - 'AbstractColorChooserPanel', 'ColorChooserComponentFactory', 'ColorSelectionModel', 'DefaultColorSelectionModel' - ), - 108 => array ( - 'AncestorEvent', 'AncestorListener', 'CaretEvent', 'CaretListener', 'CellEditorListener', 'ChangeEvent', 'ChangeListener', 'DocumentEvent.ElementChange', 'DocumentEvent.EventType', 'DocumentListener', 'EventListenerList', 'HyperlinkEvent', 'HyperlinkEvent.EventType', 'HyperlinkListener', 'InternalFrameAdapter', 'InternalFrameEvent', 'InternalFrameListener', 'ListDataEvent', 'ListDataListener', 'ListSelectionEvent', 'ListSelectionListener', 'MenuDragMouseEvent', 'MenuDragMouseListener', 'MenuEvent', 'MenuKeyEvent', 'MenuKeyListener', 'MenuListener', 'MouseInputAdapter', 'MouseInputListener', 'PopupMenuEvent', 'PopupMenuListener', 'SwingPropertyChangeSupport', 'TableColumnModelEvent', 'TableColumnModelListener', 'TableModelEvent', 'TableModelListener', 'TreeExpansionEvent', 'TreeExpansionListener', 'TreeModelEvent', 'TreeModelListener', 'TreeSelectionEvent', 'TreeSelectionListener', 'TreeWillExpandListener', 'UndoableEditEvent', 'UndoableEditListener' - ), - 109 => array ( - 'FileSystemView', 'FileView' - ), - 110 => array ( - 'ActionMapUIResource', 'BorderUIResource', 'BorderUIResource.BevelBorderUIResource', 'BorderUIResource.CompoundBorderUIResource', 'BorderUIResource.EmptyBorderUIResource', 'BorderUIResource.EtchedBorderUIResource', 'BorderUIResource.LineBorderUIResource', 'BorderUIResource.MatteBorderUIResource', 'BorderUIResource.TitledBorderUIResource', 'ButtonUI', 'ColorChooserUI', 'ColorUIResource', 'ComboBoxUI', 'ComponentInputMapUIResource', 'ComponentUI', 'DesktopIconUI', 'DesktopPaneUI', 'DimensionUIResource', 'FileChooserUI', 'FontUIResource', 'IconUIResource', 'InputMapUIResource', 'InsetsUIResource', 'InternalFrameUI', 'LabelUI', 'ListUI', 'MenuBarUI', 'MenuItemUI', 'OptionPaneUI', 'PanelUI', 'PopupMenuUI', 'ProgressBarUI', 'RootPaneUI', 'ScrollBarUI', 'ScrollPaneUI', 'SeparatorUI', 'SliderUI', 'SpinnerUI', 'SplitPaneUI', 'TabbedPaneUI', 'TableHeaderUI', 'TableUI', 'TextUI', 'ToolBarUI', 'ToolTipUI', 'TreeUI', 'UIResource', 'ViewportUI' - ), - 111 => array ( - 'BasicArrowButton', 'BasicBorders', 'BasicBorders.ButtonBorder', 'BasicBorders.FieldBorder', 'BasicBorders.MarginBorder', 'BasicBorders.MenuBarBorder', 'BasicBorders.RadioButtonBorder', 'BasicBorders.RolloverButtonBorder', 'BasicBorders.SplitPaneBorder', 'BasicBorders.ToggleButtonBorder', 'BasicButtonListener', 'BasicButtonUI', 'BasicCheckBoxMenuItemUI', 'BasicCheckBoxUI', 'BasicColorChooserUI', 'BasicComboBoxEditor', 'BasicComboBoxEditor.UIResource', 'BasicComboBoxRenderer', 'BasicComboBoxRenderer.UIResource', 'BasicComboBoxUI', 'BasicComboPopup', 'BasicDesktopIconUI', 'BasicDesktopPaneUI', 'BasicDirectoryModel', 'BasicEditorPaneUI', 'BasicFileChooserUI', 'BasicFormattedTextFieldUI', 'BasicGraphicsUtils', 'BasicHTML', 'BasicIconFactory', 'BasicInternalFrameTitlePane', 'BasicInternalFrameUI', 'BasicLabelUI', 'BasicListUI', 'BasicLookAndFeel', 'BasicMenuBarUI', 'BasicMenuItemUI', 'BasicMenuUI', 'BasicOptionPaneUI', 'BasicOptionPaneUI.ButtonAreaLayout', 'BasicPanelUI', 'BasicPasswordFieldUI', - 'BasicPopupMenuSeparatorUI', 'BasicPopupMenuUI', 'BasicProgressBarUI', 'BasicRadioButtonMenuItemUI', 'BasicRadioButtonUI', 'BasicRootPaneUI', 'BasicScrollBarUI', 'BasicScrollPaneUI', 'BasicSeparatorUI', 'BasicSliderUI', 'BasicSpinnerUI', 'BasicSplitPaneDivider', 'BasicSplitPaneUI', 'BasicTabbedPaneUI', 'BasicTableHeaderUI', 'BasicTableUI', 'BasicTextAreaUI', 'BasicTextFieldUI', 'BasicTextPaneUI', 'BasicTextUI', 'BasicTextUI.BasicCaret', 'BasicTextUI.BasicHighlighter', 'BasicToggleButtonUI', 'BasicToolBarSeparatorUI', 'BasicToolBarUI', 'BasicToolTipUI', 'BasicTreeUI', 'BasicViewportUI', 'ComboPopup', 'DefaultMenuLayout' - ), - 112 => array ( - 'DefaultMetalTheme', 'MetalBorders', 'MetalBorders.ButtonBorder', 'MetalBorders.Flush3DBorder', 'MetalBorders.InternalFrameBorder', 'MetalBorders.MenuBarBorder', 'MetalBorders.MenuItemBorder', 'MetalBorders.OptionDialogBorder', 'MetalBorders.PaletteBorder', 'MetalBorders.PopupMenuBorder', 'MetalBorders.RolloverButtonBorder', 'MetalBorders.ScrollPaneBorder', 'MetalBorders.TableHeaderBorder', 'MetalBorders.TextFieldBorder', 'MetalBorders.ToggleButtonBorder', 'MetalBorders.ToolBarBorder', 'MetalButtonUI', 'MetalCheckBoxIcon', 'MetalCheckBoxUI', 'MetalComboBoxButton', 'MetalComboBoxEditor', 'MetalComboBoxEditor.UIResource', 'MetalComboBoxIcon', 'MetalComboBoxUI', 'MetalDesktopIconUI', 'MetalFileChooserUI', 'MetalIconFactory', 'MetalIconFactory.FileIcon16', 'MetalIconFactory.FolderIcon16', 'MetalIconFactory.PaletteCloseIcon', 'MetalIconFactory.TreeControlIcon', 'MetalIconFactory.TreeFolderIcon', 'MetalIconFactory.TreeLeafIcon', 'MetalInternalFrameTitlePane', 'MetalInternalFrameUI', 'MetalLabelUI', - 'MetalLookAndFeel', 'MetalMenuBarUI', 'MetalPopupMenuSeparatorUI', 'MetalProgressBarUI', 'MetalRadioButtonUI', 'MetalRootPaneUI', 'MetalScrollBarUI', 'MetalScrollButton', 'MetalScrollPaneUI', 'MetalSeparatorUI', 'MetalSliderUI', 'MetalSplitPaneUI', 'MetalTabbedPaneUI', 'MetalTextFieldUI', 'MetalTheme', 'MetalToggleButtonUI', 'MetalToolBarUI', 'MetalToolTipUI', 'MetalTreeUI', 'OceanTheme' - ), - 113 => array ( - 'MultiButtonUI', 'MultiColorChooserUI', 'MultiComboBoxUI', 'MultiDesktopIconUI', 'MultiDesktopPaneUI', 'MultiFileChooserUI', 'MultiInternalFrameUI', 'MultiLabelUI', 'MultiListUI', 'MultiLookAndFeel', 'MultiMenuBarUI', 'MultiMenuItemUI', 'MultiOptionPaneUI', 'MultiPanelUI', 'MultiPopupMenuUI', 'MultiProgressBarUI', 'MultiRootPaneUI', 'MultiScrollBarUI', 'MultiScrollPaneUI', 'MultiSeparatorUI', 'MultiSliderUI', 'MultiSpinnerUI', 'MultiSplitPaneUI', 'MultiTabbedPaneUI', 'MultiTableHeaderUI', 'MultiTableUI', 'MultiTextUI', 'MultiToolBarUI', 'MultiToolTipUI', 'MultiTreeUI', 'MultiViewportUI' - ), - 114 => array ( - 'ColorType', 'Region', 'SynthConstants', 'SynthContext', 'SynthGraphicsUtils', 'SynthLookAndFeel', 'SynthPainter', 'SynthStyle', 'SynthStyleFactory' - ), - 115 => array ( - 'AbstractTableModel', 'DefaultTableCellRenderer', 'DefaultTableCellRenderer.UIResource', 'DefaultTableColumnModel', 'DefaultTableModel', 'JTableHeader', 'TableCellEditor', 'TableCellRenderer', 'TableColumn', 'TableColumnModel', 'TableModel' - ), - 116 => array ( - 'AbstractDocument', 'AbstractDocument.AttributeContext', 'AbstractDocument.Content', 'AbstractDocument.ElementEdit', 'AbstractWriter', 'AsyncBoxView', 'AttributeSet.CharacterAttribute', 'AttributeSet.ColorAttribute', 'AttributeSet.FontAttribute', 'AttributeSet.ParagraphAttribute', 'BadLocationException', 'BoxView', 'Caret', 'ChangedCharSetException', 'ComponentView', 'CompositeView', 'DateFormatter', 'DefaultCaret', 'DefaultEditorKit', 'DefaultEditorKit.BeepAction', 'DefaultEditorKit.CopyAction', 'DefaultEditorKit.CutAction', 'DefaultEditorKit.DefaultKeyTypedAction', 'DefaultEditorKit.InsertBreakAction', 'DefaultEditorKit.InsertContentAction', 'DefaultEditorKit.InsertTabAction', 'DefaultEditorKit.PasteAction', 'DefaultFormatter', 'DefaultFormatterFactory', 'DefaultHighlighter', 'DefaultHighlighter.DefaultHighlightPainter', 'DefaultStyledDocument', 'DefaultStyledDocument.AttributeUndoableEdit', 'DefaultStyledDocument.ElementSpec', 'DefaultTextUI', 'DocumentFilter', 'DocumentFilter.FilterBypass', - 'EditorKit', 'ElementIterator', 'FieldView', 'FlowView', 'FlowView.FlowStrategy', 'GapContent', 'GlyphView', 'GlyphView.GlyphPainter', 'Highlighter', 'Highlighter.Highlight', 'Highlighter.HighlightPainter', 'IconView', 'InternationalFormatter', 'JTextComponent', 'JTextComponent.KeyBinding', 'Keymap', 'LabelView', 'LayeredHighlighter', 'LayeredHighlighter.LayerPainter', 'LayoutQueue', 'MaskFormatter', 'MutableAttributeSet', 'NavigationFilter', 'NavigationFilter.FilterBypass', 'NumberFormatter', 'PasswordView', 'PlainDocument', 'PlainView', 'Position', 'Position.Bias', 'Segment', 'SimpleAttributeSet', 'StringContent', 'Style', 'StyleConstants', 'StyleConstants.CharacterConstants', 'StyleConstants.ColorConstants', 'StyleConstants.FontConstants', 'StyleConstants.ParagraphConstants', 'StyleContext', 'StyledDocument', 'StyledEditorKit', 'StyledEditorKit.AlignmentAction', 'StyledEditorKit.BoldAction', 'StyledEditorKit.FontFamilyAction', 'StyledEditorKit.FontSizeAction', 'StyledEditorKit.ForegroundAction', - 'StyledEditorKit.ItalicAction', 'StyledEditorKit.StyledTextAction', 'StyledEditorKit.UnderlineAction', 'TabExpander', 'TabSet', 'TabStop', 'TabableView', 'TableView', 'TextAction', 'Utilities', 'View', 'ViewFactory', 'WrappedPlainView', 'ZoneView' - ), - 117 => array ( - 'BlockView', 'CSS', 'CSS.Attribute', 'FormSubmitEvent', 'FormSubmitEvent.MethodType', 'FormView', 'HTML', 'HTML.Attribute', 'HTML.Tag', 'HTML.UnknownTag', 'HTMLDocument', 'HTMLDocument.Iterator', 'HTMLEditorKit', 'HTMLEditorKit.HTMLFactory', 'HTMLEditorKit.HTMLTextAction', 'HTMLEditorKit.InsertHTMLTextAction', 'HTMLEditorKit.LinkController', 'HTMLEditorKit.Parser', 'HTMLEditorKit.ParserCallback', 'HTMLFrameHyperlinkEvent', 'HTMLWriter', 'ImageView', 'InlineView', 'ListView', 'MinimalHTMLWriter', 'ObjectView', 'Option', 'StyleSheet', 'StyleSheet.BoxPainter', 'StyleSheet.ListPainter' - ), - 118 => array ( - 'ContentModel', 'DTD', 'DTDConstants', 'DocumentParser', 'ParserDelegator', 'TagElement' - ), - 119 => array ( - 'RTFEditorKit' - ), - 120 => array ( - 'AbstractLayoutCache', 'AbstractLayoutCache.NodeDimensions', 'DefaultMutableTreeNode', 'DefaultTreeCellEditor', 'DefaultTreeCellRenderer', 'DefaultTreeModel', 'DefaultTreeSelectionModel', 'ExpandVetoException', 'FixedHeightLayoutCache', 'MutableTreeNode', 'RowMapper', 'TreeCellEditor', 'TreeCellRenderer', 'TreeModel', 'TreeNode', 'TreePath', 'TreeSelectionModel', 'VariableHeightLayoutCache' - ), - 121 => array ( - 'AbstractUndoableEdit', 'CannotRedoException', 'CannotUndoException', 'CompoundEdit', 'StateEdit', 'StateEditable', 'UndoManager', 'UndoableEdit', 'UndoableEditSupport' - ), - 122 => array ( - 'InvalidTransactionException', 'TransactionRequiredException', 'TransactionRolledbackException' - ), - 123 => array ( - 'XAException', 'XAResource', 'Xid' - ), - 124 => array ( - 'XMLConstants' - ), - 125 => array ( - 'DatatypeConfigurationException', 'DatatypeConstants', 'DatatypeConstants.Field', 'DatatypeFactory', 'Duration', 'XMLGregorianCalendar' - ), - 126 => array ( - 'NamespaceContext', 'QName' - ), - 127 => array ( - 'DocumentBuilder', 'DocumentBuilderFactory', 'FactoryConfigurationError', 'ParserConfigurationException', 'SAXParser', 'SAXParserFactory' - ), - 128 => array ( - 'ErrorListener', 'OutputKeys', 'Result', 'Source', 'SourceLocator', 'Templates', 'Transformer', 'TransformerConfigurationException', 'TransformerException', 'TransformerFactory', 'TransformerFactoryConfigurationError', 'URIResolver' - ), - 129 => array ( - 'DOMResult', 'DOMSource' - ), - 130 => array ( - 'SAXResult', 'SAXSource', 'SAXTransformerFactory', 'TemplatesHandler', 'TransformerHandler' - ), - 131 => array ( - 'StreamResult', 'StreamSource' - ), - 132 => array ( - 'Schema', 'SchemaFactory', 'SchemaFactoryLoader', 'TypeInfoProvider', 'Validator', 'ValidatorHandler' - ), - 133 => array ( - 'XPath', 'XPathConstants', 'XPathException', 'XPathExpression', 'XPathExpressionException', 'XPathFactory', 'XPathFactoryConfigurationException', 'XPathFunction', 'XPathFunctionException', 'XPathFunctionResolver', 'XPathVariableResolver' - ), - 134 => array ( - 'ChannelBinding', 'GSSContext', 'GSSCredential', 'GSSException', 'GSSManager', 'GSSName', 'MessageProp', 'Oid' - ), - 135 => array ( - 'ACTIVITY_COMPLETED', 'ACTIVITY_REQUIRED', 'ARG_IN', 'ARG_INOUT', 'ARG_OUT', 'Any', 'AnyHolder', 'AnySeqHolder', 'BAD_CONTEXT', 'BAD_INV_ORDER', 'BAD_OPERATION', 'BAD_PARAM', 'BAD_POLICY', 'BAD_POLICY_TYPE', 'BAD_POLICY_VALUE', 'BAD_QOS', 'BAD_TYPECODE', 'BooleanHolder', 'BooleanSeqHelper', 'BooleanSeqHolder', 'ByteHolder', 'CODESET_INCOMPATIBLE', 'COMM_FAILURE', 'CTX_RESTRICT_SCOPE', 'CharHolder', 'CharSeqHelper', 'CharSeqHolder', 'CompletionStatus', 'CompletionStatusHelper', 'ContextList', 'CurrentHolder', 'CustomMarshal', 'DATA_CONVERSION', 'DefinitionKind', 'DefinitionKindHelper', 'DomainManager', 'DomainManagerOperations', 'DoubleHolder', 'DoubleSeqHelper', 'DoubleSeqHolder', 'Environment', 'ExceptionList', 'FREE_MEM', 'FixedHolder', 'FloatHolder', 'FloatSeqHelper', 'FloatSeqHolder', 'IDLType', 'IDLTypeHelper', 'IDLTypeOperations', 'IMP_LIMIT', 'INITIALIZE', 'INTERNAL', 'INTF_REPOS', 'INVALID_ACTIVITY', 'INVALID_TRANSACTION', 'INV_FLAG', 'INV_IDENT', 'INV_OBJREF', 'INV_POLICY', 'IRObject', - 'IRObjectOperations', 'IdentifierHelper', 'IntHolder', 'LocalObject', 'LongHolder', 'LongLongSeqHelper', 'LongLongSeqHolder', 'LongSeqHelper', 'LongSeqHolder', 'MARSHAL', 'NO_IMPLEMENT', 'NO_MEMORY', 'NO_PERMISSION', 'NO_RESOURCES', 'NO_RESPONSE', 'NVList', 'NamedValue', 'OBJECT_NOT_EXIST', 'OBJ_ADAPTER', 'OMGVMCID', 'ObjectHelper', 'ObjectHolder', 'OctetSeqHelper', 'OctetSeqHolder', 'PERSIST_STORE', 'PRIVATE_MEMBER', 'PUBLIC_MEMBER', 'ParameterMode', 'ParameterModeHelper', 'ParameterModeHolder', 'PolicyError', 'PolicyErrorCodeHelper', 'PolicyErrorHelper', 'PolicyErrorHolder', 'PolicyHelper', 'PolicyHolder', 'PolicyListHelper', 'PolicyListHolder', 'PolicyOperations', 'PolicyTypeHelper', 'PrincipalHolder', 'REBIND', 'RepositoryIdHelper', 'Request', 'ServerRequest', 'ServiceDetail', 'ServiceDetailHelper', 'ServiceInformation', 'ServiceInformationHelper', 'ServiceInformationHolder', 'SetOverrideType', 'SetOverrideTypeHelper', 'ShortHolder', 'ShortSeqHelper', 'ShortSeqHolder', 'StringHolder', - 'StringSeqHelper', 'StringSeqHolder', 'StringValueHelper', 'StructMember', 'StructMemberHelper', 'SystemException', 'TCKind', 'TIMEOUT', 'TRANSACTION_MODE', 'TRANSACTION_REQUIRED', 'TRANSACTION_ROLLEDBACK', 'TRANSACTION_UNAVAILABLE', 'TRANSIENT', 'TypeCode', 'TypeCodeHolder', 'ULongLongSeqHelper', 'ULongLongSeqHolder', 'ULongSeqHelper', 'ULongSeqHolder', 'UNSUPPORTED_POLICY', 'UNSUPPORTED_POLICY_VALUE', 'UShortSeqHelper', 'UShortSeqHolder', 'UnionMember', 'UnionMemberHelper', 'UnknownUserException', 'UnknownUserExceptionHelper', 'UnknownUserExceptionHolder', 'UserException', 'VM_ABSTRACT', 'VM_CUSTOM', 'VM_NONE', 'VM_TRUNCATABLE', 'ValueBaseHelper', 'ValueBaseHolder', 'ValueMember', 'ValueMemberHelper', 'VersionSpecHelper', 'VisibilityHelper', 'WCharSeqHelper', 'WCharSeqHolder', 'WStringSeqHelper', 'WStringSeqHolder', 'WStringValueHelper', 'WrongTransaction', 'WrongTransactionHelper', 'WrongTransactionHolder', '_IDLTypeStub', '_PolicyStub' - ), - 136 => array ( - 'Invalid', 'InvalidSeq' - ), - 137 => array ( - 'BadKind' - ), - 138 => array ( - 'ApplicationException', 'BoxedValueHelper', 'CustomValue', 'IDLEntity', 'IndirectionException', 'InvokeHandler', 'RemarshalException', 'ResponseHandler', 'ServantObject', 'Streamable', 'StreamableValue', 'UnknownException', 'ValueBase', 'ValueFactory', 'ValueInputStream', 'ValueOutputStream' - ), - 139 => array ( - 'BindingHelper', 'BindingHolder', 'BindingIterator', 'BindingIteratorHelper', 'BindingIteratorHolder', 'BindingIteratorOperations', 'BindingIteratorPOA', 'BindingListHelper', 'BindingListHolder', 'BindingType', 'BindingTypeHelper', 'BindingTypeHolder', 'IstringHelper', 'NameComponent', 'NameComponentHelper', 'NameComponentHolder', 'NameHelper', 'NameHolder', 'NamingContext', 'NamingContextExt', 'NamingContextExtHelper', 'NamingContextExtHolder', 'NamingContextExtOperations', 'NamingContextExtPOA', 'NamingContextHelper', 'NamingContextHolder', 'NamingContextOperations', 'NamingContextPOA', '_BindingIteratorImplBase', '_BindingIteratorStub', '_NamingContextExtStub', '_NamingContextImplBase', '_NamingContextStub' - ), - 140 => array ( - 'AddressHelper', 'InvalidAddress', 'InvalidAddressHelper', 'InvalidAddressHolder', 'StringNameHelper', 'URLStringHelper' - ), - 141 => array ( - 'AlreadyBound', 'AlreadyBoundHelper', 'AlreadyBoundHolder', 'CannotProceed', 'CannotProceedHelper', 'CannotProceedHolder', 'InvalidNameHolder', 'NotEmpty', 'NotEmptyHelper', 'NotEmptyHolder', 'NotFound', 'NotFoundHelper', 'NotFoundHolder', 'NotFoundReason', 'NotFoundReasonHelper', 'NotFoundReasonHolder' - ), - 142 => array ( - 'Parameter' - ), - 143 => array ( - 'DynAnyFactory', 'DynAnyFactoryHelper', 'DynAnyFactoryOperations', 'DynAnyHelper', 'DynAnyOperations', 'DynAnySeqHelper', 'DynArrayHelper', 'DynArrayOperations', 'DynEnumHelper', 'DynEnumOperations', 'DynFixedHelper', 'DynFixedOperations', 'DynSequenceHelper', 'DynSequenceOperations', 'DynStructHelper', 'DynStructOperations', 'DynUnionHelper', 'DynUnionOperations', 'DynValueBox', 'DynValueBoxOperations', 'DynValueCommon', 'DynValueCommonOperations', 'DynValueHelper', 'DynValueOperations', 'NameDynAnyPair', 'NameDynAnyPairHelper', 'NameDynAnyPairSeqHelper', 'NameValuePairSeqHelper', '_DynAnyFactoryStub', '_DynAnyStub', '_DynArrayStub', '_DynEnumStub', '_DynFixedStub', '_DynSequenceStub', '_DynStructStub', '_DynUnionStub', '_DynValueStub' - ), - 144 => array ( - 'InconsistentTypeCodeHelper' - ), - 145 => array ( - 'InvalidValueHelper' - ), - 146 => array ( - 'CodeSets', 'Codec', 'CodecFactory', 'CodecFactoryHelper', 'CodecFactoryOperations', 'CodecOperations', 'ComponentIdHelper', 'ENCODING_CDR_ENCAPS', 'Encoding', 'ExceptionDetailMessage', 'IOR', 'IORHelper', 'IORHolder', 'MultipleComponentProfileHelper', 'MultipleComponentProfileHolder', 'ProfileIdHelper', 'RMICustomMaxStreamFormat', 'ServiceContext', 'ServiceContextHelper', 'ServiceContextHolder', 'ServiceContextListHelper', 'ServiceContextListHolder', 'ServiceIdHelper', 'TAG_ALTERNATE_IIOP_ADDRESS', 'TAG_CODE_SETS', 'TAG_INTERNET_IOP', 'TAG_JAVA_CODEBASE', 'TAG_MULTIPLE_COMPONENTS', 'TAG_ORB_TYPE', 'TAG_POLICIES', 'TAG_RMI_CUSTOM_MAX_STREAM_FORMAT', 'TaggedComponent', 'TaggedComponentHelper', 'TaggedComponentHolder', 'TaggedProfile', 'TaggedProfileHelper', 'TaggedProfileHolder', 'TransactionService' - ), - 147 => array ( - 'UnknownEncoding', 'UnknownEncodingHelper' - ), - 148 => array ( - 'FormatMismatch', 'FormatMismatchHelper', 'InvalidTypeForEncoding', 'InvalidTypeForEncodingHelper' - ), - 149 => array ( - 'SYNC_WITH_TRANSPORT', 'SyncScopeHelper' - ), - 150 => array ( - 'ACTIVE', 'AdapterManagerIdHelper', 'AdapterNameHelper', 'AdapterStateHelper', 'ClientRequestInfo', 'ClientRequestInfoOperations', 'ClientRequestInterceptor', 'ClientRequestInterceptorOperations', 'DISCARDING', 'HOLDING', 'INACTIVE', 'IORInfo', 'IORInfoOperations', 'IORInterceptor', 'IORInterceptorOperations', 'IORInterceptor_3_0', 'IORInterceptor_3_0Helper', 'IORInterceptor_3_0Holder', 'IORInterceptor_3_0Operations', 'Interceptor', 'InterceptorOperations', 'InvalidSlot', 'InvalidSlotHelper', 'LOCATION_FORWARD', 'NON_EXISTENT', 'ORBIdHelper', 'ORBInitInfo', 'ORBInitInfoOperations', 'ORBInitializer', 'ORBInitializerOperations', 'ObjectReferenceFactory', 'ObjectReferenceFactoryHelper', 'ObjectReferenceFactoryHolder', 'ObjectReferenceTemplate', 'ObjectReferenceTemplateHelper', 'ObjectReferenceTemplateHolder', 'ObjectReferenceTemplateSeqHelper', 'ObjectReferenceTemplateSeqHolder', 'PolicyFactory', 'PolicyFactoryOperations', 'RequestInfo', 'RequestInfoOperations', 'SUCCESSFUL', 'SYSTEM_EXCEPTION', - 'ServerIdHelper', 'ServerRequestInfo', 'ServerRequestInfoOperations', 'ServerRequestInterceptor', 'ServerRequestInterceptorOperations', 'TRANSPORT_RETRY', 'USER_EXCEPTION' - ), - 151 => array ( - 'DuplicateName', 'DuplicateNameHelper' - ), - 152 => array ( - 'AdapterActivator', 'AdapterActivatorOperations', 'ID_ASSIGNMENT_POLICY_ID', 'ID_UNIQUENESS_POLICY_ID', 'IMPLICIT_ACTIVATION_POLICY_ID', 'IdAssignmentPolicy', 'IdAssignmentPolicyOperations', 'IdAssignmentPolicyValue', 'IdUniquenessPolicy', 'IdUniquenessPolicyOperations', 'IdUniquenessPolicyValue', 'ImplicitActivationPolicy', 'ImplicitActivationPolicyOperations', 'ImplicitActivationPolicyValue', 'LIFESPAN_POLICY_ID', 'LifespanPolicy', 'LifespanPolicyOperations', 'LifespanPolicyValue', 'POA', 'POAHelper', 'POAManager', 'POAManagerOperations', 'POAOperations', 'REQUEST_PROCESSING_POLICY_ID', 'RequestProcessingPolicy', 'RequestProcessingPolicyOperations', 'RequestProcessingPolicyValue', 'SERVANT_RETENTION_POLICY_ID', 'Servant', 'ServantActivator', 'ServantActivatorHelper', 'ServantActivatorOperations', 'ServantActivatorPOA', 'ServantLocator', 'ServantLocatorHelper', 'ServantLocatorOperations', 'ServantLocatorPOA', 'ServantManager', 'ServantManagerOperations', 'ServantRetentionPolicy', - 'ServantRetentionPolicyOperations', 'ServantRetentionPolicyValue', 'THREAD_POLICY_ID', 'ThreadPolicy', 'ThreadPolicyOperations', 'ThreadPolicyValue', '_ServantActivatorStub', '_ServantLocatorStub' - ), - 153 => array ( - 'NoContext', 'NoContextHelper' - ), - 154 => array ( - 'AdapterInactive', 'AdapterInactiveHelper', 'State' - ), - 155 => array ( - 'AdapterAlreadyExists', 'AdapterAlreadyExistsHelper', 'AdapterNonExistent', 'AdapterNonExistentHelper', 'InvalidPolicy', 'InvalidPolicyHelper', 'NoServant', 'NoServantHelper', 'ObjectAlreadyActive', 'ObjectAlreadyActiveHelper', 'ObjectNotActive', 'ObjectNotActiveHelper', 'ServantAlreadyActive', 'ServantAlreadyActiveHelper', 'ServantNotActive', 'ServantNotActiveHelper', 'WrongAdapter', 'WrongAdapterHelper', 'WrongPolicy', 'WrongPolicyHelper' - ), - 156 => array ( - 'CookieHolder' - ), - 157 => array ( - 'RunTime', 'RunTimeOperations' - ), - 158 => array ( - '_Remote_Stub' - ), - 159 => array ( - 'Attr', 'CDATASection', 'CharacterData', 'Comment', 'DOMConfiguration', 'DOMError', 'DOMErrorHandler', 'DOMException', 'DOMImplementation', 'DOMImplementationList', 'DOMImplementationSource', 'DOMStringList', 'DocumentFragment', 'DocumentType', 'EntityReference', 'NameList', 'NamedNodeMap', 'Node', 'NodeList', 'Notation', 'ProcessingInstruction', 'Text', 'TypeInfo', 'UserDataHandler' - ), - 160 => array ( - 'DOMImplementationRegistry' - ), - 161 => array ( - 'EventException', 'EventTarget', 'MutationEvent', 'UIEvent' - ), - 162 => array ( - 'DOMImplementationLS', 'LSException', 'LSInput', 'LSLoadEvent', 'LSOutput', 'LSParser', 'LSParserFilter', 'LSProgressEvent', 'LSResourceResolver', 'LSSerializer', 'LSSerializerFilter' - ), - 163 => array ( - 'DTDHandler', 'DocumentHandler', 'EntityResolver', 'ErrorHandler', 'HandlerBase', 'InputSource', 'Locator', 'SAXException', 'SAXNotRecognizedException', 'SAXNotSupportedException', 'SAXParseException', 'XMLFilter', 'XMLReader' - ), - 164 => array ( - 'Attributes2', 'Attributes2Impl', 'DeclHandler', 'DefaultHandler2', 'EntityResolver2', 'LexicalHandler', 'Locator2', 'Locator2Impl' - ), - 165 => array ( - 'AttributeListImpl', 'AttributesImpl', 'DefaultHandler', 'LocatorImpl', 'NamespaceSupport', 'ParserAdapter', 'ParserFactory', 'XMLFilterImpl', 'XMLReaderAdapter', 'XMLReaderFactory' - ), - /* ambiguous class names (appear in more than one package) */ - 166 => array ( - 'Annotation', 'AnySeqHelper', 'Array', 'Attribute', 'AttributeList', 'AttributeSet', 'Attributes', 'AuthenticationException', 'Binding', 'Bounds', 'Certificate', 'CertificateEncodingException', 'CertificateException', 'CertificateExpiredException', 'CertificateNotYetValidException', 'CertificateParsingException', 'ConnectException', 'ContentHandler', 'Context', 'Control', 'Current', 'CurrentHelper', 'CurrentOperations', 'DOMLocator', 'DataInputStream', 'DataOutputStream', 'Date', 'DefaultLoaderRepository', 'Delegate', 'Document', 'DocumentEvent', 'DynAny', 'DynArray', 'DynEnum', 'DynFixed', 'DynSequence', 'DynStruct', 'DynUnion', 'DynValue', 'DynamicImplementation', 'Element', 'Entity', 'Event', 'EventListener', 'FieldNameHelper', 'FileFilter', 'Formatter', 'ForwardRequest', 'ForwardRequestHelper', 'InconsistentTypeCode', 'InputStream', 'IntrospectionException', 'InvalidAttributeValueException', 'InvalidKeyException', 'InvalidName', 'InvalidNameHelper', 'InvalidValue', 'List', 'MouseEvent', - 'NameValuePair', 'NameValuePairHelper', 'ORB', 'Object', 'ObjectIdHelper', 'ObjectImpl', 'OpenType', 'OutputStream', 'ParagraphView', 'Parser', 'Permission', 'Policy', 'Principal', 'Proxy', 'Reference', 'Statement', 'Timer', 'Timestamp', 'TypeMismatch', 'TypeMismatchHelper', 'UNKNOWN', 'UnknownHostException', 'X509Certificate' - ) - ), - 'SYMBOLS' => array( - '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - /* all Java keywords are case sensitive */ - 1 => true, 2 => true, 3 => true, 4 => true, - 5 => true, 6 => true, 7 => true, 8 => true, 9 => true, - 10 => true, 11 => true, 12 => true, 13 => true, 14 => true, - 15 => true, 16 => true, 17 => true, 18 => true, 19 => true, - 20 => true, 21 => true, 22 => true, 23 => true, 24 => true, - 25 => true, 26 => true, 27 => true, 28 => true, 29 => true, - 30 => true, 31 => true, 32 => true, 33 => true, 34 => true, - 35 => true, 36 => true, 37 => true, 38 => true, 39 => true, - 40 => true, 41 => true, 42 => true, 43 => true, 44 => true, - 45 => true, 46 => true, 47 => true, 48 => true, 49 => true, - 50 => true, 51 => true, 52 => true, 53 => true, 54 => true, - 55 => true, 56 => true, 57 => true, 58 => true, 59 => true, - 60 => true, 61 => true, 62 => true, 63 => true, 64 => true, - 65 => true, 66 => true, 67 => true, 68 => true, 69 => true, - 70 => true, 71 => true, 72 => true, 73 => true, 74 => true, - 75 => true, 76 => true, 77 => true, 78 => true, 79 => true, - 80 => true, 81 => true, 82 => true, 83 => true, 84 => true, - 85 => true, 86 => true, 87 => true, 88 => true, 89 => true, - 90 => true, 91 => true, 92 => true, 93 => true, 94 => true, - 95 => true, 96 => true, 97 => true, 98 => true, 99 => true, - 100 => true, 101 => true, 102 => true, 103 => true, 104 => true, - 105 => true, 106 => true, 107 => true, 108 => true, 109 => true, - 110 => true, 111 => true, 112 => true, 113 => true, 114 => true, - 115 => true, 116 => true, 117 => true, 118 => true, 119 => true, - 120 => true, 121 => true, 122 => true, 123 => true, 124 => true, - 125 => true, 126 => true, 127 => true, 128 => true, 129 => true, - 130 => true, 131 => true, 132 => true, 133 => true, 134 => true, - 135 => true, 136 => true, 137 => true, 138 => true, 139 => true, - 140 => true, 141 => true, 142 => true, 143 => true, 144 => true, - 145 => true, 146 => true, 147 => true, 148 => true, 149 => true, - 150 => true, 151 => true, 152 => true, 153 => true, 154 => true, - 155 => true, 156 => true, 157 => true, 158 => true, 159 => true, - 160 => true, 161 => true, 162 => true, 163 => true, 164 => true, - 165 => true, 166 => true - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #b1b100;', - 2 => 'color: #000000; font-weight: bold;', - 3 => 'color: #993333;', - 4 => 'color: #b13366;', - 5 => 'color: #aaaadd; font-weight: bold;', - 6 => 'color: #aaaadd; font-weight: bold;', - 7 => 'color: #aaaadd; font-weight: bold;', - 8 => 'color: #aaaadd; font-weight: bold;', - 9 => 'color: #aaaadd; font-weight: bold;', - 10 => 'color: #aaaadd; font-weight: bold;', - 11 => 'color: #aaaadd; font-weight: bold;', - 12 => 'color: #aaaadd; font-weight: bold;', - 13 => 'color: #aaaadd; font-weight: bold;', - 14 => 'color: #aaaadd; font-weight: bold;', - 15 => 'color: #aaaadd; font-weight: bold;', - 16 => 'color: #aaaadd; font-weight: bold;', - 17 => 'color: #aaaadd; font-weight: bold;', - 18 => 'color: #aaaadd; font-weight: bold;', - 19 => 'color: #aaaadd; font-weight: bold;', - 20 => 'color: #aaaadd; font-weight: bold;', - 21 => 'color: #aaaadd; font-weight: bold;', - 22 => 'color: #aaaadd; font-weight: bold;', - 23 => 'color: #aaaadd; font-weight: bold;', - 24 => 'color: #aaaadd; font-weight: bold;', - 25 => 'color: #aaaadd; font-weight: bold;', - 26 => 'color: #aaaadd; font-weight: bold;', - 27 => 'color: #aaaadd; font-weight: bold;', - 28 => 'color: #aaaadd; font-weight: bold;', - 29 => 'color: #aaaadd; font-weight: bold;', - 30 => 'color: #aaaadd; font-weight: bold;', - 31 => 'color: #aaaadd; font-weight: bold;', - 32 => 'color: #aaaadd; font-weight: bold;', - 33 => 'color: #aaaadd; font-weight: bold;', - 34 => 'color: #aaaadd; font-weight: bold;', - 35 => 'color: #aaaadd; font-weight: bold;', - 36 => 'color: #aaaadd; font-weight: bold;', - 37 => 'color: #aaaadd; font-weight: bold;', - 38 => 'color: #aaaadd; font-weight: bold;', - 39 => 'color: #aaaadd; font-weight: bold;', - 40 => 'color: #aaaadd; font-weight: bold;', - 41 => 'color: #aaaadd; font-weight: bold;', - 42 => 'color: #aaaadd; font-weight: bold;', - 43 => 'color: #aaaadd; font-weight: bold;', - 44 => 'color: #aaaadd; font-weight: bold;', - 45 => 'color: #aaaadd; font-weight: bold;', - 46 => 'color: #aaaadd; font-weight: bold;', - 47 => 'color: #aaaadd; font-weight: bold;', - 48 => 'color: #aaaadd; font-weight: bold;', - 49 => 'color: #aaaadd; font-weight: bold;', - 50 => 'color: #aaaadd; font-weight: bold;', - 51 => 'color: #aaaadd; font-weight: bold;', - 52 => 'color: #aaaadd; font-weight: bold;', - 53 => 'color: #aaaadd; font-weight: bold;', - 54 => 'color: #aaaadd; font-weight: bold;', - 55 => 'color: #aaaadd; font-weight: bold;', - 56 => 'color: #aaaadd; font-weight: bold;', - 57 => 'color: #aaaadd; font-weight: bold;', - 58 => 'color: #aaaadd; font-weight: bold;', - 59 => 'color: #aaaadd; font-weight: bold;', - 60 => 'color: #aaaadd; font-weight: bold;', - 61 => 'color: #aaaadd; font-weight: bold;', - 62 => 'color: #aaaadd; font-weight: bold;', - 63 => 'color: #aaaadd; font-weight: bold;', - 64 => 'color: #aaaadd; font-weight: bold;', - 65 => 'color: #aaaadd; font-weight: bold;', - 66 => 'color: #aaaadd; font-weight: bold;', - 67 => 'color: #aaaadd; font-weight: bold;', - 68 => 'color: #aaaadd; font-weight: bold;', - 69 => 'color: #aaaadd; font-weight: bold;', - 70 => 'color: #aaaadd; font-weight: bold;', - 71 => 'color: #aaaadd; font-weight: bold;', - 72 => 'color: #aaaadd; font-weight: bold;', - 73 => 'color: #aaaadd; font-weight: bold;', - 74 => 'color: #aaaadd; font-weight: bold;', - 75 => 'color: #aaaadd; font-weight: bold;', - 76 => 'color: #aaaadd; font-weight: bold;', - 77 => 'color: #aaaadd; font-weight: bold;', - 78 => 'color: #aaaadd; font-weight: bold;', - 79 => 'color: #aaaadd; font-weight: bold;', - 80 => 'color: #aaaadd; font-weight: bold;', - 81 => 'color: #aaaadd; font-weight: bold;', - 82 => 'color: #aaaadd; font-weight: bold;', - 83 => 'color: #aaaadd; font-weight: bold;', - 84 => 'color: #aaaadd; font-weight: bold;', - 85 => 'color: #aaaadd; font-weight: bold;', - 86 => 'color: #aaaadd; font-weight: bold;', - 87 => 'color: #aaaadd; font-weight: bold;', - 88 => 'color: #aaaadd; font-weight: bold;', - 89 => 'color: #aaaadd; font-weight: bold;', - 90 => 'color: #aaaadd; font-weight: bold;', - 91 => 'color: #aaaadd; font-weight: bold;', - 92 => 'color: #aaaadd; font-weight: bold;', - 93 => 'color: #aaaadd; font-weight: bold;', - 94 => 'color: #aaaadd; font-weight: bold;', - 95 => 'color: #aaaadd; font-weight: bold;', - 96 => 'color: #aaaadd; font-weight: bold;', - 97 => 'color: #aaaadd; font-weight: bold;', - 98 => 'color: #aaaadd; font-weight: bold;', - 99 => 'color: #aaaadd; font-weight: bold;', - 100 => 'color: #aaaadd; font-weight: bold;', - 101 => 'color: #aaaadd; font-weight: bold;', - 102 => 'color: #aaaadd; font-weight: bold;', - 103 => 'color: #aaaadd; font-weight: bold;', - 104 => 'color: #aaaadd; font-weight: bold;', - 105 => 'color: #aaaadd; font-weight: bold;', - 106 => 'color: #aaaadd; font-weight: bold;', - 107 => 'color: #aaaadd; font-weight: bold;', - 108 => 'color: #aaaadd; font-weight: bold;', - 109 => 'color: #aaaadd; font-weight: bold;', - 110 => 'color: #aaaadd; font-weight: bold;', - 111 => 'color: #aaaadd; font-weight: bold;', - 112 => 'color: #aaaadd; font-weight: bold;', - 113 => 'color: #aaaadd; font-weight: bold;', - 114 => 'color: #aaaadd; font-weight: bold;', - 115 => 'color: #aaaadd; font-weight: bold;', - 116 => 'color: #aaaadd; font-weight: bold;', - 117 => 'color: #aaaadd; font-weight: bold;', - 118 => 'color: #aaaadd; font-weight: bold;', - 119 => 'color: #aaaadd; font-weight: bold;', - 120 => 'color: #aaaadd; font-weight: bold;', - 121 => 'color: #aaaadd; font-weight: bold;', - 122 => 'color: #aaaadd; font-weight: bold;', - 123 => 'color: #aaaadd; font-weight: bold;', - 124 => 'color: #aaaadd; font-weight: bold;', - 125 => 'color: #aaaadd; font-weight: bold;', - 126 => 'color: #aaaadd; font-weight: bold;', - 127 => 'color: #aaaadd; font-weight: bold;', - 128 => 'color: #aaaadd; font-weight: bold;', - 129 => 'color: #aaaadd; font-weight: bold;', - 130 => 'color: #aaaadd; font-weight: bold;', - 131 => 'color: #aaaadd; font-weight: bold;', - 132 => 'color: #aaaadd; font-weight: bold;', - 133 => 'color: #aaaadd; font-weight: bold;', - 134 => 'color: #aaaadd; font-weight: bold;', - 135 => 'color: #aaaadd; font-weight: bold;', - 136 => 'color: #aaaadd; font-weight: bold;', - 137 => 'color: #aaaadd; font-weight: bold;', - 138 => 'color: #aaaadd; font-weight: bold;', - 139 => 'color: #aaaadd; font-weight: bold;', - 140 => 'color: #aaaadd; font-weight: bold;', - 141 => 'color: #aaaadd; font-weight: bold;', - 142 => 'color: #aaaadd; font-weight: bold;', - 143 => 'color: #aaaadd; font-weight: bold;', - 144 => 'color: #aaaadd; font-weight: bold;', - 145 => 'color: #aaaadd; font-weight: bold;', - 146 => 'color: #aaaadd; font-weight: bold;', - 147 => 'color: #aaaadd; font-weight: bold;', - 148 => 'color: #aaaadd; font-weight: bold;', - 149 => 'color: #aaaadd; font-weight: bold;', - 150 => 'color: #aaaadd; font-weight: bold;', - 151 => 'color: #aaaadd; font-weight: bold;', - 152 => 'color: #aaaadd; font-weight: bold;', - 153 => 'color: #aaaadd; font-weight: bold;', - 154 => 'color: #aaaadd; font-weight: bold;', - 155 => 'color: #aaaadd; font-weight: bold;', - 156 => 'color: #aaaadd; font-weight: bold;', - 157 => 'color: #aaaadd; font-weight: bold;', - 158 => 'color: #aaaadd; font-weight: bold;', - 159 => 'color: #aaaadd; font-weight: bold;', - 160 => 'color: #aaaadd; font-weight: bold;', - 161 => 'color: #aaaadd; font-weight: bold;', - 162 => 'color: #aaaadd; font-weight: bold;', - 163 => 'color: #aaaadd; font-weight: bold;', - 164 => 'color: #aaaadd; font-weight: bold;', - 165 => 'color: #aaaadd; font-weight: bold;', - 166 => 'color: #aaaadd; font-weight: bold;' - ), - 'COMMENTS' => array( - 1 => 'color: #808080; 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: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( - 1 => 'color: #006600;', - 2 => 'color: #006600;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'SCRIPT' => array( - ), - 'REGEXPS' => array( - ) - ), - 'URLS' => array( - 1 => '', - 2 => '', - 3 => '', - 4 => '', - 5 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/applet/{FNAME}.html', - 6 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/{FNAME}.html', - 7 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/color/{FNAME}.html', - 8 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/datatransfer/{FNAME}.html', - 9 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/dnd/{FNAME}.html', - 10 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/event/{FNAME}.html', - 11 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/font/{FNAME}.html', - 12 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/geom/{FNAME}.html', - 13 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/im/{FNAME}.html', - 14 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/im/spi/{FNAME}.html', - 15 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/{FNAME}.html', - 16 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/renderable/{FNAME}.html', - 17 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/print/{FNAME}.html', - 18 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/beans/{FNAME}.html', - 19 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/beans/beancontext/{FNAME}.html', - 20 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/io/{FNAME}.html', - 21 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/{FNAME}.html', - 22 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/annotation/{FNAME}.html', - 23 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/instrument/{FNAME}.html', - 24 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/{FNAME}.html', - 25 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ref/{FNAME}.html', - 26 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/{FNAME}.html', - 27 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/math/{FNAME}.html', - 28 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/net/{FNAME}.html', - 29 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/{FNAME}.html', - 30 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/channels/{FNAME}.html', - 31 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/channels/spi/{FNAME}.html', - 32 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/charset/{FNAME}.html', - 33 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/charset/spi/{FNAME}.html', - 34 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/{FNAME}.html', - 35 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/activation/{FNAME}.html', - 36 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/dgc/{FNAME}.html', - 37 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/registry/{FNAME}.html', - 38 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/server/{FNAME}.html', - 39 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/{FNAME}.html', - 40 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/acl/{FNAME}.html', - 41 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/cert/{FNAME}.html', - 42 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/interfaces/{FNAME}.html', - 43 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/spec/{FNAME}.html', - 44 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/sql/{FNAME}.html', - 45 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/text/{FNAME}.html', - 46 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/{FNAME}.html', - 47 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/{FNAME}.html', - 48 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/atomic/{FNAME}.html', - 49 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/locks/{FNAME}.html', - 50 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/jar/{FNAME}.html', - 51 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/logging/{FNAME}.html', - 52 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/prefs/{FNAME}.html', - 53 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/{FNAME}.html', - 54 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/zip/{FNAME}.html', - 55 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/accessibility/{FNAME}.html', - 56 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/activity/{FNAME}.html', - 57 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/crypto/{FNAME}.html', - 58 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/crypto/interfaces/{FNAME}.html', - 59 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/crypto/spec/{FNAME}.html', - 60 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/{FNAME}.html', - 61 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/event/{FNAME}.html', - 62 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/metadata/{FNAME}.html', - 63 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/plugins/bmp/{FNAME}.html', - 64 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/plugins/jpeg/{FNAME}.html', - 65 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/spi/{FNAME}.html', - 66 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/stream/{FNAME}.html', - 67 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/{FNAME}.html', - 68 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/loading/{FNAME}.html', - 69 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/modelmbean/{FNAME}.html', - 70 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/monitor/{FNAME}.html', - 71 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/openmbean/{FNAME}.html', - 72 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/relation/{FNAME}.html', - 73 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/remote/{FNAME}.html', - 74 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/remote/rmi/{FNAME}.html', - 75 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/timer/{FNAME}.html', - 76 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/{FNAME}.html', - 77 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/directory/{FNAME}.html', - 78 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/event/{FNAME}.html', - 79 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/ldap/{FNAME}.html', - 80 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/spi/{FNAME}.html', - 81 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/net/{FNAME}.html', - 82 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/{FNAME}.html', - 83 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/{FNAME}.html', - 84 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/attribute/{FNAME}.html', - 85 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/attribute/standard/{FNAME}.html', - 86 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/event/{FNAME}.html', - 87 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/rmi/{FNAME}.html', - 88 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/rmi/CORBA/{FNAME}.html', - 89 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/rmi/ssl/{FNAME}.html', - 90 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/{FNAME}.html', - 91 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/callback/{FNAME}.html', - 92 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/kerberos/{FNAME}.html', - 93 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/login/{FNAME}.html', - 94 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/spi/{FNAME}.html', - 95 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/x500/{FNAME}.html', - 96 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/sasl/{FNAME}.html', - 97 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/{FNAME}.html', - 98 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/spi/{FNAME}.html', - 99 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/sampled/{FNAME}.html', - 100 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/sampled/spi/{FNAME}.html', - 101 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/{FNAME}.html', - 102 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/rowset/{FNAME}.html', - 103 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/rowset/serial/{FNAME}.html', - 104 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/rowset/spi/{FNAME}.html', - 105 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/{FNAME}.html', - 106 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/border/{FNAME}.html', - 107 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/colorchooser/{FNAME}.html', - 108 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/event/{FNAME}.html', - 109 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/filechooser/{FNAME}.html', - 110 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/{FNAME}.html', - 111 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/basic/{FNAME}.html', - 112 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/metal/{FNAME}.html', - 113 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/multi/{FNAME}.html', - 114 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/synth/{FNAME}.html', - 115 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/table/{FNAME}.html', - 116 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/{FNAME}.html', - 117 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/html/{FNAME}.html', - 118 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/html/parser/{FNAME}.html', - 119 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/rtf/{FNAME}.html', - 120 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/tree/{FNAME}.html', - 121 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/undo/{FNAME}.html', - 122 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/{FNAME}.html', - 123 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/{FNAME}.html', - 124 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/{FNAME}.html', - 125 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/datatype/{FNAME}.html', - 126 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/namespace/{FNAME}.html', - 127 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/parsers/{FNAME}.html', - 128 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/{FNAME}.html', - 129 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/dom/{FNAME}.html', - 130 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/sax/{FNAME}.html', - 131 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/stream/{FNAME}.html', - 132 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/validation/{FNAME}.html', - 133 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/xpath/{FNAME}.html', - 134 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/ietf/jgss/{FNAME}.html', - 135 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/{FNAME}.html', - 136 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/DynAnyPackage/{FNAME}.html', - 137 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/TypeCodePackage/{FNAME}.html', - 138 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/portable/{FNAME}.html', - 139 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CosNaming/{FNAME}.html', - 140 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CosNaming/NamingContextExtPackage/{FNAME}.html', - 141 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CosNaming/NamingContextPackage/{FNAME}.html', - 142 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/Dynamic/{FNAME}.html', - 143 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/DynamicAny/{FNAME}.html', - 144 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/DynamicAny/DynAnyFactoryPackage/{FNAME}.html', - 145 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/DynamicAny/DynAnyPackage/{FNAME}.html', - 146 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/IOP/{FNAME}.html', - 147 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/IOP/CodecFactoryPackage/{FNAME}.html', - 148 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/IOP/CodecPackage/{FNAME}.html', - 149 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/Messaging/{FNAME}.html', - 150 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableInterceptor/{FNAME}.html', - 151 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableInterceptor/ORBInitInfoPackage/{FNAME}.html', - 152 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/{FNAME}.html', - 153 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/CurrentPackage/{FNAME}.html', - 154 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/{FNAME}.html', - 155 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/POAPackage/{FNAME}.html', - 156 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/ServantLocatorPackage/{FNAME}.html', - 157 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/SendingContext/{FNAME}.html', - 158 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/stub/java/rmi/{FNAME}.html', - 159 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/{FNAME}.html', - 160 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/bootstrap/{FNAME}.html', - 161 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/events/{FNAME}.html', - 162 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/ls/{FNAME}.html', - 163 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/xml/sax/{FNAME}.html', - 164 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/xml/sax/ext/{FNAME}.html', - 165 => 'http://java.sun.com/j2se/1.5.0/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&q=allinurl%3Aj2se%2F1+5+0%2Fdocs%2Fapi+{FNAME}' - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.' - /* Java does not use '::' */ - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + 'abstract', 'assert', 'class', 'const', 'enum', 'extends', + 'final', 'implements', 'import', 'instanceof', 'interface', + 'native', 'new', 'package', 'private', 'protected', + 'public', 'static', 'strictfp', 'super', 'synchronized', + 'this', 'throws', 'transient', 'volatile' + ), + 3 => array( + /* Java keywords, part 3: primitive data types and 'void' */ + 'boolean', 'byte', 'char', 'double', + 'float', 'int', 'long', 'short', 'void' + ), + 4 => array( + /* other reserved words in Java: literals */ + /* should be styled to look similar to numbers and Strings */ + 'false', 'null', 'true' + ), + 5 => array( + 'Applet', 'AppletContext', 'AppletStub', 'AudioClip' + ), + 6 => array( + 'AWTError', 'AWTEvent', 'AWTEventMulticaster', 'AWTException', 'AWTKeyStroke', 'AWTPermission', 'ActiveEvent', 'Adjustable', 'AlphaComposite', 'BasicStroke', 'BorderLayout', 'BufferCapabilities', 'BufferCapabilities.FlipContents', 'Button', 'Canvas', 'CardLayout', 'Checkbox', 'CheckboxGroup', 'CheckboxMenuItem', 'Choice', 'Color', 'Component', 'ComponentOrientation', 'Composite', 'CompositeContext', 'Container', 'ContainerOrderFocusTraversalPolicy', 'Cursor', 'DefaultFocusTraversalPolicy', 'DefaultKeyboardFocusManager', 'Dialog', 'Dimension', 'DisplayMode', 'EventQueue', 'FileDialog', 'FlowLayout', 'FocusTraversalPolicy', 'Font', 'FontFormatException', 'FontMetrics', 'Frame', 'GradientPaint', 'Graphics', 'Graphics2D', 'GraphicsConfigTemplate', 'GraphicsConfiguration', 'GraphicsDevice', 'GraphicsEnvironment', 'GridBagConstraints', 'GridBagLayout', 'GridLayout', 'HeadlessException', 'IllegalComponentStateException', 'Image', 'ImageCapabilities', 'Insets', 'ItemSelectable', 'JobAttributes', + 'JobAttributes.DefaultSelectionType', 'JobAttributes.DestinationType', 'JobAttributes.DialogType', 'JobAttributes.MultipleDocumentHandlingType', 'JobAttributes.SidesType', 'KeyEventDispatcher', 'KeyEventPostProcessor', 'KeyboardFocusManager', 'Label', 'LayoutManager', 'LayoutManager2', 'MediaTracker', 'Menu', 'MenuBar', 'MenuComponent', 'MenuContainer', 'MenuItem', 'MenuShortcut', 'MouseInfo', 'PageAttributes', 'PageAttributes.ColorType', 'PageAttributes.MediaType', 'PageAttributes.OrientationRequestedType', 'PageAttributes.OriginType', 'PageAttributes.PrintQualityType', 'Paint', 'PaintContext', 'Panel', 'Point', 'PointerInfo', 'Polygon', 'PopupMenu', 'PrintGraphics', 'PrintJob', 'Rectangle', 'RenderingHints', 'RenderingHints.Key', 'Robot', 'ScrollPane', 'ScrollPaneAdjustable', 'Scrollbar', 'Shape', 'Stroke', 'SystemColor', 'TextArea', 'TextComponent', 'TextField', 'TexturePaint', 'Toolkit', 'Transparency', 'Window' + ), + 7 => array( + 'CMMException', 'ColorSpace', 'ICC_ColorSpace', 'ICC_Profile', 'ICC_ProfileGray', 'ICC_ProfileRGB', 'ProfileDataException' + ), + 8 => array( + 'Clipboard', 'ClipboardOwner', 'DataFlavor', 'FlavorEvent', 'FlavorListener', 'FlavorMap', 'FlavorTable', 'MimeTypeParseException', 'StringSelection', 'SystemFlavorMap', 'Transferable', 'UnsupportedFlavorException' + ), + 9 => array( + 'Autoscroll', 'DnDConstants', 'DragGestureEvent', 'DragGestureListener', 'DragGestureRecognizer', 'DragSource', 'DragSourceAdapter', 'DragSourceContext', 'DragSourceDragEvent', 'DragSourceDropEvent', 'DragSourceEvent', 'DragSourceListener', 'DragSourceMotionListener', 'DropTarget', 'DropTarget.DropTargetAutoScroller', 'DropTargetAdapter', 'DropTargetContext', 'DropTargetDragEvent', 'DropTargetDropEvent', 'DropTargetEvent', 'DropTargetListener', 'InvalidDnDOperationException', 'MouseDragGestureRecognizer' + ), + 10 => array( + 'AWTEventListener', 'AWTEventListenerProxy', 'ActionEvent', 'ActionListener', 'AdjustmentEvent', 'AdjustmentListener', 'ComponentAdapter', 'ComponentEvent', 'ComponentListener', 'ContainerAdapter', 'ContainerEvent', 'ContainerListener', 'FocusAdapter', 'FocusEvent', 'FocusListener', 'HierarchyBoundsAdapter', 'HierarchyBoundsListener', 'HierarchyEvent', 'HierarchyListener', 'InputEvent', 'InputMethodEvent', 'InputMethodListener', 'InvocationEvent', 'ItemEvent', 'ItemListener', 'KeyAdapter', 'KeyEvent', 'KeyListener', 'MouseAdapter', 'MouseListener', 'MouseMotionAdapter', 'MouseMotionListener', 'MouseWheelEvent', 'MouseWheelListener', 'PaintEvent', 'TextEvent', 'TextListener', 'WindowAdapter', 'WindowEvent', 'WindowFocusListener', 'WindowListener', 'WindowStateListener' + ), + 11 => array( + 'FontRenderContext', 'GlyphJustificationInfo', 'GlyphMetrics', 'GlyphVector', 'GraphicAttribute', 'ImageGraphicAttribute', 'LineBreakMeasurer', 'LineMetrics', 'MultipleMaster', 'NumericShaper', 'ShapeGraphicAttribute', 'TextAttribute', 'TextHitInfo', 'TextLayout', 'TextLayout.CaretPolicy', 'TextMeasurer', 'TransformAttribute' + ), + 12 => array( + 'AffineTransform', 'Arc2D', 'Arc2D.Double', 'Arc2D.Float', 'Area', 'CubicCurve2D', 'CubicCurve2D.Double', 'CubicCurve2D.Float', 'Dimension2D', 'Ellipse2D', 'Ellipse2D.Double', 'Ellipse2D.Float', 'FlatteningPathIterator', 'GeneralPath', 'IllegalPathStateException', 'Line2D', 'Line2D.Double', 'Line2D.Float', 'NoninvertibleTransformException', 'PathIterator', 'Point2D', 'Point2D.Double', 'Point2D.Float', 'QuadCurve2D', 'QuadCurve2D.Double', 'QuadCurve2D.Float', 'Rectangle2D', 'Rectangle2D.Double', 'Rectangle2D.Float', 'RectangularShape', 'RoundRectangle2D', 'RoundRectangle2D.Double', 'RoundRectangle2D.Float' + ), + 13 => array( + 'InputContext', 'InputMethodHighlight', 'InputMethodRequests', 'InputSubset' + ), + 14 => array( + 'InputMethod', 'InputMethodContext', 'InputMethodDescriptor' + ), + 15 => array( + 'AffineTransformOp', 'AreaAveragingScaleFilter', 'BandCombineOp', 'BandedSampleModel', 'BufferStrategy', 'BufferedImage', 'BufferedImageFilter', 'BufferedImageOp', 'ByteLookupTable', 'ColorConvertOp', 'ColorModel', 'ComponentColorModel', 'ComponentSampleModel', 'ConvolveOp', 'CropImageFilter', 'DataBuffer', 'DataBufferByte', 'DataBufferDouble', 'DataBufferFloat', 'DataBufferInt', 'DataBufferShort', 'DataBufferUShort', 'DirectColorModel', 'FilteredImageSource', 'ImageConsumer', 'ImageFilter', 'ImageObserver', 'ImageProducer', 'ImagingOpException', 'IndexColorModel', 'Kernel', 'LookupOp', 'LookupTable', 'MemoryImageSource', 'MultiPixelPackedSampleModel', 'PackedColorModel', 'PixelGrabber', 'PixelInterleavedSampleModel', 'RGBImageFilter', 'Raster', 'RasterFormatException', 'RasterOp', 'RenderedImage', 'ReplicateScaleFilter', 'RescaleOp', 'SampleModel', 'ShortLookupTable', 'SinglePixelPackedSampleModel', 'TileObserver', 'VolatileImage', 'WritableRaster', 'WritableRenderedImage' + ), + 16 => array( + 'ContextualRenderedImageFactory', 'ParameterBlock', 'RenderContext', 'RenderableImage', 'RenderableImageOp', 'RenderableImageProducer', 'RenderedImageFactory' + ), + 17 => array( + 'Book', 'PageFormat', 'Pageable', 'Paper', 'Printable', 'PrinterAbortException', 'PrinterException', 'PrinterGraphics', 'PrinterIOException', 'PrinterJob' + ), + 18 => array( + 'AppletInitializer', 'BeanDescriptor', 'BeanInfo', 'Beans', 'Customizer', 'DefaultPersistenceDelegate', 'DesignMode', 'Encoder', 'EventHandler', 'EventSetDescriptor', 'ExceptionListener', 'Expression', 'FeatureDescriptor', 'IndexedPropertyChangeEvent', 'IndexedPropertyDescriptor', 'Introspector', 'MethodDescriptor', 'ParameterDescriptor', 'PersistenceDelegate', 'PropertyChangeEvent', 'PropertyChangeListener', 'PropertyChangeListenerProxy', 'PropertyChangeSupport', 'PropertyDescriptor', 'PropertyEditor', 'PropertyEditorManager', 'PropertyEditorSupport', 'PropertyVetoException', 'SimpleBeanInfo', 'VetoableChangeListener', 'VetoableChangeListenerProxy', 'VetoableChangeSupport', 'Visibility', 'XMLDecoder', 'XMLEncoder' + ), + 19 => array( + 'BeanContext', 'BeanContextChild', 'BeanContextChildComponentProxy', 'BeanContextChildSupport', 'BeanContextContainerProxy', 'BeanContextEvent', 'BeanContextMembershipEvent', 'BeanContextMembershipListener', 'BeanContextProxy', 'BeanContextServiceAvailableEvent', 'BeanContextServiceProvider', 'BeanContextServiceProviderBeanInfo', 'BeanContextServiceRevokedEvent', 'BeanContextServiceRevokedListener', 'BeanContextServices', 'BeanContextServicesListener', 'BeanContextServicesSupport', 'BeanContextServicesSupport.BCSSServiceProvider', 'BeanContextSupport', 'BeanContextSupport.BCSIterator' + ), + 20 => array( + 'BufferedInputStream', 'BufferedOutputStream', 'BufferedReader', 'BufferedWriter', 'ByteArrayInputStream', 'ByteArrayOutputStream', 'CharArrayReader', 'CharArrayWriter', 'CharConversionException', 'Closeable', 'DataInput', 'DataOutput', 'EOFException', 'Externalizable', 'File', 'FileDescriptor', 'FileInputStream', 'FileNotFoundException', 'FileOutputStream', 'FilePermission', 'FileReader', 'FileWriter', 'FilenameFilter', 'FilterInputStream', 'FilterOutputStream', 'FilterReader', 'FilterWriter', 'Flushable', 'IOException', 'InputStreamReader', 'InterruptedIOException', 'InvalidClassException', 'InvalidObjectException', 'LineNumberInputStream', 'LineNumberReader', 'NotActiveException', 'NotSerializableException', 'ObjectInput', 'ObjectInputStream', 'ObjectInputStream.GetField', 'ObjectInputValidation', 'ObjectOutput', 'ObjectOutputStream', 'ObjectOutputStream.PutField', 'ObjectStreamClass', 'ObjectStreamConstants', 'ObjectStreamException', 'ObjectStreamField', 'OptionalDataException', 'OutputStreamWriter', + 'PipedInputStream', 'PipedOutputStream', 'PipedReader', 'PipedWriter', 'PrintStream', 'PrintWriter', 'PushbackInputStream', 'PushbackReader', 'RandomAccessFile', 'Reader', 'SequenceInputStream', 'Serializable', 'SerializablePermission', 'StreamCorruptedException', 'StreamTokenizer', 'StringBufferInputStream', 'StringReader', 'StringWriter', 'SyncFailedException', 'UTFDataFormatException', 'UnsupportedEncodingException', 'WriteAbortedException', 'Writer' + ), + 21 => array( + 'AbstractMethodError', 'Appendable', 'ArithmeticException', 'ArrayIndexOutOfBoundsException', 'ArrayStoreException', 'AssertionError', 'Boolean', 'Byte', 'CharSequence', 'Character', 'Character.Subset', 'Character.UnicodeBlock', 'Class', 'ClassCastException', 'ClassCircularityError', 'ClassFormatError', 'ClassLoader', 'ClassNotFoundException', 'CloneNotSupportedException', 'Cloneable', 'Comparable', 'Compiler', 'Deprecated', 'Double', 'Enum', 'EnumConstantNotPresentException', 'Error', 'Exception', 'ExceptionInInitializerError', 'Float', 'IllegalAccessError', 'IllegalAccessException', 'IllegalArgumentException', 'IllegalMonitorStateException', 'IllegalStateException', 'IllegalThreadStateException', 'IncompatibleClassChangeError', 'IndexOutOfBoundsException', 'InheritableThreadLocal', 'InstantiationError', 'InstantiationException', 'Integer', 'InternalError', 'InterruptedException', 'Iterable', 'LinkageError', 'Long', 'Math', 'NegativeArraySizeException', 'NoClassDefFoundError', 'NoSuchFieldError', + 'NoSuchFieldException', 'NoSuchMethodError', 'NoSuchMethodException', 'NullPointerException', 'Number', 'NumberFormatException', 'OutOfMemoryError', 'Override', 'Package', 'Process', 'ProcessBuilder', 'Readable', 'Runnable', 'Runtime', 'RuntimeException', 'RuntimePermission', 'SecurityException', 'SecurityManager', 'Short', 'StackOverflowError', 'StackTraceElement', 'StrictMath', 'String', 'StringBuffer', 'StringBuilder', 'StringIndexOutOfBoundsException', 'SuppressWarnings', 'System', 'Thread', 'Thread.State', 'Thread.UncaughtExceptionHandler', 'ThreadDeath', 'ThreadGroup', 'ThreadLocal', 'Throwable', 'TypeNotPresentException', 'UnknownError', 'UnsatisfiedLinkError', 'UnsupportedClassVersionError', 'UnsupportedOperationException', 'VerifyError', 'VirtualMachineError', 'Void' + ), + 22 => array( + 'AnnotationFormatError', 'AnnotationTypeMismatchException', 'Documented', 'ElementType', 'IncompleteAnnotationException', 'Inherited', 'Retention', 'RetentionPolicy', 'Target' + ), + 23 => array( + 'ClassDefinition', 'ClassFileTransformer', 'IllegalClassFormatException', 'Instrumentation', 'UnmodifiableClassException' + ), + 24 => array( + 'ClassLoadingMXBean', 'CompilationMXBean', 'GarbageCollectorMXBean', 'ManagementFactory', 'ManagementPermission', 'MemoryMXBean', 'MemoryManagerMXBean', 'MemoryNotificationInfo', 'MemoryPoolMXBean', 'MemoryType', 'MemoryUsage', 'OperatingSystemMXBean', 'RuntimeMXBean', 'ThreadInfo', 'ThreadMXBean' + ), + 25 => array( + 'PhantomReference', 'ReferenceQueue', 'SoftReference', 'WeakReference' + ), + 26 => array( + 'AccessibleObject', 'AnnotatedElement', 'Constructor', 'Field', 'GenericArrayType', 'GenericDeclaration', 'GenericSignatureFormatError', 'InvocationHandler', 'InvocationTargetException', 'MalformedParameterizedTypeException', 'Member', 'Method', 'Modifier', 'ParameterizedType', 'ReflectPermission', 'Type', 'TypeVariable', 'UndeclaredThrowableException', 'WildcardType' + ), + 27 => array( + 'BigDecimal', 'BigInteger', 'MathContext', 'RoundingMode' + ), + 28 => array( + 'Authenticator', 'Authenticator.RequestorType', 'BindException', 'CacheRequest', 'CacheResponse', 'ContentHandlerFactory', 'CookieHandler', 'DatagramPacket', 'DatagramSocket', 'DatagramSocketImpl', 'DatagramSocketImplFactory', 'FileNameMap', 'HttpRetryException', 'HttpURLConnection', 'Inet4Address', 'Inet6Address', 'InetAddress', 'InetSocketAddress', 'JarURLConnection', 'MalformedURLException', 'MulticastSocket', 'NetPermission', 'NetworkInterface', 'NoRouteToHostException', 'PasswordAuthentication', 'PortUnreachableException', 'ProtocolException', 'Proxy.Type', 'ProxySelector', 'ResponseCache', 'SecureCacheResponse', 'ServerSocket', 'Socket', 'SocketAddress', 'SocketException', 'SocketImpl', 'SocketImplFactory', 'SocketOptions', 'SocketPermission', 'SocketTimeoutException', 'URI', 'URISyntaxException', 'URL', 'URLClassLoader', 'URLConnection', 'URLDecoder', 'URLEncoder', 'URLStreamHandler', 'URLStreamHandlerFactory', 'UnknownServiceException' + ), + 29 => array( + 'Buffer', 'BufferOverflowException', 'BufferUnderflowException', 'ByteBuffer', 'ByteOrder', 'CharBuffer', 'DoubleBuffer', 'FloatBuffer', 'IntBuffer', 'InvalidMarkException', 'LongBuffer', 'MappedByteBuffer', 'ReadOnlyBufferException', 'ShortBuffer' + ), + 30 => array( + 'AlreadyConnectedException', 'AsynchronousCloseException', 'ByteChannel', 'CancelledKeyException', 'Channel', 'Channels', 'ClosedByInterruptException', 'ClosedChannelException', 'ClosedSelectorException', 'ConnectionPendingException', 'DatagramChannel', 'FileChannel', 'FileChannel.MapMode', 'FileLock', 'FileLockInterruptionException', 'GatheringByteChannel', 'IllegalBlockingModeException', 'IllegalSelectorException', 'InterruptibleChannel', 'NoConnectionPendingException', 'NonReadableChannelException', 'NonWritableChannelException', 'NotYetBoundException', 'NotYetConnectedException', 'OverlappingFileLockException', 'Pipe', 'Pipe.SinkChannel', 'Pipe.SourceChannel', 'ReadableByteChannel', 'ScatteringByteChannel', 'SelectableChannel', 'SelectionKey', 'Selector', 'ServerSocketChannel', 'SocketChannel', 'UnresolvedAddressException', 'UnsupportedAddressTypeException', 'WritableByteChannel' + ), + 31 => array( + 'AbstractInterruptibleChannel', 'AbstractSelectableChannel', 'AbstractSelectionKey', 'AbstractSelector', 'SelectorProvider' + ), + 32 => array( + 'CharacterCodingException', 'Charset', 'CharsetDecoder', 'CharsetEncoder', 'CoderMalfunctionError', 'CoderResult', 'CodingErrorAction', 'IllegalCharsetNameException', 'MalformedInputException', 'UnmappableCharacterException', 'UnsupportedCharsetException' + ), + 33 => array( + 'CharsetProvider' + ), + 34 => array( + 'AccessException', 'AlreadyBoundException', 'ConnectIOException', 'MarshalException', 'MarshalledObject', 'Naming', 'NoSuchObjectException', 'NotBoundException', 'RMISecurityException', 'RMISecurityManager', 'Remote', 'RemoteException', 'ServerError', 'ServerException', 'ServerRuntimeException', 'StubNotFoundException', 'UnexpectedException', 'UnmarshalException' + ), + 35 => array( + 'Activatable', 'ActivateFailedException', 'ActivationDesc', 'ActivationException', 'ActivationGroup', 'ActivationGroupDesc', 'ActivationGroupDesc.CommandEnvironment', 'ActivationGroupID', 'ActivationGroup_Stub', 'ActivationID', 'ActivationInstantiator', 'ActivationMonitor', 'ActivationSystem', 'Activator', 'UnknownGroupException', 'UnknownObjectException' + ), + 36 => array( + 'DGC', 'Lease', 'VMID' + ), + 37 => array( + 'LocateRegistry', 'Registry', 'RegistryHandler' + ), + 38 => array( + 'ExportException', 'LoaderHandler', 'LogStream', 'ObjID', 'Operation', 'RMIClassLoader', 'RMIClassLoaderSpi', 'RMIClientSocketFactory', 'RMIFailureHandler', 'RMIServerSocketFactory', 'RMISocketFactory', 'RemoteCall', 'RemoteObject', 'RemoteObjectInvocationHandler', 'RemoteRef', 'RemoteServer', 'RemoteStub', 'ServerCloneException', 'ServerNotActiveException', 'ServerRef', 'Skeleton', 'SkeletonMismatchException', 'SkeletonNotFoundException', 'SocketSecurityException', 'UID', 'UnicastRemoteObject', 'Unreferenced' + ), + 39 => array( + 'AccessControlContext', 'AccessControlException', 'AccessController', 'AlgorithmParameterGenerator', 'AlgorithmParameterGeneratorSpi', 'AlgorithmParameters', 'AlgorithmParametersSpi', 'AllPermission', 'AuthProvider', 'BasicPermission', 'CodeSigner', 'CodeSource', 'DigestException', 'DigestInputStream', 'DigestOutputStream', 'DomainCombiner', 'GeneralSecurityException', 'Guard', 'GuardedObject', 'Identity', 'IdentityScope', 'InvalidAlgorithmParameterException', 'InvalidParameterException', 'Key', 'KeyException', 'KeyFactory', 'KeyFactorySpi', 'KeyManagementException', 'KeyPair', 'KeyPairGenerator', 'KeyPairGeneratorSpi', 'KeyRep', 'KeyRep.Type', 'KeyStore', 'KeyStore.Builder', 'KeyStore.CallbackHandlerProtection', 'KeyStore.Entry', 'KeyStore.LoadStoreParameter', 'KeyStore.PasswordProtection', 'KeyStore.PrivateKeyEntry', 'KeyStore.ProtectionParameter', 'KeyStore.SecretKeyEntry', 'KeyStore.TrustedCertificateEntry', 'KeyStoreException', 'KeyStoreSpi', 'MessageDigest', 'MessageDigestSpi', + 'NoSuchAlgorithmException', 'NoSuchProviderException', 'PermissionCollection', 'Permissions', 'PrivateKey', 'PrivilegedAction', 'PrivilegedActionException', 'PrivilegedExceptionAction', 'ProtectionDomain', 'Provider', 'Provider.Service', 'ProviderException', 'PublicKey', 'SecureClassLoader', 'SecureRandom', 'SecureRandomSpi', 'Security', 'SecurityPermission', 'Signature', 'SignatureException', 'SignatureSpi', 'SignedObject', 'Signer', 'UnrecoverableEntryException', 'UnrecoverableKeyException', 'UnresolvedPermission' + ), + 40 => array( + 'Acl', 'AclEntry', 'AclNotFoundException', 'Group', 'LastOwnerException', 'NotOwnerException', 'Owner' + ), + 41 => array( + 'CRL', 'CRLException', 'CRLSelector', 'CertPath', 'CertPath.CertPathRep', 'CertPathBuilder', 'CertPathBuilderException', 'CertPathBuilderResult', 'CertPathBuilderSpi', 'CertPathParameters', 'CertPathValidator', 'CertPathValidatorException', 'CertPathValidatorResult', 'CertPathValidatorSpi', 'CertSelector', 'CertStore', 'CertStoreException', 'CertStoreParameters', 'CertStoreSpi', 'Certificate.CertificateRep', 'CertificateFactory', 'CertificateFactorySpi', 'CollectionCertStoreParameters', 'LDAPCertStoreParameters', 'PKIXBuilderParameters', 'PKIXCertPathBuilderResult', 'PKIXCertPathChecker', 'PKIXCertPathValidatorResult', 'PKIXParameters', 'PolicyNode', 'PolicyQualifierInfo', 'TrustAnchor', 'X509CRL', 'X509CRLEntry', 'X509CRLSelector', 'X509CertSelector', 'X509Extension' + ), + 42 => array( + 'DSAKey', 'DSAKeyPairGenerator', 'DSAParams', 'DSAPrivateKey', 'DSAPublicKey', 'ECKey', 'ECPrivateKey', 'ECPublicKey', 'RSAKey', 'RSAMultiPrimePrivateCrtKey', 'RSAPrivateCrtKey', 'RSAPrivateKey', 'RSAPublicKey' + ), + 43 => array( + 'AlgorithmParameterSpec', 'DSAParameterSpec', 'DSAPrivateKeySpec', 'DSAPublicKeySpec', 'ECField', 'ECFieldF2m', 'ECFieldFp', 'ECGenParameterSpec', 'ECParameterSpec', 'ECPoint', 'ECPrivateKeySpec', 'ECPublicKeySpec', 'EllipticCurve', 'EncodedKeySpec', 'InvalidKeySpecException', 'InvalidParameterSpecException', 'KeySpec', 'MGF1ParameterSpec', 'PKCS8EncodedKeySpec', 'PSSParameterSpec', 'RSAKeyGenParameterSpec', 'RSAMultiPrimePrivateCrtKeySpec', 'RSAOtherPrimeInfo', 'RSAPrivateCrtKeySpec', 'RSAPrivateKeySpec', 'RSAPublicKeySpec', 'X509EncodedKeySpec' + ), + 44 => array( + 'BatchUpdateException', 'Blob', 'CallableStatement', 'Clob', 'Connection', 'DataTruncation', 'DatabaseMetaData', 'Driver', 'DriverManager', 'DriverPropertyInfo', 'ParameterMetaData', 'PreparedStatement', 'Ref', 'ResultSet', 'ResultSetMetaData', 'SQLData', 'SQLException', 'SQLInput', 'SQLOutput', 'SQLPermission', 'SQLWarning', 'Savepoint', 'Struct', 'Time', 'Types' + ), + 45 => array( + 'AttributedCharacterIterator', 'AttributedCharacterIterator.Attribute', 'AttributedString', 'Bidi', 'BreakIterator', 'CharacterIterator', 'ChoiceFormat', 'CollationElementIterator', 'CollationKey', 'Collator', 'DateFormat', 'DateFormat.Field', 'DateFormatSymbols', 'DecimalFormat', 'DecimalFormatSymbols', 'FieldPosition', 'Format', 'Format.Field', 'MessageFormat', 'MessageFormat.Field', 'NumberFormat', 'NumberFormat.Field', 'ParseException', 'ParsePosition', 'RuleBasedCollator', 'SimpleDateFormat', 'StringCharacterIterator' + ), + 46 => array( + 'AbstractCollection', 'AbstractList', 'AbstractMap', 'AbstractQueue', 'AbstractSequentialList', 'AbstractSet', 'ArrayList', 'Arrays', 'BitSet', 'Calendar', 'Collection', 'Collections', 'Comparator', 'ConcurrentModificationException', 'Currency', 'Dictionary', 'DuplicateFormatFlagsException', 'EmptyStackException', 'EnumMap', 'EnumSet', 'Enumeration', 'EventListenerProxy', 'EventObject', 'FormatFlagsConversionMismatchException', 'Formattable', 'FormattableFlags', 'Formatter.BigDecimalLayoutForm', 'FormatterClosedException', 'GregorianCalendar', 'HashMap', 'HashSet', 'Hashtable', 'IdentityHashMap', 'IllegalFormatCodePointException', 'IllegalFormatConversionException', 'IllegalFormatException', 'IllegalFormatFlagsException', 'IllegalFormatPrecisionException', 'IllegalFormatWidthException', 'InputMismatchException', 'InvalidPropertiesFormatException', 'Iterator', 'LinkedHashMap', 'LinkedHashSet', 'LinkedList', 'ListIterator', 'ListResourceBundle', 'Locale', 'Map', 'Map.Entry', 'MissingFormatArgumentException', + 'MissingFormatWidthException', 'MissingResourceException', 'NoSuchElementException', 'Observable', 'Observer', 'PriorityQueue', 'Properties', 'PropertyPermission', 'PropertyResourceBundle', 'Queue', 'Random', 'RandomAccess', 'ResourceBundle', 'Scanner', 'Set', 'SimpleTimeZone', 'SortedMap', 'SortedSet', 'Stack', 'StringTokenizer', 'TimeZone', 'TimerTask', 'TooManyListenersException', 'TreeMap', 'TreeSet', 'UUID', 'UnknownFormatConversionException', 'UnknownFormatFlagsException', 'Vector', 'WeakHashMap' + ), + 47 => array( + 'AbstractExecutorService', 'ArrayBlockingQueue', 'BlockingQueue', 'BrokenBarrierException', 'Callable', 'CancellationException', 'CompletionService', 'ConcurrentHashMap', 'ConcurrentLinkedQueue', 'ConcurrentMap', 'CopyOnWriteArrayList', 'CopyOnWriteArraySet', 'CountDownLatch', 'CyclicBarrier', 'DelayQueue', 'Delayed', 'Exchanger', 'ExecutionException', 'Executor', 'ExecutorCompletionService', 'ExecutorService', 'Executors', 'Future', 'FutureTask', 'LinkedBlockingQueue', 'PriorityBlockingQueue', 'RejectedExecutionException', 'RejectedExecutionHandler', 'ScheduledExecutorService', 'ScheduledFuture', 'ScheduledThreadPoolExecutor', 'Semaphore', 'SynchronousQueue', 'ThreadFactory', 'ThreadPoolExecutor', 'ThreadPoolExecutor.AbortPolicy', 'ThreadPoolExecutor.CallerRunsPolicy', 'ThreadPoolExecutor.DiscardOldestPolicy', 'ThreadPoolExecutor.DiscardPolicy', 'TimeUnit', 'TimeoutException' + ), + 48 => array( + 'AtomicBoolean', 'AtomicInteger', 'AtomicIntegerArray', 'AtomicIntegerFieldUpdater', 'AtomicLong', 'AtomicLongArray', 'AtomicLongFieldUpdater', 'AtomicMarkableReference', 'AtomicReference', 'AtomicReferenceArray', 'AtomicReferenceFieldUpdater', 'AtomicStampedReference' + ), + 49 => array( + 'AbstractQueuedSynchronizer', 'Condition', 'Lock', 'LockSupport', 'ReadWriteLock', 'ReentrantLock', 'ReentrantReadWriteLock', 'ReentrantReadWriteLock.ReadLock', 'ReentrantReadWriteLock.WriteLock' + ), + 50 => array( + 'Attributes.Name', 'JarEntry', 'JarException', 'JarFile', 'JarInputStream', 'JarOutputStream', 'Manifest', 'Pack200', 'Pack200.Packer', 'Pack200.Unpacker' + ), + 51 => array( + 'ConsoleHandler', 'ErrorManager', 'FileHandler', 'Filter', 'Handler', 'Level', 'LogManager', 'LogRecord', 'Logger', 'LoggingMXBean', 'LoggingPermission', 'MemoryHandler', 'SimpleFormatter', 'SocketHandler', 'StreamHandler', 'XMLFormatter' + ), + 52 => array( + 'AbstractPreferences', 'BackingStoreException', 'InvalidPreferencesFormatException', 'NodeChangeEvent', 'NodeChangeListener', 'PreferenceChangeEvent', 'PreferenceChangeListener', 'Preferences', 'PreferencesFactory' + ), + 53 => array( + 'MatchResult', 'Matcher', 'Pattern', 'PatternSyntaxException' + ), + 54 => array( + 'Adler32', 'CRC32', 'CheckedInputStream', 'CheckedOutputStream', 'Checksum', 'DataFormatException', 'Deflater', 'DeflaterOutputStream', 'GZIPInputStream', 'GZIPOutputStream', 'Inflater', 'InflaterInputStream', 'ZipEntry', 'ZipException', 'ZipFile', 'ZipInputStream', 'ZipOutputStream' + ), + 55 => array( + 'Accessible', 'AccessibleAction', 'AccessibleAttributeSequence', 'AccessibleBundle', 'AccessibleComponent', 'AccessibleContext', 'AccessibleEditableText', 'AccessibleExtendedComponent', 'AccessibleExtendedTable', 'AccessibleExtendedText', 'AccessibleHyperlink', 'AccessibleHypertext', 'AccessibleIcon', 'AccessibleKeyBinding', 'AccessibleRelation', 'AccessibleRelationSet', 'AccessibleResourceBundle', 'AccessibleRole', 'AccessibleSelection', 'AccessibleState', 'AccessibleStateSet', 'AccessibleStreamable', 'AccessibleTable', 'AccessibleTableModelChange', 'AccessibleText', 'AccessibleTextSequence', 'AccessibleValue' + ), + 56 => array( + 'ActivityCompletedException', 'ActivityRequiredException', 'InvalidActivityException' + ), + 57 => array( + 'BadPaddingException', 'Cipher', 'CipherInputStream', 'CipherOutputStream', 'CipherSpi', 'EncryptedPrivateKeyInfo', 'ExemptionMechanism', 'ExemptionMechanismException', 'ExemptionMechanismSpi', 'IllegalBlockSizeException', 'KeyAgreement', 'KeyAgreementSpi', 'KeyGenerator', 'KeyGeneratorSpi', 'Mac', 'MacSpi', 'NoSuchPaddingException', 'NullCipher', 'SealedObject', 'SecretKey', 'SecretKeyFactory', 'SecretKeyFactorySpi', 'ShortBufferException' + ), + 58 => array( + 'DHKey', 'DHPrivateKey', 'DHPublicKey', 'PBEKey' + ), + 59 => array( + 'DESKeySpec', 'DESedeKeySpec', 'DHGenParameterSpec', 'DHParameterSpec', 'DHPrivateKeySpec', 'DHPublicKeySpec', 'IvParameterSpec', 'OAEPParameterSpec', 'PBEKeySpec', 'PBEParameterSpec', 'PSource', 'PSource.PSpecified', 'RC2ParameterSpec', 'RC5ParameterSpec', 'SecretKeySpec' + ), + 60 => array( + 'IIOException', 'IIOImage', 'IIOParam', 'IIOParamController', 'ImageIO', 'ImageReadParam', 'ImageReader', 'ImageTranscoder', 'ImageTypeSpecifier', 'ImageWriteParam', 'ImageWriter' + ), + 61 => array( + 'IIOReadProgressListener', 'IIOReadUpdateListener', 'IIOReadWarningListener', 'IIOWriteProgressListener', 'IIOWriteWarningListener' + ), + 62 => array( + 'IIOInvalidTreeException', 'IIOMetadata', 'IIOMetadataController', 'IIOMetadataFormat', 'IIOMetadataFormatImpl', 'IIOMetadataNode' + ), + 63 => array( + 'BMPImageWriteParam' + ), + 64 => array( + 'JPEGHuffmanTable', 'JPEGImageReadParam', 'JPEGImageWriteParam', 'JPEGQTable' + ), + 65 => array( + 'IIORegistry', 'IIOServiceProvider', 'ImageInputStreamSpi', 'ImageOutputStreamSpi', 'ImageReaderSpi', 'ImageReaderWriterSpi', 'ImageTranscoderSpi', 'ImageWriterSpi', 'RegisterableService', 'ServiceRegistry', 'ServiceRegistry.Filter' + ), + 66 => array( + 'FileCacheImageInputStream', 'FileCacheImageOutputStream', 'FileImageInputStream', 'FileImageOutputStream', 'IIOByteBuffer', 'ImageInputStream', 'ImageInputStreamImpl', 'ImageOutputStream', 'ImageOutputStreamImpl', 'MemoryCacheImageInputStream', 'MemoryCacheImageOutputStream' + ), + 67 => array( + 'AttributeChangeNotification', 'AttributeChangeNotificationFilter', 'AttributeNotFoundException', 'AttributeValueExp', 'BadAttributeValueExpException', 'BadBinaryOpValueExpException', 'BadStringOperationException', 'Descriptor', 'DescriptorAccess', 'DynamicMBean', 'InstanceAlreadyExistsException', 'InstanceNotFoundException', 'InvalidApplicationException', 'JMException', 'JMRuntimeException', 'ListenerNotFoundException', 'MBeanAttributeInfo', 'MBeanConstructorInfo', 'MBeanException', 'MBeanFeatureInfo', 'MBeanInfo', 'MBeanNotificationInfo', 'MBeanOperationInfo', 'MBeanParameterInfo', 'MBeanPermission', 'MBeanRegistration', 'MBeanRegistrationException', 'MBeanServer', 'MBeanServerBuilder', 'MBeanServerConnection', 'MBeanServerDelegate', 'MBeanServerDelegateMBean', 'MBeanServerFactory', 'MBeanServerInvocationHandler', 'MBeanServerNotification', 'MBeanServerPermission', 'MBeanTrustPermission', 'MalformedObjectNameException', 'NotCompliantMBeanException', 'Notification', 'NotificationBroadcaster', + 'NotificationBroadcasterSupport', 'NotificationEmitter', 'NotificationFilter', 'NotificationFilterSupport', 'NotificationListener', 'ObjectInstance', 'ObjectName', 'OperationsException', 'PersistentMBean', 'Query', 'QueryEval', 'QueryExp', 'ReflectionException', 'RuntimeErrorException', 'RuntimeMBeanException', 'RuntimeOperationsException', 'ServiceNotFoundException', 'StandardMBean', 'StringValueExp', 'ValueExp' + ), + 68 => array( + 'ClassLoaderRepository', 'MLet', 'MLetMBean', 'PrivateClassLoader', 'PrivateMLet' + ), + 69 => array( + 'DescriptorSupport', 'InvalidTargetObjectTypeException', 'ModelMBean', 'ModelMBeanAttributeInfo', 'ModelMBeanConstructorInfo', 'ModelMBeanInfo', 'ModelMBeanInfoSupport', 'ModelMBeanNotificationBroadcaster', 'ModelMBeanNotificationInfo', 'ModelMBeanOperationInfo', 'RequiredModelMBean', 'XMLParseException' + ), + 70 => array( + 'CounterMonitor', 'CounterMonitorMBean', 'GaugeMonitor', 'GaugeMonitorMBean', 'Monitor', 'MonitorMBean', 'MonitorNotification', 'MonitorSettingException', 'StringMonitor', 'StringMonitorMBean' + ), + 71 => array( + 'ArrayType', 'CompositeData', 'CompositeDataSupport', 'CompositeType', 'InvalidOpenTypeException', 'KeyAlreadyExistsException', 'OpenDataException', 'OpenMBeanAttributeInfo', 'OpenMBeanAttributeInfoSupport', 'OpenMBeanConstructorInfo', 'OpenMBeanConstructorInfoSupport', 'OpenMBeanInfo', 'OpenMBeanInfoSupport', 'OpenMBeanOperationInfo', 'OpenMBeanOperationInfoSupport', 'OpenMBeanParameterInfo', 'OpenMBeanParameterInfoSupport', 'SimpleType', 'TabularData', 'TabularDataSupport', 'TabularType' + ), + 72 => array( + 'InvalidRelationIdException', 'InvalidRelationServiceException', 'InvalidRelationTypeException', 'InvalidRoleInfoException', 'InvalidRoleValueException', 'MBeanServerNotificationFilter', 'Relation', 'RelationException', 'RelationNotFoundException', 'RelationNotification', 'RelationService', 'RelationServiceMBean', 'RelationServiceNotRegisteredException', 'RelationSupport', 'RelationSupportMBean', 'RelationType', 'RelationTypeNotFoundException', 'RelationTypeSupport', 'Role', 'RoleInfo', 'RoleInfoNotFoundException', 'RoleList', 'RoleNotFoundException', 'RoleResult', 'RoleStatus', 'RoleUnresolved', 'RoleUnresolvedList' + ), + 73 => array( + 'JMXAuthenticator', 'JMXConnectionNotification', 'JMXConnector', 'JMXConnectorFactory', 'JMXConnectorProvider', 'JMXConnectorServer', 'JMXConnectorServerFactory', 'JMXConnectorServerMBean', 'JMXConnectorServerProvider', 'JMXPrincipal', 'JMXProviderException', 'JMXServerErrorException', 'JMXServiceURL', 'MBeanServerForwarder', 'NotificationResult', 'SubjectDelegationPermission', 'TargetedNotification' + ), + 74 => array( + 'RMIConnection', 'RMIConnectionImpl', 'RMIConnectionImpl_Stub', 'RMIConnector', 'RMIConnectorServer', 'RMIIIOPServerImpl', 'RMIJRMPServerImpl', 'RMIServer', 'RMIServerImpl', 'RMIServerImpl_Stub' + ), + 75 => array( + 'TimerAlarmClockNotification', 'TimerMBean', 'TimerNotification' + ), + 76 => array( + 'AuthenticationNotSupportedException', 'BinaryRefAddr', 'CannotProceedException', 'CommunicationException', 'CompositeName', 'CompoundName', 'ConfigurationException', 'ContextNotEmptyException', 'InitialContext', 'InsufficientResourcesException', 'InterruptedNamingException', 'InvalidNameException', 'LimitExceededException', 'LinkException', 'LinkLoopException', 'LinkRef', 'MalformedLinkException', 'Name', 'NameAlreadyBoundException', 'NameClassPair', 'NameNotFoundException', 'NameParser', 'NamingEnumeration', 'NamingException', 'NamingSecurityException', 'NoInitialContextException', 'NoPermissionException', 'NotContextException', 'OperationNotSupportedException', 'PartialResultException', 'RefAddr', 'Referenceable', 'ReferralException', 'ServiceUnavailableException', 'SizeLimitExceededException', 'StringRefAddr', 'TimeLimitExceededException' + ), + 77 => array( + 'AttributeInUseException', 'AttributeModificationException', 'BasicAttribute', 'BasicAttributes', 'DirContext', 'InitialDirContext', 'InvalidAttributeIdentifierException', 'InvalidAttributesException', 'InvalidSearchControlsException', 'InvalidSearchFilterException', 'ModificationItem', 'NoSuchAttributeException', 'SchemaViolationException', 'SearchControls', 'SearchResult' + ), + 78 => array( + 'EventContext', 'EventDirContext', 'NamespaceChangeListener', 'NamingEvent', 'NamingExceptionEvent', 'NamingListener', 'ObjectChangeListener' + ), + 79 => array( + 'BasicControl', 'ControlFactory', 'ExtendedRequest', 'ExtendedResponse', 'HasControls', 'InitialLdapContext', 'LdapContext', 'LdapName', 'LdapReferralException', 'ManageReferralControl', 'PagedResultsControl', 'PagedResultsResponseControl', 'Rdn', 'SortControl', 'SortKey', 'SortResponseControl', 'StartTlsRequest', 'StartTlsResponse', 'UnsolicitedNotification', 'UnsolicitedNotificationEvent', 'UnsolicitedNotificationListener' + ), + 80 => array( + 'DirObjectFactory', 'DirStateFactory', 'DirStateFactory.Result', 'DirectoryManager', 'InitialContextFactory', 'InitialContextFactoryBuilder', 'NamingManager', 'ObjectFactory', 'ObjectFactoryBuilder', 'ResolveResult', 'Resolver', 'StateFactory' + ), + 81 => array( + 'ServerSocketFactory', 'SocketFactory' + ), + 82 => array( + 'CertPathTrustManagerParameters', 'HandshakeCompletedEvent', 'HandshakeCompletedListener', 'HostnameVerifier', 'HttpsURLConnection', 'KeyManager', 'KeyManagerFactory', 'KeyManagerFactorySpi', 'KeyStoreBuilderParameters', 'ManagerFactoryParameters', 'SSLContext', 'SSLContextSpi', 'SSLEngine', 'SSLEngineResult', 'SSLEngineResult.HandshakeStatus', 'SSLEngineResult.Status', 'SSLException', 'SSLHandshakeException', 'SSLKeyException', 'SSLPeerUnverifiedException', 'SSLPermission', 'SSLProtocolException', 'SSLServerSocket', 'SSLServerSocketFactory', 'SSLSession', 'SSLSessionBindingEvent', 'SSLSessionBindingListener', 'SSLSessionContext', 'SSLSocket', 'SSLSocketFactory', 'TrustManager', 'TrustManagerFactory', 'TrustManagerFactorySpi', 'X509ExtendedKeyManager', 'X509KeyManager', 'X509TrustManager' + ), + 83 => array( + 'AttributeException', 'CancelablePrintJob', 'Doc', 'DocFlavor', 'DocFlavor.BYTE_ARRAY', 'DocFlavor.CHAR_ARRAY', 'DocFlavor.INPUT_STREAM', 'DocFlavor.READER', 'DocFlavor.SERVICE_FORMATTED', 'DocFlavor.STRING', 'DocFlavor.URL', 'DocPrintJob', 'FlavorException', 'MultiDoc', 'MultiDocPrintJob', 'MultiDocPrintService', 'PrintException', 'PrintService', 'PrintServiceLookup', 'ServiceUI', 'ServiceUIFactory', 'SimpleDoc', 'StreamPrintService', 'StreamPrintServiceFactory', 'URIException' + ), + 84 => array( + 'AttributeSetUtilities', 'DateTimeSyntax', 'DocAttribute', 'DocAttributeSet', 'EnumSyntax', 'HashAttributeSet', 'HashDocAttributeSet', 'HashPrintJobAttributeSet', 'HashPrintRequestAttributeSet', 'HashPrintServiceAttributeSet', 'IntegerSyntax', 'PrintJobAttribute', 'PrintJobAttributeSet', 'PrintRequestAttribute', 'PrintRequestAttributeSet', 'PrintServiceAttribute', 'PrintServiceAttributeSet', 'ResolutionSyntax', 'SetOfIntegerSyntax', 'Size2DSyntax', 'SupportedValuesAttribute', 'TextSyntax', 'URISyntax', 'UnmodifiableSetException' + ), + 85 => array( + 'Chromaticity', 'ColorSupported', 'Compression', 'Copies', 'CopiesSupported', 'DateTimeAtCompleted', 'DateTimeAtCreation', 'DateTimeAtProcessing', 'Destination', 'DocumentName', 'Fidelity', 'Finishings', 'JobHoldUntil', 'JobImpressions', 'JobImpressionsCompleted', 'JobImpressionsSupported', 'JobKOctets', 'JobKOctetsProcessed', 'JobKOctetsSupported', 'JobMediaSheets', 'JobMediaSheetsCompleted', 'JobMediaSheetsSupported', 'JobMessageFromOperator', 'JobName', 'JobOriginatingUserName', 'JobPriority', 'JobPrioritySupported', 'JobSheets', 'JobState', 'JobStateReason', 'JobStateReasons', 'Media', 'MediaName', 'MediaPrintableArea', 'MediaSize', 'MediaSize.Engineering', 'MediaSize.ISO', 'MediaSize.JIS', 'MediaSize.NA', 'MediaSize.Other', 'MediaSizeName', 'MediaTray', 'MultipleDocumentHandling', 'NumberOfDocuments', 'NumberOfInterveningJobs', 'NumberUp', 'NumberUpSupported', 'OrientationRequested', 'OutputDeviceAssigned', 'PDLOverrideSupported', 'PageRanges', 'PagesPerMinute', 'PagesPerMinuteColor', + 'PresentationDirection', 'PrintQuality', 'PrinterInfo', 'PrinterIsAcceptingJobs', 'PrinterLocation', 'PrinterMakeAndModel', 'PrinterMessageFromOperator', 'PrinterMoreInfo', 'PrinterMoreInfoManufacturer', 'PrinterName', 'PrinterResolution', 'PrinterState', 'PrinterStateReason', 'PrinterStateReasons', 'PrinterURI', 'QueuedJobCount', 'ReferenceUriSchemesSupported', 'RequestingUserName', 'Severity', 'SheetCollate', 'Sides' + ), + 86 => array( + 'PrintEvent', 'PrintJobAdapter', 'PrintJobAttributeEvent', 'PrintJobAttributeListener', 'PrintJobEvent', 'PrintJobListener', 'PrintServiceAttributeEvent', 'PrintServiceAttributeListener' + ), + 87 => array( + 'PortableRemoteObject' + ), + 88 => array( + 'ClassDesc', 'PortableRemoteObjectDelegate', 'Stub', 'StubDelegate', 'Tie', 'Util', 'UtilDelegate', 'ValueHandler', 'ValueHandlerMultiFormat' + ), + 89 => array( + 'SslRMIClientSocketFactory', 'SslRMIServerSocketFactory' + ), + 90 => array( + 'AuthPermission', 'DestroyFailedException', 'Destroyable', 'PrivateCredentialPermission', 'RefreshFailedException', 'Refreshable', 'Subject', 'SubjectDomainCombiner' + ), + 91 => array( + 'Callback', 'CallbackHandler', 'ChoiceCallback', 'ConfirmationCallback', 'LanguageCallback', 'NameCallback', 'PasswordCallback', 'TextInputCallback', 'TextOutputCallback', 'UnsupportedCallbackException' + ), + 92 => array( + 'DelegationPermission', 'KerberosKey', 'KerberosPrincipal', 'KerberosTicket', 'ServicePermission' + ), + 93 => array( + 'AccountException', 'AccountExpiredException', 'AccountLockedException', 'AccountNotFoundException', 'AppConfigurationEntry', 'AppConfigurationEntry.LoginModuleControlFlag', 'Configuration', 'CredentialException', 'CredentialExpiredException', 'CredentialNotFoundException', 'FailedLoginException', 'LoginContext', 'LoginException' + ), + 94 => array( + 'LoginModule' + ), + 95 => array( + 'X500Principal', 'X500PrivateCredential' + ), + 96 => array( + 'AuthorizeCallback', 'RealmCallback', 'RealmChoiceCallback', 'Sasl', 'SaslClient', 'SaslClientFactory', 'SaslException', 'SaslServer', 'SaslServerFactory' + ), + 97 => array( + 'ControllerEventListener', 'Instrument', 'InvalidMidiDataException', 'MetaEventListener', 'MetaMessage', 'MidiChannel', 'MidiDevice', 'MidiDevice.Info', 'MidiEvent', 'MidiFileFormat', 'MidiMessage', 'MidiSystem', 'MidiUnavailableException', 'Patch', 'Receiver', 'Sequence', 'Sequencer', 'Sequencer.SyncMode', 'ShortMessage', 'Soundbank', 'SoundbankResource', 'Synthesizer', 'SysexMessage', 'Track', 'Transmitter', 'VoiceStatus' + ), + 98 => array( + 'MidiDeviceProvider', 'MidiFileReader', 'MidiFileWriter', 'SoundbankReader' + ), + 99 => array( + 'AudioFileFormat', 'AudioFileFormat.Type', 'AudioFormat', 'AudioFormat.Encoding', 'AudioInputStream', 'AudioPermission', 'AudioSystem', 'BooleanControl', 'BooleanControl.Type', 'Clip', 'CompoundControl', 'CompoundControl.Type', 'Control.Type', 'DataLine', 'DataLine.Info', 'EnumControl', 'EnumControl.Type', 'FloatControl', 'FloatControl.Type', 'Line', 'Line.Info', 'LineEvent', 'LineEvent.Type', 'LineListener', 'LineUnavailableException', 'Mixer', 'Mixer.Info', 'Port', 'Port.Info', 'ReverbType', 'SourceDataLine', 'TargetDataLine', 'UnsupportedAudioFileException' + ), + 100 => array( + 'AudioFileReader', 'AudioFileWriter', 'FormatConversionProvider', 'MixerProvider' + ), + 101 => array( + 'ConnectionEvent', 'ConnectionEventListener', 'ConnectionPoolDataSource', 'DataSource', 'PooledConnection', 'RowSet', 'RowSetEvent', 'RowSetInternal', 'RowSetListener', 'RowSetMetaData', 'RowSetReader', 'RowSetWriter', 'XAConnection', 'XADataSource' + ), + 102 => array( + 'BaseRowSet', 'CachedRowSet', 'FilteredRowSet', 'JdbcRowSet', 'JoinRowSet', 'Joinable', 'Predicate', 'RowSetMetaDataImpl', 'RowSetWarning', 'WebRowSet' + ), + 103 => array( + 'SQLInputImpl', 'SQLOutputImpl', 'SerialArray', 'SerialBlob', 'SerialClob', 'SerialDatalink', 'SerialException', 'SerialJavaObject', 'SerialRef', 'SerialStruct' + ), + 104 => array( + 'SyncFactory', 'SyncFactoryException', 'SyncProvider', 'SyncProviderException', 'SyncResolver', 'TransactionalWriter', 'XmlReader', 'XmlWriter' + ), + 105 => array( + 'AbstractAction', 'AbstractButton', 'AbstractCellEditor', 'AbstractListModel', 'AbstractSpinnerModel', 'Action', 'ActionMap', 'BorderFactory', 'BoundedRangeModel', 'Box', 'Box.Filler', 'BoxLayout', 'ButtonGroup', 'ButtonModel', 'CellEditor', 'CellRendererPane', 'ComboBoxEditor', 'ComboBoxModel', 'ComponentInputMap', 'DebugGraphics', 'DefaultBoundedRangeModel', 'DefaultButtonModel', 'DefaultCellEditor', 'DefaultComboBoxModel', 'DefaultDesktopManager', 'DefaultFocusManager', 'DefaultListCellRenderer', 'DefaultListCellRenderer.UIResource', 'DefaultListModel', 'DefaultListSelectionModel', 'DefaultSingleSelectionModel', 'DesktopManager', 'FocusManager', 'GrayFilter', 'Icon', 'ImageIcon', 'InputMap', 'InputVerifier', 'InternalFrameFocusTraversalPolicy', 'JApplet', 'JButton', 'JCheckBox', 'JCheckBoxMenuItem', 'JColorChooser', 'JComboBox', 'JComboBox.KeySelectionManager', 'JComponent', 'JDesktopPane', 'JDialog', 'JEditorPane', 'JFileChooser', 'JFormattedTextField', 'JFormattedTextField.AbstractFormatter', + 'JFormattedTextField.AbstractFormatterFactory', 'JFrame', 'JInternalFrame', 'JInternalFrame.JDesktopIcon', 'JLabel', 'JLayeredPane', 'JList', 'JMenu', 'JMenuBar', 'JMenuItem', 'JOptionPane', 'JPanel', 'JPasswordField', 'JPopupMenu', 'JPopupMenu.Separator', 'JProgressBar', 'JRadioButton', 'JRadioButtonMenuItem', 'JRootPane', 'JScrollBar', 'JScrollPane', 'JSeparator', 'JSlider', 'JSpinner', 'JSpinner.DateEditor', 'JSpinner.DefaultEditor', 'JSpinner.ListEditor', 'JSpinner.NumberEditor', 'JSplitPane', 'JTabbedPane', 'JTable', 'JTable.PrintMode', 'JTextArea', 'JTextField', 'JTextPane', 'JToggleButton', 'JToggleButton.ToggleButtonModel', 'JToolBar', 'JToolBar.Separator', 'JToolTip', 'JTree', 'JTree.DynamicUtilTreeNode', 'JTree.EmptySelectionModel', 'JViewport', 'JWindow', 'KeyStroke', 'LayoutFocusTraversalPolicy', 'ListCellRenderer', 'ListModel', 'ListSelectionModel', 'LookAndFeel', 'MenuElement', 'MenuSelectionManager', 'MutableComboBoxModel', 'OverlayLayout', 'Popup', 'PopupFactory', 'ProgressMonitor', + 'ProgressMonitorInputStream', 'Renderer', 'RepaintManager', 'RootPaneContainer', 'ScrollPaneConstants', 'ScrollPaneLayout', 'ScrollPaneLayout.UIResource', 'Scrollable', 'SingleSelectionModel', 'SizeRequirements', 'SizeSequence', 'SortingFocusTraversalPolicy', 'SpinnerDateModel', 'SpinnerListModel', 'SpinnerModel', 'SpinnerNumberModel', 'Spring', 'SpringLayout', 'SpringLayout.Constraints', 'SwingConstants', 'SwingUtilities', 'ToolTipManager', 'TransferHandler', 'UIDefaults', 'UIDefaults.ActiveValue', 'UIDefaults.LazyInputMap', 'UIDefaults.LazyValue', 'UIDefaults.ProxyLazyValue', 'UIManager', 'UIManager.LookAndFeelInfo', 'UnsupportedLookAndFeelException', 'ViewportLayout', 'WindowConstants' + ), + 106 => array( + 'AbstractBorder', 'BevelBorder', 'Border', 'CompoundBorder', 'EmptyBorder', 'EtchedBorder', 'LineBorder', 'MatteBorder', 'SoftBevelBorder', 'TitledBorder' + ), + 107 => array( + 'AbstractColorChooserPanel', 'ColorChooserComponentFactory', 'ColorSelectionModel', 'DefaultColorSelectionModel' + ), + 108 => array( + 'AncestorEvent', 'AncestorListener', 'CaretEvent', 'CaretListener', 'CellEditorListener', 'ChangeEvent', 'ChangeListener', 'DocumentEvent.ElementChange', 'DocumentEvent.EventType', 'DocumentListener', 'EventListenerList', 'HyperlinkEvent', 'HyperlinkEvent.EventType', 'HyperlinkListener', 'InternalFrameAdapter', 'InternalFrameEvent', 'InternalFrameListener', 'ListDataEvent', 'ListDataListener', 'ListSelectionEvent', 'ListSelectionListener', 'MenuDragMouseEvent', 'MenuDragMouseListener', 'MenuEvent', 'MenuKeyEvent', 'MenuKeyListener', 'MenuListener', 'MouseInputAdapter', 'MouseInputListener', 'PopupMenuEvent', 'PopupMenuListener', 'SwingPropertyChangeSupport', 'TableColumnModelEvent', 'TableColumnModelListener', 'TableModelEvent', 'TableModelListener', 'TreeExpansionEvent', 'TreeExpansionListener', 'TreeModelEvent', 'TreeModelListener', 'TreeSelectionEvent', 'TreeSelectionListener', 'TreeWillExpandListener', 'UndoableEditEvent', 'UndoableEditListener' + ), + 109 => array( + 'FileSystemView', 'FileView' + ), + 110 => array( + 'ActionMapUIResource', 'BorderUIResource', 'BorderUIResource.BevelBorderUIResource', 'BorderUIResource.CompoundBorderUIResource', 'BorderUIResource.EmptyBorderUIResource', 'BorderUIResource.EtchedBorderUIResource', 'BorderUIResource.LineBorderUIResource', 'BorderUIResource.MatteBorderUIResource', 'BorderUIResource.TitledBorderUIResource', 'ButtonUI', 'ColorChooserUI', 'ColorUIResource', 'ComboBoxUI', 'ComponentInputMapUIResource', 'ComponentUI', 'DesktopIconUI', 'DesktopPaneUI', 'DimensionUIResource', 'FileChooserUI', 'FontUIResource', 'IconUIResource', 'InputMapUIResource', 'InsetsUIResource', 'InternalFrameUI', 'LabelUI', 'ListUI', 'MenuBarUI', 'MenuItemUI', 'OptionPaneUI', 'PanelUI', 'PopupMenuUI', 'ProgressBarUI', 'RootPaneUI', 'ScrollBarUI', 'ScrollPaneUI', 'SeparatorUI', 'SliderUI', 'SpinnerUI', 'SplitPaneUI', 'TabbedPaneUI', 'TableHeaderUI', 'TableUI', 'TextUI', 'ToolBarUI', 'ToolTipUI', 'TreeUI', 'UIResource', 'ViewportUI' + ), + 111 => array( + 'BasicArrowButton', 'BasicBorders', 'BasicBorders.ButtonBorder', 'BasicBorders.FieldBorder', 'BasicBorders.MarginBorder', 'BasicBorders.MenuBarBorder', 'BasicBorders.RadioButtonBorder', 'BasicBorders.RolloverButtonBorder', 'BasicBorders.SplitPaneBorder', 'BasicBorders.ToggleButtonBorder', 'BasicButtonListener', 'BasicButtonUI', 'BasicCheckBoxMenuItemUI', 'BasicCheckBoxUI', 'BasicColorChooserUI', 'BasicComboBoxEditor', 'BasicComboBoxEditor.UIResource', 'BasicComboBoxRenderer', 'BasicComboBoxRenderer.UIResource', 'BasicComboBoxUI', 'BasicComboPopup', 'BasicDesktopIconUI', 'BasicDesktopPaneUI', 'BasicDirectoryModel', 'BasicEditorPaneUI', 'BasicFileChooserUI', 'BasicFormattedTextFieldUI', 'BasicGraphicsUtils', 'BasicHTML', 'BasicIconFactory', 'BasicInternalFrameTitlePane', 'BasicInternalFrameUI', 'BasicLabelUI', 'BasicListUI', 'BasicLookAndFeel', 'BasicMenuBarUI', 'BasicMenuItemUI', 'BasicMenuUI', 'BasicOptionPaneUI', 'BasicOptionPaneUI.ButtonAreaLayout', 'BasicPanelUI', 'BasicPasswordFieldUI', + 'BasicPopupMenuSeparatorUI', 'BasicPopupMenuUI', 'BasicProgressBarUI', 'BasicRadioButtonMenuItemUI', 'BasicRadioButtonUI', 'BasicRootPaneUI', 'BasicScrollBarUI', 'BasicScrollPaneUI', 'BasicSeparatorUI', 'BasicSliderUI', 'BasicSpinnerUI', 'BasicSplitPaneDivider', 'BasicSplitPaneUI', 'BasicTabbedPaneUI', 'BasicTableHeaderUI', 'BasicTableUI', 'BasicTextAreaUI', 'BasicTextFieldUI', 'BasicTextPaneUI', 'BasicTextUI', 'BasicTextUI.BasicCaret', 'BasicTextUI.BasicHighlighter', 'BasicToggleButtonUI', 'BasicToolBarSeparatorUI', 'BasicToolBarUI', 'BasicToolTipUI', 'BasicTreeUI', 'BasicViewportUI', 'ComboPopup', 'DefaultMenuLayout' + ), + 112 => array( + 'DefaultMetalTheme', 'MetalBorders', 'MetalBorders.ButtonBorder', 'MetalBorders.Flush3DBorder', 'MetalBorders.InternalFrameBorder', 'MetalBorders.MenuBarBorder', 'MetalBorders.MenuItemBorder', 'MetalBorders.OptionDialogBorder', 'MetalBorders.PaletteBorder', 'MetalBorders.PopupMenuBorder', 'MetalBorders.RolloverButtonBorder', 'MetalBorders.ScrollPaneBorder', 'MetalBorders.TableHeaderBorder', 'MetalBorders.TextFieldBorder', 'MetalBorders.ToggleButtonBorder', 'MetalBorders.ToolBarBorder', 'MetalButtonUI', 'MetalCheckBoxIcon', 'MetalCheckBoxUI', 'MetalComboBoxButton', 'MetalComboBoxEditor', 'MetalComboBoxEditor.UIResource', 'MetalComboBoxIcon', 'MetalComboBoxUI', 'MetalDesktopIconUI', 'MetalFileChooserUI', 'MetalIconFactory', 'MetalIconFactory.FileIcon16', 'MetalIconFactory.FolderIcon16', 'MetalIconFactory.PaletteCloseIcon', 'MetalIconFactory.TreeControlIcon', 'MetalIconFactory.TreeFolderIcon', 'MetalIconFactory.TreeLeafIcon', 'MetalInternalFrameTitlePane', 'MetalInternalFrameUI', 'MetalLabelUI', + 'MetalLookAndFeel', 'MetalMenuBarUI', 'MetalPopupMenuSeparatorUI', 'MetalProgressBarUI', 'MetalRadioButtonUI', 'MetalRootPaneUI', 'MetalScrollBarUI', 'MetalScrollButton', 'MetalScrollPaneUI', 'MetalSeparatorUI', 'MetalSliderUI', 'MetalSplitPaneUI', 'MetalTabbedPaneUI', 'MetalTextFieldUI', 'MetalTheme', 'MetalToggleButtonUI', 'MetalToolBarUI', 'MetalToolTipUI', 'MetalTreeUI', 'OceanTheme' + ), + 113 => array( + 'MultiButtonUI', 'MultiColorChooserUI', 'MultiComboBoxUI', 'MultiDesktopIconUI', 'MultiDesktopPaneUI', 'MultiFileChooserUI', 'MultiInternalFrameUI', 'MultiLabelUI', 'MultiListUI', 'MultiLookAndFeel', 'MultiMenuBarUI', 'MultiMenuItemUI', 'MultiOptionPaneUI', 'MultiPanelUI', 'MultiPopupMenuUI', 'MultiProgressBarUI', 'MultiRootPaneUI', 'MultiScrollBarUI', 'MultiScrollPaneUI', 'MultiSeparatorUI', 'MultiSliderUI', 'MultiSpinnerUI', 'MultiSplitPaneUI', 'MultiTabbedPaneUI', 'MultiTableHeaderUI', 'MultiTableUI', 'MultiTextUI', 'MultiToolBarUI', 'MultiToolTipUI', 'MultiTreeUI', 'MultiViewportUI' + ), + 114 => array( + 'ColorType', 'Region', 'SynthConstants', 'SynthContext', 'SynthGraphicsUtils', 'SynthLookAndFeel', 'SynthPainter', 'SynthStyle', 'SynthStyleFactory' + ), + 115 => array( + 'AbstractTableModel', 'DefaultTableCellRenderer', 'DefaultTableCellRenderer.UIResource', 'DefaultTableColumnModel', 'DefaultTableModel', 'JTableHeader', 'TableCellEditor', 'TableCellRenderer', 'TableColumn', 'TableColumnModel', 'TableModel' + ), + 116 => array( + 'AbstractDocument', 'AbstractDocument.AttributeContext', 'AbstractDocument.Content', 'AbstractDocument.ElementEdit', 'AbstractWriter', 'AsyncBoxView', 'AttributeSet.CharacterAttribute', 'AttributeSet.ColorAttribute', 'AttributeSet.FontAttribute', 'AttributeSet.ParagraphAttribute', 'BadLocationException', 'BoxView', 'Caret', 'ChangedCharSetException', 'ComponentView', 'CompositeView', 'DateFormatter', 'DefaultCaret', 'DefaultEditorKit', 'DefaultEditorKit.BeepAction', 'DefaultEditorKit.CopyAction', 'DefaultEditorKit.CutAction', 'DefaultEditorKit.DefaultKeyTypedAction', 'DefaultEditorKit.InsertBreakAction', 'DefaultEditorKit.InsertContentAction', 'DefaultEditorKit.InsertTabAction', 'DefaultEditorKit.PasteAction', 'DefaultFormatter', 'DefaultFormatterFactory', 'DefaultHighlighter', 'DefaultHighlighter.DefaultHighlightPainter', 'DefaultStyledDocument', 'DefaultStyledDocument.AttributeUndoableEdit', 'DefaultStyledDocument.ElementSpec', 'DefaultTextUI', 'DocumentFilter', 'DocumentFilter.FilterBypass', + 'EditorKit', 'ElementIterator', 'FieldView', 'FlowView', 'FlowView.FlowStrategy', 'GapContent', 'GlyphView', 'GlyphView.GlyphPainter', 'Highlighter', 'Highlighter.Highlight', 'Highlighter.HighlightPainter', 'IconView', 'InternationalFormatter', 'JTextComponent', 'JTextComponent.KeyBinding', 'Keymap', 'LabelView', 'LayeredHighlighter', 'LayeredHighlighter.LayerPainter', 'LayoutQueue', 'MaskFormatter', 'MutableAttributeSet', 'NavigationFilter', 'NavigationFilter.FilterBypass', 'NumberFormatter', 'PasswordView', 'PlainDocument', 'PlainView', 'Position', 'Position.Bias', 'Segment', 'SimpleAttributeSet', 'StringContent', 'Style', 'StyleConstants', 'StyleConstants.CharacterConstants', 'StyleConstants.ColorConstants', 'StyleConstants.FontConstants', 'StyleConstants.ParagraphConstants', 'StyleContext', 'StyledDocument', 'StyledEditorKit', 'StyledEditorKit.AlignmentAction', 'StyledEditorKit.BoldAction', 'StyledEditorKit.FontFamilyAction', 'StyledEditorKit.FontSizeAction', 'StyledEditorKit.ForegroundAction', + 'StyledEditorKit.ItalicAction', 'StyledEditorKit.StyledTextAction', 'StyledEditorKit.UnderlineAction', 'TabExpander', 'TabSet', 'TabStop', 'TabableView', 'TableView', 'TextAction', 'Utilities', 'View', 'ViewFactory', 'WrappedPlainView', 'ZoneView' + ), + 117 => array( + 'BlockView', 'CSS', 'CSS.Attribute', 'FormSubmitEvent', 'FormSubmitEvent.MethodType', 'FormView', 'HTML', 'HTML.Attribute', 'HTML.Tag', 'HTML.UnknownTag', 'HTMLDocument', 'HTMLDocument.Iterator', 'HTMLEditorKit', 'HTMLEditorKit.HTMLFactory', 'HTMLEditorKit.HTMLTextAction', 'HTMLEditorKit.InsertHTMLTextAction', 'HTMLEditorKit.LinkController', 'HTMLEditorKit.Parser', 'HTMLEditorKit.ParserCallback', 'HTMLFrameHyperlinkEvent', 'HTMLWriter', 'ImageView', 'InlineView', 'ListView', 'MinimalHTMLWriter', 'ObjectView', 'Option', 'StyleSheet', 'StyleSheet.BoxPainter', 'StyleSheet.ListPainter' + ), + 118 => array( + 'ContentModel', 'DTD', 'DTDConstants', 'DocumentParser', 'ParserDelegator', 'TagElement' + ), + 119 => array( + 'RTFEditorKit' + ), + 120 => array( + 'AbstractLayoutCache', 'AbstractLayoutCache.NodeDimensions', 'DefaultMutableTreeNode', 'DefaultTreeCellEditor', 'DefaultTreeCellRenderer', 'DefaultTreeModel', 'DefaultTreeSelectionModel', 'ExpandVetoException', 'FixedHeightLayoutCache', 'MutableTreeNode', 'RowMapper', 'TreeCellEditor', 'TreeCellRenderer', 'TreeModel', 'TreeNode', 'TreePath', 'TreeSelectionModel', 'VariableHeightLayoutCache' + ), + 121 => array( + 'AbstractUndoableEdit', 'CannotRedoException', 'CannotUndoException', 'CompoundEdit', 'StateEdit', 'StateEditable', 'UndoManager', 'UndoableEdit', 'UndoableEditSupport' + ), + 122 => array( + 'InvalidTransactionException', 'TransactionRequiredException', 'TransactionRolledbackException' + ), + 123 => array( + 'XAException', 'XAResource', 'Xid' + ), + 124 => array( + 'XMLConstants' + ), + 125 => array( + 'DatatypeConfigurationException', 'DatatypeConstants', 'DatatypeConstants.Field', 'DatatypeFactory', 'Duration', 'XMLGregorianCalendar' + ), + 126 => array( + 'NamespaceContext', 'QName' + ), + 127 => array( + 'DocumentBuilder', 'DocumentBuilderFactory', 'FactoryConfigurationError', 'ParserConfigurationException', 'SAXParser', 'SAXParserFactory' + ), + 128 => array( + 'ErrorListener', 'OutputKeys', 'Result', 'Source', 'SourceLocator', 'Templates', 'Transformer', 'TransformerConfigurationException', 'TransformerException', 'TransformerFactory', 'TransformerFactoryConfigurationError', 'URIResolver' + ), + 129 => array( + 'DOMResult', 'DOMSource' + ), + 130 => array( + 'SAXResult', 'SAXSource', 'SAXTransformerFactory', 'TemplatesHandler', 'TransformerHandler' + ), + 131 => array( + 'StreamResult', 'StreamSource' + ), + 132 => array( + 'Schema', 'SchemaFactory', 'SchemaFactoryLoader', 'TypeInfoProvider', 'Validator', 'ValidatorHandler' + ), + 133 => array( + 'XPath', 'XPathConstants', 'XPathException', 'XPathExpression', 'XPathExpressionException', 'XPathFactory', 'XPathFactoryConfigurationException', 'XPathFunction', 'XPathFunctionException', 'XPathFunctionResolver', 'XPathVariableResolver' + ), + 134 => array( + 'ChannelBinding', 'GSSContext', 'GSSCredential', 'GSSException', 'GSSManager', 'GSSName', 'MessageProp', 'Oid' + ), + 135 => array( + 'ACTIVITY_COMPLETED', 'ACTIVITY_REQUIRED', 'ARG_IN', 'ARG_INOUT', 'ARG_OUT', 'Any', 'AnyHolder', 'AnySeqHolder', 'BAD_CONTEXT', 'BAD_INV_ORDER', 'BAD_OPERATION', 'BAD_PARAM', 'BAD_POLICY', 'BAD_POLICY_TYPE', 'BAD_POLICY_VALUE', 'BAD_QOS', 'BAD_TYPECODE', 'BooleanHolder', 'BooleanSeqHelper', 'BooleanSeqHolder', 'ByteHolder', 'CODESET_INCOMPATIBLE', 'COMM_FAILURE', 'CTX_RESTRICT_SCOPE', 'CharHolder', 'CharSeqHelper', 'CharSeqHolder', 'CompletionStatus', 'CompletionStatusHelper', 'ContextList', 'CurrentHolder', 'CustomMarshal', 'DATA_CONVERSION', 'DefinitionKind', 'DefinitionKindHelper', 'DomainManager', 'DomainManagerOperations', 'DoubleHolder', 'DoubleSeqHelper', 'DoubleSeqHolder', 'Environment', 'ExceptionList', 'FREE_MEM', 'FixedHolder', 'FloatHolder', 'FloatSeqHelper', 'FloatSeqHolder', 'IDLType', 'IDLTypeHelper', 'IDLTypeOperations', 'IMP_LIMIT', 'INITIALIZE', 'INTERNAL', 'INTF_REPOS', 'INVALID_ACTIVITY', 'INVALID_TRANSACTION', 'INV_FLAG', 'INV_IDENT', 'INV_OBJREF', 'INV_POLICY', 'IRObject', + 'IRObjectOperations', 'IdentifierHelper', 'IntHolder', 'LocalObject', 'LongHolder', 'LongLongSeqHelper', 'LongLongSeqHolder', 'LongSeqHelper', 'LongSeqHolder', 'MARSHAL', 'NO_IMPLEMENT', 'NO_MEMORY', 'NO_PERMISSION', 'NO_RESOURCES', 'NO_RESPONSE', 'NVList', 'NamedValue', 'OBJECT_NOT_EXIST', 'OBJ_ADAPTER', 'OMGVMCID', 'ObjectHelper', 'ObjectHolder', 'OctetSeqHelper', 'OctetSeqHolder', 'PERSIST_STORE', 'PRIVATE_MEMBER', 'PUBLIC_MEMBER', 'ParameterMode', 'ParameterModeHelper', 'ParameterModeHolder', 'PolicyError', 'PolicyErrorCodeHelper', 'PolicyErrorHelper', 'PolicyErrorHolder', 'PolicyHelper', 'PolicyHolder', 'PolicyListHelper', 'PolicyListHolder', 'PolicyOperations', 'PolicyTypeHelper', 'PrincipalHolder', 'REBIND', 'RepositoryIdHelper', 'Request', 'ServerRequest', 'ServiceDetail', 'ServiceDetailHelper', 'ServiceInformation', 'ServiceInformationHelper', 'ServiceInformationHolder', 'SetOverrideType', 'SetOverrideTypeHelper', 'ShortHolder', 'ShortSeqHelper', 'ShortSeqHolder', 'StringHolder', + 'StringSeqHelper', 'StringSeqHolder', 'StringValueHelper', 'StructMember', 'StructMemberHelper', 'SystemException', 'TCKind', 'TIMEOUT', 'TRANSACTION_MODE', 'TRANSACTION_REQUIRED', 'TRANSACTION_ROLLEDBACK', 'TRANSACTION_UNAVAILABLE', 'TRANSIENT', 'TypeCode', 'TypeCodeHolder', 'ULongLongSeqHelper', 'ULongLongSeqHolder', 'ULongSeqHelper', 'ULongSeqHolder', 'UNSUPPORTED_POLICY', 'UNSUPPORTED_POLICY_VALUE', 'UShortSeqHelper', 'UShortSeqHolder', 'UnionMember', 'UnionMemberHelper', 'UnknownUserException', 'UnknownUserExceptionHelper', 'UnknownUserExceptionHolder', 'UserException', 'VM_ABSTRACT', 'VM_CUSTOM', 'VM_NONE', 'VM_TRUNCATABLE', 'ValueBaseHelper', 'ValueBaseHolder', 'ValueMember', 'ValueMemberHelper', 'VersionSpecHelper', 'VisibilityHelper', 'WCharSeqHelper', 'WCharSeqHolder', 'WStringSeqHelper', 'WStringSeqHolder', 'WStringValueHelper', 'WrongTransaction', 'WrongTransactionHelper', 'WrongTransactionHolder', '_IDLTypeStub', '_PolicyStub' + ), + 136 => array( + 'Invalid', 'InvalidSeq' + ), + 137 => array( + 'BadKind' + ), + 138 => array( + 'ApplicationException', 'BoxedValueHelper', 'CustomValue', 'IDLEntity', 'IndirectionException', 'InvokeHandler', 'RemarshalException', 'ResponseHandler', 'ServantObject', 'Streamable', 'StreamableValue', 'UnknownException', 'ValueBase', 'ValueFactory', 'ValueInputStream', 'ValueOutputStream' + ), + 139 => array( + 'BindingHelper', 'BindingHolder', 'BindingIterator', 'BindingIteratorHelper', 'BindingIteratorHolder', 'BindingIteratorOperations', 'BindingIteratorPOA', 'BindingListHelper', 'BindingListHolder', 'BindingType', 'BindingTypeHelper', 'BindingTypeHolder', 'IstringHelper', 'NameComponent', 'NameComponentHelper', 'NameComponentHolder', 'NameHelper', 'NameHolder', 'NamingContext', 'NamingContextExt', 'NamingContextExtHelper', 'NamingContextExtHolder', 'NamingContextExtOperations', 'NamingContextExtPOA', 'NamingContextHelper', 'NamingContextHolder', 'NamingContextOperations', 'NamingContextPOA', '_BindingIteratorImplBase', '_BindingIteratorStub', '_NamingContextExtStub', '_NamingContextImplBase', '_NamingContextStub' + ), + 140 => array( + 'AddressHelper', 'InvalidAddress', 'InvalidAddressHelper', 'InvalidAddressHolder', 'StringNameHelper', 'URLStringHelper' + ), + 141 => array( + 'AlreadyBound', 'AlreadyBoundHelper', 'AlreadyBoundHolder', 'CannotProceed', 'CannotProceedHelper', 'CannotProceedHolder', 'InvalidNameHolder', 'NotEmpty', 'NotEmptyHelper', 'NotEmptyHolder', 'NotFound', 'NotFoundHelper', 'NotFoundHolder', 'NotFoundReason', 'NotFoundReasonHelper', 'NotFoundReasonHolder' + ), + 142 => array( + 'Parameter' + ), + 143 => array( + 'DynAnyFactory', 'DynAnyFactoryHelper', 'DynAnyFactoryOperations', 'DynAnyHelper', 'DynAnyOperations', 'DynAnySeqHelper', 'DynArrayHelper', 'DynArrayOperations', 'DynEnumHelper', 'DynEnumOperations', 'DynFixedHelper', 'DynFixedOperations', 'DynSequenceHelper', 'DynSequenceOperations', 'DynStructHelper', 'DynStructOperations', 'DynUnionHelper', 'DynUnionOperations', 'DynValueBox', 'DynValueBoxOperations', 'DynValueCommon', 'DynValueCommonOperations', 'DynValueHelper', 'DynValueOperations', 'NameDynAnyPair', 'NameDynAnyPairHelper', 'NameDynAnyPairSeqHelper', 'NameValuePairSeqHelper', '_DynAnyFactoryStub', '_DynAnyStub', '_DynArrayStub', '_DynEnumStub', '_DynFixedStub', '_DynSequenceStub', '_DynStructStub', '_DynUnionStub', '_DynValueStub' + ), + 144 => array( + 'InconsistentTypeCodeHelper' + ), + 145 => array( + 'InvalidValueHelper' + ), + 146 => array( + 'CodeSets', 'Codec', 'CodecFactory', 'CodecFactoryHelper', 'CodecFactoryOperations', 'CodecOperations', 'ComponentIdHelper', 'ENCODING_CDR_ENCAPS', 'Encoding', 'ExceptionDetailMessage', 'IOR', 'IORHelper', 'IORHolder', 'MultipleComponentProfileHelper', 'MultipleComponentProfileHolder', 'ProfileIdHelper', 'RMICustomMaxStreamFormat', 'ServiceContext', 'ServiceContextHelper', 'ServiceContextHolder', 'ServiceContextListHelper', 'ServiceContextListHolder', 'ServiceIdHelper', 'TAG_ALTERNATE_IIOP_ADDRESS', 'TAG_CODE_SETS', 'TAG_INTERNET_IOP', 'TAG_JAVA_CODEBASE', 'TAG_MULTIPLE_COMPONENTS', 'TAG_ORB_TYPE', 'TAG_POLICIES', 'TAG_RMI_CUSTOM_MAX_STREAM_FORMAT', 'TaggedComponent', 'TaggedComponentHelper', 'TaggedComponentHolder', 'TaggedProfile', 'TaggedProfileHelper', 'TaggedProfileHolder', 'TransactionService' + ), + 147 => array( + 'UnknownEncoding', 'UnknownEncodingHelper' + ), + 148 => array( + 'FormatMismatch', 'FormatMismatchHelper', 'InvalidTypeForEncoding', 'InvalidTypeForEncodingHelper' + ), + 149 => array( + 'SYNC_WITH_TRANSPORT', 'SyncScopeHelper' + ), + 150 => array( + 'ACTIVE', 'AdapterManagerIdHelper', 'AdapterNameHelper', 'AdapterStateHelper', 'ClientRequestInfo', 'ClientRequestInfoOperations', 'ClientRequestInterceptor', 'ClientRequestInterceptorOperations', 'DISCARDING', 'HOLDING', 'INACTIVE', 'IORInfo', 'IORInfoOperations', 'IORInterceptor', 'IORInterceptorOperations', 'IORInterceptor_3_0', 'IORInterceptor_3_0Helper', 'IORInterceptor_3_0Holder', 'IORInterceptor_3_0Operations', 'Interceptor', 'InterceptorOperations', 'InvalidSlot', 'InvalidSlotHelper', 'LOCATION_FORWARD', 'NON_EXISTENT', 'ORBIdHelper', 'ORBInitInfo', 'ORBInitInfoOperations', 'ORBInitializer', 'ORBInitializerOperations', 'ObjectReferenceFactory', 'ObjectReferenceFactoryHelper', 'ObjectReferenceFactoryHolder', 'ObjectReferenceTemplate', 'ObjectReferenceTemplateHelper', 'ObjectReferenceTemplateHolder', 'ObjectReferenceTemplateSeqHelper', 'ObjectReferenceTemplateSeqHolder', 'PolicyFactory', 'PolicyFactoryOperations', 'RequestInfo', 'RequestInfoOperations', 'SUCCESSFUL', 'SYSTEM_EXCEPTION', + 'ServerIdHelper', 'ServerRequestInfo', 'ServerRequestInfoOperations', 'ServerRequestInterceptor', 'ServerRequestInterceptorOperations', 'TRANSPORT_RETRY', 'USER_EXCEPTION' + ), + 151 => array( + 'DuplicateName', 'DuplicateNameHelper' + ), + 152 => array( + 'AdapterActivator', 'AdapterActivatorOperations', 'ID_ASSIGNMENT_POLICY_ID', 'ID_UNIQUENESS_POLICY_ID', 'IMPLICIT_ACTIVATION_POLICY_ID', 'IdAssignmentPolicy', 'IdAssignmentPolicyOperations', 'IdAssignmentPolicyValue', 'IdUniquenessPolicy', 'IdUniquenessPolicyOperations', 'IdUniquenessPolicyValue', 'ImplicitActivationPolicy', 'ImplicitActivationPolicyOperations', 'ImplicitActivationPolicyValue', 'LIFESPAN_POLICY_ID', 'LifespanPolicy', 'LifespanPolicyOperations', 'LifespanPolicyValue', 'POA', 'POAHelper', 'POAManager', 'POAManagerOperations', 'POAOperations', 'REQUEST_PROCESSING_POLICY_ID', 'RequestProcessingPolicy', 'RequestProcessingPolicyOperations', 'RequestProcessingPolicyValue', 'SERVANT_RETENTION_POLICY_ID', 'Servant', 'ServantActivator', 'ServantActivatorHelper', 'ServantActivatorOperations', 'ServantActivatorPOA', 'ServantLocator', 'ServantLocatorHelper', 'ServantLocatorOperations', 'ServantLocatorPOA', 'ServantManager', 'ServantManagerOperations', 'ServantRetentionPolicy', + 'ServantRetentionPolicyOperations', 'ServantRetentionPolicyValue', 'THREAD_POLICY_ID', 'ThreadPolicy', 'ThreadPolicyOperations', 'ThreadPolicyValue', '_ServantActivatorStub', '_ServantLocatorStub' + ), + 153 => array( + 'NoContext', 'NoContextHelper' + ), + 154 => array( + 'AdapterInactive', 'AdapterInactiveHelper', 'State' + ), + 155 => array( + 'AdapterAlreadyExists', 'AdapterAlreadyExistsHelper', 'AdapterNonExistent', 'AdapterNonExistentHelper', 'InvalidPolicy', 'InvalidPolicyHelper', 'NoServant', 'NoServantHelper', 'ObjectAlreadyActive', 'ObjectAlreadyActiveHelper', 'ObjectNotActive', 'ObjectNotActiveHelper', 'ServantAlreadyActive', 'ServantAlreadyActiveHelper', 'ServantNotActive', 'ServantNotActiveHelper', 'WrongAdapter', 'WrongAdapterHelper', 'WrongPolicy', 'WrongPolicyHelper' + ), + 156 => array( + 'CookieHolder' + ), + 157 => array( + 'RunTime', 'RunTimeOperations' + ), + 158 => array( + '_Remote_Stub' + ), + 159 => array( + 'Attr', 'CDATASection', 'CharacterData', 'Comment', 'DOMConfiguration', 'DOMError', 'DOMErrorHandler', 'DOMException', 'DOMImplementation', 'DOMImplementationList', 'DOMImplementationSource', 'DOMStringList', 'DocumentFragment', 'DocumentType', 'EntityReference', 'NameList', 'NamedNodeMap', 'Node', 'NodeList', 'Notation', 'ProcessingInstruction', 'Text', 'TypeInfo', 'UserDataHandler' + ), + 160 => array( + 'DOMImplementationRegistry' + ), + 161 => array( + 'EventException', 'EventTarget', 'MutationEvent', 'UIEvent' + ), + 162 => array( + 'DOMImplementationLS', 'LSException', 'LSInput', 'LSLoadEvent', 'LSOutput', 'LSParser', 'LSParserFilter', 'LSProgressEvent', 'LSResourceResolver', 'LSSerializer', 'LSSerializerFilter' + ), + 163 => array( + 'DTDHandler', 'DocumentHandler', 'EntityResolver', 'ErrorHandler', 'HandlerBase', 'InputSource', 'Locator', 'SAXException', 'SAXNotRecognizedException', 'SAXNotSupportedException', 'SAXParseException', 'XMLFilter', 'XMLReader' + ), + 164 => array( + 'Attributes2', 'Attributes2Impl', 'DeclHandler', 'DefaultHandler2', 'EntityResolver2', 'LexicalHandler', 'Locator2', 'Locator2Impl' + ), + 165 => array( + 'AttributeListImpl', 'AttributesImpl', 'DefaultHandler', 'LocatorImpl', 'NamespaceSupport', 'ParserAdapter', 'ParserFactory', 'XMLFilterImpl', 'XMLReaderAdapter', 'XMLReaderFactory' + ), + /* ambiguous class names (appear in more than one package) */ + 166 => array( + 'Annotation', 'AnySeqHelper', 'Array', 'Attribute', 'AttributeList', 'AttributeSet', 'Attributes', 'AuthenticationException', 'Binding', 'Bounds', 'Certificate', 'CertificateEncodingException', 'CertificateException', 'CertificateExpiredException', 'CertificateNotYetValidException', 'CertificateParsingException', 'ConnectException', 'ContentHandler', 'Context', 'Control', 'Current', 'CurrentHelper', 'CurrentOperations', 'DOMLocator', 'DataInputStream', 'DataOutputStream', 'Date', 'DefaultLoaderRepository', 'Delegate', 'Document', 'DocumentEvent', 'DynAny', 'DynArray', 'DynEnum', 'DynFixed', 'DynSequence', 'DynStruct', 'DynUnion', 'DynValue', 'DynamicImplementation', 'Element', 'Entity', 'Event', 'EventListener', 'FieldNameHelper', 'FileFilter', 'Formatter', 'ForwardRequest', 'ForwardRequestHelper', 'InconsistentTypeCode', 'InputStream', 'IntrospectionException', 'InvalidAttributeValueException', 'InvalidKeyException', 'InvalidName', 'InvalidNameHelper', 'InvalidValue', 'List', 'MouseEvent', + 'NameValuePair', 'NameValuePairHelper', 'ORB', 'Object', 'ObjectIdHelper', 'ObjectImpl', 'OpenType', 'OutputStream', 'ParagraphView', 'Parser', 'Permission', 'Policy', 'Principal', 'Proxy', 'Reference', 'Statement', 'Timer', 'Timestamp', 'TypeMismatch', 'TypeMismatchHelper', 'UNKNOWN', 'UnknownHostException', 'X509Certificate' + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + /* all Java keywords are case sensitive */ + 1 => true, 2 => true, 3 => true, 4 => true, + 5 => true, 6 => true, 7 => true, 8 => true, 9 => true, + 10 => true, 11 => true, 12 => true, 13 => true, 14 => true, + 15 => true, 16 => true, 17 => true, 18 => true, 19 => true, + 20 => true, 21 => true, 22 => true, 23 => true, 24 => true, + 25 => true, 26 => true, 27 => true, 28 => true, 29 => true, + 30 => true, 31 => true, 32 => true, 33 => true, 34 => true, + 35 => true, 36 => true, 37 => true, 38 => true, 39 => true, + 40 => true, 41 => true, 42 => true, 43 => true, 44 => true, + 45 => true, 46 => true, 47 => true, 48 => true, 49 => true, + 50 => true, 51 => true, 52 => true, 53 => true, 54 => true, + 55 => true, 56 => true, 57 => true, 58 => true, 59 => true, + 60 => true, 61 => true, 62 => true, 63 => true, 64 => true, + 65 => true, 66 => true, 67 => true, 68 => true, 69 => true, + 70 => true, 71 => true, 72 => true, 73 => true, 74 => true, + 75 => true, 76 => true, 77 => true, 78 => true, 79 => true, + 80 => true, 81 => true, 82 => true, 83 => true, 84 => true, + 85 => true, 86 => true, 87 => true, 88 => true, 89 => true, + 90 => true, 91 => true, 92 => true, 93 => true, 94 => true, + 95 => true, 96 => true, 97 => true, 98 => true, 99 => true, + 100 => true, 101 => true, 102 => true, 103 => true, 104 => true, + 105 => true, 106 => true, 107 => true, 108 => true, 109 => true, + 110 => true, 111 => true, 112 => true, 113 => true, 114 => true, + 115 => true, 116 => true, 117 => true, 118 => true, 119 => true, + 120 => true, 121 => true, 122 => true, 123 => true, 124 => true, + 125 => true, 126 => true, 127 => true, 128 => true, 129 => true, + 130 => true, 131 => true, 132 => true, 133 => true, 134 => true, + 135 => true, 136 => true, 137 => true, 138 => true, 139 => true, + 140 => true, 141 => true, 142 => true, 143 => true, 144 => true, + 145 => true, 146 => true, 147 => true, 148 => true, 149 => true, + 150 => true, 151 => true, 152 => true, 153 => true, 154 => true, + 155 => true, 156 => true, 157 => true, 158 => true, 159 => true, + 160 => true, 161 => true, 162 => true, 163 => true, 164 => true, + 165 => true, 166 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #993333;', + 4 => 'color: #b13366;', + 5 => 'color: #aaaadd; font-weight: bold;', + 6 => 'color: #aaaadd; font-weight: bold;', + 7 => 'color: #aaaadd; font-weight: bold;', + 8 => 'color: #aaaadd; font-weight: bold;', + 9 => 'color: #aaaadd; font-weight: bold;', + 10 => 'color: #aaaadd; font-weight: bold;', + 11 => 'color: #aaaadd; font-weight: bold;', + 12 => 'color: #aaaadd; font-weight: bold;', + 13 => 'color: #aaaadd; font-weight: bold;', + 14 => 'color: #aaaadd; font-weight: bold;', + 15 => 'color: #aaaadd; font-weight: bold;', + 16 => 'color: #aaaadd; font-weight: bold;', + 17 => 'color: #aaaadd; font-weight: bold;', + 18 => 'color: #aaaadd; font-weight: bold;', + 19 => 'color: #aaaadd; font-weight: bold;', + 20 => 'color: #aaaadd; font-weight: bold;', + 21 => 'color: #aaaadd; font-weight: bold;', + 22 => 'color: #aaaadd; font-weight: bold;', + 23 => 'color: #aaaadd; font-weight: bold;', + 24 => 'color: #aaaadd; font-weight: bold;', + 25 => 'color: #aaaadd; font-weight: bold;', + 26 => 'color: #aaaadd; font-weight: bold;', + 27 => 'color: #aaaadd; font-weight: bold;', + 28 => 'color: #aaaadd; font-weight: bold;', + 29 => 'color: #aaaadd; font-weight: bold;', + 30 => 'color: #aaaadd; font-weight: bold;', + 31 => 'color: #aaaadd; font-weight: bold;', + 32 => 'color: #aaaadd; font-weight: bold;', + 33 => 'color: #aaaadd; font-weight: bold;', + 34 => 'color: #aaaadd; font-weight: bold;', + 35 => 'color: #aaaadd; font-weight: bold;', + 36 => 'color: #aaaadd; font-weight: bold;', + 37 => 'color: #aaaadd; font-weight: bold;', + 38 => 'color: #aaaadd; font-weight: bold;', + 39 => 'color: #aaaadd; font-weight: bold;', + 40 => 'color: #aaaadd; font-weight: bold;', + 41 => 'color: #aaaadd; font-weight: bold;', + 42 => 'color: #aaaadd; font-weight: bold;', + 43 => 'color: #aaaadd; font-weight: bold;', + 44 => 'color: #aaaadd; font-weight: bold;', + 45 => 'color: #aaaadd; font-weight: bold;', + 46 => 'color: #aaaadd; font-weight: bold;', + 47 => 'color: #aaaadd; font-weight: bold;', + 48 => 'color: #aaaadd; font-weight: bold;', + 49 => 'color: #aaaadd; font-weight: bold;', + 50 => 'color: #aaaadd; font-weight: bold;', + 51 => 'color: #aaaadd; font-weight: bold;', + 52 => 'color: #aaaadd; font-weight: bold;', + 53 => 'color: #aaaadd; font-weight: bold;', + 54 => 'color: #aaaadd; font-weight: bold;', + 55 => 'color: #aaaadd; font-weight: bold;', + 56 => 'color: #aaaadd; font-weight: bold;', + 57 => 'color: #aaaadd; font-weight: bold;', + 58 => 'color: #aaaadd; font-weight: bold;', + 59 => 'color: #aaaadd; font-weight: bold;', + 60 => 'color: #aaaadd; font-weight: bold;', + 61 => 'color: #aaaadd; font-weight: bold;', + 62 => 'color: #aaaadd; font-weight: bold;', + 63 => 'color: #aaaadd; font-weight: bold;', + 64 => 'color: #aaaadd; font-weight: bold;', + 65 => 'color: #aaaadd; font-weight: bold;', + 66 => 'color: #aaaadd; font-weight: bold;', + 67 => 'color: #aaaadd; font-weight: bold;', + 68 => 'color: #aaaadd; font-weight: bold;', + 69 => 'color: #aaaadd; font-weight: bold;', + 70 => 'color: #aaaadd; font-weight: bold;', + 71 => 'color: #aaaadd; font-weight: bold;', + 72 => 'color: #aaaadd; font-weight: bold;', + 73 => 'color: #aaaadd; font-weight: bold;', + 74 => 'color: #aaaadd; font-weight: bold;', + 75 => 'color: #aaaadd; font-weight: bold;', + 76 => 'color: #aaaadd; font-weight: bold;', + 77 => 'color: #aaaadd; font-weight: bold;', + 78 => 'color: #aaaadd; font-weight: bold;', + 79 => 'color: #aaaadd; font-weight: bold;', + 80 => 'color: #aaaadd; font-weight: bold;', + 81 => 'color: #aaaadd; font-weight: bold;', + 82 => 'color: #aaaadd; font-weight: bold;', + 83 => 'color: #aaaadd; font-weight: bold;', + 84 => 'color: #aaaadd; font-weight: bold;', + 85 => 'color: #aaaadd; font-weight: bold;', + 86 => 'color: #aaaadd; font-weight: bold;', + 87 => 'color: #aaaadd; font-weight: bold;', + 88 => 'color: #aaaadd; font-weight: bold;', + 89 => 'color: #aaaadd; font-weight: bold;', + 90 => 'color: #aaaadd; font-weight: bold;', + 91 => 'color: #aaaadd; font-weight: bold;', + 92 => 'color: #aaaadd; font-weight: bold;', + 93 => 'color: #aaaadd; font-weight: bold;', + 94 => 'color: #aaaadd; font-weight: bold;', + 95 => 'color: #aaaadd; font-weight: bold;', + 96 => 'color: #aaaadd; font-weight: bold;', + 97 => 'color: #aaaadd; font-weight: bold;', + 98 => 'color: #aaaadd; font-weight: bold;', + 99 => 'color: #aaaadd; font-weight: bold;', + 100 => 'color: #aaaadd; font-weight: bold;', + 101 => 'color: #aaaadd; font-weight: bold;', + 102 => 'color: #aaaadd; font-weight: bold;', + 103 => 'color: #aaaadd; font-weight: bold;', + 104 => 'color: #aaaadd; font-weight: bold;', + 105 => 'color: #aaaadd; font-weight: bold;', + 106 => 'color: #aaaadd; font-weight: bold;', + 107 => 'color: #aaaadd; font-weight: bold;', + 108 => 'color: #aaaadd; font-weight: bold;', + 109 => 'color: #aaaadd; font-weight: bold;', + 110 => 'color: #aaaadd; font-weight: bold;', + 111 => 'color: #aaaadd; font-weight: bold;', + 112 => 'color: #aaaadd; font-weight: bold;', + 113 => 'color: #aaaadd; font-weight: bold;', + 114 => 'color: #aaaadd; font-weight: bold;', + 115 => 'color: #aaaadd; font-weight: bold;', + 116 => 'color: #aaaadd; font-weight: bold;', + 117 => 'color: #aaaadd; font-weight: bold;', + 118 => 'color: #aaaadd; font-weight: bold;', + 119 => 'color: #aaaadd; font-weight: bold;', + 120 => 'color: #aaaadd; font-weight: bold;', + 121 => 'color: #aaaadd; font-weight: bold;', + 122 => 'color: #aaaadd; font-weight: bold;', + 123 => 'color: #aaaadd; font-weight: bold;', + 124 => 'color: #aaaadd; font-weight: bold;', + 125 => 'color: #aaaadd; font-weight: bold;', + 126 => 'color: #aaaadd; font-weight: bold;', + 127 => 'color: #aaaadd; font-weight: bold;', + 128 => 'color: #aaaadd; font-weight: bold;', + 129 => 'color: #aaaadd; font-weight: bold;', + 130 => 'color: #aaaadd; font-weight: bold;', + 131 => 'color: #aaaadd; font-weight: bold;', + 132 => 'color: #aaaadd; font-weight: bold;', + 133 => 'color: #aaaadd; font-weight: bold;', + 134 => 'color: #aaaadd; font-weight: bold;', + 135 => 'color: #aaaadd; font-weight: bold;', + 136 => 'color: #aaaadd; font-weight: bold;', + 137 => 'color: #aaaadd; font-weight: bold;', + 138 => 'color: #aaaadd; font-weight: bold;', + 139 => 'color: #aaaadd; font-weight: bold;', + 140 => 'color: #aaaadd; font-weight: bold;', + 141 => 'color: #aaaadd; font-weight: bold;', + 142 => 'color: #aaaadd; font-weight: bold;', + 143 => 'color: #aaaadd; font-weight: bold;', + 144 => 'color: #aaaadd; font-weight: bold;', + 145 => 'color: #aaaadd; font-weight: bold;', + 146 => 'color: #aaaadd; font-weight: bold;', + 147 => 'color: #aaaadd; font-weight: bold;', + 148 => 'color: #aaaadd; font-weight: bold;', + 149 => 'color: #aaaadd; font-weight: bold;', + 150 => 'color: #aaaadd; font-weight: bold;', + 151 => 'color: #aaaadd; font-weight: bold;', + 152 => 'color: #aaaadd; font-weight: bold;', + 153 => 'color: #aaaadd; font-weight: bold;', + 154 => 'color: #aaaadd; font-weight: bold;', + 155 => 'color: #aaaadd; font-weight: bold;', + 156 => 'color: #aaaadd; font-weight: bold;', + 157 => 'color: #aaaadd; font-weight: bold;', + 158 => 'color: #aaaadd; font-weight: bold;', + 159 => 'color: #aaaadd; font-weight: bold;', + 160 => 'color: #aaaadd; font-weight: bold;', + 161 => 'color: #aaaadd; font-weight: bold;', + 162 => 'color: #aaaadd; font-weight: bold;', + 163 => 'color: #aaaadd; font-weight: bold;', + 164 => 'color: #aaaadd; font-weight: bold;', + 165 => 'color: #aaaadd; font-weight: bold;', + 166 => 'color: #aaaadd; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; 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: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;', + 2 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/applet/{FNAME}.html', + 6 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/{FNAME}.html', + 7 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/color/{FNAME}.html', + 8 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/datatransfer/{FNAME}.html', + 9 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/dnd/{FNAME}.html', + 10 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/event/{FNAME}.html', + 11 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/font/{FNAME}.html', + 12 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/geom/{FNAME}.html', + 13 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/im/{FNAME}.html', + 14 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/im/spi/{FNAME}.html', + 15 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/{FNAME}.html', + 16 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/renderable/{FNAME}.html', + 17 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/print/{FNAME}.html', + 18 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/beans/{FNAME}.html', + 19 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/beans/beancontext/{FNAME}.html', + 20 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/io/{FNAME}.html', + 21 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/{FNAME}.html', + 22 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/annotation/{FNAME}.html', + 23 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/instrument/{FNAME}.html', + 24 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/{FNAME}.html', + 25 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ref/{FNAME}.html', + 26 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/{FNAME}.html', + 27 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/math/{FNAME}.html', + 28 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/net/{FNAME}.html', + 29 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/{FNAME}.html', + 30 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/channels/{FNAME}.html', + 31 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/channels/spi/{FNAME}.html', + 32 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/charset/{FNAME}.html', + 33 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/charset/spi/{FNAME}.html', + 34 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/{FNAME}.html', + 35 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/activation/{FNAME}.html', + 36 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/dgc/{FNAME}.html', + 37 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/registry/{FNAME}.html', + 38 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/server/{FNAME}.html', + 39 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/{FNAME}.html', + 40 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/acl/{FNAME}.html', + 41 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/cert/{FNAME}.html', + 42 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/interfaces/{FNAME}.html', + 43 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/spec/{FNAME}.html', + 44 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/sql/{FNAME}.html', + 45 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/text/{FNAME}.html', + 46 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/{FNAME}.html', + 47 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/{FNAME}.html', + 48 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/atomic/{FNAME}.html', + 49 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/locks/{FNAME}.html', + 50 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/jar/{FNAME}.html', + 51 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/logging/{FNAME}.html', + 52 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/prefs/{FNAME}.html', + 53 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/{FNAME}.html', + 54 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/zip/{FNAME}.html', + 55 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/accessibility/{FNAME}.html', + 56 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/activity/{FNAME}.html', + 57 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/crypto/{FNAME}.html', + 58 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/crypto/interfaces/{FNAME}.html', + 59 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/crypto/spec/{FNAME}.html', + 60 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/{FNAME}.html', + 61 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/event/{FNAME}.html', + 62 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/metadata/{FNAME}.html', + 63 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/plugins/bmp/{FNAME}.html', + 64 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/plugins/jpeg/{FNAME}.html', + 65 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/spi/{FNAME}.html', + 66 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/stream/{FNAME}.html', + 67 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/{FNAME}.html', + 68 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/loading/{FNAME}.html', + 69 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/modelmbean/{FNAME}.html', + 70 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/monitor/{FNAME}.html', + 71 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/openmbean/{FNAME}.html', + 72 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/relation/{FNAME}.html', + 73 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/remote/{FNAME}.html', + 74 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/remote/rmi/{FNAME}.html', + 75 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/timer/{FNAME}.html', + 76 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/{FNAME}.html', + 77 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/directory/{FNAME}.html', + 78 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/event/{FNAME}.html', + 79 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/ldap/{FNAME}.html', + 80 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/spi/{FNAME}.html', + 81 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/net/{FNAME}.html', + 82 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/{FNAME}.html', + 83 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/{FNAME}.html', + 84 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/attribute/{FNAME}.html', + 85 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/attribute/standard/{FNAME}.html', + 86 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/event/{FNAME}.html', + 87 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/rmi/{FNAME}.html', + 88 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/rmi/CORBA/{FNAME}.html', + 89 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/rmi/ssl/{FNAME}.html', + 90 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/{FNAME}.html', + 91 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/callback/{FNAME}.html', + 92 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/kerberos/{FNAME}.html', + 93 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/login/{FNAME}.html', + 94 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/spi/{FNAME}.html', + 95 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/x500/{FNAME}.html', + 96 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/sasl/{FNAME}.html', + 97 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/{FNAME}.html', + 98 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/spi/{FNAME}.html', + 99 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/sampled/{FNAME}.html', + 100 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/sampled/spi/{FNAME}.html', + 101 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/{FNAME}.html', + 102 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/rowset/{FNAME}.html', + 103 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/rowset/serial/{FNAME}.html', + 104 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/rowset/spi/{FNAME}.html', + 105 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/{FNAME}.html', + 106 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/border/{FNAME}.html', + 107 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/colorchooser/{FNAME}.html', + 108 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/event/{FNAME}.html', + 109 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/filechooser/{FNAME}.html', + 110 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/{FNAME}.html', + 111 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/basic/{FNAME}.html', + 112 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/metal/{FNAME}.html', + 113 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/multi/{FNAME}.html', + 114 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/synth/{FNAME}.html', + 115 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/table/{FNAME}.html', + 116 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/{FNAME}.html', + 117 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/html/{FNAME}.html', + 118 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/html/parser/{FNAME}.html', + 119 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/rtf/{FNAME}.html', + 120 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/tree/{FNAME}.html', + 121 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/undo/{FNAME}.html', + 122 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/{FNAME}.html', + 123 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/{FNAME}.html', + 124 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/{FNAME}.html', + 125 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/datatype/{FNAME}.html', + 126 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/namespace/{FNAME}.html', + 127 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/parsers/{FNAME}.html', + 128 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/{FNAME}.html', + 129 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/dom/{FNAME}.html', + 130 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/sax/{FNAME}.html', + 131 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/stream/{FNAME}.html', + 132 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/validation/{FNAME}.html', + 133 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/xpath/{FNAME}.html', + 134 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/ietf/jgss/{FNAME}.html', + 135 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/{FNAME}.html', + 136 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/DynAnyPackage/{FNAME}.html', + 137 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/TypeCodePackage/{FNAME}.html', + 138 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/portable/{FNAME}.html', + 139 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CosNaming/{FNAME}.html', + 140 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CosNaming/NamingContextExtPackage/{FNAME}.html', + 141 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CosNaming/NamingContextPackage/{FNAME}.html', + 142 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/Dynamic/{FNAME}.html', + 143 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/DynamicAny/{FNAME}.html', + 144 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/DynamicAny/DynAnyFactoryPackage/{FNAME}.html', + 145 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/DynamicAny/DynAnyPackage/{FNAME}.html', + 146 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/IOP/{FNAME}.html', + 147 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/IOP/CodecFactoryPackage/{FNAME}.html', + 148 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/IOP/CodecPackage/{FNAME}.html', + 149 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/Messaging/{FNAME}.html', + 150 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableInterceptor/{FNAME}.html', + 151 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableInterceptor/ORBInitInfoPackage/{FNAME}.html', + 152 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/{FNAME}.html', + 153 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/CurrentPackage/{FNAME}.html', + 154 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/{FNAME}.html', + 155 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/POAPackage/{FNAME}.html', + 156 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/ServantLocatorPackage/{FNAME}.html', + 157 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/SendingContext/{FNAME}.html', + 158 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/stub/java/rmi/{FNAME}.html', + 159 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/{FNAME}.html', + 160 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/bootstrap/{FNAME}.html', + 161 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/events/{FNAME}.html', + 162 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/ls/{FNAME}.html', + 163 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/xml/sax/{FNAME}.html', + 164 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/xml/sax/ext/{FNAME}.html', + 165 => 'http://java.sun.com/j2se/1.5.0/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&q=allinurl%3Aj2se%2F1+5+0%2Fdocs%2Fapi+{FNAME}' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + /* Java does not use '::' */ + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/javascript.php b/plugins/geshi/javascript.php old mode 100644 new mode 100755 index 9135ef4..6f7fbb6 --- a/plugins/geshi/javascript.php +++ b/plugins/geshi/javascript.php @@ -39,7 +39,7 @@ * ************************************************************************************/ -$language_data = array ( +$language_data = array( 'LANG_NAME' => 'Javascript', 'COMMENT_SINGLE' => array(1 => '//'), 'COMMENT_MULTI' => array('/*' => '*/'), @@ -115,14 +115,14 @@ $language_data = array ( ) ), 'URLS' => array( - 1 => '', - 2 => '', - 3 => '' - ), + 1 => '', + 2 => '', + 3 => '' + ), 'OOLANG' => true, 'OBJECT_SPLITTERS' => array( - 1 => '.' - ), + 1 => '.' + ), 'REGEXPS' => array( 0 => "/.*/([igm]*)?" // matches js reg exps ), @@ -140,5 +140,3 @@ $language_data = array ( 1 => true ) ); - -?> diff --git a/plugins/geshi/latex.php b/plugins/geshi/latex.php old mode 100644 new mode 100755 index 3638efd..bc730cd --- a/plugins/geshi/latex.php +++ b/plugins/geshi/latex.php @@ -43,7 +43,7 @@ if (isset($this) && is_a($this, 'GeSHi')) { $this->set_numbers_highlighting(false); } -$language_data = array ( +$language_data = array( 'LANG_NAME' => 'LaTeX', 'COMMENT_SINGLE' => array(1 => '%'), 'COMMENT_MULTI' => array(), @@ -199,5 +199,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/plugins/geshi/lisp.php b/plugins/geshi/lisp.php old mode 100644 new mode 100755 index 7d96b9d..3bc3fdc --- a/plugins/geshi/lisp.php +++ b/plugins/geshi/lisp.php @@ -41,93 +41,91 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Lisp', - 'COMMENT_SINGLE' => array(1 => ';'), - 'COMMENT_MULTI' => array(';|' => '|;'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array('"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - 'not','defun','princ', - 'eval','apply','funcall','quote','identity','function', - 'complement','backquote','lambda','set','setq','setf', - 'defun','defmacro','gensym','make','symbol','intern', - 'symbol','name','symbol','value','symbol','plist','get', - 'getf','putprop','remprop','hash','make','array','aref', - 'car','cdr','caar','cadr','cdar','cddr','caaar','caadr','cadar', - 'caddr','cdaar','cdadr','cddar','cdddr','caaaar','caaadr', - 'caadar','caaddr','cadaar','cadadr','caddar','cadddr', - 'cdaaar','cdaadr','cdadar','cdaddr','cddaar','cddadr', - 'cdddar','cddddr','cons','list','append','reverse','last','nth', - 'nthcdr','member','assoc','subst','sublis','nsubst', - 'nsublis','remove','length','list','length', - 'mapc','mapcar','mapl','maplist','mapcan','mapcon','rplaca', - 'rplacd','nconc','delete','atom','symbolp','numberp', - 'boundp','null','listp','consp','minusp','zerop','plusp', - 'evenp','oddp','eq','eql','equal','cond','case','and','or', - 'let','l','if','prog','prog1','prog2','progn','go','return', - 'do','dolist','dotimes','catch','throw','error','cerror','break', - 'continue','errset','baktrace','evalhook','truncate','float', - 'rem','min','max','abs','sin','cos','tan','expt','exp','sqrt', - 'random','logand','logior','logxor','lognot','bignums','logeqv', - 'lognand','lognor','logorc2','logtest','logbitp','logcount', - 'integer','length','nil' - ) - ), - 'SYMBOLS' => array( - '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #b1b100;' - ), - 'COMMENTS' => array( - 1 => 'color: #808080; 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: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( - 0 => 'color: #555;', +$language_data = array( + 'LANG_NAME' => 'Lisp', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(';|' => '|;'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'not','defun','princ', + 'eval','apply','funcall','quote','identity','function', + 'complement','backquote','lambda','set','setq','setf', + 'defun','defmacro','gensym','make','symbol','intern', + 'symbol','name','symbol','value','symbol','plist','get', + 'getf','putprop','remprop','hash','make','array','aref', + 'car','cdr','caar','cadr','cdar','cddr','caaar','caadr','cadar', + 'caddr','cdaar','cdadr','cddar','cdddr','caaaar','caaadr', + 'caadar','caaddr','cadaar','cadadr','caddar','cadddr', + 'cdaaar','cdaadr','cdadar','cdaddr','cddaar','cddadr', + 'cdddar','cddddr','cons','list','append','reverse','last','nth', + 'nthcdr','member','assoc','subst','sublis','nsubst', + 'nsublis','remove','length','list','length', + 'mapc','mapcar','mapl','maplist','mapcan','mapcon','rplaca', + 'rplacd','nconc','delete','atom','symbolp','numberp', + 'boundp','null','listp','consp','minusp','zerop','plusp', + 'evenp','oddp','eq','eql','equal','cond','case','and','or', + 'let','l','if','prog','prog1','prog2','progn','go','return', + 'do','dolist','dotimes','catch','throw','error','cerror','break', + 'continue','errset','baktrace','evalhook','truncate','float', + 'rem','min','max','abs','sin','cos','tan','expt','exp','sqrt', + 'random','logand','logior','logxor','lognot','bignums','logeqv', + 'lognand','lognor','logorc2','logtest','logbitp','logcount', + 'integer','length','nil' + ) + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; 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: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 0 => 'color: #555;', 1 => 'color: #555;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'REGEXPS' => array( - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( '::', ':' - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/lua.php b/plugins/geshi/lua.php old mode 100644 new mode 100755 index 6ae651d..7115b57 --- a/plugins/geshi/lua.php +++ b/plugins/geshi/lua.php @@ -42,30 +42,30 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Lua', - 'COMMENT_SINGLE' => array(1 => "--"), - 'COMMENT_MULTI' => array('--[[' => ']]'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - 'and','break','do','else','elseif','end','false','for','function','if', - 'in','local','nil','not','or','repeat','return','then','true','until','while', - '_VERSION','assert','collectgarbage','dofile','error','gcinfo','loadfile','loadstring', - 'print','tonumber','tostring','type','unpack', - '_ALERT','_ERRORMESSAGE','_INPUT','_PROMPT','_OUTPUT', - '_STDERR','_STDIN','_STDOUT','call','dostring','foreach','foreachi','getn','globals','newtype', - 'rawget','rawset','require','sort','tinsert','tremove', - 'abs','acos','asin','atan','atan2','ceil','cos','deg','exp', - 'floor','format','frexp','gsub','ldexp','log','log10','max','min','mod','rad','random','randomseed', - 'sin','sqrt','strbyte','strchar','strfind','strlen','strlower','strrep','strsub','strupper','tan', - 'openfile','closefile','readfrom','writeto','appendto', - 'remove','rename','flush','seek','tmpfile','tmpname','read','write', - 'clock','date','difftime','execute','exit','getenv','setlocale','time', - '_G','getfenv','getmetatable','ipairs','loadlib','next','pairs','pcall', - 'rawegal','rawget','rawset','require','setfenv','setmetatable','xpcall', +$language_data = array( + 'LANG_NAME' => 'Lua', + 'COMMENT_SINGLE' => array(1 => "--"), + 'COMMENT_MULTI' => array('--[[' => ']]'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'and','break','do','else','elseif','end','false','for','function','if', + 'in','local','nil','not','or','repeat','return','then','true','until','while', + '_VERSION','assert','collectgarbage','dofile','error','gcinfo','loadfile','loadstring', + 'print','tonumber','tostring','type','unpack', + '_ALERT','_ERRORMESSAGE','_INPUT','_PROMPT','_OUTPUT', + '_STDERR','_STDIN','_STDOUT','call','dostring','foreach','foreachi','getn','globals','newtype', + 'rawget','rawset','require','sort','tinsert','tremove', + 'abs','acos','asin','atan','atan2','ceil','cos','deg','exp', + 'floor','format','frexp','gsub','ldexp','log','log10','max','min','mod','rad','random','randomseed', + 'sin','sqrt','strbyte','strchar','strfind','strlen','strlower','strrep','strsub','strupper','tan', + 'openfile','closefile','readfrom','writeto','appendto', + 'remove','rename','flush','seek','tmpfile','tmpname','read','write', + 'clock','date','difftime','execute','exit','getenv','setlocale','time', + '_G','getfenv','getmetatable','ipairs','loadlib','next','pairs','pcall', + 'rawegal','rawget','rawset','require','setfenv','setmetatable','xpcall', 'string.byte','string.char','string.dump','string.find','string.len', 'string.lower','string.rep','string.sub','string.upper','string.format','string.gfind','string.gsub', 'table.concat','table.foreach','table.foreachi','table.getn','table.sort','table.insert','table.remove','table.setn', @@ -78,57 +78,55 @@ $language_data = array ( 'io.stdin','io.stdout','io.stderr', 'os.clock','os.date','os.difftime','os.execute','os.exit','os.getenv','os.remove','os.rename', 'os.setlocale','os.time','os.tmpname', - 'string','table','math','coroutine','io','os','debug' - ) - ), - 'SYMBOLS' => array( - '(', ')', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>', '=', ';' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => true - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #b1b100;' - ), - 'COMMENTS' => array( - 1 => 'color: #808080; 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: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( + 'string','table','math','coroutine','io','os','debug' + ) + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>', '=', ';' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; 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: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( 0 => 'color: #b1b100;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'REGEXPS' => array( - ), - 'SCRIPT' => array( - ) - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/m68k.php b/plugins/geshi/m68k.php old mode 100644 new mode 100755 index 27cf48b..146c0fd --- a/plugins/geshi/m68k.php +++ b/plugins/geshi/m68k.php @@ -40,96 +40,94 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Motorola 68000 Assembler', - 'COMMENT_SINGLE' => array(1 => ';'), - 'COMMENT_MULTI' => array(), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - /*CPU*/ - 1 => array( - 'adc','add','ais','aix','and','asl','asr','bcc','bclr','bcs','beq', - 'bge','bgt','bhcc','bhcs','bhi','bhs','bih','bil','bit','ble','blo', - 'bls','blt','bmc','bmi','bms','bne','bpl','bra','brclr','brn', - 'brset','bset','bsr','cbeq','clc','cli','clr','cmp','com','cphx', - 'cpx','daa','dbnz','dec','div','eor','inc','jmp','jsr','lda','ldhx', - 'ldx','lsl','lsr','mov','mul','neg','nop','nsa','ora','psha','pshh', - 'pshx','pula','pulh','pulx','rol','ror','rsp','rti','rts','sbc', - 'sec','sei','sta','sthx','stop','stx','sub','swi','tap','tax','tpa', - 'tst','tsx','txa','txs','wait' - ), - /*registers*/ - 2 => array( - 'a','h','x', - 'hx','sp' - ), - /*Directive*/ - 3 => array( - '#define','#endif','#else','#ifdef','#ifndef','#include','#undef', - '.db','.dd','.df','.dq','.dt','.dw','.end','.org','equ' - ), - ), - 'SYMBOLS' => array( - ',' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false, - 2 => false, - 3 => false, - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #0000ff; font-weight:bold;', - 2 => 'color: #0000ff;', - 3 => 'color: #46aa03; font-weight:bold;' - ), - 'COMMENTS' => array( - 1 => 'color: #adadad; font-style: italic;', - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: #0000ff;' - ), - 'STRINGS' => array( - 0 => 'color: #7f007f;' - ), - 'NUMBERS' => array( - 0 => 'color: #dd22dd;' - ), - 'METHODS' => array( - ), - 'SYMBOLS' => array( - 0 => 'color: #008000;' - ), - 'REGEXPS' => array( - 0 => 'color: #22bbff;', - 1 => 'color: #22bbff;', - 2 => 'color: #993333;' - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - 0 => '#?0[0-9a-fA-F]{1,32}[hH]', - 1 => '\%[01]{1,64}[bB]', - 2 => '^[_a-zA-Z][_a-zA-Z0-9]{0,50}\:' - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( +$language_data = array( + 'LANG_NAME' => 'Motorola 68000 Assembler', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + /*CPU*/ + 1 => array( + 'adc','add','ais','aix','and','asl','asr','bcc','bclr','bcs','beq', + 'bge','bgt','bhcc','bhcs','bhi','bhs','bih','bil','bit','ble','blo', + 'bls','blt','bmc','bmi','bms','bne','bpl','bra','brclr','brn', + 'brset','bset','bsr','cbeq','clc','cli','clr','cmp','com','cphx', + 'cpx','daa','dbnz','dec','div','eor','inc','jmp','jsr','lda','ldhx', + 'ldx','lsl','lsr','mov','mul','neg','nop','nsa','ora','psha','pshh', + 'pshx','pula','pulh','pulx','rol','ror','rsp','rti','rts','sbc', + 'sec','sei','sta','sthx','stop','stx','sub','swi','tap','tax','tpa', + 'tst','tsx','txa','txs','wait' + ), + /*registers*/ + 2 => array( + 'a','h','x', + 'hx','sp' + ), + /*Directive*/ + 3 => array( + '#define','#endif','#else','#ifdef','#ifndef','#include','#undef', + '.db','.dd','.df','.dq','.dt','.dw','.end','.org','equ' + ), + ), + 'SYMBOLS' => array( + ',' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false, + 2 => false, + 3 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000ff; font-weight:bold;', + 2 => 'color: #0000ff;', + 3 => 'color: #46aa03; font-weight:bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #adadad; font-style: italic;', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #0000ff;' + ), + 'STRINGS' => array( + 0 => 'color: #7f007f;' + ), + 'NUMBERS' => array( + 0 => 'color: #dd22dd;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #008000;' + ), + 'REGEXPS' => array( + 0 => 'color: #22bbff;', + 1 => 'color: #22bbff;', + 2 => 'color: #993333;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 0 => '#?0[0-9a-fA-F]{1,32}[hH]', + 1 => '\%[01]{1,64}[bB]', + 2 => '^[_a-zA-Z][_a-zA-Z0-9]{0,50}\:' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( ), 'TAB_WIDTH' => 8 ); - -?> diff --git a/plugins/geshi/matlab.php b/plugins/geshi/matlab.php old mode 100644 new mode 100755 index 32ccabd..34d6c60 --- a/plugins/geshi/matlab.php +++ b/plugins/geshi/matlab.php @@ -40,828 +40,826 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Matlab M', - 'COMMENT_SINGLE' => array(1 => '%'), - 'COMMENT_MULTI' => array(), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array(), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - 1 => array( - 'break', 'case', 'catch', 'continue', 'elseif', 'else', 'end', 'for', - 'function', 'global', 'if', 'otherwise', 'persistent', 'return', - 'switch', 'try', 'while','...' - ), +$language_data = array( + 'LANG_NAME' => 'Matlab M', + 'COMMENT_SINGLE' => array(1 => '%'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array(), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'break', 'case', 'catch', 'continue', 'elseif', 'else', 'end', 'for', + 'function', 'global', 'if', 'otherwise', 'persistent', 'return', + 'switch', 'try', 'while','...' + ), 2 => array( 'all', - 'any', - 'exist', - 'find', - 'is', - 'isa', - 'logical', - 'mislocked', + 'any', + 'exist', + 'find', + 'is', + 'isa', + 'logical', + 'mislocked', - 'builtin', - 'eval', - 'evalc', - 'evalin', - 'feval', - 'function', - 'global', - 'nargchk', - 'persistent', - 'script', - 'break', - 'case', - 'catch', - 'else', - 'elseif', - 'end', - 'error', - 'for', - 'if', - 'otherwise', - 'return', - 'switch', - 'try', - 'warning', - 'while', - 'input', - 'keyboard', - 'menu', - 'pause', - 'class', - 'double', - 'inferiorto', - 'inline', - 'int8', - 'int16', - 'int32', - 'isa', - 'loadobj', - 'saveobj', - 'single', - 'superiorto', - 'uint8', - 'int16', - 'uint32', - 'dbclear', - 'dbcont', - 'dbdown', - 'dbmex', - 'dbquit', - 'dbstack', - 'dbstatus', - 'dbstep', - 'dbstop', - 'dbtype', - 'dbup', + 'builtin', + 'eval', + 'evalc', + 'evalin', + 'feval', + 'function', + 'global', + 'nargchk', + 'persistent', + 'script', + 'break', + 'case', + 'catch', + 'else', + 'elseif', + 'end', + 'error', + 'for', + 'if', + 'otherwise', + 'return', + 'switch', + 'try', + 'warning', + 'while', + 'input', + 'keyboard', + 'menu', + 'pause', + 'class', + 'double', + 'inferiorto', + 'inline', + 'int8', + 'int16', + 'int32', + 'isa', + 'loadobj', + 'saveobj', + 'single', + 'superiorto', + 'uint8', + 'int16', + 'uint32', + 'dbclear', + 'dbcont', + 'dbdown', + 'dbmex', + 'dbquit', + 'dbstack', + 'dbstatus', + 'dbstep', + 'dbstop', + 'dbtype', + 'dbup', - 'blkdiag', - 'eye', - 'linspace', - 'logspace', - 'ones', - 'rand', - 'randn', - 'zeros', - 'ans', - 'computer', - 'eps', - 'flops', - 'i', - 'Inf', - 'inputname', - 'j', - 'NaN', - 'nargin', - 'nargout', - 'pi', - 'realmax', - 'realmin', - 'varargin', - 'varargout', - 'calendar', - 'clock', - 'cputime', - 'date', - 'datenum', - 'datestr', - 'datevec', - 'eomday', - 'etime', - 'now', - 'tic', - 'toc', - 'weekday', - 'cat', - 'diag', - 'fliplr', - 'flipud', - 'repmat', - 'reshape', - 'rot90', - 'tril', - 'triu', - 'compan', - 'gallery', - 'hadamard', - 'hankel', - 'hilb', - 'invhilb', - 'magic', - 'pascal', - 'toeplitz', - 'wilkinson', - 'abs', - 'acos', - 'acosh', - 'acot', - 'acoth', - 'acsc', - 'acsch', - 'angle', - 'asec', - 'asech', - 'asin', - 'asinh', - 'atan', - 'atanh', - 'atan2', - 'ceil', - 'complex', - 'conj', - 'cos', - 'cosh', - 'cot', - 'coth', - 'csc', - 'csch', - 'exp', - 'fix', - 'floor', - 'gcd', - 'imag', - 'lcm', - 'log', - 'log2', - 'log10', - 'mod', - 'nchoosek', - 'real', - 'rem', - 'round', - 'sec', - 'sech', - 'sign', - 'sin', - 'sinh', - 'sqrt', - 'tan', - 'tanh', - 'airy', - 'besselh', - 'besseli', - 'besselk', - 'besselj', - 'Bessely', - 'beta', - 'betainc', - 'betaln', - 'ellipj', - 'ellipke', - 'erf', - 'erfc', - 'erfcx', - 'erfiny', - 'expint', - 'factorial', - 'gamma', - 'gammainc', - 'gammaln', - 'legendre', - 'pow2', - 'rat', - 'rats', - 'cart2pol', - 'cart2sph', - 'pol2cart', - 'sph2cart', - 'abs', - 'eval', - 'real', - 'strings', - 'deblank', - 'findstr', - 'lower', - 'strcat', - 'strcmp', - 'strcmpi', - 'strjust', - 'strmatch', - 'strncmp', - 'strrep', - 'strtok', - 'strvcat', - 'symvar', - 'texlabel', - 'upper', - 'char', - 'int2str', - 'mat2str', - 'num2str', - 'sprintf', - 'sscanf', - 'str2double', - 'str2num', - 'bin2dec', - 'dec2bin', - 'dec2hex', - 'hex2dec', - 'hex2num', - 'fclose', - 'fopen', - 'fread', - 'fwrite', - 'fgetl', - 'fgets', - 'fprintf', - 'fscanf', - 'feof', - 'ferror', - 'frewind', - 'fseek', - 'ftell', - 'sprintf', - 'sscanf', - 'dlmread', - 'dlmwrite', - 'hdf', - 'imfinfo', - 'imread', - 'imwrite', - 'textread', - 'wk1read', - 'wk1write', - 'bitand', - 'bitcmp', - 'bitor', - 'bitmax', - 'bitset', - 'bitshift', - 'bitget', - 'bitxor', - 'fieldnames', - 'getfield', - 'rmfield', - 'setfield', - 'struct', - 'struct2cell', - 'class', - 'isa', - 'cell', - 'cellfun', - 'cellstr', - 'cell2struct', - 'celldisp', - 'cellplot', - 'num2cell', - 'cat', - 'flipdim', - 'ind2sub', - 'ipermute', - 'ndgrid', - 'ndims', - 'permute', - 'reshape', - 'shiftdim', - 'squeeze', - 'sub2ind', - 'cond', - 'condeig', - 'det', - 'norm', - 'null', - 'orth', - 'rank', - 'rcond', - 'rref', - 'rrefmovie', - 'subspace', - 'trace', - 'chol', - 'inv', - 'lscov', - 'lu', - 'nnls', - 'pinv', - 'qr', - 'balance', - 'cdf2rdf', - 'eig', - 'gsvd', - 'hess', - 'poly', - 'qz', - 'rsf2csf', - 'schur', - 'svd', - 'expm', - 'funm', - 'logm', - 'sqrtm', - 'qrdelete', - 'qrinsert', - 'bar', - 'barh', - 'hist', - 'hold', - 'loglog', - 'pie', - 'plot', - 'polar', - 'semilogx', - 'semilogy', - 'subplot', - 'bar3', - 'bar3h', - 'comet3', - 'cylinder', - 'fill3', - 'plot3', - 'quiver3', - 'slice', - 'sphere', - 'stem3', - 'waterfall', - 'clabel', - 'datetick', - 'grid', - 'gtext', - 'legend', - 'plotyy', - 'title', - 'xlabel', - 'ylabel', - 'zlabel', - 'contour', - 'contourc', - 'contourf', - 'hidden', - 'meshc', - 'mesh', - 'peaks', - 'surf', - 'surface', - 'surfc', - 'surfl', - 'trimesh', - 'trisurf', - 'coneplot', - 'contourslice', - 'isocaps', - 'isonormals', - 'isosurface', - 'reducepatch', - 'reducevolume', - 'shrinkfaces', - 'smooth3', - 'stream2', - 'stream3', - 'streamline', - 'surf2patch', - 'subvolume', - 'griddata', - 'meshgrid', - 'area', - 'box', - 'comet', - 'compass', - 'errorbar', - 'ezcontour', - 'ezcontourf', - 'ezmesh', - 'ezmeshc', - 'ezplot', - 'ezplot3', - 'ezpolar', - 'ezsurf', - 'ezsurfc', - 'feather', - 'fill', - 'fplot', - 'pareto', - 'pie3', - 'plotmatrix', - 'pcolor', - 'rose', - 'quiver', - 'ribbon', - 'stairs', - 'scatter', - 'scatter3', - 'stem', - 'convhull', - 'delaunay', - 'dsearch', - 'inpolygon', - 'polyarea', - 'tsearch', - 'voronoi', - 'camdolly', - 'camlookat', - 'camorbit', - 'campan', - 'campos', - 'camproj', - 'camroll', - 'camtarget', - 'camup', - 'camva', - 'camzoom', - 'daspect', - 'pbaspect', - 'view', - 'viewmtx', - 'xlim', - 'ylim', - 'zlim', - 'camlight', - 'diffuse', - 'lighting', - 'lightingangle', - 'material', - 'specular', - 'brighten', - 'bwcontr', - 'caxis', - 'colorbar', - 'colorcube', - 'colordef', - 'colormap', - 'graymon', - 'hsv2rgb', - 'rgb2hsv', - 'rgbplot', - 'shading', - 'spinmap', - 'surfnorm', - 'whitebg', - 'autumn', - 'bone', - 'contrast', - 'cool', - 'copper', - 'flag', - 'gray', - 'hot', - 'hsv', - 'jet', - 'lines', - 'prism', - 'spring', - 'summer', - 'winter', - 'orient', - 'print', - 'printopt', - 'saveas', - 'copyobj', - 'findobj', - 'gcbo', - 'gco', - 'get', - 'rotate', - 'ishandle', - 'set', - 'axes', - 'figure', - 'image', - 'light', - 'line', - 'patch', - 'rectangle', - 'surface', - 'text Create', - 'uicontext Create', - 'capture', - 'clc', - 'clf', - 'clg', - 'close', - 'gcf', - 'newplot', - 'refresh', - 'saveas', - 'axis', - 'cla', - 'gca', - 'propedit', - 'reset', - 'rotate3d', - 'selectmoveresize', - 'shg', - 'ginput', - 'zoom', - 'dragrect', - 'drawnow', - 'rbbox', - 'dialog', - 'errordlg', - 'helpdlg', - 'inputdlg', - 'listdlg', - 'msgbox', - 'pagedlg', - 'printdlg', - 'questdlg', - 'uigetfile', - 'uiputfile', - 'uisetcolor', - 'uisetfont', - 'warndlg', - 'menu', - 'menuedit', - 'uicontextmenu', - 'uicontrol', - 'uimenu', - 'dragrect', - 'findfigs', - 'gcbo', - 'rbbox', - 'selectmoveresize', - 'textwrap', - 'uiresume', - 'uiwait Used', - 'waitbar', - 'waitforbuttonpress', - 'convhull', - 'cumprod', - 'cumsum', - 'cumtrapz', - 'delaunay', - 'dsearch', - 'factor', - 'inpolygon', - 'max', - 'mean', - 'median', - 'min', - 'perms', - 'polyarea', - 'primes', - 'prod', - 'sort', - 'sortrows', - 'std', - 'sum', - 'trapz', - 'tsearch', - 'var', - 'voronoi', - 'del2', - 'diff', - 'gradient', - 'corrcoef', - 'cov', - 'conv', - 'conv2', - 'deconv', - 'filter', - 'filter2', - 'abs', - 'angle', - 'cplxpair', - 'fft', - 'fft2', - 'fftshift', - 'ifft', - 'ifft2', - 'ifftn', - 'ifftshift', - 'nextpow2', - 'unwrap', - 'cross', - 'intersect', - 'ismember', - 'setdiff', - 'setxor', - 'union', - 'unique', - 'conv', - 'deconv', - 'poly', - 'polyder', - 'polyeig', - 'polyfit', - 'polyval', - 'polyvalm', - 'residue', - 'roots', - 'griddata', - 'interp1', - 'interp2', - 'interp3', - 'interpft', - 'interpn', - 'meshgrid', - 'ndgrid', - 'spline', - 'dblquad', - 'fmin', - 'fmins', - 'fzero', - 'ode45,', - 'ode113,', - 'ode15s,', - 'ode23s,', - 'ode23t,', - 'ode23tb', - 'odefile', - 'odeget', - 'odeset', - 'quad,', - 'vectorize', - 'spdiags', - 'speye', - 'sprand', - 'sprandn', - 'sprandsym', - 'find', - 'full', - 'sparse', - 'spconvert', - 'nnz', - 'nonzeros', - 'nzmax', - 'spalloc', - 'spfun', - 'spones', - 'colmmd', - 'colperm', - 'dmperm', - 'randperm', - 'symmmd', - 'symrcm', - 'condest', - 'normest', - 'bicg', - 'bicgstab', - 'cgs', - 'cholinc', - 'cholupdate', - 'gmres', - 'luinc', - 'pcg', - 'qmr', - 'qr', - 'qrdelete', - 'qrinsert', - 'qrupdate', - 'eigs', - 'svds', - 'spparms', - 'lin2mu', - 'mu2lin', - 'sound', - 'soundsc', - 'auread', - 'auwrite', - 'wavread', - 'wavwrite', - '[Keywords 6]', - 'addpath', - 'doc', - 'docopt', - 'help', - 'helpdesk', - 'helpwin', - 'lasterr', - 'lastwarn', - 'lookfor', - 'partialpath', - 'path', - 'pathtool', - 'profile', - 'profreport', - 'rmpath', - 'type', - 'ver', - 'version', - 'web', - 'what', - 'whatsnew', - 'which', - 'clear', - 'disp', - 'length', - 'load', - 'mlock', - 'munlock', - 'openvar', - 'pack', - 'save', - 'saveas', - 'size', - 'who', - 'whos', - 'workspace', - 'clc', - 'echo', - 'format', - 'home', - 'more', - 'cd', - 'copyfile', - 'delete', - 'diary', - 'dir', - 'edit', - 'fileparts', - 'fullfile', - 'inmem', - 'ls', - 'matlabroot', - 'mkdir', - 'open', - 'pwd', - 'tempdir', - 'tempname', - 'matlabrc', - 'quit', + 'blkdiag', + 'eye', + 'linspace', + 'logspace', + 'ones', + 'rand', + 'randn', + 'zeros', + 'ans', + 'computer', + 'eps', + 'flops', + 'i', + 'Inf', + 'inputname', + 'j', + 'NaN', + 'nargin', + 'nargout', + 'pi', + 'realmax', + 'realmin', + 'varargin', + 'varargout', + 'calendar', + 'clock', + 'cputime', + 'date', + 'datenum', + 'datestr', + 'datevec', + 'eomday', + 'etime', + 'now', + 'tic', + 'toc', + 'weekday', + 'cat', + 'diag', + 'fliplr', + 'flipud', + 'repmat', + 'reshape', + 'rot90', + 'tril', + 'triu', + 'compan', + 'gallery', + 'hadamard', + 'hankel', + 'hilb', + 'invhilb', + 'magic', + 'pascal', + 'toeplitz', + 'wilkinson', + 'abs', + 'acos', + 'acosh', + 'acot', + 'acoth', + 'acsc', + 'acsch', + 'angle', + 'asec', + 'asech', + 'asin', + 'asinh', + 'atan', + 'atanh', + 'atan2', + 'ceil', + 'complex', + 'conj', + 'cos', + 'cosh', + 'cot', + 'coth', + 'csc', + 'csch', + 'exp', + 'fix', + 'floor', + 'gcd', + 'imag', + 'lcm', + 'log', + 'log2', + 'log10', + 'mod', + 'nchoosek', + 'real', + 'rem', + 'round', + 'sec', + 'sech', + 'sign', + 'sin', + 'sinh', + 'sqrt', + 'tan', + 'tanh', + 'airy', + 'besselh', + 'besseli', + 'besselk', + 'besselj', + 'Bessely', + 'beta', + 'betainc', + 'betaln', + 'ellipj', + 'ellipke', + 'erf', + 'erfc', + 'erfcx', + 'erfiny', + 'expint', + 'factorial', + 'gamma', + 'gammainc', + 'gammaln', + 'legendre', + 'pow2', + 'rat', + 'rats', + 'cart2pol', + 'cart2sph', + 'pol2cart', + 'sph2cart', + 'abs', + 'eval', + 'real', + 'strings', + 'deblank', + 'findstr', + 'lower', + 'strcat', + 'strcmp', + 'strcmpi', + 'strjust', + 'strmatch', + 'strncmp', + 'strrep', + 'strtok', + 'strvcat', + 'symvar', + 'texlabel', + 'upper', + 'char', + 'int2str', + 'mat2str', + 'num2str', + 'sprintf', + 'sscanf', + 'str2double', + 'str2num', + 'bin2dec', + 'dec2bin', + 'dec2hex', + 'hex2dec', + 'hex2num', + 'fclose', + 'fopen', + 'fread', + 'fwrite', + 'fgetl', + 'fgets', + 'fprintf', + 'fscanf', + 'feof', + 'ferror', + 'frewind', + 'fseek', + 'ftell', + 'sprintf', + 'sscanf', + 'dlmread', + 'dlmwrite', + 'hdf', + 'imfinfo', + 'imread', + 'imwrite', + 'textread', + 'wk1read', + 'wk1write', + 'bitand', + 'bitcmp', + 'bitor', + 'bitmax', + 'bitset', + 'bitshift', + 'bitget', + 'bitxor', + 'fieldnames', + 'getfield', + 'rmfield', + 'setfield', + 'struct', + 'struct2cell', + 'class', + 'isa', + 'cell', + 'cellfun', + 'cellstr', + 'cell2struct', + 'celldisp', + 'cellplot', + 'num2cell', + 'cat', + 'flipdim', + 'ind2sub', + 'ipermute', + 'ndgrid', + 'ndims', + 'permute', + 'reshape', + 'shiftdim', + 'squeeze', + 'sub2ind', + 'cond', + 'condeig', + 'det', + 'norm', + 'null', + 'orth', + 'rank', + 'rcond', + 'rref', + 'rrefmovie', + 'subspace', + 'trace', + 'chol', + 'inv', + 'lscov', + 'lu', + 'nnls', + 'pinv', + 'qr', + 'balance', + 'cdf2rdf', + 'eig', + 'gsvd', + 'hess', + 'poly', + 'qz', + 'rsf2csf', + 'schur', + 'svd', + 'expm', + 'funm', + 'logm', + 'sqrtm', + 'qrdelete', + 'qrinsert', + 'bar', + 'barh', + 'hist', + 'hold', + 'loglog', + 'pie', + 'plot', + 'polar', + 'semilogx', + 'semilogy', + 'subplot', + 'bar3', + 'bar3h', + 'comet3', + 'cylinder', + 'fill3', + 'plot3', + 'quiver3', + 'slice', + 'sphere', + 'stem3', + 'waterfall', + 'clabel', + 'datetick', + 'grid', + 'gtext', + 'legend', + 'plotyy', + 'title', + 'xlabel', + 'ylabel', + 'zlabel', + 'contour', + 'contourc', + 'contourf', + 'hidden', + 'meshc', + 'mesh', + 'peaks', + 'surf', + 'surface', + 'surfc', + 'surfl', + 'trimesh', + 'trisurf', + 'coneplot', + 'contourslice', + 'isocaps', + 'isonormals', + 'isosurface', + 'reducepatch', + 'reducevolume', + 'shrinkfaces', + 'smooth3', + 'stream2', + 'stream3', + 'streamline', + 'surf2patch', + 'subvolume', + 'griddata', + 'meshgrid', + 'area', + 'box', + 'comet', + 'compass', + 'errorbar', + 'ezcontour', + 'ezcontourf', + 'ezmesh', + 'ezmeshc', + 'ezplot', + 'ezplot3', + 'ezpolar', + 'ezsurf', + 'ezsurfc', + 'feather', + 'fill', + 'fplot', + 'pareto', + 'pie3', + 'plotmatrix', + 'pcolor', + 'rose', + 'quiver', + 'ribbon', + 'stairs', + 'scatter', + 'scatter3', + 'stem', + 'convhull', + 'delaunay', + 'dsearch', + 'inpolygon', + 'polyarea', + 'tsearch', + 'voronoi', + 'camdolly', + 'camlookat', + 'camorbit', + 'campan', + 'campos', + 'camproj', + 'camroll', + 'camtarget', + 'camup', + 'camva', + 'camzoom', + 'daspect', + 'pbaspect', + 'view', + 'viewmtx', + 'xlim', + 'ylim', + 'zlim', + 'camlight', + 'diffuse', + 'lighting', + 'lightingangle', + 'material', + 'specular', + 'brighten', + 'bwcontr', + 'caxis', + 'colorbar', + 'colorcube', + 'colordef', + 'colormap', + 'graymon', + 'hsv2rgb', + 'rgb2hsv', + 'rgbplot', + 'shading', + 'spinmap', + 'surfnorm', + 'whitebg', + 'autumn', + 'bone', + 'contrast', + 'cool', + 'copper', + 'flag', + 'gray', + 'hot', + 'hsv', + 'jet', + 'lines', + 'prism', + 'spring', + 'summer', + 'winter', + 'orient', + 'print', + 'printopt', + 'saveas', + 'copyobj', + 'findobj', + 'gcbo', + 'gco', + 'get', + 'rotate', + 'ishandle', + 'set', + 'axes', + 'figure', + 'image', + 'light', + 'line', + 'patch', + 'rectangle', + 'surface', + 'text Create', + 'uicontext Create', + 'capture', + 'clc', + 'clf', + 'clg', + 'close', + 'gcf', + 'newplot', + 'refresh', + 'saveas', + 'axis', + 'cla', + 'gca', + 'propedit', + 'reset', + 'rotate3d', + 'selectmoveresize', + 'shg', + 'ginput', + 'zoom', + 'dragrect', + 'drawnow', + 'rbbox', + 'dialog', + 'errordlg', + 'helpdlg', + 'inputdlg', + 'listdlg', + 'msgbox', + 'pagedlg', + 'printdlg', + 'questdlg', + 'uigetfile', + 'uiputfile', + 'uisetcolor', + 'uisetfont', + 'warndlg', + 'menu', + 'menuedit', + 'uicontextmenu', + 'uicontrol', + 'uimenu', + 'dragrect', + 'findfigs', + 'gcbo', + 'rbbox', + 'selectmoveresize', + 'textwrap', + 'uiresume', + 'uiwait Used', + 'waitbar', + 'waitforbuttonpress', + 'convhull', + 'cumprod', + 'cumsum', + 'cumtrapz', + 'delaunay', + 'dsearch', + 'factor', + 'inpolygon', + 'max', + 'mean', + 'median', + 'min', + 'perms', + 'polyarea', + 'primes', + 'prod', + 'sort', + 'sortrows', + 'std', + 'sum', + 'trapz', + 'tsearch', + 'var', + 'voronoi', + 'del2', + 'diff', + 'gradient', + 'corrcoef', + 'cov', + 'conv', + 'conv2', + 'deconv', + 'filter', + 'filter2', + 'abs', + 'angle', + 'cplxpair', + 'fft', + 'fft2', + 'fftshift', + 'ifft', + 'ifft2', + 'ifftn', + 'ifftshift', + 'nextpow2', + 'unwrap', + 'cross', + 'intersect', + 'ismember', + 'setdiff', + 'setxor', + 'union', + 'unique', + 'conv', + 'deconv', + 'poly', + 'polyder', + 'polyeig', + 'polyfit', + 'polyval', + 'polyvalm', + 'residue', + 'roots', + 'griddata', + 'interp1', + 'interp2', + 'interp3', + 'interpft', + 'interpn', + 'meshgrid', + 'ndgrid', + 'spline', + 'dblquad', + 'fmin', + 'fmins', + 'fzero', + 'ode45,', + 'ode113,', + 'ode15s,', + 'ode23s,', + 'ode23t,', + 'ode23tb', + 'odefile', + 'odeget', + 'odeset', + 'quad,', + 'vectorize', + 'spdiags', + 'speye', + 'sprand', + 'sprandn', + 'sprandsym', + 'find', + 'full', + 'sparse', + 'spconvert', + 'nnz', + 'nonzeros', + 'nzmax', + 'spalloc', + 'spfun', + 'spones', + 'colmmd', + 'colperm', + 'dmperm', + 'randperm', + 'symmmd', + 'symrcm', + 'condest', + 'normest', + 'bicg', + 'bicgstab', + 'cgs', + 'cholinc', + 'cholupdate', + 'gmres', + 'luinc', + 'pcg', + 'qmr', + 'qr', + 'qrdelete', + 'qrinsert', + 'qrupdate', + 'eigs', + 'svds', + 'spparms', + 'lin2mu', + 'mu2lin', + 'sound', + 'soundsc', + 'auread', + 'auwrite', + 'wavread', + 'wavwrite', + '[Keywords 6]', + 'addpath', + 'doc', + 'docopt', + 'help', + 'helpdesk', + 'helpwin', + 'lasterr', + 'lastwarn', + 'lookfor', + 'partialpath', + 'path', + 'pathtool', + 'profile', + 'profreport', + 'rmpath', + 'type', + 'ver', + 'version', + 'web', + 'what', + 'whatsnew', + 'which', + 'clear', + 'disp', + 'length', + 'load', + 'mlock', + 'munlock', + 'openvar', + 'pack', + 'save', + 'saveas', + 'size', + 'who', + 'whos', + 'workspace', + 'clc', + 'echo', + 'format', + 'home', + 'more', + 'cd', + 'copyfile', + 'delete', + 'diary', + 'dir', + 'edit', + 'fileparts', + 'fullfile', + 'inmem', + 'ls', + 'matlabroot', + 'mkdir', + 'open', + 'pwd', + 'tempdir', + 'tempname', + 'matlabrc', + 'quit', ) - ), - 'SYMBOLS' => array( - '...' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false, - 2 => false, - //3 => false, - //4 => false, - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #0000FF;', + ), + 'SYMBOLS' => array( + '...' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false, + 2 => false, + //3 => false, + //4 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000FF;', 2 => 'color: #0000FF;' - ), - 'COMMENTS' => array( - 1 => 'color: #228B22;', - ), - 'ESCAPE_CHAR' => array( + ), + 'COMMENTS' => array( + 1 => 'color: #228B22;', + ), + 'ESCAPE_CHAR' => array( 0 => '' - ), - 'BRACKETS' => array( + ), + 'BRACKETS' => array( 0 => 'color: #080;' - ), - 'STRINGS' => array( - //0 => 'color: #A020F0;' - ), - 'NUMBERS' => array( + ), + 'STRINGS' => array( + //0 => 'color: #A020F0;' + ), + 'NUMBERS' => array( 0 => 'color: #33f;' - ), - 'METHODS' => array( + ), + 'METHODS' => array( 1 => '', 2 => '' - ), - 'SYMBOLS' => array( + ), + 'SYMBOLS' => array( 0 => 'color: #080;' - ), - 'REGEXPS' => array( + ), + 'REGEXPS' => array( 0 => 'color:#A020F0;' - ), - 'SCRIPT' => array( + ), + 'SCRIPT' => array( 0 => '' - ) - ), - 'URLS' => array( - 1 => '', - 2 => 'http://www.mathworks.com/access/helpdesk/help/techdoc/ref/{FNAME}.html', - 3 => '', - 4 => '' - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.', - 2 => '::' - ), - 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => 'http://www.mathworks.com/access/helpdesk/help/techdoc/ref/{FNAME}.html', + 3 => '', + 4 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.', + 2 => '::' + ), + 'REGEXPS' => array( 0 => array( GESHI_SEARCH => "([^\w])'([^\\n\\r']*)'", GESHI_REPLACE => '\\2', GESHI_MODIFIERS => '', GESHI_BEFORE => "\\1'", GESHI_AFTER => "'" - ) - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + ) + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/mirc.php b/plugins/geshi/mirc.php old mode 100644 new mode 100755 index 29faac2..5243c4a --- a/plugins/geshi/mirc.php +++ b/plugins/geshi/mirc.php @@ -34,123 +34,122 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'mIRC Scripting', - 'COMMENT_SINGLE' => array(1 => ';'), - 'COMMENT_MULTI' => array(), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array(), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - 1 => array( - 'alias', 'menu', 'dialog', - ), - 2 => array( - 'if', 'elseif', 'else', 'while', 'return', 'goto', - ), - 3 => array( - 'action','ajinvite','alias','amsg','ame','anick','aop','auser', - 'avoice','auto','autojoin','away','background','ban','beep', - 'channel','clear','clearall','clipboard','close','closemsg','color', - 'copy','creq','ctcp','ctcpreply','ctcps','dcc','dde','ddeserver', - 'debug','describe','disable','disconnect','dlevel','dll','dns', - 'dqwindow','ebeeps','echo','editbox','emailaddr','enable','events', - 'exit','filter','findtext','finger','flash','flood','flush', - 'flushini', 'font','fsend','fserve','fullname','ghide','gload', - 'gmove','gopts','gplay','gpoint','gqreq','groups','gshow','gsize', - 'gstop','gtalk','gunload','guser','help','hop','ignore','invite', - 'join','kick','linesep','links','list','load','loadbuf','localinfo', - 'log','me','mdi','mkdir','mnick','mode','msg','names','nick','noop', - 'notice','notify','omsg','onotice','part','partall','pdcc', - 'perform','ping','play','pop','protect','pvoice','qmsg','qme', - 'query','queryrn','quit','raw','remini','remote','remove','rename', - 'enwin','resetidle','rlevel','rmdir','run','ruser','save','savebuf', - 'saveini','say','server','showmirc','sline','sound','speak','splay', - 'sreq','strip','time', - //'timer[N/name]', //Handled as a regular expression below ... - 'timers','timestamp','titlebar','tnick','tokenize','topic','ulist', - 'unload','updatenl','url','uwho','window','winhelp','write', - 'writeini','who','whois','whowas' - ) - ), - 'SYMBOLS' => array( - '(', ')', '{', '}', '[', ']', - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false, - 2 => false, - 3 => false, - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #994444;', - 2 => 'color: #000000; font-weight: bold;', - 3 => 'color: #990000; font-weight: bold;', - ), - 'COMMENTS' => array( - 1 => 'color: #808080; font-style: italic;', - ), - 'ESCAPE_CHAR' => array( - ), - 'BRACKETS' => array( - 0 => 'color: #FF0000;', - ), - 'STRINGS' => array( - ), +$language_data = array( + 'LANG_NAME' => 'mIRC Scripting', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array(), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'alias', 'menu', 'dialog', + ), + 2 => array( + 'if', 'elseif', 'else', 'while', 'return', 'goto', + ), + 3 => array( + 'action','ajinvite','alias','amsg','ame','anick','aop','auser', + 'avoice','auto','autojoin','away','background','ban','beep', + 'channel','clear','clearall','clipboard','close','closemsg','color', + 'copy','creq','ctcp','ctcpreply','ctcps','dcc','dde','ddeserver', + 'debug','describe','disable','disconnect','dlevel','dll','dns', + 'dqwindow','ebeeps','echo','editbox','emailaddr','enable','events', + 'exit','filter','findtext','finger','flash','flood','flush', + 'flushini', 'font','fsend','fserve','fullname','ghide','gload', + 'gmove','gopts','gplay','gpoint','gqreq','groups','gshow','gsize', + 'gstop','gtalk','gunload','guser','help','hop','ignore','invite', + 'join','kick','linesep','links','list','load','loadbuf','localinfo', + 'log','me','mdi','mkdir','mnick','mode','msg','names','nick','noop', + 'notice','notify','omsg','onotice','part','partall','pdcc', + 'perform','ping','play','pop','protect','pvoice','qmsg','qme', + 'query','queryrn','quit','raw','remini','remote','remove','rename', + 'enwin','resetidle','rlevel','rmdir','run','ruser','save','savebuf', + 'saveini','say','server','showmirc','sline','sound','speak','splay', + 'sreq','strip','time', + //'timer[N/name]', //Handled as a regular expression below ... + 'timers','timestamp','titlebar','tnick','tokenize','topic','ulist', + 'unload','updatenl','url','uwho','window','winhelp','write', + 'writeini','who','whois','whowas' + ) + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false, + 2 => false, + 3 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #994444;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #990000; font-weight: bold;', + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + ), + 'ESCAPE_CHAR' => array( + ), + 'BRACKETS' => array( + 0 => 'color: #FF0000;', + ), + 'STRINGS' => array( + ), 'NUMBERS' => array( 0 => '', - ), - 'METHODS' => array( - ), - 'SYMBOLS' => array( - 0 => 'color: #FF0000;', - ), - 'REGEXPS' => array( - 0 => 'color: #000099;', - 1 => 'color: #990000;', - 2 => 'color: #888800;', - 3 => 'color: #888800;', - 4 => 'color: #000099;', - 5 => 'color: #000099;', - 6 => 'color: #990000; font-weight: bold;', - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - 1 => '', - 2 => '', - 3 => 'http://www.mirc.com/{FNAME}', - 4 => '' - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - 0 => '\$[a-zA-Z0-9]+', - 1 => '(%|&)[a-zA-Z0-9]+', - 2 => '(#|@)[a-zA-Z0-9]+', - 3 => '-[a-z\d]+', - 4 => '(on|ctcp) (!|@|&)?(\d|\*):[a-zA-Z]+:', - /*4 => array( - GESHI_SEARCH => '((on|ctcp) (!|@|&)?(\d|\*):(Action|Active|Agent|AppActive|Ban|Chat|Close|Connect|Ctcp|CtcpReply|DccServer|DeHelp|DeOp|DeVoice|Dialog|Dns|Error|Exit|FileRcvd|FileSent|GetFail|Help|Hotlink|Input|Invite|Join|KeyDown|KeyUp|Kick|Load|Logon|MidiEnd|Mode|Mp3End|Nick|NoSound|Notice|Notify|Op|Open|Part|Ping|Pong|PlayEnd|Quit|Raw|RawMode|SendFail|Serv|ServerMode|ServerOp|Signal|Snotice|Start|Text|Topic|UnBan|Unload|Unotify|User|Mode|Voice|Wallops|WaveEnd):)', - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => 'i', - GESHI_BEFORE => '', - GESHI_AFTER => '' - ),*/ + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #FF0000;', + ), + 'REGEXPS' => array( + 0 => 'color: #000099;', + 1 => 'color: #990000;', + 2 => 'color: #888800;', + 3 => 'color: #888800;', + 4 => 'color: #000099;', + 5 => 'color: #000099;', + 6 => 'color: #990000; font-weight: bold;', + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => 'http://www.mirc.com/{FNAME}', + 4 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 0 => '\$[a-zA-Z0-9]+', + 1 => '(%|&)[a-zA-Z0-9]+', + 2 => '(#|@)[a-zA-Z0-9]+', + 3 => '-[a-z\d]+', + 4 => '(on|ctcp) (!|@|&)?(\d|\*):[a-zA-Z]+:', + /*4 => array( + GESHI_SEARCH => '((on|ctcp) (!|@|&)?(\d|\*):(Action|Active|Agent|AppActive|Ban|Chat|Close|Connect|Ctcp|CtcpReply|DccServer|DeHelp|DeOp|DeVoice|Dialog|Dns|Error|Exit|FileRcvd|FileSent|GetFail|Help|Hotlink|Input|Invite|Join|KeyDown|KeyUp|Kick|Load|Logon|MidiEnd|Mode|Mp3End|Nick|NoSound|Notice|Notify|Op|Open|Part|Ping|Pong|PlayEnd|Quit|Raw|RawMode|SendFail|Serv|ServerMode|ServerOp|Signal|Snotice|Start|Text|Topic|UnBan|Unload|Unotify|User|Mode|Voice|Wallops|WaveEnd):)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => 'i', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ),*/ 5 => 'raw (\d|\*):', - 6 => '/timer(?!s\b)[0-9a-zA-Z_]+', - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + 6 => '/timer(?!s\b)[0-9a-zA-Z_]+', + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); if (isset($this) && is_a($this, 'GeSHi')) { $this->set_numbers_highlighting(false); } -?> diff --git a/plugins/geshi/mpasm.php b/plugins/geshi/mpasm.php old mode 100644 new mode 100755 index 6c5f425..dea031b --- a/plugins/geshi/mpasm.php +++ b/plugins/geshi/mpasm.php @@ -41,118 +41,116 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Microchip Assembler', - 'COMMENT_SINGLE' => array(1 => ';'), - 'COMMENT_MULTI' => array(), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - /*Directive Language*/ - 4 => array( - 'CONSTANT', '#DEFINE', 'END', 'EQU', 'ERROR', 'ERROR-LEVEL', '#INCLUDE', 'LIST', - 'MESSG', 'NOLIST', 'ORG', 'PAGE', 'PROCESSOR', 'RADIX', 'SET', 'SPACE', 'SUBTITLE', - 'TITLE', '#UNDEFINE', 'VARIABLE', 'ELSE', 'ENDIF', 'ENDW', 'IF', 'IFDEF', 'IFNDEF', - 'WHILE', '__BADRAM', 'CBLOCK', '__CONFIG', 'DA', 'DATA', 'DB', 'DE', 'DT', 'DW', - 'ENDC', 'FILL', '__IDLOCS', '__MAXRAM', 'RES', 'ENDM', 'EXITM', 'EXPAND', 'LOCAL', - 'MACRO', 'NOEXPAND', 'BANKISEL', 'BANKSEL', 'CODE', 'EXTERN', 'GLOBAL', 'IDATA', - 'PAGESEL', 'UDATA', 'UDATA_ACS', 'UDATA_OVR', 'UDATA_SHR' - ), - /* 12&14-bit Specific Instruction Set*/ - 1 => array( - 'andlw', 'call', 'clrwdt', 'goto', 'iorlw', 'movlw', 'option', 'retlw', 'sleep', - 'tris', 'xorlw', 'addwf', 'andwf', 'clrf', 'clrw', 'comf', 'decf', 'decfsz', 'incf', - 'incfsz', 'iorwf', 'movf', 'movwf', 'nop', 'rlf', 'rrf', 'subwf', 'swapf', 'xorwf', - 'bcf', 'bsf', 'btfsc', 'btfss', - 'addlw', 'iorlw', 'retfie', 'return', 'sublw', 'xorlw', 'addcf', 'adddcf', 'b', 'bc', 'bdc', - 'bnc', 'bndc', 'bnz', 'bz', 'clrc', 'clrdc', 'clrz', 'lcall', 'lgoto', 'movfw', - 'negf', 'setc', 'setdc', 'setz', 'skpc', 'skpdc', 'skpnc', 'skpndc', 'skpnz', 'skpz', - 'subcf', 'subdcf', 'tstf' - ), - /* 16-bit Specific Instructiob Set */ - 2 => array ( - 'movfp', 'movlb', 'movlp', 'movpf', 'movwf', 'tablrd', 'tablwt', 'tlrd', 'tlwt', - 'addwfc', 'daw', 'mullw', 'negw', 'rlcf', 'rlncf', 'rrcf', 'rrncf', 'setf', 'subwfb', - 'btg', 'cpfseq', 'cpfsgt', 'cpfslt', 'dcfsnz', 'infsnz', 'tstfsz', 'lfsr', 'bnn', - 'bnov', 'bra', 'pop', 'push', 'rcall', 'reset' - ), - /* Registers */ - 3 => array( - 'INDF', 'TMR0', 'PCL', 'STATUS', 'FSR', 'PORTA', 'PORTB', 'PORTC', 'PORTD', 'PORTE', - 'PCLATH', 'INTCON', 'PIR1', 'PIR2', 'TMR1L', 'TMR1H', 'T1CON', 'TMR2', 'T2CON', 'TMR2L', - 'TMR2H', 'TMR0H', 'TMR0L', 'SSPBUF', 'SSPCON', 'CCPR1L', 'CCPR1H', 'CCP1CON', 'RCSTA', - 'TXREG', 'RCREG', 'CCPR2L', 'CCPR2H', 'CCP2CON', 'OPTION', 'TRISA', 'TRISB', 'TRISC', - 'TRISD', 'TRISE', 'PIE2', 'PIE1', 'PR2', 'SSPADD', 'SSPSTAT', 'TXSTA', 'SPBRG' - ), - /*Operands*/ - 5 => array( - 'high','low' - ) - ), - 'SYMBOLS' => array( - '[', ']', '(', ')' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false, - 2 => false, - 3 => false, - 4 => false, - 5 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #00007f;', - 2 => 'color: #0000ff;', - 3 => 'color: #007f00;', - 4 => 'color: #46aa03; font-weight:bold;', - 5 => 'color: #7f0000;', - 6 => 'color: #7f0000;' - ), - 'COMMENTS' => array( - 1 => 'color: #adadad; 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( - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'REGEXPS' => array( - 0 => 'color: #ff0000;', - 1 => 'color: #ff0000;' - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - 1 => '', - 2 => '' - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - 0 => '[0-9a-fA-F]{1,32}[hH]', - 1 => '[01]{1,64}[bB]' - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) +$language_data = array( + 'LANG_NAME' => 'Microchip Assembler', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + /*Directive Language*/ + 4 => array( + 'CONSTANT', '#DEFINE', 'END', 'EQU', 'ERROR', 'ERROR-LEVEL', '#INCLUDE', 'LIST', + 'MESSG', 'NOLIST', 'ORG', 'PAGE', 'PROCESSOR', 'RADIX', 'SET', 'SPACE', 'SUBTITLE', + 'TITLE', '#UNDEFINE', 'VARIABLE', 'ELSE', 'ENDIF', 'ENDW', 'IF', 'IFDEF', 'IFNDEF', + 'WHILE', '__BADRAM', 'CBLOCK', '__CONFIG', 'DA', 'DATA', 'DB', 'DE', 'DT', 'DW', + 'ENDC', 'FILL', '__IDLOCS', '__MAXRAM', 'RES', 'ENDM', 'EXITM', 'EXPAND', 'LOCAL', + 'MACRO', 'NOEXPAND', 'BANKISEL', 'BANKSEL', 'CODE', 'EXTERN', 'GLOBAL', 'IDATA', + 'PAGESEL', 'UDATA', 'UDATA_ACS', 'UDATA_OVR', 'UDATA_SHR' + ), + /* 12&14-bit Specific Instruction Set*/ + 1 => array( + 'andlw', 'call', 'clrwdt', 'goto', 'iorlw', 'movlw', 'option', 'retlw', 'sleep', + 'tris', 'xorlw', 'addwf', 'andwf', 'clrf', 'clrw', 'comf', 'decf', 'decfsz', 'incf', + 'incfsz', 'iorwf', 'movf', 'movwf', 'nop', 'rlf', 'rrf', 'subwf', 'swapf', 'xorwf', + 'bcf', 'bsf', 'btfsc', 'btfss', + 'addlw', 'iorlw', 'retfie', 'return', 'sublw', 'xorlw', 'addcf', 'adddcf', 'b', 'bc', 'bdc', + 'bnc', 'bndc', 'bnz', 'bz', 'clrc', 'clrdc', 'clrz', 'lcall', 'lgoto', 'movfw', + 'negf', 'setc', 'setdc', 'setz', 'skpc', 'skpdc', 'skpnc', 'skpndc', 'skpnz', 'skpz', + 'subcf', 'subdcf', 'tstf' + ), + /* 16-bit Specific Instructiob Set */ + 2 => array( + 'movfp', 'movlb', 'movlp', 'movpf', 'movwf', 'tablrd', 'tablwt', 'tlrd', 'tlwt', + 'addwfc', 'daw', 'mullw', 'negw', 'rlcf', 'rlncf', 'rrcf', 'rrncf', 'setf', 'subwfb', + 'btg', 'cpfseq', 'cpfsgt', 'cpfslt', 'dcfsnz', 'infsnz', 'tstfsz', 'lfsr', 'bnn', + 'bnov', 'bra', 'pop', 'push', 'rcall', 'reset' + ), + /* Registers */ + 3 => array( + 'INDF', 'TMR0', 'PCL', 'STATUS', 'FSR', 'PORTA', 'PORTB', 'PORTC', 'PORTD', 'PORTE', + 'PCLATH', 'INTCON', 'PIR1', 'PIR2', 'TMR1L', 'TMR1H', 'T1CON', 'TMR2', 'T2CON', 'TMR2L', + 'TMR2H', 'TMR0H', 'TMR0L', 'SSPBUF', 'SSPCON', 'CCPR1L', 'CCPR1H', 'CCP1CON', 'RCSTA', + 'TXREG', 'RCREG', 'CCPR2L', 'CCPR2H', 'CCP2CON', 'OPTION', 'TRISA', 'TRISB', 'TRISC', + 'TRISD', 'TRISE', 'PIE2', 'PIE1', 'PR2', 'SSPADD', 'SSPSTAT', 'TXSTA', 'SPBRG' + ), + /*Operands*/ + 5 => array( + 'high','low' + ) + ), + 'SYMBOLS' => array( + '[', ']', '(', ')' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00007f;', + 2 => 'color: #0000ff;', + 3 => 'color: #007f00;', + 4 => 'color: #46aa03; font-weight:bold;', + 5 => 'color: #7f0000;', + 6 => 'color: #7f0000;' + ), + 'COMMENTS' => array( + 1 => 'color: #adadad; 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( + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + 0 => 'color: #ff0000;', + 1 => 'color: #ff0000;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 0 => '[0-9a-fA-F]{1,32}[hH]', + 1 => '[01]{1,64}[bB]' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/mysql.php b/plugins/geshi/mysql.php old mode 100644 new mode 100755 index 143c532..5e8801d --- a/plugins/geshi/mysql.php +++ b/plugins/geshi/mysql.php @@ -30,7 +30,7 @@ * ************************************************************************************/ -$language_data = array ( +$language_data = array( 'LANG_NAME' => 'MySQL', 'COMMENT_SINGLE' => array(1 =>'--', 2 => '#'), 'COMMENT_MULTI' => array('/*' => '*/'), @@ -177,5 +177,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/plugins/geshi/nsis.php b/plugins/geshi/nsis.php old mode 100644 new mode 100755 index bf8345a..6541fa7 --- a/plugins/geshi/nsis.php +++ b/plugins/geshi/nsis.php @@ -47,306 +47,304 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'NSIS', - 'COMMENT_SINGLE' => array(1 => ';', 2 => '#'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'",'"','`'), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - 1 => array( - '!appendfile', '!addIncludeDir', '!addplugindir', '!cd', '!define', '!delfile', '!echo', '!else', - '!endif', '!error', '!execute', '!ifdef', '!ifmacrodef', '!ifmacrondef', '!ifndef', '!include', - '!insertmacro', '!macro', '!macroend', '!packhdr', '!tempfile', '!system', '!undef', '!verbose', - '!warning' - ), - 2 => array( - 'AddBrandingImage', 'AllowRootDirInstall', 'AutoCloseWindow', 'BGFont', - 'BGGradient', 'BrandingText', 'Caption', 'ChangeUI', 'CheckBitmap', 'CompletedText', 'ComponentText', - 'CRCCheck', 'DetailsButtonText', 'DirShow', 'DirText', 'DirVar', 'DirVerify', 'FileErrorText', - 'Function', 'FunctionEnd', 'Icon', 'InstallButtonText', 'InstallColors', 'InstallDir', - 'InstallDirRegKey', 'InstProgressFlags', 'InstType', 'LangString', 'LangStringUP', 'LicenseBkColor', - 'LicenseData', 'LicenseForceSelection', 'LicenseLangString', 'LicenseText', 'LoadLanguageFile', - 'MiscButtonText', 'Name', 'OutFile', 'Page', 'PageEx', 'PageExEnd', 'Section', - 'SectionEnd', 'SectionGroup', 'SectionGroupEnd', 'SetCompressor', 'SetFont', 'ShowInstDetails', - 'ShowUninstDetails', 'SilentInstall', 'SilentUnInstall', 'SpaceTexts', 'SubCaption', 'SubSection', - 'SubSectionEnd', 'UninstallButtonText', 'UninstallCaption', 'UninstallIcon', 'UninstallSubCaption', - 'UninstallText', 'UninstPage', 'Var', 'VIAddVersionKey', 'VIProductVersion', 'WindowIcon', 'XPStyle' - ), - 3 => array( - 'AddSize', 'AllowSkipFiles', 'AutoCloseWindow', 'FileBufSize', 'GetInstDirError', 'PageCallbacks', - 'SectionIn', 'SetCompress', 'SetCompressionLevel', 'SetCompressorDictSize', - 'SetDatablockOptimize', 'SetDateSave', 'SetOverwrite', 'SetPluginUnload' - ), - 4 => array( - 'Abort', 'BringToFront', 'Call', 'CallInstDLL', 'ClearErrors', 'CopyFiles','CreateDirectory', - 'CreateFont', 'CreateShortCut', 'Delete', 'DeleteINISec', 'DeleteINIStr', 'DeleteRegKey', - 'DeleteRegValue', 'DetailPrint', 'EnableWindow', 'EnumRegKey', 'EnumRegValue', 'Exch', 'Exec', - 'ExecShell', 'ExecWait', 'ExpandEnvStrings', 'File', 'FileClose', 'FileOpen', 'FileRead', - 'FileReadByte', 'FileSeek', 'FileWrite', 'FileWriteByte', 'FindClose', 'FindFirst', 'FindNext', - 'FindWindow', 'FlushINI', 'GetCurInstType', 'GetCurrentAddress', 'GetDlgItem', 'GetDLLVersion', - 'GetDLLVersionLocal', 'GetErrorLevel', 'GetFileTime', 'GetFileTimeLocal', 'GetFullPathName', - 'GetFunctionAddress', 'GetLabelAddress', 'GetTempFileName', 'GetWindowText', 'Goto', 'HideWindow', - 'IfAbort', 'IfErrors', 'IfFileExists', 'IfRebootFlag', 'IfSilent', 'InitPluginsDir', 'InstTypeGetText', - 'InstTypeSetText', 'IntCmp', 'IntCmpU', 'IntFmt', 'IntOp', 'IsWindow', 'LockWindow', 'LogSet', 'LogText', - 'MessageBox', 'Nop', 'Pop', 'Push', 'Quit', 'ReadEnvStr', 'ReadIniStr', 'ReadRegDWORD', 'ReadRegStr', - 'Reboot', 'RegDLL', 'Rename', 'ReserveFile', 'Return', 'RMDir', 'SearchPath', 'SectionGetFlags', - 'SectionGetInstTypes', 'SectionGetSize', 'SectionGetText', 'SectionSetFlags', 'SectionSetInstTypes', - 'SectionSetSize', 'SectionSetText', 'SendMessage', 'SetAutoClose', 'SetBrandingImage', 'SetCtlColors', - 'SetCurInstType', 'SetDetailsPrint', 'SetDetailsView', 'SetErrorLevel', 'SetErrors', 'SetFileAttributes', - 'SetOutPath', 'SetRebootFlag', 'SetShellVarContext', 'SetSilent', 'ShowWindow', 'Sleep', 'StrCmp', - 'StrCpy', 'StrLen', 'UnRegDLL', 'WriteINIStr', 'WriteRegBin', 'WriteRegDWORD', 'WriteRegExpandStr', - 'WriteRegStr', 'WriteUninstaller' - ), - 5 => array( - 'all', 'alwaysoff', 'ARCHIVE', 'auto', 'both', 'bzip2', 'checkbox', 'components', 'current', - 'custom', 'directory', 'false', 'FILE_ATTRIBUTE_ARCHIVE', 'FILE_ATTRIBUTE_HIDDEN', 'FILE_ATTRIBUTE_NORMAL', - 'FILE_ATTRIBUTE_OFFLINE', 'FILE_ATTRIBUTE_READONLY', 'FILE_ATTRIBUTE_SYSTEM,TEMPORARY', - 'FILE_ATTRIBUTE_TEMPORARY', 'force', 'HIDDEN', 'hide', 'HKCC', 'HKCR', 'HKCU', 'HKDD', 'HKEY_CLASSES_ROOT', - 'HKEY_CURRENT_CONFIG', 'HKEY_CURRENT_USER', 'HKEY_DYN_DATA', 'HKEY_LOCAL_MACHINE', 'HKEY_PERFORMANCE_DATA', - 'HKEY_USERS', 'HKLM', 'HKPD', 'HKU', 'IDABORT', 'IDCANCEL', 'IDIGNORE', 'IDNO', 'IDOK', 'IDRETRY', 'IDYES', - 'ifdiff', 'ifnewer', 'instfiles', 'lastused', 'leave', 'license', 'listonly', 'lzma', 'manual', - 'MB_ABORTRETRYIGNORE', 'MB_DEFBUTTON1', 'MB_DEFBUTTON2', 'MB_DEFBUTTON3', 'MB_DEFBUTTON4', - 'MB_ICONEXCLAMATION', 'MB_ICONINFORMATION', 'MB_ICONQUESTION', 'MB_ICONSTOP', 'MB_OK', 'MB_OKCANCEL', - 'MB_RETRYCANCEL', 'MB_RIGHT', 'MB_SETFOREGROUND', 'MB_TOPMOST', 'MB_YESNO', 'MB_YESNOCANCEL', 'nevershow', - 'none', 'normal', 'off', 'OFFLINE', 'on', 'radiobuttons', 'READONLY', 'RO', 'SHCTX', 'SHELL_CONTEXT', 'show', - 'silent', 'silentlog', 'SW_HIDE', 'SW_SHOWMAXIMIZED', 'SW_SHOWMINIMIZED', 'SW_SHOWNORMAL', 'SYSTEM', - 'textonly', 'true', 'try', 'uninstConfirm', 'zlib' - ), - 6 => array( - '/a', '/components', '/COMPONENTSONLYONCUSTOM', '/CUSTOMSTRING', '/e', '/FILESONLY', '/FINAL', '/gray', '/GLOBAL', - '/ifempty', '/IMGID', '/ITALIC', '/lang', '/NOCUSTOM', '/nonfatal', '/NOUNLOAD', '/oname', '/r', '/REBOOTOK', - '/RESIZETOFIT', '/SOLID', '/SD', '/SHORT', '/silent', '/SOLID', '/STRIKE', '/TIMEOUT', '/TRIMCENTER', '/TRIMLEFT', - '/TRIMRIGHT', '/UNDERLINE', '/windows', '/x' - ), - 7 => array( - '.onGUIEnd', '.onGUIInit', '.onInit', '.onInstFailed', '.onInstSuccess', '.onMouseOverSection', - '.onRebootFailed', '.onSelChange', '.onUserAbort', '.onVerifyInstDir', 'un.onGUIEnd', 'un.onGUIInit', - 'un.onInit', 'un.onRebootFailed', 'un.onUninstFailed', 'un.onUninstSuccess', 'un.onUserAbort' - ), - 8 => array( - 'MUI.nsh', '"${NSISDIR}\Contrib\Modern UI\System.nsh"', 'MUI_SYSVERSION', 'MUI_ICON', 'MUI_UNICON', - 'MUI_HEADERIMAGE', 'MUI_HEADERIMAGE_BITMAP', 'MUI_HEADERIMAGE_BITMAP_NOSTRETCH', 'MUI_HEADERIMAGE_BITMAP_RTL', - 'MUI_HEADERIMAGE_BITMAP_RTL_NOSTRETCH', 'MUI_HEADERIMAGE_UNBITMAP', 'MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH', - 'MUI_HEADERIMAGE_UNBITMAP_RTL', 'MUI_HEADERIMAGE_UNBITMAP_RTL_NOSTRETCH', 'MUI_HEADERIMAGE_RIGHT', 'MUI_BGCOLOR', - 'MUI_UI', 'MUI_UI_HEADERIMAGE', 'MUI_UI_HEADERIMAGE_RIGHT', 'MUI_UI_COMPONENTSPAGE_SMALLDESC', - 'MUI_UI_COMPONENTSPAGE_NODESC', 'MUI_WELCOMEFINISHPAGE_BITMAP', 'MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH', - 'MUI_WELCOMEFINISHPAGE_INI', 'MUI_UNWELCOMEFINISHPAGE_BITMAP', 'MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH', - 'MUI_UNWELCOMEFINISHPAGE_INI', 'MUI_LICENSEPAGE_BGCOLOR', 'MUI_COMPONENTSPAGE_CHECKBITMAP', - 'MUI_COMPONENTSPAGE_SMALLDESC', 'MUI_COMPONENTSPAGE_NODESC', 'MUI_INSTFILESPAGE_COLORS', - 'MUI_INSTFILESPAGE_PROGRESSBAR', 'MUI_FINISHPAGE_NOAUTOCLOSE', 'MUI_UNFINISHPAGE_NOAUTOCLOSE', - 'MUI_ABORTWARNING', 'MUI_ABORTWARNING_TEXT', 'MUI_UNABORTWARNING', 'MUI_UNABORTWARNING_TEXT', - 'MUI_PAGE_WELCOME', 'MUI_PAGE_LICENSE', 'MUI_PAGE_COMPONENTS', 'MUI_PAGE_DIRECTORY', - 'MUI_PAGE_STARTMENU', 'MUI_PAGE_INSTFILES', 'MUI_PAGE_FINISH', 'MUI_UNPAGE_WELCOME', - 'MUI_UNPAGE_CONFIRM', 'MUI_UNPAGE_LICENSE', 'MUI_UNPAGE_COMPONENTS', 'MUI_UNPAGE_DIRECTORY', - 'MUI_UNPAGE_INSTFILES', 'MUI_UNPAGE_FINISH', 'MUI_PAGE_HEADER_TEXT', 'MUI_PAGE_HEADER_SUBTEXT', - 'MUI_WELCOMEPAGE_TITLE', 'MUI_WELCOMEPAGE_TITLE_3LINES', 'MUI_WELCOMEPAGE_TEXT', - 'MUI_LICENSEPAGE_TEXT_TOP', 'MUI_LICENSEPAGE_TEXT_BOTTOM', 'MUI_LICENSEPAGE_BUTTON', - 'MUI_LICENSEPAGE_CHECKBOX', 'MUI_LICENSEPAGE_CHECKBOX_TEXT', 'MUI_LICENSEPAGE_RADIOBUTTONS', - 'MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT', 'MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE', - 'MUI_COMPONENTSPAGE_TEXT_TOP', 'MUI_COMPONENTSPAGE_TEXT_COMPLIST', 'MUI_COMPONENTSPAGE_TEXT_INSTTYPE', - 'MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE', 'MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO', - 'MUI_DIRECTORYPAGE_TEXT_TOP', 'MUI_DIRECTORYPAGE_TEXT_DESTINATION', 'MUI_DIRECTORYPAGE_VARIABLE', - 'MUI_DIRECTORYPAGE_VERIFYONLEAVE', 'MUI_STARTMENU_WRITE_BEGIN', 'MUI_STARTMENU_WRITE_END', - 'MUI_STARTMENUPAGE_TEXT_TOP', 'MUI_STARTMENUPAGE_TEXT_CHECKBOX', 'MUI_STARTMENUPAGE_DEFAULTFOLDER', - 'MUI_STARTMENUPAGE_NODISABLE', 'MUI_STARTMENUPAGE_REGISTRY_ROOT', 'MUI_STARTMENUPAGE_REGISTRY_KEY', - 'MUI_STARTMENUPAGE_REGISTRY_VALUENAME', 'MUI_INSTFILESPAGE_FINISHHEADER_TEXT', - 'MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT', 'MUI_INSTFILESPAGE_ABORTHEADER_TEXT', - 'MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT', 'MUI_FINISHPAGE_TITLE', 'MUI_FINISHPAGE_TITLE_3LINES', - 'MUI_FINISHPAGE_TEXT', 'MUI_FINISHPAGE_TEXT_LARGE', 'MUI_FINISHPAGE_BUTTON', - 'MUI_FINISHPAGE_TEXT_REBOOT', 'MUI_FINISHPAGE_TEXT_REBOOTNOW', 'MUI_FINISHPAGE_TEXT_REBOOTLATER', - 'MUI_FINISHPAGE_RUN', 'MUI_FINISHPAGE_RUN_TEXT', 'MUI_FINISHPAGE_RUN_PARAMETERS', - 'MUI_FINISHPAGE_RUN_NOTCHECKED', 'MUI_FINISHPAGE_RUN_FUNCTION', 'MUI_FINISHPAGE_SHOWREADME', - 'MUI_FINISHPAGE_SHOWREADME_TEXT', 'MUI_FINISHPAGE_SHOWREADME_NOTCHECKED', - 'MUI_FINISHPAGE_SHOWREADME_FUNCTION', 'MUI_FINISHPAGE_LINK', 'MUI_FINISHPAGE_LINK_LOCATION', - 'MUI_FINISHPAGE_LINK_COLOR', 'MUI_FINISHPAGE_NOREBOOTSUPPORT', 'MUI_UNCONFIRMPAGE_TEXT_TOP', - 'MUI_UNCONFIRMPAGE_TEXT_LOCATION', 'MUI_LANGUAGE', 'MUI_LANGDLL_DISPLAY', - 'MUI_LANGDLL_REGISTRY_ROOT', 'MUI_LANGDLL_REGISTRY_KEY', 'MUI_LANGDLL_REGISTRY_VALUENAME', - 'MUI_LANGDLL_WINDOWTITLE', 'MUI_LANGDLL_INFO', 'MUI_LANGDLL_ALWAYSSHOW', - 'MUI_RESERVEFILE_INSTALLOPTIONS', 'MUI_RESERVEFILE_LANGDLL', 'MUI_FUNCTION_DESCRIPTION_BEGIN', - 'MUI_DESCRIPTION_TEXT', 'MUI_FUNCTION_DESCRIPTION_END', 'MUI_INSTALLOPTIONS_EXTRACT', - 'MUI_INSTALLOPTIONS_EXTRACT_AS', 'MUI_HEADER_TEXT', 'MUI_INSTALLOPTIONS_DISPLAY', - 'MUI_INSTALLOPTIONS_INITDIALOG', 'MUI_INSTALLOPTIONS_SHOW', - 'MUI_INSTALLOPTIONS_DISPLAY_RETURN', 'MUI_INSTALLOPTIONS_SHOW_RETURN', - 'MUI_INSTALLOPTIONS_READ', 'MUI_INSTALLOPTIONS_WRITE', - 'MUI_CUSTOMFUNCTION_GUIINIT', 'MUI_CUSTOMFUNCTION_GUIINIT', - 'MUI_CUSTOMFUNCTION_UNGUIINIT', 'MUI_CUSTOMFUNCTION_ABORT', 'MUI_CUSTOMFUNCTION_UNABORT', - 'MUI_PAGE_CUSTOMFUNCTION_PRE', 'MUI_PAGE_CUSTOMFUNCTION_SHOW', 'MUI_PAGE_CUSTOMFUNCTION_LEAVE', - 'MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT' - ), - 9 => array( - 'LogicLib.nsh', '${LOGICLIB}', 'LOGICLIB_STRCMP', 'LOGICLIB_INT64CMP', 'LOGICLIB_SECTIONCMP', '${If}', '${Unless}', - '${ElseIf}', '${ElseUnless}', '${Else}', '${EndIf}', '${EndUnless}', '${AndIf}', '${AndUnless}', - '${OrIf}', '${OrUnless}', '${IfThen}', '${IfCmd}', '${Select}', '${Case2}', '${Case3}', - '${Case4}', '${Case5}', '${CaseElse}', '${Default}', '${EndSelect}', '${Switch}', - '${Case}', '${EndSwitch}', '${Do}', '${DoWhile}', '${UntilWhile}', '${Continue}', '${Break}', - '${Loop}', '${LoopWhile}', '${LoopUntil}', '${While}', '${ExitWhile}', '${EndWhile}', '${For}', - '${ForEach}', '${ExitFor}', '${Next}', '${Abort}', '${Errors}', '${RebootFlag}', '${Silent}', - '${FileExists}', '${Cmd}', '${SectionIsSelected}', '${SectionIsSectionGroup}', - '${SectionIsSectionGroupEnd}', '${SectionIsBold}', '${SectionIsReadOnly}', - '${SectionIsExpanded}', '${SectionIsPartiallySelected}' - ), - 10 => array( - 'StrFunc.nsh', '${STRFUNC}', '${StrCase}', '${StrClb}', '${StrIOToNSIS}', '${StrLoc}', '${StrNSISToIO}', '${StrRep}', - '${StrSort}', '${StrStr}', '${StrStrAdv}', '${StrTok}', '${StrTrimNewLines}' - ), - 11 => array( - 'UpgradeDLL.nsh', 'UPGRADEDLL_INCLUDED', 'UpgradeDLL' - ), - 12 => array( - 'Sections.nsh', 'SECTIONS_INCLUDED', '${SF_SELECTED}', '${SF_SECGRP}', '${SF_SUBSEC}', '${SF_SECGRPEND}', - '${SF_SUBSECEND}', '${SF_BOLD}', '${SF_RO}', '${SF_EXPAND}', '${SF_PSELECTED}', '${SF_TOGGLED}', - '${SF_NAMECHG}', '${SECTION_OFF}', 'SelectSection', 'UnselectSection', 'ReverseSection', - 'StartRadioButtons', 'RadioButton', 'EndRadioButtons', '${INSTTYPE_1}', '${INSTTYPE_1}', '${INSTTYPE_2}', - '${INSTTYPE_3}', '${INSTTYPE_4}', '${INSTTYPE_5}', '${INSTTYPE_6}', '${INSTTYPE_7}', '${INSTTYPE_8}', - '${INSTTYPE_9}', '${INSTTYPE_10}', '${INSTTYPE_11}', '${INSTTYPE_12}', '${INSTTYPE_13}', '${INSTTYPE_14}', - '${INSTTYPE_15}', '${INSTTYPE_16}', '${INSTTYPE_17}', '${INSTTYPE_18}', '${INSTTYPE_19}', '${INSTTYPE_20}', - '${INSTTYPE_21}', '${INSTTYPE_22}', '${INSTTYPE_23}', '${INSTTYPE_24}', '${INSTTYPE_25}', '${INSTTYPE_26}', - '${INSTTYPE_27}', '${INSTTYPE_28}', '${INSTTYPE_29}', '${INSTTYPE_30}', '${INSTTYPE_31}', '${INSTTYPE_32}', - 'SetSectionInInstType', 'ClearSectionInInstType', 'SetSectionFlag', 'ClearSectionFlag', 'SectionFlagIsSet' - ), - 13 => array( - 'Colors.nsh', 'WHITE', 'BLACK', 'YELLOW', 'RED', 'GREEN', 'BLUE', 'MAGENTA', 'CYAN', 'rgb2hex' - ), - 14 => array( - 'FileFunc.nsh', '${Locate}', '${GetSize}', '${DriveSpace}', '${GetDrives}', '${GetTime}', '${GetFileAttributes}', '${GetFileVersion}', '${GetExeName}', '${GetExePath}', '${GetParameters}', '${GetOptions}', '${GetRoot}', '${GetParent}', '${GetFileName}', '${GetBaseName}', '${GetFileExt}', '${BannerTrimPath}', '${DirState}', '${RefreshShellIcons}' - ), - 15 => array( - 'TextFunc.nsh', '${LineFind}', '${LineRead}', '${FileReadFromEnd}', '${LineSum}', '${FileJoin}', '${TextCompare}', '${ConfigRead}', '${ConfigWrite}', '${FileRecode}', '${TrimNewLines}' - ), - 16 => array( - 'WordFunc.nsh', '${WordFind}', '${WordFind2X}', '${WordFind3X}', '${WordReplace}', '${WordAdd}', '${WordInsert}', '${StrFilter}', '${VersionCompare}', '${VersionConvert}' - ) - ), - 'SYMBOLS' => array( - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 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 - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #000066; font-weight:bold;', - 2 => 'color: #000066;', - 3 => 'color: #003366;', - 4 => 'color: #000099;', - 5 => 'color: #ff6600;', - 6 => 'color: #ff6600;', - 7 => 'color: #006600;', - 8 => 'color: #006600;', - 9 => 'color: #006600;', - 10 => 'color: #006600;', - 11 => 'color: #006600;', - 12 => 'color: #006600;', - 13 => 'color: #006600;', - 14 => 'color: #006600;', - 15 => 'color: #006600;', - 16 => 'color: #006600;' - ), - 'COMMENTS' => array( - 1 => 'color: #666666; font-style: italic;', - 2 => 'color: #666666; font-style: italic;', - 'MULTI' => 'color: #666666; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #660066; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => '' - ), - 'STRINGS' => array( - 0 => 'color: #660066;' - ), - 'NUMBERS' => array( - 0 => '' - ), - 'METHODS' => array( - 0 => '' - ), - 'SYMBOLS' => array( - 0 => '' - ), - 'REGEXPS' => array( - 0 => 'color: #660000;', - 1 => 'color: #660000;', - 2 => 'color: #660000;', - 3 => 'color: #660000;', - 4 => 'color: #660000;', - 5 => 'color: #660000;', - 6 => 'color: #660000;', - 7 => 'color: #000099;', - 8 => 'color: #003399;' - ), - 'SCRIPT' => array( - 0 => '' - ) - ), - 'URLS' => array( - 0 => '', - 1 => '', - 2 => '', - 3 => '', - 4 => '', - 5 => '', - 6 => '', - 7 => '', - 8 => '', - 9 => '', - 10 => '', - 11 => '', - 12 => '', - 13 => '', - 14 => '', - 15 => '', - 16 => '' - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - 0 => '\$\$', - 1 => '\$\\r', - 2 => '\$\\n', - 3 => '\$\\t', - 4 => '\$[a-zA-Z0-9_]+', - 5 => '\$\{.{1,256}\}', - 6 => '\$\\\(.{1,256}\\\)', - 7 => array( - GESHI_SEARCH => '([^:/\\\*\?\"\<\>\|\s]*?)(::)([^:/\\\*\?\"\<\>\|\s]*?)', - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '', - GESHI_AFTER => '\\2\\3' - ), - 8 => array( - GESHI_SEARCH => '([^:/\\\*\?\"\<\>\|\s]*?)(::)([^:/\\\*\?\"\<\>\|]*?\s)', - GESHI_REPLACE => '\\3', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '\\1\\2', - GESHI_AFTER => '' - ) - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) +$language_data = array( + 'LANG_NAME' => 'NSIS', + 'COMMENT_SINGLE' => array(1 => ';', 2 => '#'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'",'"','`'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + '!appendfile', '!addIncludeDir', '!addplugindir', '!cd', '!define', '!delfile', '!echo', '!else', + '!endif', '!error', '!execute', '!ifdef', '!ifmacrodef', '!ifmacrondef', '!ifndef', '!include', + '!insertmacro', '!macro', '!macroend', '!packhdr', '!tempfile', '!system', '!undef', '!verbose', + '!warning' + ), + 2 => array( + 'AddBrandingImage', 'AllowRootDirInstall', 'AutoCloseWindow', 'BGFont', + 'BGGradient', 'BrandingText', 'Caption', 'ChangeUI', 'CheckBitmap', 'CompletedText', 'ComponentText', + 'CRCCheck', 'DetailsButtonText', 'DirShow', 'DirText', 'DirVar', 'DirVerify', 'FileErrorText', + 'Function', 'FunctionEnd', 'Icon', 'InstallButtonText', 'InstallColors', 'InstallDir', + 'InstallDirRegKey', 'InstProgressFlags', 'InstType', 'LangString', 'LangStringUP', 'LicenseBkColor', + 'LicenseData', 'LicenseForceSelection', 'LicenseLangString', 'LicenseText', 'LoadLanguageFile', + 'MiscButtonText', 'Name', 'OutFile', 'Page', 'PageEx', 'PageExEnd', 'Section', + 'SectionEnd', 'SectionGroup', 'SectionGroupEnd', 'SetCompressor', 'SetFont', 'ShowInstDetails', + 'ShowUninstDetails', 'SilentInstall', 'SilentUnInstall', 'SpaceTexts', 'SubCaption', 'SubSection', + 'SubSectionEnd', 'UninstallButtonText', 'UninstallCaption', 'UninstallIcon', 'UninstallSubCaption', + 'UninstallText', 'UninstPage', 'Var', 'VIAddVersionKey', 'VIProductVersion', 'WindowIcon', 'XPStyle' + ), + 3 => array( + 'AddSize', 'AllowSkipFiles', 'AutoCloseWindow', 'FileBufSize', 'GetInstDirError', 'PageCallbacks', + 'SectionIn', 'SetCompress', 'SetCompressionLevel', 'SetCompressorDictSize', + 'SetDatablockOptimize', 'SetDateSave', 'SetOverwrite', 'SetPluginUnload' + ), + 4 => array( + 'Abort', 'BringToFront', 'Call', 'CallInstDLL', 'ClearErrors', 'CopyFiles','CreateDirectory', + 'CreateFont', 'CreateShortCut', 'Delete', 'DeleteINISec', 'DeleteINIStr', 'DeleteRegKey', + 'DeleteRegValue', 'DetailPrint', 'EnableWindow', 'EnumRegKey', 'EnumRegValue', 'Exch', 'Exec', + 'ExecShell', 'ExecWait', 'ExpandEnvStrings', 'File', 'FileClose', 'FileOpen', 'FileRead', + 'FileReadByte', 'FileSeek', 'FileWrite', 'FileWriteByte', 'FindClose', 'FindFirst', 'FindNext', + 'FindWindow', 'FlushINI', 'GetCurInstType', 'GetCurrentAddress', 'GetDlgItem', 'GetDLLVersion', + 'GetDLLVersionLocal', 'GetErrorLevel', 'GetFileTime', 'GetFileTimeLocal', 'GetFullPathName', + 'GetFunctionAddress', 'GetLabelAddress', 'GetTempFileName', 'GetWindowText', 'Goto', 'HideWindow', + 'IfAbort', 'IfErrors', 'IfFileExists', 'IfRebootFlag', 'IfSilent', 'InitPluginsDir', 'InstTypeGetText', + 'InstTypeSetText', 'IntCmp', 'IntCmpU', 'IntFmt', 'IntOp', 'IsWindow', 'LockWindow', 'LogSet', 'LogText', + 'MessageBox', 'Nop', 'Pop', 'Push', 'Quit', 'ReadEnvStr', 'ReadIniStr', 'ReadRegDWORD', 'ReadRegStr', + 'Reboot', 'RegDLL', 'Rename', 'ReserveFile', 'Return', 'RMDir', 'SearchPath', 'SectionGetFlags', + 'SectionGetInstTypes', 'SectionGetSize', 'SectionGetText', 'SectionSetFlags', 'SectionSetInstTypes', + 'SectionSetSize', 'SectionSetText', 'SendMessage', 'SetAutoClose', 'SetBrandingImage', 'SetCtlColors', + 'SetCurInstType', 'SetDetailsPrint', 'SetDetailsView', 'SetErrorLevel', 'SetErrors', 'SetFileAttributes', + 'SetOutPath', 'SetRebootFlag', 'SetShellVarContext', 'SetSilent', 'ShowWindow', 'Sleep', 'StrCmp', + 'StrCpy', 'StrLen', 'UnRegDLL', 'WriteINIStr', 'WriteRegBin', 'WriteRegDWORD', 'WriteRegExpandStr', + 'WriteRegStr', 'WriteUninstaller' + ), + 5 => array( + 'all', 'alwaysoff', 'ARCHIVE', 'auto', 'both', 'bzip2', 'checkbox', 'components', 'current', + 'custom', 'directory', 'false', 'FILE_ATTRIBUTE_ARCHIVE', 'FILE_ATTRIBUTE_HIDDEN', 'FILE_ATTRIBUTE_NORMAL', + 'FILE_ATTRIBUTE_OFFLINE', 'FILE_ATTRIBUTE_READONLY', 'FILE_ATTRIBUTE_SYSTEM,TEMPORARY', + 'FILE_ATTRIBUTE_TEMPORARY', 'force', 'HIDDEN', 'hide', 'HKCC', 'HKCR', 'HKCU', 'HKDD', 'HKEY_CLASSES_ROOT', + 'HKEY_CURRENT_CONFIG', 'HKEY_CURRENT_USER', 'HKEY_DYN_DATA', 'HKEY_LOCAL_MACHINE', 'HKEY_PERFORMANCE_DATA', + 'HKEY_USERS', 'HKLM', 'HKPD', 'HKU', 'IDABORT', 'IDCANCEL', 'IDIGNORE', 'IDNO', 'IDOK', 'IDRETRY', 'IDYES', + 'ifdiff', 'ifnewer', 'instfiles', 'lastused', 'leave', 'license', 'listonly', 'lzma', 'manual', + 'MB_ABORTRETRYIGNORE', 'MB_DEFBUTTON1', 'MB_DEFBUTTON2', 'MB_DEFBUTTON3', 'MB_DEFBUTTON4', + 'MB_ICONEXCLAMATION', 'MB_ICONINFORMATION', 'MB_ICONQUESTION', 'MB_ICONSTOP', 'MB_OK', 'MB_OKCANCEL', + 'MB_RETRYCANCEL', 'MB_RIGHT', 'MB_SETFOREGROUND', 'MB_TOPMOST', 'MB_YESNO', 'MB_YESNOCANCEL', 'nevershow', + 'none', 'normal', 'off', 'OFFLINE', 'on', 'radiobuttons', 'READONLY', 'RO', 'SHCTX', 'SHELL_CONTEXT', 'show', + 'silent', 'silentlog', 'SW_HIDE', 'SW_SHOWMAXIMIZED', 'SW_SHOWMINIMIZED', 'SW_SHOWNORMAL', 'SYSTEM', + 'textonly', 'true', 'try', 'uninstConfirm', 'zlib' + ), + 6 => array( + '/a', '/components', '/COMPONENTSONLYONCUSTOM', '/CUSTOMSTRING', '/e', '/FILESONLY', '/FINAL', '/gray', '/GLOBAL', + '/ifempty', '/IMGID', '/ITALIC', '/lang', '/NOCUSTOM', '/nonfatal', '/NOUNLOAD', '/oname', '/r', '/REBOOTOK', + '/RESIZETOFIT', '/SOLID', '/SD', '/SHORT', '/silent', '/SOLID', '/STRIKE', '/TIMEOUT', '/TRIMCENTER', '/TRIMLEFT', + '/TRIMRIGHT', '/UNDERLINE', '/windows', '/x' + ), + 7 => array( + '.onGUIEnd', '.onGUIInit', '.onInit', '.onInstFailed', '.onInstSuccess', '.onMouseOverSection', + '.onRebootFailed', '.onSelChange', '.onUserAbort', '.onVerifyInstDir', 'un.onGUIEnd', 'un.onGUIInit', + 'un.onInit', 'un.onRebootFailed', 'un.onUninstFailed', 'un.onUninstSuccess', 'un.onUserAbort' + ), + 8 => array( + 'MUI.nsh', '"${NSISDIR}\Contrib\Modern UI\System.nsh"', 'MUI_SYSVERSION', 'MUI_ICON', 'MUI_UNICON', + 'MUI_HEADERIMAGE', 'MUI_HEADERIMAGE_BITMAP', 'MUI_HEADERIMAGE_BITMAP_NOSTRETCH', 'MUI_HEADERIMAGE_BITMAP_RTL', + 'MUI_HEADERIMAGE_BITMAP_RTL_NOSTRETCH', 'MUI_HEADERIMAGE_UNBITMAP', 'MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH', + 'MUI_HEADERIMAGE_UNBITMAP_RTL', 'MUI_HEADERIMAGE_UNBITMAP_RTL_NOSTRETCH', 'MUI_HEADERIMAGE_RIGHT', 'MUI_BGCOLOR', + 'MUI_UI', 'MUI_UI_HEADERIMAGE', 'MUI_UI_HEADERIMAGE_RIGHT', 'MUI_UI_COMPONENTSPAGE_SMALLDESC', + 'MUI_UI_COMPONENTSPAGE_NODESC', 'MUI_WELCOMEFINISHPAGE_BITMAP', 'MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH', + 'MUI_WELCOMEFINISHPAGE_INI', 'MUI_UNWELCOMEFINISHPAGE_BITMAP', 'MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH', + 'MUI_UNWELCOMEFINISHPAGE_INI', 'MUI_LICENSEPAGE_BGCOLOR', 'MUI_COMPONENTSPAGE_CHECKBITMAP', + 'MUI_COMPONENTSPAGE_SMALLDESC', 'MUI_COMPONENTSPAGE_NODESC', 'MUI_INSTFILESPAGE_COLORS', + 'MUI_INSTFILESPAGE_PROGRESSBAR', 'MUI_FINISHPAGE_NOAUTOCLOSE', 'MUI_UNFINISHPAGE_NOAUTOCLOSE', + 'MUI_ABORTWARNING', 'MUI_ABORTWARNING_TEXT', 'MUI_UNABORTWARNING', 'MUI_UNABORTWARNING_TEXT', + 'MUI_PAGE_WELCOME', 'MUI_PAGE_LICENSE', 'MUI_PAGE_COMPONENTS', 'MUI_PAGE_DIRECTORY', + 'MUI_PAGE_STARTMENU', 'MUI_PAGE_INSTFILES', 'MUI_PAGE_FINISH', 'MUI_UNPAGE_WELCOME', + 'MUI_UNPAGE_CONFIRM', 'MUI_UNPAGE_LICENSE', 'MUI_UNPAGE_COMPONENTS', 'MUI_UNPAGE_DIRECTORY', + 'MUI_UNPAGE_INSTFILES', 'MUI_UNPAGE_FINISH', 'MUI_PAGE_HEADER_TEXT', 'MUI_PAGE_HEADER_SUBTEXT', + 'MUI_WELCOMEPAGE_TITLE', 'MUI_WELCOMEPAGE_TITLE_3LINES', 'MUI_WELCOMEPAGE_TEXT', + 'MUI_LICENSEPAGE_TEXT_TOP', 'MUI_LICENSEPAGE_TEXT_BOTTOM', 'MUI_LICENSEPAGE_BUTTON', + 'MUI_LICENSEPAGE_CHECKBOX', 'MUI_LICENSEPAGE_CHECKBOX_TEXT', 'MUI_LICENSEPAGE_RADIOBUTTONS', + 'MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT', 'MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE', + 'MUI_COMPONENTSPAGE_TEXT_TOP', 'MUI_COMPONENTSPAGE_TEXT_COMPLIST', 'MUI_COMPONENTSPAGE_TEXT_INSTTYPE', + 'MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE', 'MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO', + 'MUI_DIRECTORYPAGE_TEXT_TOP', 'MUI_DIRECTORYPAGE_TEXT_DESTINATION', 'MUI_DIRECTORYPAGE_VARIABLE', + 'MUI_DIRECTORYPAGE_VERIFYONLEAVE', 'MUI_STARTMENU_WRITE_BEGIN', 'MUI_STARTMENU_WRITE_END', + 'MUI_STARTMENUPAGE_TEXT_TOP', 'MUI_STARTMENUPAGE_TEXT_CHECKBOX', 'MUI_STARTMENUPAGE_DEFAULTFOLDER', + 'MUI_STARTMENUPAGE_NODISABLE', 'MUI_STARTMENUPAGE_REGISTRY_ROOT', 'MUI_STARTMENUPAGE_REGISTRY_KEY', + 'MUI_STARTMENUPAGE_REGISTRY_VALUENAME', 'MUI_INSTFILESPAGE_FINISHHEADER_TEXT', + 'MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT', 'MUI_INSTFILESPAGE_ABORTHEADER_TEXT', + 'MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT', 'MUI_FINISHPAGE_TITLE', 'MUI_FINISHPAGE_TITLE_3LINES', + 'MUI_FINISHPAGE_TEXT', 'MUI_FINISHPAGE_TEXT_LARGE', 'MUI_FINISHPAGE_BUTTON', + 'MUI_FINISHPAGE_TEXT_REBOOT', 'MUI_FINISHPAGE_TEXT_REBOOTNOW', 'MUI_FINISHPAGE_TEXT_REBOOTLATER', + 'MUI_FINISHPAGE_RUN', 'MUI_FINISHPAGE_RUN_TEXT', 'MUI_FINISHPAGE_RUN_PARAMETERS', + 'MUI_FINISHPAGE_RUN_NOTCHECKED', 'MUI_FINISHPAGE_RUN_FUNCTION', 'MUI_FINISHPAGE_SHOWREADME', + 'MUI_FINISHPAGE_SHOWREADME_TEXT', 'MUI_FINISHPAGE_SHOWREADME_NOTCHECKED', + 'MUI_FINISHPAGE_SHOWREADME_FUNCTION', 'MUI_FINISHPAGE_LINK', 'MUI_FINISHPAGE_LINK_LOCATION', + 'MUI_FINISHPAGE_LINK_COLOR', 'MUI_FINISHPAGE_NOREBOOTSUPPORT', 'MUI_UNCONFIRMPAGE_TEXT_TOP', + 'MUI_UNCONFIRMPAGE_TEXT_LOCATION', 'MUI_LANGUAGE', 'MUI_LANGDLL_DISPLAY', + 'MUI_LANGDLL_REGISTRY_ROOT', 'MUI_LANGDLL_REGISTRY_KEY', 'MUI_LANGDLL_REGISTRY_VALUENAME', + 'MUI_LANGDLL_WINDOWTITLE', 'MUI_LANGDLL_INFO', 'MUI_LANGDLL_ALWAYSSHOW', + 'MUI_RESERVEFILE_INSTALLOPTIONS', 'MUI_RESERVEFILE_LANGDLL', 'MUI_FUNCTION_DESCRIPTION_BEGIN', + 'MUI_DESCRIPTION_TEXT', 'MUI_FUNCTION_DESCRIPTION_END', 'MUI_INSTALLOPTIONS_EXTRACT', + 'MUI_INSTALLOPTIONS_EXTRACT_AS', 'MUI_HEADER_TEXT', 'MUI_INSTALLOPTIONS_DISPLAY', + 'MUI_INSTALLOPTIONS_INITDIALOG', 'MUI_INSTALLOPTIONS_SHOW', + 'MUI_INSTALLOPTIONS_DISPLAY_RETURN', 'MUI_INSTALLOPTIONS_SHOW_RETURN', + 'MUI_INSTALLOPTIONS_READ', 'MUI_INSTALLOPTIONS_WRITE', + 'MUI_CUSTOMFUNCTION_GUIINIT', 'MUI_CUSTOMFUNCTION_GUIINIT', + 'MUI_CUSTOMFUNCTION_UNGUIINIT', 'MUI_CUSTOMFUNCTION_ABORT', 'MUI_CUSTOMFUNCTION_UNABORT', + 'MUI_PAGE_CUSTOMFUNCTION_PRE', 'MUI_PAGE_CUSTOMFUNCTION_SHOW', 'MUI_PAGE_CUSTOMFUNCTION_LEAVE', + 'MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT' + ), + 9 => array( + 'LogicLib.nsh', '${LOGICLIB}', 'LOGICLIB_STRCMP', 'LOGICLIB_INT64CMP', 'LOGICLIB_SECTIONCMP', '${If}', '${Unless}', + '${ElseIf}', '${ElseUnless}', '${Else}', '${EndIf}', '${EndUnless}', '${AndIf}', '${AndUnless}', + '${OrIf}', '${OrUnless}', '${IfThen}', '${IfCmd}', '${Select}', '${Case2}', '${Case3}', + '${Case4}', '${Case5}', '${CaseElse}', '${Default}', '${EndSelect}', '${Switch}', + '${Case}', '${EndSwitch}', '${Do}', '${DoWhile}', '${UntilWhile}', '${Continue}', '${Break}', + '${Loop}', '${LoopWhile}', '${LoopUntil}', '${While}', '${ExitWhile}', '${EndWhile}', '${For}', + '${ForEach}', '${ExitFor}', '${Next}', '${Abort}', '${Errors}', '${RebootFlag}', '${Silent}', + '${FileExists}', '${Cmd}', '${SectionIsSelected}', '${SectionIsSectionGroup}', + '${SectionIsSectionGroupEnd}', '${SectionIsBold}', '${SectionIsReadOnly}', + '${SectionIsExpanded}', '${SectionIsPartiallySelected}' + ), + 10 => array( + 'StrFunc.nsh', '${STRFUNC}', '${StrCase}', '${StrClb}', '${StrIOToNSIS}', '${StrLoc}', '${StrNSISToIO}', '${StrRep}', + '${StrSort}', '${StrStr}', '${StrStrAdv}', '${StrTok}', '${StrTrimNewLines}' + ), + 11 => array( + 'UpgradeDLL.nsh', 'UPGRADEDLL_INCLUDED', 'UpgradeDLL' + ), + 12 => array( + 'Sections.nsh', 'SECTIONS_INCLUDED', '${SF_SELECTED}', '${SF_SECGRP}', '${SF_SUBSEC}', '${SF_SECGRPEND}', + '${SF_SUBSECEND}', '${SF_BOLD}', '${SF_RO}', '${SF_EXPAND}', '${SF_PSELECTED}', '${SF_TOGGLED}', + '${SF_NAMECHG}', '${SECTION_OFF}', 'SelectSection', 'UnselectSection', 'ReverseSection', + 'StartRadioButtons', 'RadioButton', 'EndRadioButtons', '${INSTTYPE_1}', '${INSTTYPE_1}', '${INSTTYPE_2}', + '${INSTTYPE_3}', '${INSTTYPE_4}', '${INSTTYPE_5}', '${INSTTYPE_6}', '${INSTTYPE_7}', '${INSTTYPE_8}', + '${INSTTYPE_9}', '${INSTTYPE_10}', '${INSTTYPE_11}', '${INSTTYPE_12}', '${INSTTYPE_13}', '${INSTTYPE_14}', + '${INSTTYPE_15}', '${INSTTYPE_16}', '${INSTTYPE_17}', '${INSTTYPE_18}', '${INSTTYPE_19}', '${INSTTYPE_20}', + '${INSTTYPE_21}', '${INSTTYPE_22}', '${INSTTYPE_23}', '${INSTTYPE_24}', '${INSTTYPE_25}', '${INSTTYPE_26}', + '${INSTTYPE_27}', '${INSTTYPE_28}', '${INSTTYPE_29}', '${INSTTYPE_30}', '${INSTTYPE_31}', '${INSTTYPE_32}', + 'SetSectionInInstType', 'ClearSectionInInstType', 'SetSectionFlag', 'ClearSectionFlag', 'SectionFlagIsSet' + ), + 13 => array( + 'Colors.nsh', 'WHITE', 'BLACK', 'YELLOW', 'RED', 'GREEN', 'BLUE', 'MAGENTA', 'CYAN', 'rgb2hex' + ), + 14 => array( + 'FileFunc.nsh', '${Locate}', '${GetSize}', '${DriveSpace}', '${GetDrives}', '${GetTime}', '${GetFileAttributes}', '${GetFileVersion}', '${GetExeName}', '${GetExePath}', '${GetParameters}', '${GetOptions}', '${GetRoot}', '${GetParent}', '${GetFileName}', '${GetBaseName}', '${GetFileExt}', '${BannerTrimPath}', '${DirState}', '${RefreshShellIcons}' + ), + 15 => array( + 'TextFunc.nsh', '${LineFind}', '${LineRead}', '${FileReadFromEnd}', '${LineSum}', '${FileJoin}', '${TextCompare}', '${ConfigRead}', '${ConfigWrite}', '${FileRecode}', '${TrimNewLines}' + ), + 16 => array( + 'WordFunc.nsh', '${WordFind}', '${WordFind2X}', '${WordFind3X}', '${WordReplace}', '${WordAdd}', '${WordInsert}', '${StrFilter}', '${VersionCompare}', '${VersionConvert}' + ) + ), + 'SYMBOLS' => array( + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 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 + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000066; font-weight:bold;', + 2 => 'color: #000066;', + 3 => 'color: #003366;', + 4 => 'color: #000099;', + 5 => 'color: #ff6600;', + 6 => 'color: #ff6600;', + 7 => 'color: #006600;', + 8 => 'color: #006600;', + 9 => 'color: #006600;', + 10 => 'color: #006600;', + 11 => 'color: #006600;', + 12 => 'color: #006600;', + 13 => 'color: #006600;', + 14 => 'color: #006600;', + 15 => 'color: #006600;', + 16 => 'color: #006600;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #660066; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => '' + ), + 'STRINGS' => array( + 0 => 'color: #660066;' + ), + 'NUMBERS' => array( + 0 => '' + ), + 'METHODS' => array( + 0 => '' + ), + 'SYMBOLS' => array( + 0 => '' + ), + 'REGEXPS' => array( + 0 => 'color: #660000;', + 1 => 'color: #660000;', + 2 => 'color: #660000;', + 3 => 'color: #660000;', + 4 => 'color: #660000;', + 5 => 'color: #660000;', + 6 => 'color: #660000;', + 7 => 'color: #000099;', + 8 => 'color: #003399;' + ), + 'SCRIPT' => array( + 0 => '' + ) + ), + 'URLS' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => '', + 10 => '', + 11 => '', + 12 => '', + 13 => '', + 14 => '', + 15 => '', + 16 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 0 => '\$\$', + 1 => '\$\\r', + 2 => '\$\\n', + 3 => '\$\\t', + 4 => '\$[a-zA-Z0-9_]+', + 5 => '\$\{.{1,256}\}', + 6 => '\$\\\(.{1,256}\\\)', + 7 => array( + GESHI_SEARCH => '([^:/\\\*\?\"\<\>\|\s]*?)(::)([^:/\\\*\?\"\<\>\|\s]*?)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '\\2\\3' + ), + 8 => array( + GESHI_SEARCH => '([^:/\\\*\?\"\<\>\|\s]*?)(::)([^:/\\\*\?\"\<\>\|]*?\s)', + GESHI_REPLACE => '\\3', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1\\2', + GESHI_AFTER => '' + ) + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/objc.php b/plugins/geshi/objc.php old mode 100644 new mode 100755 index 9adf732..55a39b2 --- a/plugins/geshi/objc.php +++ b/plugins/geshi/objc.php @@ -37,203 +37,201 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Objective C', - 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - 'if', 'return', 'while', 'case', 'continue', 'default', - 'do', 'else', 'for', 'switch', 'goto' - ), - 2 => array( - 'NULL', 'false', 'break', 'true', 'enum', 'nil', 'Nil', 'errno', 'EDOM', - 'ERANGE', 'FLT_RADIX', 'FLT_ROUNDS', 'FLT_DIG', 'DBL_DIG', 'LDBL_DIG', - 'FLT_EPSILON', 'DBL_EPSILON', 'LDBL_EPSILON', 'FLT_MANT_DIG', 'DBL_MANT_DIG', - 'LDBL_MANT_DIG', 'FLT_MAX', 'DBL_MAX', 'LDBL_MAX', 'FLT_MAX_EXP', 'DBL_MAX_EXP', - 'LDBL_MAX_EXP', 'FLT_MIN', 'DBL_MIN', 'LDBL_MIN', 'FLT_MIN_EXP', 'DBL_MIN_EXP', - 'LDBL_MIN_EXP', 'CHAR_BIT', 'CHAR_MAX', 'CHAR_MIN', 'SCHAR_MAX', 'SCHAR_MIN', - 'UCHAR_MAX', 'SHRT_MAX', 'SHRT_MIN', 'USHRT_MAX', 'INT_MAX', 'INT_MIN', - 'UINT_MAX', 'LONG_MAX', 'LONG_MIN', 'ULONG_MAX', 'HUGE_VAL', 'SIGABRT', - 'SIGFPE', 'SIGILL', 'SIGINT', 'SIGSEGV', 'SIGTERM', 'SIG_DFL', 'SIG_ERR', - 'SIG_IGN', 'BUFSIZ', 'EOF', 'FILENAME_MAX', 'FOPEN_MAX', 'L_tmpnam', 'NULL', - 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'stdin', 'stdout', 'stderr', - 'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC' - ), - 3 => array( - 'printf', 'fprintf', 'snprintf', 'sprintf', 'assert', - 'isalnum', 'isalpha', 'isdigit', 'iscntrl', 'isgraph', 'islower', 'isprint', - 'ispunct', 'isspace', 'ispunct', 'isupper', 'isxdigit', 'tolower', 'toupper', - 'exp', 'log', 'log10', 'pow', 'sqrt', 'ceil', 'floor', 'fabs', 'ldexp', - 'frexp', 'modf', 'fmod', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'atan2', - 'sinh', 'cosh', 'tanh', 'setjmp', 'longjmp', 'asin', 'acos', 'atan', 'atan2', - 'va_start', 'va_arg', 'va_end', 'offsetof', 'sizeof', 'fopen', 'freopen', - 'fflush', 'fclose', 'remove', 'rename', 'tmpfile', 'tmpname', 'setvbuf', - 'setbuf', 'vfprintf', 'vprintf', 'vsprintf', 'fscanf', 'scanf', 'sscanf', - 'fgetc', 'fgets', 'fputc', 'fputs', 'getc', 'getchar', 'gets', 'putc', - 'putchar', 'puts', 'ungetc', 'fread', 'fwrite', 'fseek', 'ftell', 'rewind', - 'fgetpos', 'fsetpos', 'clearerr', 'feof', 'ferror', 'perror', 'abs', 'labs', - 'div', 'ldiv', 'atof', 'atoi', 'atol', 'strtod', 'strtol', 'strtoul', 'calloc', - 'malloc', 'realloc', 'free', 'abort', 'exit', 'atexit', 'system', 'getenv', - 'bsearch', 'qsort', 'rand', 'srand', 'strcpy', 'strncpy', 'strcat', 'strncat', - 'strcmp', 'strncmp', 'strcoll', 'strchr', 'strrchr', 'strspn', 'strcspn', - 'strpbrk', 'strstr', 'strlen', 'strerror', 'strtok', 'strxfrm', 'memcpy', - 'memmove', 'memcmp', 'memchr', 'memset', 'clock', 'time', 'difftime', 'mktime', - 'asctime', 'ctime', 'gmtime', 'localtime', 'strftime' - ), - 4 => array( // Data types: - 'auto', 'char', 'const', 'double', 'float', 'int', 'long', - 'register', 'short', 'signed', 'sizeof', 'static', 'string', 'struct', - 'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf', - 'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t', - 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', - // OpenStep/GNUstep/Cocoa: - 'SEL', 'id', 'NSRect', 'NSRange', 'NSPoint', 'NSZone', 'Class', 'IMP', 'BOOL', - // OpenStep/GNUstep/Cocoa @identifiers - '@selector', '@class', '@protocol', '@interface', '@implementation', '@end', - '@private', '@protected', '@public', '@try', '@throw', '@catch', '@finally', - '@encode', '@defs', '@synchronized' - ), +$language_data = array( + 'LANG_NAME' => 'Objective C', + 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'if', 'return', 'while', 'case', 'continue', 'default', + 'do', 'else', 'for', 'switch', 'goto' + ), + 2 => array( + 'NULL', 'false', 'break', 'true', 'enum', 'nil', 'Nil', 'errno', 'EDOM', + 'ERANGE', 'FLT_RADIX', 'FLT_ROUNDS', 'FLT_DIG', 'DBL_DIG', 'LDBL_DIG', + 'FLT_EPSILON', 'DBL_EPSILON', 'LDBL_EPSILON', 'FLT_MANT_DIG', 'DBL_MANT_DIG', + 'LDBL_MANT_DIG', 'FLT_MAX', 'DBL_MAX', 'LDBL_MAX', 'FLT_MAX_EXP', 'DBL_MAX_EXP', + 'LDBL_MAX_EXP', 'FLT_MIN', 'DBL_MIN', 'LDBL_MIN', 'FLT_MIN_EXP', 'DBL_MIN_EXP', + 'LDBL_MIN_EXP', 'CHAR_BIT', 'CHAR_MAX', 'CHAR_MIN', 'SCHAR_MAX', 'SCHAR_MIN', + 'UCHAR_MAX', 'SHRT_MAX', 'SHRT_MIN', 'USHRT_MAX', 'INT_MAX', 'INT_MIN', + 'UINT_MAX', 'LONG_MAX', 'LONG_MIN', 'ULONG_MAX', 'HUGE_VAL', 'SIGABRT', + 'SIGFPE', 'SIGILL', 'SIGINT', 'SIGSEGV', 'SIGTERM', 'SIG_DFL', 'SIG_ERR', + 'SIG_IGN', 'BUFSIZ', 'EOF', 'FILENAME_MAX', 'FOPEN_MAX', 'L_tmpnam', 'NULL', + 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'stdin', 'stdout', 'stderr', + 'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC' + ), + 3 => array( + 'printf', 'fprintf', 'snprintf', 'sprintf', 'assert', + 'isalnum', 'isalpha', 'isdigit', 'iscntrl', 'isgraph', 'islower', 'isprint', + 'ispunct', 'isspace', 'ispunct', 'isupper', 'isxdigit', 'tolower', 'toupper', + 'exp', 'log', 'log10', 'pow', 'sqrt', 'ceil', 'floor', 'fabs', 'ldexp', + 'frexp', 'modf', 'fmod', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'atan2', + 'sinh', 'cosh', 'tanh', 'setjmp', 'longjmp', 'asin', 'acos', 'atan', 'atan2', + 'va_start', 'va_arg', 'va_end', 'offsetof', 'sizeof', 'fopen', 'freopen', + 'fflush', 'fclose', 'remove', 'rename', 'tmpfile', 'tmpname', 'setvbuf', + 'setbuf', 'vfprintf', 'vprintf', 'vsprintf', 'fscanf', 'scanf', 'sscanf', + 'fgetc', 'fgets', 'fputc', 'fputs', 'getc', 'getchar', 'gets', 'putc', + 'putchar', 'puts', 'ungetc', 'fread', 'fwrite', 'fseek', 'ftell', 'rewind', + 'fgetpos', 'fsetpos', 'clearerr', 'feof', 'ferror', 'perror', 'abs', 'labs', + 'div', 'ldiv', 'atof', 'atoi', 'atol', 'strtod', 'strtol', 'strtoul', 'calloc', + 'malloc', 'realloc', 'free', 'abort', 'exit', 'atexit', 'system', 'getenv', + 'bsearch', 'qsort', 'rand', 'srand', 'strcpy', 'strncpy', 'strcat', 'strncat', + 'strcmp', 'strncmp', 'strcoll', 'strchr', 'strrchr', 'strspn', 'strcspn', + 'strpbrk', 'strstr', 'strlen', 'strerror', 'strtok', 'strxfrm', 'memcpy', + 'memmove', 'memcmp', 'memchr', 'memset', 'clock', 'time', 'difftime', 'mktime', + 'asctime', 'ctime', 'gmtime', 'localtime', 'strftime' + ), + 4 => array( // Data types: + 'auto', 'char', 'const', 'double', 'float', 'int', 'long', + 'register', 'short', 'signed', 'sizeof', 'static', 'string', 'struct', + 'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf', + 'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t', + 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', + // OpenStep/GNUstep/Cocoa: + 'SEL', 'id', 'NSRect', 'NSRange', 'NSPoint', 'NSZone', 'Class', 'IMP', 'BOOL', + // OpenStep/GNUstep/Cocoa @identifiers + '@selector', '@class', '@protocol', '@interface', '@implementation', '@end', + '@private', '@protected', '@public', '@try', '@throw', '@catch', '@finally', + '@encode', '@defs', '@synchronized' + ), 5 => array( // OpenStep/GNUstep/Cocoa Foundation - 'NSAppleEventDescriptor', 'NSNetService', 'NSAppleEventManager', - 'NSNetServiceBrowser', 'NSAppleScript', 'NSNotification', 'NSArchiver', - 'NSNotificationCenter', 'NSArray', 'NSNotificationQueue', 'NSAssertionHandler', - 'NSNull', 'NSAttributedString', 'NSNumber', 'NSAutoreleasePool', - 'NSNumberFormatter', 'NSBundle', 'NSObject', 'NSCachedURLResponse', - 'NSOutputStream', 'NSCalendarDate', 'NSPipe', 'NSCharacterSet', 'NSPort', - 'NSClassDescription', 'NSPortCoder', 'NSCloneCommand', 'NSPortMessage', - 'NSCloseCommand', 'NSPortNameServer', 'NSCoder', 'NSPositionalSpecifier', - 'NSConditionLock', 'NSProcessInfo', 'NSConnection', 'NSPropertyListSerialization', - 'NSCountCommand', 'NSPropertySpecifier', 'NSCountedSet', 'NSProtocolChecker', - 'NSCreateCommand', 'NSProxy', 'NSData', 'NSQuitCommand', 'NSDate', - 'NSRandomSpecifier', 'NSDateFormatter', 'NSRangeSpecifier', 'NSDecimalNumber', - 'NSRecursiveLock', 'NSDecimalNumberHandler', 'NSRelativeSpecifier', - 'NSDeleteCommand', 'NSRunLoop', 'NSDeserializer', 'NSScanner', 'NSDictionary', - 'NSScriptClassDescription', 'NSDirectoryEnumerator', 'NSScriptCoercionHandler', - 'NSDistantObject', 'NSScriptCommand', 'NSDistantObjectRequest', - 'NSScriptCommandDescription', 'NSDistributedLock', 'NSScriptExecutionContext', - 'NSDistributedNotificationCenter', 'NSScriptObjectSpecifier', 'NSEnumerator', - 'NSScriptSuiteRegistry', 'NSError', 'NSScriptWhoseTest', 'NSException', - 'NSSerializer', 'NSExistsCommand', 'NSSet', 'NSFileHandle', 'NSSetCommand', - 'NSFileManager', 'NSSocketPort', 'NSFormatter', 'NSSocketPortNameServer', - 'NSGetCommand', 'NSSortDescriptor', 'NSHost', 'NSSpecifierTest', 'NSHTTPCookie', - 'NSSpellServer', 'NSHTTPCookieStorage', 'NSStream', 'NSHTTPURLResponse', - 'NSString', 'NSIndexSet', 'NSTask', 'NSIndexSpecifier', 'NSThread', - 'NSInputStream', 'NSTimer', 'NSInvocation', 'NSTimeZone', 'NSKeyedArchiver', - 'NSUnarchiver', 'NSKeyedUnarchiver', 'NSUndoManager', 'NSLock', - 'NSUniqueIDSpecifier', 'NSLogicalTest', 'NSURL', 'NSMachBootstrapServer', - 'NSURLAuthenticationChallenge', 'NSMachPort', 'NSURLCache', 'NSMessagePort', - 'NSURLConnection', 'NSMessagePortNameServer', 'NSURLCredential', - 'NSMethodSignature', 'NSURLCredentialStorage', 'NSMiddleSpecifier', - 'NSURLDownload', 'NSMoveCommand', 'NSURLHandle', 'NSMutableArray', - 'NSURLProtectionSpace', 'NSMutableAttributedString', 'NSURLProtocol', - 'NSMutableCharacterSet', 'NSURLRequest', 'NSMutableData', 'NSURLResponse', - 'NSMutableDictionary', 'NSUserDefaults', 'NSMutableIndexSet', 'NSValue', - 'NSMutableSet', 'NSValueTransformer', 'NSMutableString', 'NSWhoseSpecifier', - 'NSMutableURLRequest', 'NSXMLParser', 'NSNameSpecifier' - ), - 6 => array( // OpenStep/GNUstep/Cocoa AppKit - 'NSActionCell', 'NSOpenGLPixelFormat', 'NSAffineTransform', 'NSOpenGLView', - 'NSAlert', 'NSOpenPanel', 'NSAppleScript Additions', 'NSOutlineView', - 'NSApplication', 'NSPageLayout', 'NSArrayController', 'NSPanel', - 'NSATSTypesetter', 'NSParagraphStyle', 'NSPasteboard', 'NSBezierPath', - 'NSPDFImageRep', 'NSBitmapImageRep', 'NSPICTImageRep', 'NSBox', 'NSPopUpButton', - 'NSBrowser', 'NSPopUpButtonCell', 'NSBrowserCell', 'NSPrinter', 'NSPrintInfo', - 'NSButton', 'NSPrintOperation', 'NSButtonCell', 'NSPrintPanel', 'NSCachedImageRep', - 'NSProgressIndicator', 'NSCell', 'NSQuickDrawView', 'NSClipView', 'NSResponder', - 'NSRulerMarker', 'NSColor', 'NSRulerView', 'NSColorList', 'NSSavePanel', - 'NSColorPanel', 'NSScreen', 'NSColorPicker', 'NSScroller', 'NSColorWell', - 'NSScrollView', 'NSComboBox', 'NSSearchField', 'NSComboBoxCell', - 'NSSearchFieldCell', 'NSControl', 'NSSecureTextField', 'NSController', - 'NSSecureTextFieldCell', 'NSCursor', 'NSSegmentedCell', 'NSCustomImageRep', - 'NSSegmentedControl', 'NSDocument', 'NSShadow', 'NSDocumentController', - 'NSSimpleHorizontalTypesetter', 'NSDrawer', 'NSSlider', 'NSEPSImageRep', - 'NSSliderCell', 'NSEvent', 'NSSound', 'NSFileWrapper', 'NSSpeechRecognizer', - 'NSFont', 'NSSpeechSynthesizer', 'NSFontDescriptor', 'NSSpellChecker', - 'NSFontManager', 'NSSplitView', 'NSFontPanel', 'NSStatusBar', 'NSForm', - 'NSStatusItem', 'NSFormCell', 'NSStepper', 'NSGlyphGenerator', 'NSStepperCell', - 'NSGlyphInfo', 'NSGraphicsContext', 'NSTableColumn', 'NSHelpManager', - 'NSTableHeaderCell', 'NSImage', 'NSTableHeaderView', 'NSImageCell', 'NSTableView', - 'NSImageRep', 'NSTabView', 'NSImageView', 'NSTabViewItem', 'NSInputManager', - 'NSText', 'NSInputServer', 'NSTextAttachment', 'NSLayoutManager', - 'NSTextAttachmentCell', 'NSMatrix', 'NSTextContainer', 'NSMenu', 'NSTextField', - 'NSMenuItem', 'NSTextFieldCell', 'NSMenuItemCell', 'NSTextStorage', 'NSMenuView', - 'NSTextTab', 'NSMovie', 'NSTextView', 'NSMovieView', 'NSToolbar', 'NSToolbarItem', - 'NSMutableParagraphStyle', 'NSTypesetter', 'NSNib', 'NSNibConnector', - 'NSUserDefaultsController', 'NSNibControlConnector', 'NSView', - 'NSNibOutletConnector', 'NSWindow', 'NSObjectController', 'NSWindowController', - 'NSOpenGLContext', 'NSWorkspace', 'NSOpenGLPixelBuffer' - ) - ), - '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: #0000ff;', - 2 => 'color: #0000ff;', - 3 => 'color: #0000dd;', - 4 => 'color: #0000ff;', - 5 => 'color: #0000ff;', - 6 => 'color: #0000ff;' - ), - 'COMMENTS' => array( - 1 => 'color: #ff0000;', - 2 => 'color: #339900;', - 'MULTI' => 'color: #ff0000; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #666666; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: #002200;' - ), - 'STRINGS' => array( - 0 => 'color: #666666;' - ), - 'NUMBERS' => array( - 0 => 'color: #0000dd;' - ), - 'METHODS' => array( - ), - 'SYMBOLS' => array( - 0 => 'color: #002200;' - ), - 'REGEXPS' => array( - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - 1 => '', - 2 => '', - 3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAME}.html', - 4 => '', - 5 => 'http://developer.apple.com/documentation/Cocoa/Reference/Foundation/ObjC_classic/Classes/{FNAME}.html', - 6 => 'http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/ObjC_classic/Classes/{FNAME}.html' - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + 'NSAppleEventDescriptor', 'NSNetService', 'NSAppleEventManager', + 'NSNetServiceBrowser', 'NSAppleScript', 'NSNotification', 'NSArchiver', + 'NSNotificationCenter', 'NSArray', 'NSNotificationQueue', 'NSAssertionHandler', + 'NSNull', 'NSAttributedString', 'NSNumber', 'NSAutoreleasePool', + 'NSNumberFormatter', 'NSBundle', 'NSObject', 'NSCachedURLResponse', + 'NSOutputStream', 'NSCalendarDate', 'NSPipe', 'NSCharacterSet', 'NSPort', + 'NSClassDescription', 'NSPortCoder', 'NSCloneCommand', 'NSPortMessage', + 'NSCloseCommand', 'NSPortNameServer', 'NSCoder', 'NSPositionalSpecifier', + 'NSConditionLock', 'NSProcessInfo', 'NSConnection', 'NSPropertyListSerialization', + 'NSCountCommand', 'NSPropertySpecifier', 'NSCountedSet', 'NSProtocolChecker', + 'NSCreateCommand', 'NSProxy', 'NSData', 'NSQuitCommand', 'NSDate', + 'NSRandomSpecifier', 'NSDateFormatter', 'NSRangeSpecifier', 'NSDecimalNumber', + 'NSRecursiveLock', 'NSDecimalNumberHandler', 'NSRelativeSpecifier', + 'NSDeleteCommand', 'NSRunLoop', 'NSDeserializer', 'NSScanner', 'NSDictionary', + 'NSScriptClassDescription', 'NSDirectoryEnumerator', 'NSScriptCoercionHandler', + 'NSDistantObject', 'NSScriptCommand', 'NSDistantObjectRequest', + 'NSScriptCommandDescription', 'NSDistributedLock', 'NSScriptExecutionContext', + 'NSDistributedNotificationCenter', 'NSScriptObjectSpecifier', 'NSEnumerator', + 'NSScriptSuiteRegistry', 'NSError', 'NSScriptWhoseTest', 'NSException', + 'NSSerializer', 'NSExistsCommand', 'NSSet', 'NSFileHandle', 'NSSetCommand', + 'NSFileManager', 'NSSocketPort', 'NSFormatter', 'NSSocketPortNameServer', + 'NSGetCommand', 'NSSortDescriptor', 'NSHost', 'NSSpecifierTest', 'NSHTTPCookie', + 'NSSpellServer', 'NSHTTPCookieStorage', 'NSStream', 'NSHTTPURLResponse', + 'NSString', 'NSIndexSet', 'NSTask', 'NSIndexSpecifier', 'NSThread', + 'NSInputStream', 'NSTimer', 'NSInvocation', 'NSTimeZone', 'NSKeyedArchiver', + 'NSUnarchiver', 'NSKeyedUnarchiver', 'NSUndoManager', 'NSLock', + 'NSUniqueIDSpecifier', 'NSLogicalTest', 'NSURL', 'NSMachBootstrapServer', + 'NSURLAuthenticationChallenge', 'NSMachPort', 'NSURLCache', 'NSMessagePort', + 'NSURLConnection', 'NSMessagePortNameServer', 'NSURLCredential', + 'NSMethodSignature', 'NSURLCredentialStorage', 'NSMiddleSpecifier', + 'NSURLDownload', 'NSMoveCommand', 'NSURLHandle', 'NSMutableArray', + 'NSURLProtectionSpace', 'NSMutableAttributedString', 'NSURLProtocol', + 'NSMutableCharacterSet', 'NSURLRequest', 'NSMutableData', 'NSURLResponse', + 'NSMutableDictionary', 'NSUserDefaults', 'NSMutableIndexSet', 'NSValue', + 'NSMutableSet', 'NSValueTransformer', 'NSMutableString', 'NSWhoseSpecifier', + 'NSMutableURLRequest', 'NSXMLParser', 'NSNameSpecifier' + ), + 6 => array( // OpenStep/GNUstep/Cocoa AppKit + 'NSActionCell', 'NSOpenGLPixelFormat', 'NSAffineTransform', 'NSOpenGLView', + 'NSAlert', 'NSOpenPanel', 'NSAppleScript Additions', 'NSOutlineView', + 'NSApplication', 'NSPageLayout', 'NSArrayController', 'NSPanel', + 'NSATSTypesetter', 'NSParagraphStyle', 'NSPasteboard', 'NSBezierPath', + 'NSPDFImageRep', 'NSBitmapImageRep', 'NSPICTImageRep', 'NSBox', 'NSPopUpButton', + 'NSBrowser', 'NSPopUpButtonCell', 'NSBrowserCell', 'NSPrinter', 'NSPrintInfo', + 'NSButton', 'NSPrintOperation', 'NSButtonCell', 'NSPrintPanel', 'NSCachedImageRep', + 'NSProgressIndicator', 'NSCell', 'NSQuickDrawView', 'NSClipView', 'NSResponder', + 'NSRulerMarker', 'NSColor', 'NSRulerView', 'NSColorList', 'NSSavePanel', + 'NSColorPanel', 'NSScreen', 'NSColorPicker', 'NSScroller', 'NSColorWell', + 'NSScrollView', 'NSComboBox', 'NSSearchField', 'NSComboBoxCell', + 'NSSearchFieldCell', 'NSControl', 'NSSecureTextField', 'NSController', + 'NSSecureTextFieldCell', 'NSCursor', 'NSSegmentedCell', 'NSCustomImageRep', + 'NSSegmentedControl', 'NSDocument', 'NSShadow', 'NSDocumentController', + 'NSSimpleHorizontalTypesetter', 'NSDrawer', 'NSSlider', 'NSEPSImageRep', + 'NSSliderCell', 'NSEvent', 'NSSound', 'NSFileWrapper', 'NSSpeechRecognizer', + 'NSFont', 'NSSpeechSynthesizer', 'NSFontDescriptor', 'NSSpellChecker', + 'NSFontManager', 'NSSplitView', 'NSFontPanel', 'NSStatusBar', 'NSForm', + 'NSStatusItem', 'NSFormCell', 'NSStepper', 'NSGlyphGenerator', 'NSStepperCell', + 'NSGlyphInfo', 'NSGraphicsContext', 'NSTableColumn', 'NSHelpManager', + 'NSTableHeaderCell', 'NSImage', 'NSTableHeaderView', 'NSImageCell', 'NSTableView', + 'NSImageRep', 'NSTabView', 'NSImageView', 'NSTabViewItem', 'NSInputManager', + 'NSText', 'NSInputServer', 'NSTextAttachment', 'NSLayoutManager', + 'NSTextAttachmentCell', 'NSMatrix', 'NSTextContainer', 'NSMenu', 'NSTextField', + 'NSMenuItem', 'NSTextFieldCell', 'NSMenuItemCell', 'NSTextStorage', 'NSMenuView', + 'NSTextTab', 'NSMovie', 'NSTextView', 'NSMovieView', 'NSToolbar', 'NSToolbarItem', + 'NSMutableParagraphStyle', 'NSTypesetter', 'NSNib', 'NSNibConnector', + 'NSUserDefaultsController', 'NSNibControlConnector', 'NSView', + 'NSNibOutletConnector', 'NSWindow', 'NSObjectController', 'NSWindowController', + 'NSOpenGLContext', 'NSWorkspace', 'NSOpenGLPixelBuffer' + ) + ), + '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: #0000ff;', + 2 => 'color: #0000ff;', + 3 => 'color: #0000dd;', + 4 => 'color: #0000ff;', + 5 => 'color: #0000ff;', + 6 => 'color: #0000ff;' + ), + 'COMMENTS' => array( + 1 => 'color: #ff0000;', + 2 => 'color: #339900;', + 'MULTI' => 'color: #ff0000; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #666666; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #002200;' + ), + 'STRINGS' => array( + 0 => 'color: #666666;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #002200;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAME}.html', + 4 => '', + 5 => 'http://developer.apple.com/documentation/Cocoa/Reference/Foundation/ObjC_classic/Classes/{FNAME}.html', + 6 => 'http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/ObjC_classic/Classes/{FNAME}.html' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/ocaml-brief.php b/plugins/geshi/ocaml-brief.php old mode 100644 new mode 100755 index 13d90c9..22c92d4 --- a/plugins/geshi/ocaml-brief.php +++ b/plugins/geshi/ocaml-brief.php @@ -37,76 +37,74 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'OCaml', - 'COMMENT_SINGLE' => array(), - 'COMMENT_MULTI' => array('(*' => '*)'), - 'CASE_KEYWORDS' => 0, - 'QUOTEMARKS' => array('"'), - 'ESCAPE_CHAR' => "", - 'KEYWORDS' => array( - /* main OCaml keywords */ - 1 => array( - 'and', 'As', 'asr', 'begin', 'Class', 'Closed', 'constraint', 'do', 'done', 'downto', 'else', - 'end', 'exception', 'external', 'failwith', 'false', 'flush', 'for', 'fun', 'function', 'functor', - 'if', 'in', 'include', 'inherit', 'incr', 'land', 'let', 'load', 'los', 'lsl', 'lsr', 'lxor', - 'match', 'method', 'mod', 'module', 'mutable', 'new', 'not', 'of', 'open', 'option', 'or', 'parser', - 'private', 'ref', 'rec', 'raise', 'regexp', 'sig', 'struct', 'stdout', 'stdin', 'stderr', 'then', - 'to', 'true', 'try', 'type', 'val', 'virtual', 'when', 'while', 'with' - ) - ), - /* highlighting symbols is really important in OCaml */ - 'SYMBOLS' => array( - ';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+', - '>', '<', '(', ')', '[', ']', '&', '|', '#', "'" - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false, - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #06c; font-weight: bold;' /* nice blue */ - ), - 'COMMENTS' => array( - 'MULTI' => 'color: #5d478b; font-style: italic;' /* light purple */ - ), - 'ESCAPE_CHAR' => array( - ), - 'BRACKETS' => array( - 0 => 'color: #6c6;' - ), - 'STRINGS' => array( - 0 => 'color: #3cb371;' /* nice green */ - ), - 'NUMBERS' => array( - 0 => 'color: #c6c;' /* pink */ - ), - 'METHODS' => array( - 1 => 'color: #060;' /* dark green */ - ), - 'REGEXPS' => array( - ), - 'SYMBOLS' => array( - 0 => 'color: #a52a2a;' /* maroon */ - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - 1 => '', - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.' - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) +$language_data = array( + 'LANG_NAME' => 'OCaml', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array('(*' => '*)'), + 'CASE_KEYWORDS' => 0, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => "", + 'KEYWORDS' => array( + /* main OCaml keywords */ + 1 => array( + 'and', 'As', 'asr', 'begin', 'Class', 'Closed', 'constraint', 'do', 'done', 'downto', 'else', + 'end', 'exception', 'external', 'failwith', 'false', 'flush', 'for', 'fun', 'function', 'functor', + 'if', 'in', 'include', 'inherit', 'incr', 'land', 'let', 'load', 'los', 'lsl', 'lsr', 'lxor', + 'match', 'method', 'mod', 'module', 'mutable', 'new', 'not', 'of', 'open', 'option', 'or', 'parser', + 'private', 'ref', 'rec', 'raise', 'regexp', 'sig', 'struct', 'stdout', 'stdin', 'stderr', 'then', + 'to', 'true', 'try', 'type', 'val', 'virtual', 'when', 'while', 'with' + ) + ), + /* highlighting symbols is really important in OCaml */ + 'SYMBOLS' => array( + ';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+', + '>', '<', '(', ')', '[', ']', '&', '|', '#', "'" + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #06c; font-weight: bold;' /* nice blue */ + ), + 'COMMENTS' => array( + 'MULTI' => 'color: #5d478b; font-style: italic;' /* light purple */ + ), + 'ESCAPE_CHAR' => array( + ), + 'BRACKETS' => array( + 0 => 'color: #6c6;' + ), + 'STRINGS' => array( + 0 => 'color: #3cb371;' /* nice green */ + ), + 'NUMBERS' => array( + 0 => 'color: #c6c;' /* pink */ + ), + 'METHODS' => array( + 1 => 'color: #060;' /* dark green */ + ), + 'REGEXPS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #a52a2a;' /* maroon */ + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/ocaml.php b/plugins/geshi/ocaml.php old mode 100644 new mode 100755 index 70a9928..31b3060 --- a/plugins/geshi/ocaml.php +++ b/plugins/geshi/ocaml.php @@ -37,125 +37,123 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'OCaml', - 'COMMENT_SINGLE' => array(), - 'COMMENT_MULTI' => array('(*' => '*)'), - 'CASE_KEYWORDS' => 0, - 'QUOTEMARKS' => array('"'), - 'ESCAPE_CHAR' => "", - 'KEYWORDS' => array( - /* main OCaml keywords */ - 1 => array( - 'and', 'As', 'asr', 'begin', 'Class', 'Closed', 'constraint', 'do', 'done', 'downto', 'else', - 'end', 'exception', 'external', 'failwith', 'false', 'flush', 'for', 'fun', 'function', 'functor', - 'if', 'in', 'include', 'inherit', 'incr', 'land', 'let', 'load', 'los', 'lsl', 'lsr', 'lxor', - 'match', 'method', 'mod', 'module', 'mutable', 'new', 'not', 'of', 'open', 'option', 'or', 'parser', - 'private', 'ref', 'rec', 'raise', 'regexp', 'sig', 'struct', 'stdout', 'stdin', 'stderr', 'then', - 'to', 'true', 'try', 'type', 'val', 'virtual', 'when', 'while', 'with' - ), - /* define names of main librarys, so we can link to it */ - 2 => array( - 'Arg', 'Arith_status', 'Array', 'ArrayLabels', 'Big_int', 'Bigarray', 'Buffer', 'Callback', - 'CamlinternalOO', 'Char', 'Complex', 'Condition', 'Dbm', 'Digest', 'Dynlink', 'Event', - 'Filename', 'Format', 'Gc', 'Genlex', 'Graphics', 'GraphicsX11', 'Hashtbl', 'Int32', 'Int64', - 'Lazy', 'Lexing', 'List', 'ListLabels', 'Map', 'Marshal', 'MoreLabels', 'Mutex', 'Nativeint', - 'Num', 'Obj', 'Oo', 'Parsing', 'Pervasives', 'Printexc', 'Printf', 'Queue', 'Random', 'Scanf', - 'Set', 'Sort', 'Stack', 'StdLabels', 'Str', 'Stream', 'String', 'StringLabels', 'Sys', 'Thread', - 'ThreadUnix', 'Tk' - ), - /* just link to the Pervasives functions library, cause it's the default opened library when starting OCaml */ - 3 => array( - 'raise', 'invalid_arg', 'failwith', 'compare', 'min', 'max', 'succ', 'pred', 'mod', 'abs', - 'max_int', 'min_int', 'sqrt', 'exp', 'log', 'log10', 'cos', 'sin', 'tan', 'acos', 'asin', - 'atan', 'atan2', 'cosh', 'sinh', 'tanh', 'ceil', 'floor', 'abs_float', 'mod_float', 'frexp', - 'ldexp', 'modf', 'float', 'float_of_int', 'truncate', 'int_of_float', 'infinity', 'nan', - 'max_float', 'min_float', 'epsilon_float', 'classify_float', 'int_of_char', 'char_of_int', - 'ignore', 'string_of_bool', 'bool_of_string', 'string_of_int', 'int_of_string', - 'string_of_float', 'float_of_string', 'fst', 'snd', 'stdin', 'stdout', 'stderr', 'print_char', - 'print_string', 'print_int', 'print_float', 'print_endline', 'print_newline', 'prerr_char', - 'prerr_string', 'prerr_int', 'prerr_float', 'prerr_endline', 'prerr_newline', 'read_line', - 'read_int', 'read_float', 'open_out', 'open_out_bin', 'open_out_gen', 'flush', 'flush_all', - 'output_char', 'output_string', 'output', 'output_byte', 'output_binary_int', 'output_value', - 'seek_out', 'pos_out', 'out_channel_length', 'close_out', 'close_out_noerr', 'set_binary_mode_out', - 'open_in', 'open_in_bin', 'open_in_gen', 'input_char', 'input_line', 'input', 'really_input', - 'input_byte', 'input_binary_int', 'input_value', 'seek_in', 'pos_in', 'in_channel_length', - 'close_in', 'close_in_noerr', 'set_binary_mode_in', 'incr', 'decr', 'string_of_format', - 'format_of_string', 'exit', 'at_exit' - ), - /* here Pervasives Types */ - 4 => array ( - 'fpclass', 'in_channel', 'out_channel', 'open_flag', 'Sys_error', 'ref', 'format' - ), - /* finally Pervasives Exceptions */ - 5 => array ( - 'Exit', 'Invalid_Argument', 'Failure', 'Division_by_zero' - ) - ), - /* highlighting symbols is really important in OCaml */ - 'SYMBOLS' => array( - ';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+', - '>', '<', '(', ')', '[', ']', '&', '|', '#', "'" - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false, - 2 => true, /* functions name are case seinsitive */ - 3 => true, /* types name too */ - 4 => true /* finally exceptions too */ - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #06c; font-weight: bold;' /* nice blue */ - ), - 'COMMENTS' => array( - 'MULTI' => 'color: #5d478b; font-style: italic;' /* light purple */ - ), - 'ESCAPE_CHAR' => array( - ), - 'BRACKETS' => array( - 0 => 'color: #6c6;' - ), - 'STRINGS' => array( - 0 => 'color: #3cb371;' /* nice green */ - ), - 'NUMBERS' => array( - 0 => 'color: #c6c;' /* pink */ - ), - 'METHODS' => array( - 1 => 'color: #060;' /* dark green */ - ), - 'REGEXPS' => array( - ), - 'SYMBOLS' => array( - 0 => 'color: #a52a2a;' /* maroon */ - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - /* some of keywords are Pervasives functions (land, lxor, asr, ...) */ - 1 => '', - /* link to the wanted library */ - 2 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/{FNAME}.html', - /* link to Pervasives functions */ - 3 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#VAL{FNAME}', - /* link to Pervasives type */ - 4 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#TYPE{FNAME}', - /* link to Pervasives exceptions */ - 5 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#EXCEPTION{FNAME}' - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.' - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) +$language_data = array( + 'LANG_NAME' => 'OCaml', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array('(*' => '*)'), + 'CASE_KEYWORDS' => 0, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => "", + 'KEYWORDS' => array( + /* main OCaml keywords */ + 1 => array( + 'and', 'As', 'asr', 'begin', 'Class', 'Closed', 'constraint', 'do', 'done', 'downto', 'else', + 'end', 'exception', 'external', 'failwith', 'false', 'flush', 'for', 'fun', 'function', 'functor', + 'if', 'in', 'include', 'inherit', 'incr', 'land', 'let', 'load', 'los', 'lsl', 'lsr', 'lxor', + 'match', 'method', 'mod', 'module', 'mutable', 'new', 'not', 'of', 'open', 'option', 'or', 'parser', + 'private', 'ref', 'rec', 'raise', 'regexp', 'sig', 'struct', 'stdout', 'stdin', 'stderr', 'then', + 'to', 'true', 'try', 'type', 'val', 'virtual', 'when', 'while', 'with' + ), + /* define names of main librarys, so we can link to it */ + 2 => array( + 'Arg', 'Arith_status', 'Array', 'ArrayLabels', 'Big_int', 'Bigarray', 'Buffer', 'Callback', + 'CamlinternalOO', 'Char', 'Complex', 'Condition', 'Dbm', 'Digest', 'Dynlink', 'Event', + 'Filename', 'Format', 'Gc', 'Genlex', 'Graphics', 'GraphicsX11', 'Hashtbl', 'Int32', 'Int64', + 'Lazy', 'Lexing', 'List', 'ListLabels', 'Map', 'Marshal', 'MoreLabels', 'Mutex', 'Nativeint', + 'Num', 'Obj', 'Oo', 'Parsing', 'Pervasives', 'Printexc', 'Printf', 'Queue', 'Random', 'Scanf', + 'Set', 'Sort', 'Stack', 'StdLabels', 'Str', 'Stream', 'String', 'StringLabels', 'Sys', 'Thread', + 'ThreadUnix', 'Tk' + ), + /* just link to the Pervasives functions library, cause it's the default opened library when starting OCaml */ + 3 => array( + 'raise', 'invalid_arg', 'failwith', 'compare', 'min', 'max', 'succ', 'pred', 'mod', 'abs', + 'max_int', 'min_int', 'sqrt', 'exp', 'log', 'log10', 'cos', 'sin', 'tan', 'acos', 'asin', + 'atan', 'atan2', 'cosh', 'sinh', 'tanh', 'ceil', 'floor', 'abs_float', 'mod_float', 'frexp', + 'ldexp', 'modf', 'float', 'float_of_int', 'truncate', 'int_of_float', 'infinity', 'nan', + 'max_float', 'min_float', 'epsilon_float', 'classify_float', 'int_of_char', 'char_of_int', + 'ignore', 'string_of_bool', 'bool_of_string', 'string_of_int', 'int_of_string', + 'string_of_float', 'float_of_string', 'fst', 'snd', 'stdin', 'stdout', 'stderr', 'print_char', + 'print_string', 'print_int', 'print_float', 'print_endline', 'print_newline', 'prerr_char', + 'prerr_string', 'prerr_int', 'prerr_float', 'prerr_endline', 'prerr_newline', 'read_line', + 'read_int', 'read_float', 'open_out', 'open_out_bin', 'open_out_gen', 'flush', 'flush_all', + 'output_char', 'output_string', 'output', 'output_byte', 'output_binary_int', 'output_value', + 'seek_out', 'pos_out', 'out_channel_length', 'close_out', 'close_out_noerr', 'set_binary_mode_out', + 'open_in', 'open_in_bin', 'open_in_gen', 'input_char', 'input_line', 'input', 'really_input', + 'input_byte', 'input_binary_int', 'input_value', 'seek_in', 'pos_in', 'in_channel_length', + 'close_in', 'close_in_noerr', 'set_binary_mode_in', 'incr', 'decr', 'string_of_format', + 'format_of_string', 'exit', 'at_exit' + ), + /* here Pervasives Types */ + 4 => array( + 'fpclass', 'in_channel', 'out_channel', 'open_flag', 'Sys_error', 'ref', 'format' + ), + /* finally Pervasives Exceptions */ + 5 => array( + 'Exit', 'Invalid_Argument', 'Failure', 'Division_by_zero' + ) + ), + /* highlighting symbols is really important in OCaml */ + 'SYMBOLS' => array( + ';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+', + '>', '<', '(', ')', '[', ']', '&', '|', '#', "'" + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false, + 2 => true, /* functions name are case seinsitive */ + 3 => true, /* types name too */ + 4 => true /* finally exceptions too */ + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #06c; font-weight: bold;' /* nice blue */ + ), + 'COMMENTS' => array( + 'MULTI' => 'color: #5d478b; font-style: italic;' /* light purple */ + ), + 'ESCAPE_CHAR' => array( + ), + 'BRACKETS' => array( + 0 => 'color: #6c6;' + ), + 'STRINGS' => array( + 0 => 'color: #3cb371;' /* nice green */ + ), + 'NUMBERS' => array( + 0 => 'color: #c6c;' /* pink */ + ), + 'METHODS' => array( + 1 => 'color: #060;' /* dark green */ + ), + 'REGEXPS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #a52a2a;' /* maroon */ + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + /* some of keywords are Pervasives functions (land, lxor, asr, ...) */ + 1 => '', + /* link to the wanted library */ + 2 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/{FNAME}.html', + /* link to Pervasives functions */ + 3 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#VAL{FNAME}', + /* link to Pervasives type */ + 4 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#TYPE{FNAME}', + /* link to Pervasives exceptions */ + 5 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#EXCEPTION{FNAME}' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/oobas.php b/plugins/geshi/oobas.php old mode 100644 new mode 100755 index f3e5973..3d7cee8 --- a/plugins/geshi/oobas.php +++ b/plugins/geshi/oobas.php @@ -39,92 +39,90 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'OpenOffice.org Basic', - 'COMMENT_SINGLE' => array(1 => "'"), - 'COMMENT_MULTI' => array(), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array('"'), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - 1 => array( - 'dim','private','public','global','as','if','redim','true','set', - 'byval', - 'false','bool','double','integer','long','object','single','variant', - 'msgbox','print','inputbox','green','blue','red','qbcolor', - 'rgb','open','close','reset','freefile','get','input','line', - 'put','write','loc','seek','eof','lof','chdir','chdrive', - 'curdir','dir','fileattr','filecopy','filedatetime','fileexists', - 'filelen','getattr','kill','mkdir','name','rmdir','setattr', - 'dateserial','datevalue','day','month','weekday','year','cdatetoiso', - 'cdatefromiso','hour','minute','second','timeserial','timevalue', - 'date','now','time','timer','erl','err','error','on','error','goto','resume', - 'and','eqv','imp','not','or','xor','mod','','atn','cos','sin','tan','log', - 'exp','rnd','randomize','sqr','fix','int','abs','sgn','hex','oct', - 'it','then','else','select','case','iif','do','loop','for','next', - 'while','wend','gosub','return','goto','on','goto','call','choose','declare', - 'end','exit','freelibrary','function','rem','stop','sub','switch','with', - 'cbool','cdate','cdbl','cint','clng','const','csng','cstr','defbool', - 'defdate','defdbl','defint','deflng','asc','chr','str','val','cbyte', - 'space','string','format','lcase','left','lset','ltrim','mid','right', - 'rset','rtrim','trim','ucase','split','join','converttourl','convertfromurl', - 'instr','len','strcomp','beep','shell','wait','getsystemticks','environ', - 'getsolarversion','getguitype','twipsperpixelx','twipsperpixely', - 'createunostruct','createunoservice','getprocessservicemanager', - 'createunodialog','createunolistener','createunovalue','thiscomponent', - 'globalscope' - ) - ), - 'SYMBOLS' => array( - '(', ')', '=' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #b1b100;' - ), - 'COMMENTS' => array( - 1 => 'color: #808080;' - ), - 'BRACKETS' => array( - 0 => 'color: #66cc66;' - ), - 'STRINGS' => array( - 0 => 'color: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( - 1 => 'color: #006600;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099;' - ), - 'SCRIPT' => array( - ), - 'REGEXPS' => array( - ) - ), - 'URLS' => array( - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.' - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) +$language_data = array( + 'LANG_NAME' => 'OpenOffice.org Basic', + 'COMMENT_SINGLE' => array(1 => "'"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'dim','private','public','global','as','if','redim','true','set', + 'byval', + 'false','bool','double','integer','long','object','single','variant', + 'msgbox','print','inputbox','green','blue','red','qbcolor', + 'rgb','open','close','reset','freefile','get','input','line', + 'put','write','loc','seek','eof','lof','chdir','chdrive', + 'curdir','dir','fileattr','filecopy','filedatetime','fileexists', + 'filelen','getattr','kill','mkdir','name','rmdir','setattr', + 'dateserial','datevalue','day','month','weekday','year','cdatetoiso', + 'cdatefromiso','hour','minute','second','timeserial','timevalue', + 'date','now','time','timer','erl','err','error','on','error','goto','resume', + 'and','eqv','imp','not','or','xor','mod','','atn','cos','sin','tan','log', + 'exp','rnd','randomize','sqr','fix','int','abs','sgn','hex','oct', + 'it','then','else','select','case','iif','do','loop','for','next', + 'while','wend','gosub','return','goto','on','goto','call','choose','declare', + 'end','exit','freelibrary','function','rem','stop','sub','switch','with', + 'cbool','cdate','cdbl','cint','clng','const','csng','cstr','defbool', + 'defdate','defdbl','defint','deflng','asc','chr','str','val','cbyte', + 'space','string','format','lcase','left','lset','ltrim','mid','right', + 'rset','rtrim','trim','ucase','split','join','converttourl','convertfromurl', + 'instr','len','strcomp','beep','shell','wait','getsystemticks','environ', + 'getsolarversion','getguitype','twipsperpixelx','twipsperpixely', + 'createunostruct','createunoservice','getprocessservicemanager', + 'createunodialog','createunolistener','createunovalue','thiscomponent', + 'globalscope' + ) + ), + 'SYMBOLS' => array( + '(', ')', '=' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/oracle8.php b/plugins/geshi/oracle8.php old mode 100644 new mode 100755 index e2a6dd3..6481c83 --- a/plugins/geshi/oracle8.php +++ b/plugins/geshi/oracle8.php @@ -37,451 +37,449 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Oracle 8 SQL', - 'COMMENT_SINGLE' => array(1 => '--'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, - 'QUOTEMARKS' => array("'", '"', '`'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( +$language_data = array( + 'LANG_NAME' => 'Oracle 8 SQL', + 'COMMENT_SINGLE' => array(1 => '--'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'QUOTEMARKS' => array("'", '"', '`'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( //Put your package names here - e.g. select distinct ''''|| lower(name) || ''',' from user_source; - 6 => array( - ), + 6 => array( + ), //Put your table names here - e.g. select distinct ''''|| lower(table_name) || ''',' from user_tables; - 5 => array( - ), + 5 => array( + ), //Put your view names here - e.g. select distinct ''''|| lower(view_name) || ''',' from user_views; - 4 => array( - ), + 4 => array( + ), //Put your table field names here - e.g. select distinct ''''|| lower(column_name) || ''',' from user_tab_columns; - 3 => array( - ), + 3 => array( + ), //Put ORACLE reserved keywords here (8.1.7). I like mine uppercase. - 1 => array( - 'ABS', - 'ACCESS', - 'ACOS', - 'ADD', - 'ADD_MONTHS', - 'ALL', - 'ALTER', - 'ANALYZE', - 'AND', - 'ANY', - 'ARRAY', - 'AS', - 'ASC', - 'ASCII', - 'ASIN', - 'ASSOCIATE', - 'AT', - 'ATAN', - 'ATAN2', - 'AUDIT', - 'AUTHID', - 'AVG', - 'BEGIN', - 'BETWEEN', - 'BFILENAME', - 'BINARY_INTEGER', - 'BITAND', - 'BODY', - 'BOOLEAN', - 'BULK', - 'BY', - 'CALL', - 'CASCADE', - 'CASE', - 'CEIL', - 'CHAR', - 'CHAR_BASE', - 'CHARTOROWID', - 'CHECK', - 'CHR', - 'CLOSE', - 'CLUSTER', - 'COALESCE', - 'COLLECT', - 'COLUMN', - 'COMMENT', - 'COMMIT', - 'COMPRESS', - 'CONCAT', - 'CONNECT', - 'CONSTANT', - 'CONSTRAINT', - 'CONSTRAINTS', - 'CONTEXT', - 'CONTROLFILE', - 'CONVERT', - 'CORR', - 'COS', - 'COSH', - 'COST', - 'COUNT', - 'COVAR_POP', - 'COVAR_SAMP', - 'CREATE', - 'CUME_DIST', - 'CURRENT', - 'CURRVAL', - 'CURSOR', - 'DATABASE', - 'DATE', - 'DAY', - 'DECIMAL', - 'DECLARE', - 'DECODE', - 'DEFAULT', - 'DELETE', - 'DENSE_RANK', - 'DEREF', - 'DESC', - 'DIMENSION', - 'DIRECTORY', - 'DISASSOCIATE', - 'DISTINCT', - 'DO', - 'DROP', - 'DUMP', - 'ELSE', - 'ELSIF', - 'EMPTY_BLOB', - 'EMPTY_CLOB', - 'END', - 'EXCEPTION', - 'EXCLUSIVE', - 'EXEC', - 'EXECUTE', - 'EXISTS', - 'EXIT', - 'EXP', - 'EXPLAIN', - 'EXTENDS', - 'EXTRACT', - 'FALSE', - 'FETCH', - 'FILE', - 'FIRST_VALUE', - 'FLOAT', - 'FLOOR', - 'FOR', - 'FORALL', - 'FROM', - 'FUNCTION', - 'GOTO', - 'GRANT', - 'GREATEST', - 'GROUP', - 'GROUPING', - 'HAVING', - 'HEAP', - 'HEXTORAW', - 'HOUR', - 'IDENTIFIED', - 'IF', - 'IMMEDIATE', - 'IN', - 'INCREMENT', - 'INDEX', - 'INDEXTYPE', - 'INDICATOR', - 'INITCAP', - 'INITIAL', - 'INSERT', - 'INSTR', - 'INSTRB', - 'INTEGER', - 'INTERFACE', - 'INTERSECT', - 'INTERVAL', - 'INTO', - 'IS', - 'ISOLATION', - 'JAVA', - 'KEY', - 'LAG', - 'LAST_DAY', - 'LAST_VALUE', - 'LEAD', - 'LEAST', - 'LENGTH', - 'LENGTHB', - 'LEVEL', - 'LIBRARY', - 'LIKE', - 'LIMITED', - 'LINK', - 'LN', - 'LOCK', - 'LOG', - 'LONG', - 'LOOP', - 'LOWER', - 'LPAD', - 'LTRIM', - 'MAKE_REF', - 'MATERIALIZED', - 'MAX', - 'MAXEXTENTS', - 'MIN', - 'MINUS', - 'MINUTE', - 'MLSLABEL', - 'MOD', - 'MODE', - 'MODIFY', - 'MONTH', - 'MONTHS_BETWEEN', - 'NATURAL', - 'NATURALN', - 'NEW', - 'NEW_TIME', - 'NEXT_DAY', - 'NEXTVAL', - 'NLS_CHARSET_DECL_LEN', - 'NLS_CHARSET_ID', - 'NLS_CHARSET_NAME', - 'NLS_INITCAP', - 'NLS_LOWER', - 'NLS_UPPER', - 'NLSSORT', - 'NOAUDIT', - 'NOCOMPRESS', - 'NOCOPY', - 'NOT', - 'NOWAIT', - 'NTILE', - 'NULL', - 'NULLIF', - 'NUMBER', - 'NUMBER_BASE', - 'NUMTODSINTERVAL', - 'NUMTOYMINTERVAL', - 'NVL', - 'NVL2', - 'OCIROWID', - 'OF', - 'OFFLINE', - 'ON', - 'ONLINE', - 'OPAQUE', - 'OPEN', - 'OPERATOR', - 'OPTION', - 'OR', - 'ORDER', - 'ORGANIZATION', - 'OTHERS', - 'OUT', - 'OUTLINE', - 'PACKAGE', - 'PARTITION', - 'PCTFREE', - 'PERCENT_RANK', - 'PLAN', - 'PLS_INTEGER', - 'POSITIVE', - 'POSITIVEN', - 'POWER', - 'PRAGMA', - 'PRIMARY', - 'PRIOR', - 'PRIVATE', - 'PRIVILEGES', - 'PROCEDURE', - 'PROFILE', - 'PUBLIC', - 'RAISE', - 'RANGE', - 'RANK', - 'RATIO_TO_REPORT', - 'RAW', - 'RAWTOHEX', - 'REAL', - 'RECORD', - 'REF', - 'REFTOHEX', - 'REGR_AVGX', - 'REGR_AVGY', - 'REGR_COUNT', - 'REGR_INTERCEPT', - 'REGR_R2', - 'REGR_SLOPE', - 'REGR_SXX', - 'REGR_SXY', - 'REGR_SYY', - 'RELEASE', - 'RENAME', - 'REPLACE', - 'RESOURCE', - 'RETURN', - 'RETURNING', - 'REVERSE', - 'REVOKE', - 'ROLE', - 'ROLLBACK', - 'ROUND', - 'ROW', - 'ROW_NUMBER', - 'ROWID', - 'ROWIDTOCHAR', - 'ROWNUM', - 'ROWS', - 'ROWTYPE', - 'RPAD', - 'RTRIM', - 'SAVEPOINT', - 'SCHEMA', - 'SECOND', - 'SEGMENT', - 'SELECT', - 'SEPERATE', - 'SEQUENCE', - 'SESSION', - 'SET', - 'SHARE', - 'SIGN', - 'SIN', - 'SINH', - 'SIZE', - 'SMALLINT', - 'SOUNDEX', - 'SPACE', - 'SQL', - 'SQLCODE', - 'SQLERRM', - 'SQRT', - 'START', - 'STATISTICS', - 'STDDEV', - 'STDDEV_POP', - 'STDDEV_SAMP', - 'STOP', - 'SUBSTR', - 'SUBSTRB', - 'SUBTYPE', - 'SUCCESSFUL', - 'SUM', - 'SYNONYM', - 'SYS_CONTEXT', - 'SYS_GUID', - 'SYSDATE', - 'SYSTEM', - 'TABLE', - 'TABLESPACE', - 'TAN', - 'TANH', - 'TEMPORARY', - 'THEN', - 'TIME', - 'TIMESTAMP', - 'TIMEZONE_ABBR', - 'TIMEZONE_HOUR', - 'TIMEZONE_MINUTE', - 'TIMEZONE_REGION', - 'TIMING', - 'TO', - 'TO_CHAR', - 'TO_DATE', - 'TO_LOB', - 'TO_MULTI_BYTE', - 'TO_NUMBER', - 'TO_SINGLE_BYTE', - 'TRANSACTION', - 'TRANSLATE', - 'TRIGGER', - 'TRIM', - 'TRUE', - 'TRUNC', - 'TRUNCATE', - 'TYPE', - 'UI', - 'UID', - 'UNION', - 'UNIQUE', - 'UPDATE', - 'UPPER', - 'USE', - 'USER', - 'USERENV', - 'USING', - 'VALIDATE', - 'VALUE', - 'VALUES', - 'VAR_POP', - 'VAR_SAMP', - 'VARCHAR', - 'VARCHAR2', - 'VARIANCE', - 'VIEW', - 'VSIZE', - 'WHEN', - 'WHENEVER', - 'WHERE', - 'WHILE', - 'WITH', - 'WORK', - 'WRITE', - 'YEAR', - 'ZONE' - ) - ), - 'SYMBOLS' => array( - '(', ')', '=', '<', '>', '|' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #993333; font-weight: bold; text-transform: uppercase;' - ), - 'COMMENTS' => array( - 1 => 'color: #808080; font-style: italic;', - 2 => '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( - 1 => 'color: #ff0000;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'SCRIPT' => array( - ), - 'REGEXPS' => array( - ) - ), - 'URLS' => array( - ), + 1 => array( + 'ABS', + 'ACCESS', + 'ACOS', + 'ADD', + 'ADD_MONTHS', + 'ALL', + 'ALTER', + 'ANALYZE', + 'AND', + 'ANY', + 'ARRAY', + 'AS', + 'ASC', + 'ASCII', + 'ASIN', + 'ASSOCIATE', + 'AT', + 'ATAN', + 'ATAN2', + 'AUDIT', + 'AUTHID', + 'AVG', + 'BEGIN', + 'BETWEEN', + 'BFILENAME', + 'BINARY_INTEGER', + 'BITAND', + 'BODY', + 'BOOLEAN', + 'BULK', + 'BY', + 'CALL', + 'CASCADE', + 'CASE', + 'CEIL', + 'CHAR', + 'CHAR_BASE', + 'CHARTOROWID', + 'CHECK', + 'CHR', + 'CLOSE', + 'CLUSTER', + 'COALESCE', + 'COLLECT', + 'COLUMN', + 'COMMENT', + 'COMMIT', + 'COMPRESS', + 'CONCAT', + 'CONNECT', + 'CONSTANT', + 'CONSTRAINT', + 'CONSTRAINTS', + 'CONTEXT', + 'CONTROLFILE', + 'CONVERT', + 'CORR', + 'COS', + 'COSH', + 'COST', + 'COUNT', + 'COVAR_POP', + 'COVAR_SAMP', + 'CREATE', + 'CUME_DIST', + 'CURRENT', + 'CURRVAL', + 'CURSOR', + 'DATABASE', + 'DATE', + 'DAY', + 'DECIMAL', + 'DECLARE', + 'DECODE', + 'DEFAULT', + 'DELETE', + 'DENSE_RANK', + 'DEREF', + 'DESC', + 'DIMENSION', + 'DIRECTORY', + 'DISASSOCIATE', + 'DISTINCT', + 'DO', + 'DROP', + 'DUMP', + 'ELSE', + 'ELSIF', + 'EMPTY_BLOB', + 'EMPTY_CLOB', + 'END', + 'EXCEPTION', + 'EXCLUSIVE', + 'EXEC', + 'EXECUTE', + 'EXISTS', + 'EXIT', + 'EXP', + 'EXPLAIN', + 'EXTENDS', + 'EXTRACT', + 'FALSE', + 'FETCH', + 'FILE', + 'FIRST_VALUE', + 'FLOAT', + 'FLOOR', + 'FOR', + 'FORALL', + 'FROM', + 'FUNCTION', + 'GOTO', + 'GRANT', + 'GREATEST', + 'GROUP', + 'GROUPING', + 'HAVING', + 'HEAP', + 'HEXTORAW', + 'HOUR', + 'IDENTIFIED', + 'IF', + 'IMMEDIATE', + 'IN', + 'INCREMENT', + 'INDEX', + 'INDEXTYPE', + 'INDICATOR', + 'INITCAP', + 'INITIAL', + 'INSERT', + 'INSTR', + 'INSTRB', + 'INTEGER', + 'INTERFACE', + 'INTERSECT', + 'INTERVAL', + 'INTO', + 'IS', + 'ISOLATION', + 'JAVA', + 'KEY', + 'LAG', + 'LAST_DAY', + 'LAST_VALUE', + 'LEAD', + 'LEAST', + 'LENGTH', + 'LENGTHB', + 'LEVEL', + 'LIBRARY', + 'LIKE', + 'LIMITED', + 'LINK', + 'LN', + 'LOCK', + 'LOG', + 'LONG', + 'LOOP', + 'LOWER', + 'LPAD', + 'LTRIM', + 'MAKE_REF', + 'MATERIALIZED', + 'MAX', + 'MAXEXTENTS', + 'MIN', + 'MINUS', + 'MINUTE', + 'MLSLABEL', + 'MOD', + 'MODE', + 'MODIFY', + 'MONTH', + 'MONTHS_BETWEEN', + 'NATURAL', + 'NATURALN', + 'NEW', + 'NEW_TIME', + 'NEXT_DAY', + 'NEXTVAL', + 'NLS_CHARSET_DECL_LEN', + 'NLS_CHARSET_ID', + 'NLS_CHARSET_NAME', + 'NLS_INITCAP', + 'NLS_LOWER', + 'NLS_UPPER', + 'NLSSORT', + 'NOAUDIT', + 'NOCOMPRESS', + 'NOCOPY', + 'NOT', + 'NOWAIT', + 'NTILE', + 'NULL', + 'NULLIF', + 'NUMBER', + 'NUMBER_BASE', + 'NUMTODSINTERVAL', + 'NUMTOYMINTERVAL', + 'NVL', + 'NVL2', + 'OCIROWID', + 'OF', + 'OFFLINE', + 'ON', + 'ONLINE', + 'OPAQUE', + 'OPEN', + 'OPERATOR', + 'OPTION', + 'OR', + 'ORDER', + 'ORGANIZATION', + 'OTHERS', + 'OUT', + 'OUTLINE', + 'PACKAGE', + 'PARTITION', + 'PCTFREE', + 'PERCENT_RANK', + 'PLAN', + 'PLS_INTEGER', + 'POSITIVE', + 'POSITIVEN', + 'POWER', + 'PRAGMA', + 'PRIMARY', + 'PRIOR', + 'PRIVATE', + 'PRIVILEGES', + 'PROCEDURE', + 'PROFILE', + 'PUBLIC', + 'RAISE', + 'RANGE', + 'RANK', + 'RATIO_TO_REPORT', + 'RAW', + 'RAWTOHEX', + 'REAL', + 'RECORD', + 'REF', + 'REFTOHEX', + 'REGR_AVGX', + 'REGR_AVGY', + 'REGR_COUNT', + 'REGR_INTERCEPT', + 'REGR_R2', + 'REGR_SLOPE', + 'REGR_SXX', + 'REGR_SXY', + 'REGR_SYY', + 'RELEASE', + 'RENAME', + 'REPLACE', + 'RESOURCE', + 'RETURN', + 'RETURNING', + 'REVERSE', + 'REVOKE', + 'ROLE', + 'ROLLBACK', + 'ROUND', + 'ROW', + 'ROW_NUMBER', + 'ROWID', + 'ROWIDTOCHAR', + 'ROWNUM', + 'ROWS', + 'ROWTYPE', + 'RPAD', + 'RTRIM', + 'SAVEPOINT', + 'SCHEMA', + 'SECOND', + 'SEGMENT', + 'SELECT', + 'SEPERATE', + 'SEQUENCE', + 'SESSION', + 'SET', + 'SHARE', + 'SIGN', + 'SIN', + 'SINH', + 'SIZE', + 'SMALLINT', + 'SOUNDEX', + 'SPACE', + 'SQL', + 'SQLCODE', + 'SQLERRM', + 'SQRT', + 'START', + 'STATISTICS', + 'STDDEV', + 'STDDEV_POP', + 'STDDEV_SAMP', + 'STOP', + 'SUBSTR', + 'SUBSTRB', + 'SUBTYPE', + 'SUCCESSFUL', + 'SUM', + 'SYNONYM', + 'SYS_CONTEXT', + 'SYS_GUID', + 'SYSDATE', + 'SYSTEM', + 'TABLE', + 'TABLESPACE', + 'TAN', + 'TANH', + 'TEMPORARY', + 'THEN', + 'TIME', + 'TIMESTAMP', + 'TIMEZONE_ABBR', + 'TIMEZONE_HOUR', + 'TIMEZONE_MINUTE', + 'TIMEZONE_REGION', + 'TIMING', + 'TO', + 'TO_CHAR', + 'TO_DATE', + 'TO_LOB', + 'TO_MULTI_BYTE', + 'TO_NUMBER', + 'TO_SINGLE_BYTE', + 'TRANSACTION', + 'TRANSLATE', + 'TRIGGER', + 'TRIM', + 'TRUE', + 'TRUNC', + 'TRUNCATE', + 'TYPE', + 'UI', + 'UID', + 'UNION', + 'UNIQUE', + 'UPDATE', + 'UPPER', + 'USE', + 'USER', + 'USERENV', + 'USING', + 'VALIDATE', + 'VALUE', + 'VALUES', + 'VAR_POP', + 'VAR_SAMP', + 'VARCHAR', + 'VARCHAR2', + 'VARIANCE', + 'VIEW', + 'VSIZE', + 'WHEN', + 'WHENEVER', + 'WHERE', + 'WHILE', + 'WITH', + 'WORK', + 'WRITE', + 'YEAR', + 'ZONE' + ) + ), + 'SYMBOLS' => array( + '(', ')', '=', '<', '>', '|' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #993333; font-weight: bold; text-transform: uppercase;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 2 => '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( + 1 => 'color: #ff0000;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/pascal.php b/plugins/geshi/pascal.php old mode 100644 new mode 100755 index 9256c22..50bf1ec --- a/plugins/geshi/pascal.php +++ b/plugins/geshi/pascal.php @@ -45,100 +45,98 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Pascal', - 'COMMENT_SINGLE' => array(1 => '//'), - 'COMMENT_MULTI' => array('{' => '}','(*' => '*)'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - 'if', 'while', 'until', 'repeat', 'default', - 'do', 'else', 'for', 'switch', 'goto','label','asm','begin','end', - 'assembler','case', 'downto', 'to','div','mod','far','forward','in','inherited', - 'inline','interrupt','label','library','not','var','of','then','stdcall', - 'cdecl','end.','raise','try','except','name','finally','resourcestring','override','overload', - 'default','public','protected','private','property','published','stored','catch' - ), - 2 => array( - 'nil', 'false', 'break', 'true', 'function', 'procedure','implementation','interface', - 'unit','program','initialization','finalization','uses' - ), - 3 => array( - 'abs', 'absolute','and','arc','arctan','chr','constructor','destructor', - 'dispose','cos','eof','eoln','exp','get','index','ln','new','xor','write','writeln', - 'shr','sin','sqrt','succ','pred','odd','read','readln','ord','ordinal','blockread','blockwrite' - ), - 4 => array( - 'array', 'char', 'const', 'boolean', 'real', 'integer', 'longint', - 'word', 'shortint', 'record','byte','bytebool','string', - 'type','object','export','exports','external','file','longbool','pointer','set', - 'packed','ansistring','union' - ), - ), - 'SYMBOLS' => array( - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false, - 2 => false, - 3 => false, - 4 => false, - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #b1b100;', - 2 => 'color: #000000; font-weight: bold;', - 3 => '', - 4 => 'color: #993333;' - ), - 'COMMENTS' => array( - 1 => 'color: #808080; font-style: italic;', - 2 => 'color: #339933;', - 'MULTI' => '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( - 1 => 'color: #202020;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - '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( +$language_data = array( + 'LANG_NAME' => 'Pascal', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('{' => '}','(*' => '*)'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'if', 'while', 'until', 'repeat', 'default', + 'do', 'else', 'for', 'switch', 'goto','label','asm','begin','end', + 'assembler','case', 'downto', 'to','div','mod','far','forward','in','inherited', + 'inline','interrupt','label','library','not','var','of','then','stdcall', + 'cdecl','end.','raise','try','except','name','finally','resourcestring','override','overload', + 'default','public','protected','private','property','published','stored','catch' + ), + 2 => array( + 'nil', 'false', 'break', 'true', 'function', 'procedure','implementation','interface', + 'unit','program','initialization','finalization','uses' + ), + 3 => array( + 'abs', 'absolute','and','arc','arctan','chr','constructor','destructor', + 'dispose','cos','eof','eoln','exp','get','index','ln','new','xor','write','writeln', + 'shr','sin','sqrt','succ','pred','odd','read','readln','ord','ordinal','blockread','blockwrite' + ), + 4 => array( + 'array', 'char', 'const', 'boolean', 'real', 'integer', 'longint', + 'word', 'shortint', 'record','byte','bytebool','string', + 'type','object','export','exports','external','file','longbool','pointer','set', + 'packed','ansistring','union' + ), + ), + 'SYMBOLS' => array( + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => '', + 4 => 'color: #993333;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 2 => 'color: #339933;', + 'MULTI' => '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( + 1 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + '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( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/plugins/geshi/per.php b/plugins/geshi/per.php old mode 100644 new mode 100755 index 9e7627e..400cd7e --- a/plugins/geshi/per.php +++ b/plugins/geshi/per.php @@ -29,7 +29,7 @@ * ************************************************************************************/ - $language_data = array ( + $language_data = array( 'LANG_NAME' => 'per', 'COMMENT_SINGLE' => array(1 => '--', 2 => '#'), 'COMMENT_MULTI' => array('{' => '}'), @@ -298,5 +298,3 @@ 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/plugins/geshi/perl.php b/plugins/geshi/perl.php old mode 100644 new mode 100755 index 0ac9e08..1d7a6fa --- a/plugins/geshi/perl.php +++ b/plugins/geshi/perl.php @@ -45,10 +45,10 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Perl', - 'COMMENT_SINGLE' => array(1 => '#'), - 'COMMENT_MULTI' => array( +$language_data = array( + 'LANG_NAME' => 'Perl', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array( '=back' => '=cut', '=head' => '=cut', '=item' => '=cut', @@ -59,121 +59,119 @@ $language_data = array ( '=encoding' => '=cut', '=pod' => '=cut' ), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array('"'), - 'HARDQUOTE' => array("'", "'"), // An optional 2-element array defining the beginning and end of a hard-quoted string - 'HARDESCAPE' => array('\\\'', "\\\\"), // Things that must still be escaped inside a hard-quoted string - // If HARDQUOTE is defined, HARDESCAPE must be defined - // This will not work unless the first character of each element is either in the - // QUOTEMARKS array or is the ESCAPE_CHAR - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - 'case', 'do', 'else', 'elsif', 'for', 'if', 'then', 'until', 'while', 'foreach', 'my', - 'or', 'and', 'unless', 'next', 'last', 'redo', 'not', 'our', - 'reset', 'continue','and', 'cmp', 'ne' - ), - 2 => array( - 'use', 'sub', 'new', '__END__', '__DATA__', '__DIE__', '__WARN__', 'BEGIN', - 'STDIN', 'STDOUT', 'STDERR' - ), - 3 => array( - 'abs', 'accept', 'alarm', 'atan2', 'bind', 'binmode', 'bless', - 'caller', 'chdir', 'chmod', 'chomp', 'chop', 'chown', 'chr', - 'chroot', 'close', 'closedir', 'connect', 'continue', 'cos', - 'crypt', 'dbmclose', 'dbmopen', 'defined', 'delete', 'die', - 'dump', 'each', 'endgrent', 'endhostent', 'endnetent', 'endprotoent', - 'endpwent', 'endservent', 'eof', 'eval', 'exec', 'exists', 'exit', - 'exp', 'fcntl', 'fileno', 'flock', 'fork', 'format', 'formline', - 'getc', 'getgrent', 'getgrgid', 'getgrnam', 'gethostbyaddr', - 'gethostbyname', 'gethostent', 'getlogin', 'getnetbyaddr', 'getnetbyname', - 'getnetent', 'getpeername', 'getpgrp', 'getppid', 'getpriority', - 'getprotobyname', 'getprotobynumber', 'getprotoent', 'getpwent', - 'getpwnam', 'getpwuid', 'getservbyname', 'getservbyport', 'getservent', - 'getsockname', 'getsockopt', 'glob', 'gmtime', 'goto', 'grep', - 'hex', 'import', 'index', 'int', 'ioctl', 'join', 'keys', 'kill', - 'last', 'lc', 'lcfirst', 'length', 'link', 'listen', 'local', - 'localtime', 'log', 'lstat', 'm', 'map', 'mkdir', 'msgctl', 'msgget', - 'msgrcv', 'msgsnd', 'my', 'next', 'no', 'oct', 'open', 'opendir', - 'ord', 'our', 'pack', 'package', 'pipe', 'pop', 'pos', 'print', - 'printf', 'prototype', 'push', 'qq', 'qr', 'quotemeta', 'qw', - 'qx', 'q', 'rand', 'read', 'readdir', 'readline', 'readlink', 'readpipe', - 'recv', 'redo', 'ref', 'rename', 'require', 'return', - 'reverse', 'rewinddir', 'rindex', 'rmdir', 's', 'scalar', 'seek', - 'seekdir', 'select', 'semctl', 'semget', 'semop', 'send', 'setgrent', - 'sethostent', 'setnetent', 'setpgrp', 'setpriority', 'setprotoent', - 'setpwent', 'setservent', 'setsockopt', 'shift', 'shmctl', 'shmget', - 'shmread', 'shmwrite', 'shutdown', 'sin', 'sleep', 'socket', 'socketpair', - 'sort', 'splice', 'split', 'sprintf', 'sqrt', 'srand', 'stat', - 'study', 'substr', 'symlink', 'syscall', 'sysopen', 'sysread', - 'sysseek', 'system', 'syswrite', 'tell', 'telldir', 'tie', 'tied', - 'time', 'times', 'tr', 'truncate', 'uc', 'ucfirst', 'umask', 'undef', - 'unlink', 'unpack', 'unshift', 'untie', 'utime', 'values', - 'vec', 'wait', 'waitpid', 'wantarray', 'warn', 'write', 'y' - ) - ), - 'SYMBOLS' => array( - '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => true, - 2 => true, - 3 => true, - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #b1b100;', - 2 => 'color: #000000; font-weight: bold;', - 3 => 'color: #000066;' - ), - 'COMMENTS' => array( - 1 => 'color: #808080; 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: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( - 1 => 'color: #006600;', - 2 => 'color: #006600;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'REGEXPS' => array( - 0 => 'color: #0000ff;', - 4 => 'color: #009999;', - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - 3 => 'http://perldoc.perl.org/functions/{FNAME}.html' - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '->', - 2 => '::' - ), - 'REGEXPS' => array( - 0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*', - 4 => '<[a-zA-Z_][a-zA-Z0-9_]*>', - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'HARDQUOTE' => array("'", "'"), // An optional 2-element array defining the beginning and end of a hard-quoted string + 'HARDESCAPE' => array('\\\'', "\\\\"), // Things that must still be escaped inside a hard-quoted string + // If HARDQUOTE is defined, HARDESCAPE must be defined + // This will not work unless the first character of each element is either in the + // QUOTEMARKS array or is the ESCAPE_CHAR + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'case', 'do', 'else', 'elsif', 'for', 'if', 'then', 'until', 'while', 'foreach', 'my', + 'or', 'and', 'unless', 'next', 'last', 'redo', 'not', 'our', + 'reset', 'continue','and', 'cmp', 'ne' + ), + 2 => array( + 'use', 'sub', 'new', '__END__', '__DATA__', '__DIE__', '__WARN__', 'BEGIN', + 'STDIN', 'STDOUT', 'STDERR' + ), + 3 => array( + 'abs', 'accept', 'alarm', 'atan2', 'bind', 'binmode', 'bless', + 'caller', 'chdir', 'chmod', 'chomp', 'chop', 'chown', 'chr', + 'chroot', 'close', 'closedir', 'connect', 'continue', 'cos', + 'crypt', 'dbmclose', 'dbmopen', 'defined', 'delete', 'die', + 'dump', 'each', 'endgrent', 'endhostent', 'endnetent', 'endprotoent', + 'endpwent', 'endservent', 'eof', 'eval', 'exec', 'exists', 'exit', + 'exp', 'fcntl', 'fileno', 'flock', 'fork', 'format', 'formline', + 'getc', 'getgrent', 'getgrgid', 'getgrnam', 'gethostbyaddr', + 'gethostbyname', 'gethostent', 'getlogin', 'getnetbyaddr', 'getnetbyname', + 'getnetent', 'getpeername', 'getpgrp', 'getppid', 'getpriority', + 'getprotobyname', 'getprotobynumber', 'getprotoent', 'getpwent', + 'getpwnam', 'getpwuid', 'getservbyname', 'getservbyport', 'getservent', + 'getsockname', 'getsockopt', 'glob', 'gmtime', 'goto', 'grep', + 'hex', 'import', 'index', 'int', 'ioctl', 'join', 'keys', 'kill', + 'last', 'lc', 'lcfirst', 'length', 'link', 'listen', 'local', + 'localtime', 'log', 'lstat', 'm', 'map', 'mkdir', 'msgctl', 'msgget', + 'msgrcv', 'msgsnd', 'my', 'next', 'no', 'oct', 'open', 'opendir', + 'ord', 'our', 'pack', 'package', 'pipe', 'pop', 'pos', 'print', + 'printf', 'prototype', 'push', 'qq', 'qr', 'quotemeta', 'qw', + 'qx', 'q', 'rand', 'read', 'readdir', 'readline', 'readlink', 'readpipe', + 'recv', 'redo', 'ref', 'rename', 'require', 'return', + 'reverse', 'rewinddir', 'rindex', 'rmdir', 's', 'scalar', 'seek', + 'seekdir', 'select', 'semctl', 'semget', 'semop', 'send', 'setgrent', + 'sethostent', 'setnetent', 'setpgrp', 'setpriority', 'setprotoent', + 'setpwent', 'setservent', 'setsockopt', 'shift', 'shmctl', 'shmget', + 'shmread', 'shmwrite', 'shutdown', 'sin', 'sleep', 'socket', 'socketpair', + 'sort', 'splice', 'split', 'sprintf', 'sqrt', 'srand', 'stat', + 'study', 'substr', 'symlink', 'syscall', 'sysopen', 'sysread', + 'sysseek', 'system', 'syswrite', 'tell', 'telldir', 'tie', 'tied', + 'time', 'times', 'tr', 'truncate', 'uc', 'ucfirst', 'umask', 'undef', + 'unlink', 'unpack', 'unshift', 'untie', 'utime', 'values', + 'vec', 'wait', 'waitpid', 'wantarray', 'warn', 'write', 'y' + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => true, + 2 => true, + 3 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; 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: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;', + 2 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + 0 => 'color: #0000ff;', + 4 => 'color: #009999;', + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 3 => 'http://perldoc.perl.org/functions/{FNAME}.html' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '->', + 2 => '::' + ), + 'REGEXPS' => array( + 0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*', + 4 => '<[a-zA-Z_][a-zA-Z0-9_]*>', + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/php-brief.php b/plugins/geshi/php-brief.php old mode 100644 new mode 100755 index 66c5b46..9a8f687 --- a/plugins/geshi/php-brief.php +++ b/plugins/geshi/php-brief.php @@ -45,122 +45,120 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'PHP', - 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - 'include', 'require', 'include_once', 'require_once', - 'for', 'as', 'foreach', 'if', 'elseif', 'else', 'while', 'do', 'endwhile', 'endif', 'switch', 'case', 'endswitch', - 'return', 'break' - ), - 2 => array( - 'null', '__LINE__', '__FILE__', - 'false', '<?php', '?>', - 'true', 'var', 'default', - 'function', 'class', 'new', '&new', 'public', 'private', 'interface', 'extends', - ), - 3 => array( - 'func_num_args', 'func_get_arg', 'func_get_args', 'strlen', 'strcmp', 'strncmp', 'strcasecmp', 'strncasecmp', 'each', 'error_reporting', 'define', 'defined', - 'trigger_error', 'user_error', 'set_error_handler', 'restore_error_handler', 'get_declared_classes', 'get_loaded_extensions', - 'extension_loaded', 'get_extension_funcs', 'debug_backtrace', - 'constant', 'bin2hex', 'sleep', 'usleep', 'time', 'mktime', 'gmmktime', 'strftime', 'gmstrftime', 'strtotime', 'date', 'gmdate', 'getdate', 'localtime', 'checkdate', 'flush', 'wordwrap', 'htmlspecialchars', 'htmlentities', 'html_entity_decode', 'md5', 'md5_file', 'crc32', 'getimagesize', 'image_type_to_mime_type', 'phpinfo', 'phpversion', 'phpcredits', 'strnatcmp', 'strnatcasecmp', 'substr_count', 'strspn', 'strcspn', 'strtok', 'strtoupper', 'strtolower', 'strpos', 'strrpos', 'strrev', 'hebrev', 'hebrevc', 'nl2br', 'basename', 'dirname', 'pathinfo', 'stripslashes', 'stripcslashes', 'strstr', 'stristr', 'strrchr', 'str_shuffle', 'str_word_count', 'strcoll', 'substr', 'substr_replace', 'quotemeta', 'ucfirst', 'ucwords', 'strtr', 'addslashes', 'addcslashes', 'rtrim', 'str_replace', 'str_repeat', 'count_chars', 'chunk_split', 'trim', 'ltrim', 'strip_tags', 'similar_text', 'explode', 'implode', 'setlocale', 'localeconv', - 'parse_str', 'str_pad', 'chop', 'strchr', 'sprintf', 'printf', 'vprintf', 'vsprintf', 'sscanf', 'fscanf', 'parse_url', 'urlencode', 'urldecode', 'rawurlencode', 'rawurldecode', 'readlink', 'linkinfo', 'link', 'unlink', 'exec', 'system', 'escapeshellcmd', 'escapeshellarg', 'passthru', 'shell_exec', 'proc_open', 'proc_close', 'rand', 'srand', 'getrandmax', 'mt_rand', 'mt_srand', 'mt_getrandmax', 'base64_decode', 'base64_encode', 'abs', 'ceil', 'floor', 'round', 'is_finite', 'is_nan', 'is_infinite', 'bindec', 'hexdec', 'octdec', 'decbin', 'decoct', 'dechex', 'base_convert', 'number_format', 'fmod', 'ip2long', 'long2ip', 'getenv', 'putenv', 'getopt', 'microtime', 'gettimeofday', 'getrusage', 'uniqid', 'quoted_printable_decode', 'set_time_limit', 'get_cfg_var', 'magic_quotes_runtime', 'set_magic_quotes_runtime', 'get_magic_quotes_gpc', 'get_magic_quotes_runtime', - 'import_request_variables', 'error_log', 'serialize', 'unserialize', 'memory_get_usage', 'var_dump', 'var_export', 'debug_zval_dump', 'print_r','highlight_file', 'show_source', 'highlight_string', 'ini_get', 'ini_get_all', 'ini_set', 'ini_alter', 'ini_restore', 'get_include_path', 'set_include_path', 'restore_include_path', 'setcookie', 'header', 'headers_sent', 'connection_aborted', 'connection_status', 'ignore_user_abort', 'parse_ini_file', 'is_uploaded_file', 'move_uploaded_file', 'intval', 'floatval', 'doubleval', 'strval', 'gettype', 'settype', 'is_null', 'is_resource', 'is_bool', 'is_long', 'is_float', 'is_int', 'is_integer', 'is_double', 'is_real', 'is_numeric', 'is_string', 'is_array', 'is_object', 'is_scalar', - 'ereg', 'ereg_replace', 'eregi', 'eregi_replace', 'split', 'spliti', 'join', 'sql_regcase', 'dl', 'pclose', 'popen', 'readfile', 'rewind', 'rmdir', 'umask', 'fclose', 'feof', 'fgetc', 'fgets', 'fgetss', 'fread', 'fopen', 'fpassthru', 'ftruncate', 'fstat', 'fseek', 'ftell', 'fflush', 'fwrite', 'fputs', 'mkdir', 'rename', 'copy', 'tempnam', 'tmpfile', 'file', 'file_get_contents', 'stream_select', 'stream_context_create', 'stream_context_set_params', 'stream_context_set_option', 'stream_context_get_options', 'stream_filter_prepend', 'stream_filter_append', 'fgetcsv', 'flock', 'get_meta_tags', 'stream_set_write_buffer', 'set_file_buffer', 'set_socket_blocking', 'stream_set_blocking', 'socket_set_blocking', 'stream_get_meta_data', 'stream_register_wrapper', 'stream_wrapper_register', 'stream_set_timeout', 'socket_set_timeout', 'socket_get_status', 'realpath', 'fnmatch', 'fsockopen', 'pfsockopen', 'pack', 'unpack', 'get_browser', 'crypt', 'opendir', 'closedir', 'chdir', 'getcwd', 'rewinddir', 'readdir', 'dir', 'glob', 'fileatime', 'filectime', 'filegroup', 'fileinode', 'filemtime', 'fileowner', 'fileperms', 'filesize', 'filetype', 'file_exists', 'is_writable', 'is_writeable', 'is_readable', 'is_executable', 'is_file', 'is_dir', 'is_link', 'stat', 'lstat', 'chown', - 'touch', 'clearstatcache', 'mail', 'ob_start', 'ob_flush', 'ob_clean', 'ob_end_flush', 'ob_end_clean', 'ob_get_flush', 'ob_get_clean', 'ob_get_length', 'ob_get_level', 'ob_get_status', 'ob_get_contents', 'ob_implicit_flush', 'ob_list_handlers', 'ksort', 'krsort', 'natsort', 'natcasesort', 'asort', 'arsort', 'sort', 'rsort', 'usort', 'uasort', 'uksort', 'shuffle', 'array_walk', 'count', 'end', 'prev', 'next', 'reset', 'current', 'key', 'min', 'max', 'in_array', 'array_search', 'extract', 'compact', 'array_fill', 'range', 'array_multisort', 'array_push', 'array_pop', 'array_shift', 'array_unshift', 'array_splice', 'array_slice', 'array_merge', 'array_merge_recursive', 'array_keys', 'array_values', 'array_count_values', 'array_reverse', 'array_reduce', 'array_pad', 'array_flip', 'array_change_key_case', 'array_rand', 'array_unique', 'array_intersect', 'array_intersect_assoc', 'array_diff', 'array_diff_assoc', 'array_sum', 'array_filter', 'array_map', 'array_chunk', 'array_key_exists', 'pos', 'sizeof', 'key_exists', 'assert', 'assert_options', 'version_compare', 'ftok', 'str_rot13', 'aggregate', - 'session_name', 'session_module_name', 'session_save_path', 'session_id', 'session_regenerate_id', 'session_decode', 'session_register', 'session_unregister', 'session_is_registered', 'session_encode', - 'session_start', 'session_destroy', 'session_unset', 'session_set_save_handler', 'session_cache_limiter', 'session_cache_expire', 'session_set_cookie_params', 'session_get_cookie_params', 'session_write_close', 'preg_match', 'preg_match_all', 'preg_replace', 'preg_replace_callback', 'preg_split', 'preg_quote', 'preg_grep', 'overload', 'ctype_alnum', 'ctype_alpha', 'ctype_cntrl', 'ctype_digit', 'ctype_lower', 'ctype_graph', 'ctype_print', 'ctype_punct', 'ctype_space', 'ctype_upper', 'ctype_xdigit', 'virtual', 'apache_request_headers', 'apache_note', 'apache_lookup_uri', 'apache_child_terminate', 'apache_setenv', 'apache_response_headers', 'apache_get_version', 'getallheaders', 'mysql_connect', 'mysql_pconnect', 'mysql_close', 'mysql_select_db', 'mysql_create_db', 'mysql_drop_db', 'mysql_query', 'mysql_unbuffered_query', 'mysql_db_query', 'mysql_list_dbs', 'mysql_list_tables', 'mysql_list_fields', 'mysql_list_processes', 'mysql_error', 'mysql_errno', 'mysql_affected_rows', 'mysql_insert_id', 'mysql_result', 'mysql_num_rows', 'mysql_num_fields', 'mysql_fetch_row', 'mysql_fetch_array', 'mysql_fetch_assoc', 'mysql_fetch_object', 'mysql_data_seek', 'mysql_fetch_lengths', 'mysql_fetch_field', 'mysql_field_seek', 'mysql_free_result', 'mysql_field_name', 'mysql_field_table', 'mysql_field_len', 'mysql_field_type', 'mysql_field_flags', 'mysql_escape_string', 'mysql_real_escape_string', 'mysql_stat', - 'mysql_thread_id', 'mysql_client_encoding', 'mysql_get_client_info', 'mysql_get_host_info', 'mysql_get_proto_info', 'mysql_get_server_info', 'mysql_info', 'mysql', 'mysql_fieldname', 'mysql_fieldtable', 'mysql_fieldlen', 'mysql_fieldtype', 'mysql_fieldflags', 'mysql_selectdb', 'mysql_createdb', 'mysql_dropdb', 'mysql_freeresult', 'mysql_numfields', 'mysql_numrows', 'mysql_listdbs', 'mysql_listtables', 'mysql_listfields', 'mysql_db_name', 'mysql_dbname', 'mysql_tablename', 'mysql_table_name', 'pg_connect', 'pg_pconnect', 'pg_close', 'pg_connection_status', 'pg_connection_busy', 'pg_connection_reset', 'pg_host', 'pg_dbname', 'pg_port', 'pg_tty', 'pg_options', 'pg_ping', 'pg_query', 'pg_send_query', 'pg_cancel_query', 'pg_fetch_result', 'pg_fetch_row', 'pg_fetch_assoc', 'pg_fetch_array', 'pg_fetch_object', 'pg_fetch_all', 'pg_affected_rows', 'pg_get_result', 'pg_result_seek', 'pg_result_status', 'pg_free_result', 'pg_last_oid', 'pg_num_rows', 'pg_num_fields', 'pg_field_name', 'pg_field_num', 'pg_field_size', 'pg_field_type', 'pg_field_prtlen', 'pg_field_is_null', 'pg_get_notify', 'pg_get_pid', 'pg_result_error', 'pg_last_error', 'pg_last_notice', 'pg_put_line', 'pg_end_copy', 'pg_copy_to', 'pg_copy_from', - 'pg_trace', 'pg_untrace', 'pg_lo_create', 'pg_lo_unlink', 'pg_lo_open', 'pg_lo_close', 'pg_lo_read', 'pg_lo_write', 'pg_lo_read_all', 'pg_lo_import', 'pg_lo_export', 'pg_lo_seek', 'pg_lo_tell', 'pg_escape_string', 'pg_escape_bytea', 'pg_unescape_bytea', 'pg_client_encoding', 'pg_set_client_encoding', 'pg_meta_data', 'pg_convert', 'pg_insert', 'pg_update', 'pg_delete', 'pg_select', 'pg_exec', 'pg_getlastoid', 'pg_cmdtuples', 'pg_errormessage', 'pg_numrows', 'pg_numfields', 'pg_fieldname', 'pg_fieldsize', 'pg_fieldtype', 'pg_fieldnum', 'pg_fieldprtlen', 'pg_fieldisnull', 'pg_freeresult', 'pg_result', 'pg_loreadall', 'pg_locreate', 'pg_lounlink', 'pg_loopen', 'pg_loclose', 'pg_loread', 'pg_lowrite', 'pg_loimport', 'pg_loexport', - 'echo', 'print', 'global', 'static', 'exit', 'array', 'empty', 'eval', 'isset', 'unset', 'die' - ) - ), - 'SYMBOLS' => array( +$language_data = array( + 'LANG_NAME' => 'PHP', + 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'include', 'require', 'include_once', 'require_once', + 'for', 'as', 'foreach', 'if', 'elseif', 'else', 'while', 'do', 'endwhile', 'endif', 'switch', 'case', 'endswitch', + 'return', 'break' + ), + 2 => array( + 'null', '__LINE__', '__FILE__', + 'false', '<?php', '?>', + 'true', 'var', 'default', + 'function', 'class', 'new', '&new', 'public', 'private', 'interface', 'extends', + ), + 3 => array( + 'func_num_args', 'func_get_arg', 'func_get_args', 'strlen', 'strcmp', 'strncmp', 'strcasecmp', 'strncasecmp', 'each', 'error_reporting', 'define', 'defined', + 'trigger_error', 'user_error', 'set_error_handler', 'restore_error_handler', 'get_declared_classes', 'get_loaded_extensions', + 'extension_loaded', 'get_extension_funcs', 'debug_backtrace', + 'constant', 'bin2hex', 'sleep', 'usleep', 'time', 'mktime', 'gmmktime', 'strftime', 'gmstrftime', 'strtotime', 'date', 'gmdate', 'getdate', 'localtime', 'checkdate', 'flush', 'wordwrap', 'htmlspecialchars', 'htmlentities', 'html_entity_decode', 'md5', 'md5_file', 'crc32', 'getimagesize', 'image_type_to_mime_type', 'phpinfo', 'phpversion', 'phpcredits', 'strnatcmp', 'strnatcasecmp', 'substr_count', 'strspn', 'strcspn', 'strtok', 'strtoupper', 'strtolower', 'strpos', 'strrpos', 'strrev', 'hebrev', 'hebrevc', 'nl2br', 'basename', 'dirname', 'pathinfo', 'stripslashes', 'stripcslashes', 'strstr', 'stristr', 'strrchr', 'str_shuffle', 'str_word_count', 'strcoll', 'substr', 'substr_replace', 'quotemeta', 'ucfirst', 'ucwords', 'strtr', 'addslashes', 'addcslashes', 'rtrim', 'str_replace', 'str_repeat', 'count_chars', 'chunk_split', 'trim', 'ltrim', 'strip_tags', 'similar_text', 'explode', 'implode', 'setlocale', 'localeconv', + 'parse_str', 'str_pad', 'chop', 'strchr', 'sprintf', 'printf', 'vprintf', 'vsprintf', 'sscanf', 'fscanf', 'parse_url', 'urlencode', 'urldecode', 'rawurlencode', 'rawurldecode', 'readlink', 'linkinfo', 'link', 'unlink', 'exec', 'system', 'escapeshellcmd', 'escapeshellarg', 'passthru', 'shell_exec', 'proc_open', 'proc_close', 'rand', 'srand', 'getrandmax', 'mt_rand', 'mt_srand', 'mt_getrandmax', 'base64_decode', 'base64_encode', 'abs', 'ceil', 'floor', 'round', 'is_finite', 'is_nan', 'is_infinite', 'bindec', 'hexdec', 'octdec', 'decbin', 'decoct', 'dechex', 'base_convert', 'number_format', 'fmod', 'ip2long', 'long2ip', 'getenv', 'putenv', 'getopt', 'microtime', 'gettimeofday', 'getrusage', 'uniqid', 'quoted_printable_decode', 'set_time_limit', 'get_cfg_var', 'magic_quotes_runtime', 'set_magic_quotes_runtime', 'get_magic_quotes_gpc', 'get_magic_quotes_runtime', + 'import_request_variables', 'error_log', 'serialize', 'unserialize', 'memory_get_usage', 'var_dump', 'var_export', 'debug_zval_dump', 'print_r','highlight_file', 'show_source', 'highlight_string', 'ini_get', 'ini_get_all', 'ini_set', 'ini_alter', 'ini_restore', 'get_include_path', 'set_include_path', 'restore_include_path', 'setcookie', 'header', 'headers_sent', 'connection_aborted', 'connection_status', 'ignore_user_abort', 'parse_ini_file', 'is_uploaded_file', 'move_uploaded_file', 'intval', 'floatval', 'doubleval', 'strval', 'gettype', 'settype', 'is_null', 'is_resource', 'is_bool', 'is_long', 'is_float', 'is_int', 'is_integer', 'is_double', 'is_real', 'is_numeric', 'is_string', 'is_array', 'is_object', 'is_scalar', + 'ereg', 'ereg_replace', 'eregi', 'eregi_replace', 'split', 'spliti', 'join', 'sql_regcase', 'dl', 'pclose', 'popen', 'readfile', 'rewind', 'rmdir', 'umask', 'fclose', 'feof', 'fgetc', 'fgets', 'fgetss', 'fread', 'fopen', 'fpassthru', 'ftruncate', 'fstat', 'fseek', 'ftell', 'fflush', 'fwrite', 'fputs', 'mkdir', 'rename', 'copy', 'tempnam', 'tmpfile', 'file', 'file_get_contents', 'stream_select', 'stream_context_create', 'stream_context_set_params', 'stream_context_set_option', 'stream_context_get_options', 'stream_filter_prepend', 'stream_filter_append', 'fgetcsv', 'flock', 'get_meta_tags', 'stream_set_write_buffer', 'set_file_buffer', 'set_socket_blocking', 'stream_set_blocking', 'socket_set_blocking', 'stream_get_meta_data', 'stream_register_wrapper', 'stream_wrapper_register', 'stream_set_timeout', 'socket_set_timeout', 'socket_get_status', 'realpath', 'fnmatch', 'fsockopen', 'pfsockopen', 'pack', 'unpack', 'get_browser', 'crypt', 'opendir', 'closedir', 'chdir', 'getcwd', 'rewinddir', 'readdir', 'dir', 'glob', 'fileatime', 'filectime', 'filegroup', 'fileinode', 'filemtime', 'fileowner', 'fileperms', 'filesize', 'filetype', 'file_exists', 'is_writable', 'is_writeable', 'is_readable', 'is_executable', 'is_file', 'is_dir', 'is_link', 'stat', 'lstat', 'chown', + 'touch', 'clearstatcache', 'mail', 'ob_start', 'ob_flush', 'ob_clean', 'ob_end_flush', 'ob_end_clean', 'ob_get_flush', 'ob_get_clean', 'ob_get_length', 'ob_get_level', 'ob_get_status', 'ob_get_contents', 'ob_implicit_flush', 'ob_list_handlers', 'ksort', 'krsort', 'natsort', 'natcasesort', 'asort', 'arsort', 'sort', 'rsort', 'usort', 'uasort', 'uksort', 'shuffle', 'array_walk', 'count', 'end', 'prev', 'next', 'reset', 'current', 'key', 'min', 'max', 'in_array', 'array_search', 'extract', 'compact', 'array_fill', 'range', 'array_multisort', 'array_push', 'array_pop', 'array_shift', 'array_unshift', 'array_splice', 'array_slice', 'array_merge', 'array_merge_recursive', 'array_keys', 'array_values', 'array_count_values', 'array_reverse', 'array_reduce', 'array_pad', 'array_flip', 'array_change_key_case', 'array_rand', 'array_unique', 'array_intersect', 'array_intersect_assoc', 'array_diff', 'array_diff_assoc', 'array_sum', 'array_filter', 'array_map', 'array_chunk', 'array_key_exists', 'pos', 'sizeof', 'key_exists', 'assert', 'assert_options', 'version_compare', 'ftok', 'str_rot13', 'aggregate', + 'session_name', 'session_module_name', 'session_save_path', 'session_id', 'session_regenerate_id', 'session_decode', 'session_register', 'session_unregister', 'session_is_registered', 'session_encode', + 'session_start', 'session_destroy', 'session_unset', 'session_set_save_handler', 'session_cache_limiter', 'session_cache_expire', 'session_set_cookie_params', 'session_get_cookie_params', 'session_write_close', 'preg_match', 'preg_match_all', 'preg_replace', 'preg_replace_callback', 'preg_split', 'preg_quote', 'preg_grep', 'overload', 'ctype_alnum', 'ctype_alpha', 'ctype_cntrl', 'ctype_digit', 'ctype_lower', 'ctype_graph', 'ctype_print', 'ctype_punct', 'ctype_space', 'ctype_upper', 'ctype_xdigit', 'virtual', 'apache_request_headers', 'apache_note', 'apache_lookup_uri', 'apache_child_terminate', 'apache_setenv', 'apache_response_headers', 'apache_get_version', 'getallheaders', 'mysql_connect', 'mysql_pconnect', 'mysql_close', 'mysql_select_db', 'mysql_create_db', 'mysql_drop_db', 'mysql_query', 'mysql_unbuffered_query', 'mysql_db_query', 'mysql_list_dbs', 'mysql_list_tables', 'mysql_list_fields', 'mysql_list_processes', 'mysql_error', 'mysql_errno', 'mysql_affected_rows', 'mysql_insert_id', 'mysql_result', 'mysql_num_rows', 'mysql_num_fields', 'mysql_fetch_row', 'mysql_fetch_array', 'mysql_fetch_assoc', 'mysql_fetch_object', 'mysql_data_seek', 'mysql_fetch_lengths', 'mysql_fetch_field', 'mysql_field_seek', 'mysql_free_result', 'mysql_field_name', 'mysql_field_table', 'mysql_field_len', 'mysql_field_type', 'mysql_field_flags', 'mysql_escape_string', 'mysql_real_escape_string', 'mysql_stat', + 'mysql_thread_id', 'mysql_client_encoding', 'mysql_get_client_info', 'mysql_get_host_info', 'mysql_get_proto_info', 'mysql_get_server_info', 'mysql_info', 'mysql', 'mysql_fieldname', 'mysql_fieldtable', 'mysql_fieldlen', 'mysql_fieldtype', 'mysql_fieldflags', 'mysql_selectdb', 'mysql_createdb', 'mysql_dropdb', 'mysql_freeresult', 'mysql_numfields', 'mysql_numrows', 'mysql_listdbs', 'mysql_listtables', 'mysql_listfields', 'mysql_db_name', 'mysql_dbname', 'mysql_tablename', 'mysql_table_name', 'pg_connect', 'pg_pconnect', 'pg_close', 'pg_connection_status', 'pg_connection_busy', 'pg_connection_reset', 'pg_host', 'pg_dbname', 'pg_port', 'pg_tty', 'pg_options', 'pg_ping', 'pg_query', 'pg_send_query', 'pg_cancel_query', 'pg_fetch_result', 'pg_fetch_row', 'pg_fetch_assoc', 'pg_fetch_array', 'pg_fetch_object', 'pg_fetch_all', 'pg_affected_rows', 'pg_get_result', 'pg_result_seek', 'pg_result_status', 'pg_free_result', 'pg_last_oid', 'pg_num_rows', 'pg_num_fields', 'pg_field_name', 'pg_field_num', 'pg_field_size', 'pg_field_type', 'pg_field_prtlen', 'pg_field_is_null', 'pg_get_notify', 'pg_get_pid', 'pg_result_error', 'pg_last_error', 'pg_last_notice', 'pg_put_line', 'pg_end_copy', 'pg_copy_to', 'pg_copy_from', + 'pg_trace', 'pg_untrace', 'pg_lo_create', 'pg_lo_unlink', 'pg_lo_open', 'pg_lo_close', 'pg_lo_read', 'pg_lo_write', 'pg_lo_read_all', 'pg_lo_import', 'pg_lo_export', 'pg_lo_seek', 'pg_lo_tell', 'pg_escape_string', 'pg_escape_bytea', 'pg_unescape_bytea', 'pg_client_encoding', 'pg_set_client_encoding', 'pg_meta_data', 'pg_convert', 'pg_insert', 'pg_update', 'pg_delete', 'pg_select', 'pg_exec', 'pg_getlastoid', 'pg_cmdtuples', 'pg_errormessage', 'pg_numrows', 'pg_numfields', 'pg_fieldname', 'pg_fieldsize', 'pg_fieldtype', 'pg_fieldnum', 'pg_fieldprtlen', 'pg_fieldisnull', 'pg_freeresult', 'pg_result', 'pg_loreadall', 'pg_locreate', 'pg_lounlink', 'pg_loopen', 'pg_loclose', 'pg_loread', 'pg_lowrite', 'pg_loimport', 'pg_loexport', + 'echo', 'print', 'global', 'static', 'exit', 'array', 'empty', 'eval', 'isset', 'unset', 'die' + ) + ), + 'SYMBOLS' => array( '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '|', '/', '<', '>', '=', '-', '+', '*', '.', ':', ',', ';' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => false, - 2 => false, - 3 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #b1b100;', - 2 => 'color: #000000; font-weight: bold;', - 3 => 'color: #000066;' - ), - 'COMMENTS' => array( - 1 => 'color: #808080; font-style: italic;', - 2 => 'color: #808080; 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: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( - 1 => 'color: #006600;', - 2 => 'color: #006600;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'REGEXPS' => array( - 0 => 'color: #0000ff;' - ), - 'SCRIPT' => array( - 0 => '', - 1 => '', - 2 => '', - 3 => '' - ) - ), - 'URLS' => array( - 1 => '', - 2 => '', - 3 => 'http://www.php.net/{FNAME}', - 4 => '' - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '->', - 2 => '::' - ), - 'REGEXPS' => array( - 0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*" - ), - 'STRICT_MODE_APPLIES' => GESHI_MAYBE, - 'SCRIPT_DELIMITERS' => array( - ' '?>', - ' '?>', - '<%' => '%>', - '' - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - 0 => true, - 1 => true, - 2 => true, - 3 => true + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 2 => 'color: #808080; 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: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;', + 2 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + 0 => 'color: #0000ff;' + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => 'http://www.php.net/{FNAME}', + 4 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '->', + 2 => '::' + ), + 'REGEXPS' => array( + 0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*" + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + ' '?>', + ' '?>', + '<%' => '%>', + '' + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => true, + 1 => true, + 2 => true, + 3 => true ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/plugins/geshi/php.php b/plugins/geshi/php.php old mode 100644 new mode 100755 index 1e9bb49..51fa3f8 --- a/plugins/geshi/php.php +++ b/plugins/geshi/php.php @@ -48,7 +48,7 @@ * ************************************************************************************/ -$language_data = array ( +$language_data = array( 'LANG_NAME' => 'PHP', 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), 'COMMENT_MULTI' => array('/*' => '*/'), @@ -355,5 +355,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/plugins/geshi/plsql.php b/plugins/geshi/plsql.php old mode 100644 new mode 100755 index 3611930..54222ec --- a/plugins/geshi/plsql.php +++ b/plugins/geshi/plsql.php @@ -40,15 +40,15 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'PL/SQL', - 'COMMENT_SINGLE' => array(1 =>'--'), //http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm#2930 - 'COMMENT_MULTI' => array('/*' => '*/'), //http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm#2950 - 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, - 'QUOTEMARKS' => array("'", '"'), //http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - //PL/SQL reserved keywords (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/f_words.htm#LNPLS019) +$language_data = array( + 'LANG_NAME' => 'PL/SQL', + 'COMMENT_SINGLE' => array(1 =>'--'), //http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm#2930 + 'COMMENT_MULTI' => array('/*' => '*/'), //http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm#2950 + 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'QUOTEMARKS' => array("'", '"'), //http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + //PL/SQL reserved keywords (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/f_words.htm#LNPLS019) 1 => array('ZONE', 'YEAR', 'WRITE', 'WORK', 'WITH', 'WHILE', 'WHERE', 'WHENEVER', 'WHEN', 'VIEW', 'VARCHAR2', 'VARCHAR', 'VALUES', 'VALIDATE', 'USE', 'UPDATE', 'UNIQUE', 'UNION', 'TYPE', 'TRUE', @@ -76,7 +76,7 @@ $language_data = array ( 'CLUSTER', 'CLOSE', 'CHECK', 'CHAR_BASE', 'CHAR', 'CASE', 'BY', 'BULK', 'BOOLEAN', 'BODY', 'BINARY_INTEGER', 'BETWEEN', 'BEGIN', 'AUTHID', 'AT', 'ASC', 'AS', 'ARRAY', 'ANY', 'AND', 'ALTER', 'ALL'), - //SQL functions (http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96540/toc.htm & http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96540/functions101a.htm#85925) + //SQL functions (http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96540/toc.htm & http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96540/functions101a.htm#85925) 2 => array('XMLTRANSFORM', 'XMLSEQUENCE', 'XMLFOREST', 'XMLELEMENT', 'XMLCONCAT', 'XMLCOLATTVAL', 'XMLAGG', 'WIDTH_BUCKET', 'VSIZE', 'VARIANCE', 'VAR_SAMP', 'VAR_POP', 'VALUE', 'USERENV', 'USER', 'UPPER', @@ -109,7 +109,7 @@ $language_data = array ( 'COMPOSE', 'COALESCE', 'CHR', 'CHARTOROWID', 'CEIL', 'CAST', 'BITAND', 'BIN_TO_NUM', 'BFILENAME', 'AVG', 'ATAN2', 'ATAN', 'ASIN', 'ASCIISTR', 'ASCII', 'ADD_MONTHS', 'ACOS', 'ABS'), - //PL/SQL packages (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96612/intro2.htm#1025672) + //PL/SQL packages (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96612/intro2.htm#1025672) 3 => array('UTL_URL', 'UTL_TCP', 'UTL_SMTP', 'UTL_REF', 'UTL_RAW', 'UTL_PG', 'UTL_INADDR', 'UTL_HTTP', 'UTL_FILE', 'UTL_ENCODE', 'UTL_COLL', 'SDO_UTIL', 'SDO_TUNE', 'SDO_MIGRATE', 'SDO_LRS', @@ -139,7 +139,7 @@ $language_data = array ( 'DBMS_DDL', 'DBMS_CAPTURE_ADM', 'DBMS_AW', 'DBMS_AQELM', 'DBMS_AQADM', 'DBMS_AQ', 'DBMS_APPLY_ADM', 'DBMS_APPLICATION_INFO', 'DBMS_ALERT', 'CWM2_OLAP_AW_ACCESS'), - //PL/SQL predefined exceptions (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/07_errs.htm#784) + //PL/SQL predefined exceptions (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/07_errs.htm#784) 4 => array('ZERO_DIVIDE', 'VALUE_ERROR', 'TOO_MANY_ROWS', 'TIMEOUT_ON_RESOURCE', 'SYS_INVALID_ROWID', 'SUBSCRIPT_OUTSIDE_LIMIT', 'SUBSCRIPT_BEYOND_COUNT', 'STORAGE_ERROR', 'SELF_IS_NULL', @@ -147,7 +147,7 @@ $language_data = array ( 'LOGIN_DENIED', 'INVALID_NUMBER', 'INVALID_CURSOR', 'DUP_VAL_ON_INDEX', 'CURSOR_ALREADY_OPEN', 'COLLECTION_IS_NULL', 'CASE_NOT_FOUND', 'ACCESS_INTO_NULL'), - //Static data dictionary views (http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96536/ch2.htm) + //Static data dictionary views (http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96536/ch2.htm) 5 => array('USER_REPSITES', 'USER_REPSCHEMA', 'USER_REPRESOLUTION_STATISTICS', 'USER_REPRESOLUTION_METHOD', 'USER_REPRESOLUTION', 'USER_REPRESOL_STATS_CONTROL', 'USER_REPPROP', @@ -189,68 +189,66 @@ $language_data = array ( 'ALL_REPCAT_TEMPLATE_SITES', 'ALL_REPCAT_TEMPLATE_PARMS', 'ALL_REPCAT_TEMPLATE_OBJECTS', 'ALL_REPCAT_REFRESH_TEMPLATES', 'ALL_REPCAT', 'ALL_REPAUDIT_COLUMN', 'ALL_REPAUDIT_ATTRIBUTE') - ), - 'SYMBOLS' => array( - //PL/SQL delimiters (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm#2732) - '+', '%', "'", '.', '/', '(', ')', ':', ',', '*', '"', '=', '<', '>', '@', ';', '-', ':=', '=>', '||', '**', '<<', '>>', '/*', '*/', '..', '<>', '!=', '~=', '^=', '<=', '>=' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => false, - 2 => false, - 3 => false, - 4 => false, - 5 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #00F;', - 2 => 'color: #000;', - 3 => 'color: #00F;', - 4 => 'color: #F00;', - 5 => 'color: #800;' - ), - 'COMMENTS' => array( - 1 => 'color: #080; font-style: italic;', - 'MULTI' => 'color: #080; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: #00F;' - ), - 'STRINGS' => array( - 0 => 'color: #F00;' - ), - 'NUMBERS' => array( - 0 => 'color: #800;' - ), - 'METHODS' => array( - 0 => 'color: #0F0;' - ), - 'SYMBOLS' => array( - 0 => 'color: #00F;' - ), - 'REGEXPS' => array( - ), - 'SCRIPT' => array( - 0 => 'color: #0F0;' - ) - ), - 'URLS' => array( - 1 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAME}', - 2 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAME}', - 3 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAME}', - 4 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAME}', - 5 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAME}' - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array(), - 'REGEXPS' => array(), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array(), - 'HIGHLIGHT_STRICT_BLOCK' => array() + ), + 'SYMBOLS' => array( + //PL/SQL delimiters (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm#2732) + '+', '%', "'", '.', '/', '(', ')', ':', ',', '*', '"', '=', '<', '>', '@', ';', '-', ':=', '=>', '||', '**', '<<', '>>', '/*', '*/', '..', '<>', '!=', '~=', '^=', '<=', '>=' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00F;', + 2 => 'color: #000;', + 3 => 'color: #00F;', + 4 => 'color: #F00;', + 5 => 'color: #800;' + ), + 'COMMENTS' => array( + 1 => 'color: #080; font-style: italic;', + 'MULTI' => 'color: #080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #00F;' + ), + 'STRINGS' => array( + 0 => 'color: #F00;' + ), + 'NUMBERS' => array( + 0 => 'color: #800;' + ), + 'METHODS' => array( + 0 => 'color: #0F0;' + ), + 'SYMBOLS' => array( + 0 => 'color: #00F;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + 0 => 'color: #0F0;' + ) + ), + 'URLS' => array( + 1 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAME}', + 2 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAME}', + 3 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAME}', + 4 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAME}', + 5 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAME}' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array(), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array() ); - -?> diff --git a/plugins/geshi/python.php b/plugins/geshi/python.php old mode 100644 new mode 100755 index 96b99d8..8a80589 --- a/plugins/geshi/python.php +++ b/plugins/geshi/python.php @@ -41,187 +41,185 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Python', - 'COMMENT_SINGLE' => array(1 => '#'), - 'COMMENT_MULTI' => array(), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array('"', "'", '"""'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( +$language_data = array( + 'LANG_NAME' => 'Python', + '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' - ), + /* + ** 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' + ), - /* - ** 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', - // self: this is a common python convention (but not a reserved word) - 'self' - ), + /* + ** 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', + // 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', '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', 'repr', 'resource', 'rexec', 'rfc822', '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' - ), + /* + ** 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', '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', 'repr', 'resource', 'rexec', 'rfc822', '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' + ), - /* - ** 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__','__repr__','__rand__','__rxor__','__ror__', - '__sub__','__xor__' - ) + /* + ** 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__','__repr__','__rand__','__rxor__','__ror__', + '__sub__','__xor__' + ) - ), - 'SYMBOLS' => array( - '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?', '`' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => true, + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?', '`' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => true, 2 => true, 3 => true, 4 => true - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #ff7700;font-weight:bold;', // Reserved - 2 => 'color: #008000;', // Built-ins + self - 3 => 'color: #dc143c;', // Standard lib - 4 => 'color: #0000cd;' // Special methods - ), - 'COMMENTS' => array( - 1 => 'color: #808080; font-style: italic;', - 'MULTI' => 'color: #808080; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: black;' - ), - 'STRINGS' => array( - 0 => 'color: #483d8b;' - ), - 'NUMBERS' => array( - 0 => 'color: #ff4500;' - ), - 'METHODS' => array( - 1 => 'color: black;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'REGEXPS' => array( - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.' - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #ff7700;font-weight:bold;', // Reserved + 2 => 'color: #008000;', // Built-ins + self + 3 => 'color: #dc143c;', // Standard lib + 4 => 'color: #0000cd;' // Special methods + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: black;' + ), + 'STRINGS' => array( + 0 => 'color: #483d8b;' + ), + 'NUMBERS' => array( + 0 => 'color: #ff4500;' + ), + 'METHODS' => array( + 1 => 'color: black;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/qbasic.php b/plugins/geshi/qbasic.php old mode 100644 new mode 100755 index 61dacfc..b2e9962 --- a/plugins/geshi/qbasic.php +++ b/plugins/geshi/qbasic.php @@ -47,100 +47,98 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'QBasic/QuickBASIC', - 'COMMENT_SINGLE' => array(1 => "'", 2 => ' REM', 3 => "\tREM"), - 'COMMENT_MULTI' => array(), - 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, - 'QUOTEMARKS' => array('"'), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - 1 => array( - 'DO', 'LOOP', 'WHILE', 'WEND', 'THEN', 'ELSE', 'ELSEIF', 'IF', - 'FOR', 'TO', 'NEXT', 'STEP', 'GOTO', 'GOSUB', 'RETURN', 'RESUME', 'SELECT', - 'CASE', 'UNTIL' - ), - 3 => array( - 'ABS', 'ABSOLUTE', 'ACCESS', 'ALIAS', 'AND', 'ANY', 'APPEND', 'AS', 'ASC', 'ATN', - 'BASE', 'BEEP', 'BINARY', 'BLOAD', 'BSAVE', 'BYVAL', 'CALL', 'CALLS', 'CASE', - 'CDBL', 'CDECL', 'CHAIN', 'CHDIR', 'CHDIR', 'CHR$', 'CINT', 'CIRCLE', 'CLEAR', - 'CLNG', 'CLOSE', 'CLS', 'COM', 'COMMAND$', 'COMMON', 'CONST', 'COS', 'CSNG', - 'CSRLIN', 'CVD', 'CVDMBF', 'CVI', 'CVL', 'CVS', 'CVSMDF', 'DATA', 'DATE$', - 'DECLARE', 'DEF', 'FN', 'SEG', 'DEFDBL', 'DEFINT', 'DEFLNG', 'DEFSNG', 'DEFSTR', - 'DIM', 'DOUBLE', 'DRAW', 'END', 'ENVIRON', 'ENVIRON$', 'EOF', 'EQV', 'ERASE', - 'ERDEV', 'ERDEV$', 'ERL', 'ERR', 'ERROR', 'EXIT', 'EXP', 'FIELD', 'FILEATTR', - 'FILES', 'FIX', 'FRE', 'FREEFILE', 'FUNCTION', 'GET', 'HEX$', 'IMP', 'INKEY$', - 'INP', 'INPUT', 'INPUT$', 'INSTR', 'INT', 'INTEGER', 'IOCTL', 'IOCTL$', 'IS', - 'KEY', 'KILL', 'LBOUND', 'LCASE$', 'LEFT$', 'LEN', 'LET', 'LINE', 'LIST', 'LOC', - 'LOCAL', 'LOCATE', 'LOCK', 'LOF', 'LOG', 'UNLOCK', 'LONG', 'LPOS', 'LPRINT', - 'LSET', 'LTRIM$', 'MID$', 'MKD$', 'MKDIR', 'MKDMBF$', 'MKI$', 'MKL$', - 'MKS$', 'MKSMBF$', 'MOD', 'NAME', 'NOT', 'OCT$', 'OFF', 'ON', 'PEN', 'PLAY', - 'STRIG', 'TIMER', 'UEVENT', 'OPEN', 'OPTION', 'BASE', 'OR', 'OUT', 'OUTPUT', - 'PAINT', 'PALETTE', 'PCOPY', 'PEEK', 'PMAP', 'POINT', 'POKE', 'POS', 'PRESET', - 'PRINT', 'USING', 'PSET', 'PUT', 'RANDOM', 'RANDOMIZE', 'READ', 'REDIM', 'RESET', - 'RESTORE', 'RIGHT$', 'RMDIR', 'RND', 'RSET', 'RTRIM$', 'RUN', 'SADD', 'SCREEN', - 'SEEK', 'SETMEM', 'SGN', 'SHARED', 'SHELL', 'SIGNAL', 'SIN', 'SINGLE', 'SLEEP', - 'SOUND', 'SPACE$', 'SPC', 'SQR', 'STATIC', 'STICK', 'STOP', 'STR$', 'STRIG', - 'STRING', 'STRING$', 'SUB', 'SWAP', 'SYSTEM', 'TAB', 'TAN', 'TIME$', 'TIMER', - 'TROFF', 'TRON', 'TYPE', 'UBOUND', 'UCASE$', 'UEVENT', 'UNLOCK', 'USING', 'VAL', - 'VARPTR', 'VARPTR$', 'VARSEG', 'VIEW', 'WAIT', 'WIDTH', 'WINDOW', 'WRITE', 'XOR' - ) - ), - 'SYMBOLS' => array( - '(', ')' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => false, - 3 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #a1a100;', - 3 => 'color: #000066;' - ), - 'COMMENTS' => array( - 1 => 'color: #808080;', - 2 => 'color: #808080;', - 3 => 'color: #808080;' - ), - 'BRACKETS' => array( - 0 => 'color: #66cc66;' - ), - 'STRINGS' => array( - 0 => 'color: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099;' - ), - 'SCRIPT' => array( - ), - 'REGEXPS' => array( - ) - ), - 'URLS' => array( - 1 => '', - 3 => 'http://www.qbasicnews.com/qboho/qck{FNAMEL}.shtml' - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( +$language_data = array( + 'LANG_NAME' => 'QBasic/QuickBASIC', + 'COMMENT_SINGLE' => array(1 => "'", 2 => ' REM', 3 => "\tREM"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'DO', 'LOOP', 'WHILE', 'WEND', 'THEN', 'ELSE', 'ELSEIF', 'IF', + 'FOR', 'TO', 'NEXT', 'STEP', 'GOTO', 'GOSUB', 'RETURN', 'RESUME', 'SELECT', + 'CASE', 'UNTIL' + ), + 3 => array( + 'ABS', 'ABSOLUTE', 'ACCESS', 'ALIAS', 'AND', 'ANY', 'APPEND', 'AS', 'ASC', 'ATN', + 'BASE', 'BEEP', 'BINARY', 'BLOAD', 'BSAVE', 'BYVAL', 'CALL', 'CALLS', 'CASE', + 'CDBL', 'CDECL', 'CHAIN', 'CHDIR', 'CHDIR', 'CHR$', 'CINT', 'CIRCLE', 'CLEAR', + 'CLNG', 'CLOSE', 'CLS', 'COM', 'COMMAND$', 'COMMON', 'CONST', 'COS', 'CSNG', + 'CSRLIN', 'CVD', 'CVDMBF', 'CVI', 'CVL', 'CVS', 'CVSMDF', 'DATA', 'DATE$', + 'DECLARE', 'DEF', 'FN', 'SEG', 'DEFDBL', 'DEFINT', 'DEFLNG', 'DEFSNG', 'DEFSTR', + 'DIM', 'DOUBLE', 'DRAW', 'END', 'ENVIRON', 'ENVIRON$', 'EOF', 'EQV', 'ERASE', + 'ERDEV', 'ERDEV$', 'ERL', 'ERR', 'ERROR', 'EXIT', 'EXP', 'FIELD', 'FILEATTR', + 'FILES', 'FIX', 'FRE', 'FREEFILE', 'FUNCTION', 'GET', 'HEX$', 'IMP', 'INKEY$', + 'INP', 'INPUT', 'INPUT$', 'INSTR', 'INT', 'INTEGER', 'IOCTL', 'IOCTL$', 'IS', + 'KEY', 'KILL', 'LBOUND', 'LCASE$', 'LEFT$', 'LEN', 'LET', 'LINE', 'LIST', 'LOC', + 'LOCAL', 'LOCATE', 'LOCK', 'LOF', 'LOG', 'UNLOCK', 'LONG', 'LPOS', 'LPRINT', + 'LSET', 'LTRIM$', 'MID$', 'MKD$', 'MKDIR', 'MKDMBF$', 'MKI$', 'MKL$', + 'MKS$', 'MKSMBF$', 'MOD', 'NAME', 'NOT', 'OCT$', 'OFF', 'ON', 'PEN', 'PLAY', + 'STRIG', 'TIMER', 'UEVENT', 'OPEN', 'OPTION', 'BASE', 'OR', 'OUT', 'OUTPUT', + 'PAINT', 'PALETTE', 'PCOPY', 'PEEK', 'PMAP', 'POINT', 'POKE', 'POS', 'PRESET', + 'PRINT', 'USING', 'PSET', 'PUT', 'RANDOM', 'RANDOMIZE', 'READ', 'REDIM', 'RESET', + 'RESTORE', 'RIGHT$', 'RMDIR', 'RND', 'RSET', 'RTRIM$', 'RUN', 'SADD', 'SCREEN', + 'SEEK', 'SETMEM', 'SGN', 'SHARED', 'SHELL', 'SIGNAL', 'SIN', 'SINGLE', 'SLEEP', + 'SOUND', 'SPACE$', 'SPC', 'SQR', 'STATIC', 'STICK', 'STOP', 'STR$', 'STRIG', + 'STRING', 'STRING$', 'SUB', 'SWAP', 'SYSTEM', 'TAB', 'TAN', 'TIME$', 'TIMER', + 'TROFF', 'TRON', 'TYPE', 'UBOUND', 'UCASE$', 'UEVENT', 'UNLOCK', 'USING', 'VAL', + 'VARPTR', 'VARPTR$', 'VARSEG', 'VIEW', 'WAIT', 'WIDTH', 'WINDOW', 'WRITE', 'XOR' + ) + ), + 'SYMBOLS' => array( + '(', ')' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 3 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #a1a100;', + 3 => 'color: #000066;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080;', + 2 => 'color: #808080;', + 3 => 'color: #808080;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 3 => 'http://www.qbasicnews.com/qboho/qck{FNAMEL}.shtml' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( ), 'TAB_WIDTH' => 8 ); - -?> diff --git a/plugins/geshi/rails.php b/plugins/geshi/rails.php old mode 100644 new mode 100755 index c7e3960..cf1de6c --- a/plugins/geshi/rails.php +++ b/plugins/geshi/rails.php @@ -29,7 +29,7 @@ * ************************************************************************************/ -$language_data = array ( +$language_data = array( 'LANG_NAME' => 'Rails', 'COMMENT_SINGLE' => array(1 => "#"), 'COMMENT_MULTI' => array("=begin" => "=end"), @@ -400,5 +400,3 @@ $language_data = array ( 0 => true, ) ); - -?> diff --git a/plugins/geshi/reg.php b/plugins/geshi/reg.php old mode 100644 new mode 100755 index 3957f3b..284cf75 --- a/plugins/geshi/reg.php +++ b/plugins/geshi/reg.php @@ -56,159 +56,158 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Microsoft Registry', - 'COMMENT_SINGLE' => array(1 =>';'), - 'COMMENT_MULTI' => array( ), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array(), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - 1 => array(), - 2 => array() - /* Registry Key Constants Not Used - 3 => array( - 'HKEY_LOCAL_MACHINE', - 'HKEY_CLASSES_ROOT', - 'HKEY_CURRENT_USER', - 'HKEY_USERS', - 'HKEY_CURRENT_CONFIG', - 'HKEY_DYN_DATA', - 'HKLM', 'HKCR', 'HKCU', 'HKU', 'HKCC', 'HKDD' - )/***/ - ), - 'SYMBOLS' => array( ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => false, - 2 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( 1 => 'color: #00CCFF;', - 2 => 'color: #0000FF;' ), - 'COMMENTS' => array( 1 => 'color: #009900;' ), - 'ESCAPE_CHAR' => array(), - 'BRACKETS' => array(0 => 'color: #000000;'), - 'STRINGS' => array( 0 => 'color: #009900;' ), - 'NUMBERS' => array(), - 'METHODS' => array(), - 'SYMBOLS' => array(0 => 'color: #000000;'), - 'SCRIPT' => array(), - 'REGEXPS' => array( - 0 => '', - 1 => 'color: #0000FF;', - 2 => '', - 3 => '', - 4 => 'color: #0000FF;', - 5 => '', - 6 => '', - 7 => '', - 8 => '', - 9 => 'color: #FF6600;', - ) - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - // Highlight Key Delimiters - 0 => array( - GESHI_SEARCH => '((^|\\n)\\s*)(\\\\\\[(.*)\\\\\\])(\\s*(\\n|$))', - GESHI_REPLACE => '\\3', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '\\1', - GESHI_AFTER => '\\5', - GESHI_CLASS => 'kw1' - ), - // Highlight File Format Header Version 5 - 1 => array( - GESHI_SEARCH => '((\\n|^)\\s*)(Windows Registry Editor Version [0-9]+(.)+([0-9]+))((\\n|$)\\s*)', - GESHI_REPLACE => '\\3', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '\\1', - GESHI_AFTER => '\\6', - GESHI_CLASS => 'geshi_registry_header' - ), - // Highlight File Format Header Version 4 - 2 => array( - GESHI_SEARCH => '((\\n|^)\\s*)(REGEDIT [0-9]+)(\\s*(\\n|$))', - GESHI_REPLACE => '\\3', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '\\1', - GESHI_AFTER => '\\4', - GESHI_CLASS => 'geshi_registry_header' - ), - // Highlight dword: 32 bit integer values - 3 => array( - GESHI_SEARCH => '(=\\s*)(dword:[0-9]{8})(\\s*(\\n|$))', - GESHI_REPLACE => '\\2', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '\\1', - GESHI_AFTER => '\\3', - GESHI_CLASS => 'kw2' - ), - // Highlight variable names - 4 => array( - GESHI_SEARCH => '((\\n|^)\\s*\\"\\;)(.*)(\\"\\;\\s*=)', - GESHI_REPLACE => '\\3', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '\\1', - GESHI_AFTER => '\\4', - GESHI_CLASS => 'geshi_variable' - ), - // Highlight String Values - 5 => array( - GESHI_SEARCH => '(=\\s*)(\\"\\;.*\\"\\;)(\\s*(\\n|$))', - GESHI_REPLACE => '\\2', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '\\1', - GESHI_AFTER => '\\3', - GESHI_CLASS => 'st0' - ), - // Highlight Hexadecimal Values - 6 => array( - GESHI_SEARCH => '(=\\s*)(hex((\\\\\\([0-9]{1,2}\\\\\\))|()):(([0-9a-fA-F]{2},)|(\\s))*(([0-9a-fA-F]{2})|(\\\\\\\\)))(\\s*(\\n|$))', - GESHI_REPLACE => '\\2', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '\\1', - GESHI_AFTER => '\\12', - GESHI_CLASS => 'kw2' - ), - // Highlight Hexadecimal Values (Multi-Line) - 7 => array( - GESHI_SEARCH => '((\\n|^)\\s*)((([0-9a-fA-F]{2},)|(\\s))*(([0-9a-fA-F]{2})|(\\\\\\\\)))', - GESHI_REPLACE => '\\3', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '\\1', - GESHI_AFTER => '\\10', - GESHI_CLASS => 'kw2' - ), - // Highlight Default Variable - 8 => array( - GESHI_SEARCH => '((\\n|^)\\s*)(@)(\\s*=)', - GESHI_REPLACE => '\\3', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '\\1', - GESHI_AFTER => '\\4', - GESHI_CLASS => 'geshi_variable' - ), - // Highlight GUID's found anywhere. - 9 => array( - GESHI_SEARCH => '(\\{[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\\})', - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '', - GESHI_AFTER => '', - GESHI_CLASS => 'geshi_guid' - ) - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) +$language_data = array( + 'LANG_NAME' => 'Microsoft Registry', + 'COMMENT_SINGLE' => array(1 =>';'), + 'COMMENT_MULTI' => array( ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array(), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array(), + 2 => array() + /* Registry Key Constants Not Used + 3 => array( + 'HKEY_LOCAL_MACHINE', + 'HKEY_CLASSES_ROOT', + 'HKEY_CURRENT_USER', + 'HKEY_USERS', + 'HKEY_CURRENT_CONFIG', + 'HKEY_DYN_DATA', + 'HKLM', 'HKCR', 'HKCU', 'HKU', 'HKCC', 'HKDD' + )/***/ + ), + 'SYMBOLS' => array( ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( 1 => 'color: #00CCFF;', + 2 => 'color: #0000FF;' ), + 'COMMENTS' => array( 1 => 'color: #009900;' ), + 'ESCAPE_CHAR' => array(), + 'BRACKETS' => array(0 => 'color: #000000;'), + 'STRINGS' => array( 0 => 'color: #009900;' ), + 'NUMBERS' => array(), + 'METHODS' => array(), + 'SYMBOLS' => array(0 => 'color: #000000;'), + 'SCRIPT' => array(), + 'REGEXPS' => array( + 0 => '', + 1 => 'color: #0000FF;', + 2 => '', + 3 => '', + 4 => 'color: #0000FF;', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => 'color: #FF6600;', + ) + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + // Highlight Key Delimiters + 0 => array( + GESHI_SEARCH => '((^|\\n)\\s*)(\\\\\\[(.*)\\\\\\])(\\s*(\\n|$))', + GESHI_REPLACE => '\\3', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\5', + GESHI_CLASS => 'kw1' + ), + // Highlight File Format Header Version 5 + 1 => array( + GESHI_SEARCH => '((\\n|^)\\s*)(Windows Registry Editor Version [0-9]+(.)+([0-9]+))((\\n|$)\\s*)', + GESHI_REPLACE => '\\3', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\6', + GESHI_CLASS => 'geshi_registry_header' + ), + // Highlight File Format Header Version 4 + 2 => array( + GESHI_SEARCH => '((\\n|^)\\s*)(REGEDIT [0-9]+)(\\s*(\\n|$))', + GESHI_REPLACE => '\\3', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\4', + GESHI_CLASS => 'geshi_registry_header' + ), + // Highlight dword: 32 bit integer values + 3 => array( + GESHI_SEARCH => '(=\\s*)(dword:[0-9]{8})(\\s*(\\n|$))', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\3', + GESHI_CLASS => 'kw2' + ), + // Highlight variable names + 4 => array( + GESHI_SEARCH => '((\\n|^)\\s*\\"\\;)(.*)(\\"\\;\\s*=)', + GESHI_REPLACE => '\\3', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\4', + GESHI_CLASS => 'geshi_variable' + ), + // Highlight String Values + 5 => array( + GESHI_SEARCH => '(=\\s*)(\\"\\;.*\\"\\;)(\\s*(\\n|$))', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\3', + GESHI_CLASS => 'st0' + ), + // Highlight Hexadecimal Values + 6 => array( + GESHI_SEARCH => '(=\\s*)(hex((\\\\\\([0-9]{1,2}\\\\\\))|()):(([0-9a-fA-F]{2},)|(\\s))*(([0-9a-fA-F]{2})|(\\\\\\\\)))(\\s*(\\n|$))', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\12', + GESHI_CLASS => 'kw2' + ), + // Highlight Hexadecimal Values (Multi-Line) + 7 => array( + GESHI_SEARCH => '((\\n|^)\\s*)((([0-9a-fA-F]{2},)|(\\s))*(([0-9a-fA-F]{2})|(\\\\\\\\)))', + GESHI_REPLACE => '\\3', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\10', + GESHI_CLASS => 'kw2' + ), + // Highlight Default Variable + 8 => array( + GESHI_SEARCH => '((\\n|^)\\s*)(@)(\\s*=)', + GESHI_REPLACE => '\\3', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\4', + GESHI_CLASS => 'geshi_variable' + ), + // Highlight GUID's found anywhere. + 9 => array( + GESHI_SEARCH => '(\\{[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\\})', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '', + GESHI_CLASS => 'geshi_guid' + ) + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); if (isset($this) && is_a($this, 'GeSHi')) { $this->set_numbers_highlighting(false); } -?> diff --git a/plugins/geshi/robots.php b/plugins/geshi/robots.php old mode 100644 new mode 100755 index 5746a56..917abbb --- a/plugins/geshi/robots.php +++ b/plugins/geshi/robots.php @@ -32,7 +32,7 @@ * ************************************************************************************/ -$language_data = array ( +$language_data = array( 'LANG_NAME' => 'robots.txt', 'COMMENT_SINGLE' => array(1 => '#'), 'COMMENT_MULTI' => array(), @@ -94,5 +94,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/plugins/geshi/ruby.php b/plugins/geshi/ruby.php old mode 100644 new mode 100755 index 1c00787..3c2095b --- a/plugins/geshi/ruby.php +++ b/plugins/geshi/ruby.php @@ -29,7 +29,7 @@ * ************************************************************************************/ -$language_data = array ( +$language_data = array( 'LANG_NAME' => 'Ruby', 'COMMENT_SINGLE' => array(1 => "#"), 'COMMENT_MULTI' => array("=begin" => "=end"), @@ -215,5 +215,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 2 ); - -?> diff --git a/plugins/geshi/sas.php b/plugins/geshi/sas.php old mode 100644 new mode 100755 index 12c9642..41ab041 --- a/plugins/geshi/sas.php +++ b/plugins/geshi/sas.php @@ -39,7 +39,7 @@ * ************************************************************************************/ -$language_data = array ( +$language_data = array( 'LANG_NAME' => 'SAS', 'COMMENT_SINGLE' => array(), 'COMMENT_MULTI' => array('/*' => '*/'), @@ -353,5 +353,3 @@ $language_data = array ( ) ); - -?> diff --git a/plugins/geshi/scheme.php b/plugins/geshi/scheme.php old mode 100644 new mode 100755 index 70be0ce..7afca1a --- a/plugins/geshi/scheme.php +++ b/plugins/geshi/scheme.php @@ -37,134 +37,132 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Scheme', - 'COMMENT_SINGLE' => array(1 => ';'), - 'COMMENT_MULTI' => array(';|' => '|;'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array('"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - 'abs', 'acos', 'and', 'angle', 'append', 'appply', 'approximate', - 'asin', 'assoc', 'assq', 'assv', 'atan', +$language_data = array( + 'LANG_NAME' => 'Scheme', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(';|' => '|;'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'abs', 'acos', 'and', 'angle', 'append', 'appply', 'approximate', + 'asin', 'assoc', 'assq', 'assv', 'atan', - 'begin', 'boolean?', 'bound-identifier=?', + 'begin', 'boolean?', 'bound-identifier=?', - 'caar', 'caddr', 'cadr', 'call-with-current-continuation', - 'call-with-input-file', 'call-with-output-file', 'call/cc', 'car', - 'case', 'catch', 'cdddar', 'cddddr', 'cdr', 'ceiling', 'char->integer', - 'char-alphabetic?', 'char-ci<=?', 'char-ci=?', - 'char-ci>?', 'char-ci=?', 'char-downcase', 'char-lower-case?', - 'char-numeric', 'char-ready', 'char-ready?', 'char-upcase', - 'char-upper-case?', 'char-whitespace?', 'char<=?', 'char=?', 'char>?', 'char?', 'close-input-port', 'close-output-port', - 'complex?', 'cond', 'cons', 'construct-identifier', 'cos', - 'current-input-port', 'current-output-port', + 'caar', 'caddr', 'cadr', 'call-with-current-continuation', + 'call-with-input-file', 'call-with-output-file', 'call/cc', 'car', + 'case', 'catch', 'cdddar', 'cddddr', 'cdr', 'ceiling', 'char->integer', + 'char-alphabetic?', 'char-ci<=?', 'char-ci=?', + 'char-ci>?', 'char-ci=?', 'char-downcase', 'char-lower-case?', + 'char-numeric', 'char-ready', 'char-ready?', 'char-upcase', + 'char-upper-case?', 'char-whitespace?', 'char<=?', 'char=?', 'char>?', 'char?', 'close-input-port', 'close-output-port', + 'complex?', 'cond', 'cons', 'construct-identifier', 'cos', + 'current-input-port', 'current-output-port', - 'd', 'define', 'define-syntax', 'delay', 'denominator', 'display', 'do', + 'd', 'define', 'define-syntax', 'delay', 'denominator', 'display', 'do', - 'e', 'eof-object?', 'eq?', 'equal?', 'eqv?', 'even?', 'exact->inexact', - 'exact?', 'exp', 'expt', 'else', + 'e', 'eof-object?', 'eq?', 'equal?', 'eqv?', 'even?', 'exact->inexact', + 'exact?', 'exp', 'expt', 'else', - 'f', 'floor', 'for-each', 'force', 'free-identifer=?', + 'f', 'floor', 'for-each', 'force', 'free-identifer=?', - 'gcd', 'gen-counter', 'gen-loser', 'generate-identifier', + 'gcd', 'gen-counter', 'gen-loser', 'generate-identifier', - 'identifier->symbol', 'identifier', 'if', 'imag-part', 'inexact->exact', - 'inexact?', 'input-port?', 'integer->char', 'integer?', 'integrate-system', + 'identifier->symbol', 'identifier', 'if', 'imag-part', 'inexact->exact', + 'inexact?', 'input-port?', 'integer->char', 'integer?', 'integrate-system', - 'l', 'lambda', 'last-pair', 'lcm', 'length', 'let', 'let*', 'letrec', - 'list', 'list->string', 'list->vector', 'list-ref', 'list-tail', 'list?', - 'load', 'log', + 'l', 'lambda', 'last-pair', 'lcm', 'length', 'let', 'let*', 'letrec', + 'list', 'list->string', 'list->vector', 'list-ref', 'list-tail', 'list?', + 'load', 'log', - 'magnitude', 'make-polar', 'make-promise', 'make-rectangular', - 'make-string', 'make-vector', 'map', 'map-streams', 'max', 'member', - 'memq', 'memv', 'min', 'modulo', + 'magnitude', 'make-polar', 'make-promise', 'make-rectangular', + 'make-string', 'make-vector', 'map', 'map-streams', 'max', 'member', + 'memq', 'memv', 'min', 'modulo', - 'negative', 'newline', 'nil', 'not', 'null?', 'number->string', 'number?', - 'numerator', + 'negative', 'newline', 'nil', 'not', 'null?', 'number->string', 'number?', + 'numerator', - 'odd?', 'open-input-file', 'open-output-file', 'or', 'output-port', + 'odd?', 'open-input-file', 'open-output-file', 'or', 'output-port', - 'pair?', 'peek-char', 'positive?', 'procedure?', + 'pair?', 'peek-char', 'positive?', 'procedure?', - 'quasiquote', 'quote', 'quotient', + 'quasiquote', 'quote', 'quotient', - 'rational', 'rationalize', 'read', 'read-char', 'real-part', 'real?', - 'remainder', 'return', 'reverse', + 'rational', 'rationalize', 'read', 'read-char', 'real-part', 'real?', + 'remainder', 'return', 'reverse', - 's', 'sequence', 'set!', 'set-char!', 'set-cdr!', 'sin', 'sqrt', 'string', - 'string->list', 'string->number', 'string->symbol', 'string-append', - 'string-ci<=?', 'string-ci=?', - 'string-ci>?', 'string-copy', 'string-fill!', 'string-length', - 'string-ref', 'string-set!', 'string<=?', 'string=?', 'string>?', 'string?', 'substring', 'symbol->string', - 'symbol?', 'syntax', 'syntax-rules', + 's', 'sequence', 'set!', 'set-char!', 'set-cdr!', 'sin', 'sqrt', 'string', + 'string->list', 'string->number', 'string->symbol', 'string-append', + 'string-ci<=?', 'string-ci=?', + 'string-ci>?', 'string-copy', 'string-fill!', 'string-length', + 'string-ref', 'string-set!', 'string<=?', 'string=?', 'string>?', 'string?', 'substring', 'symbol->string', + 'symbol?', 'syntax', 'syntax-rules', - 't', 'tan', 'template', 'transcript-off', 'transcript-on', 'truncate', + 't', 'tan', 'template', 'transcript-off', 'transcript-on', 'truncate', - 'unquote', 'unquote-splicing', 'unwrap-syntax', + 'unquote', 'unquote-splicing', 'unwrap-syntax', - 'vector', 'vector->list', 'vector-fill!', 'vector-length', 'vector-ref', - 'vector-set!', 'vector?', + 'vector', 'vector->list', 'vector-fill!', 'vector-length', 'vector-ref', + 'vector-set!', 'vector?', - 'with-input-from-file', 'with-output-to-file', 'write', 'write-char', + 'with-input-from-file', 'with-output-to-file', 'write', 'write-char', - 'zero?' + 'zero?' - ) - ), - 'SYMBOLS' => array( - '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #b1b100;' - ), - 'COMMENTS' => array( - 1 => 'color: #808080; 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: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( - 0 => 'color: #202020;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'REGEXPS' => array( - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + ) + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; 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: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 0 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/sdlbasic.php b/plugins/geshi/sdlbasic.php old mode 100644 new mode 100755 index f71721e..1cf317d --- a/plugins/geshi/sdlbasic.php +++ b/plugins/geshi/sdlbasic.php @@ -33,15 +33,15 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ************************************************************************************/ - $language_data = array ( - 'LANG_NAME' => 'sdlBasic', - 'COMMENT_SINGLE' => array(1 => "'", 2 => "rem", 3 => "!", 4 => "#"), - 'COMMENT_MULTI' => array(), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array('"'), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - 1 => array( + $language_data = array( + 'LANG_NAME' => 'sdlBasic', + 'COMMENT_SINGLE' => array(1 => "'", 2 => "rem", 3 => "!", 4 => "#"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( 'const', 'option', 'explicit', 'option', 'qbasic', 'include', 'argc', 'argv', 'command', 'command$', 'run', 'shell', 'end', 'os', 'declare', 'sub', 'function', 'return', 'while', 'wend', 'exit', 'while', 'end', @@ -104,58 +104,56 @@ 'readlinesock', 'writesock', 'writebytesock', 'writelinesock', 'getremoteip', 'getremoteport', 'getlocalip' ) - ), - 'SYMBOLS' => array( - '(', ')' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #b1b100;' - ), - 'COMMENTS' => array( - 1 => 'color: #808080;', - 2 => 'color: #808080;', - 3 => 'color: #808080;', - 4 => 'color: #808080;' - ), - 'BRACKETS' => array( - 0 => 'color: #66cc66;' - ), - 'STRINGS' => array( - 0 => 'color: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( - 0 => 'color: #66cc66;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099;' - ), - 'SCRIPT' => array( - ), - 'REGEXPS' => array( - ) - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.' - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + ), + 'SYMBOLS' => array( + '(', ')' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080;', + 2 => 'color: #808080;', + 3 => 'color: #808080;', + 4 => 'color: #808080;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 0 => 'color: #66cc66;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/smalltalk.php b/plugins/geshi/smalltalk.php old mode 100644 new mode 100755 index 4e7e337..8953803 --- a/plugins/geshi/smalltalk.php +++ b/plugins/geshi/smalltalk.php @@ -38,122 +38,120 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Smalltalk', - 'COMMENT_SINGLE' => array(), - 'COMMENT_MULTI' => array('"' => '"'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'"), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - 1 => array('self','super','true','false','nil') - ), - 'SYMBOLS' => array( - '[', ']', '=' , ':=', '(', ')', '#' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => true - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #7f007f;' - ), - 'COMMENTS' => array( - 'MULTI' => 'color: #007f00; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - 0 => '' - ), - 'BRACKETS' => array( - 0 => '' - ), - 'STRINGS' => array( - 0 => 'color: #7f0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #7f0000;' - ), - 'METHODS' => array( - 0 => '' - ), - 'SYMBOLS' => array( - 0 => 'color: #000066; font-weight:bold;' - ), - 'REGEXPS' => array( - 0 => 'color: #0000ff;', - 1 => 'color: #7f0000;', - 2 => 'color: #7f0000;', - 3 => 'color: #00007f;', - 4 => 'color: #7f007f;', - 5 => 'color: #00007f;', - 6 => 'color: #00007f;' - ), - 'SCRIPT' => array( - 0 => '' - ) - ), - 'URLS' => array( - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - 0 => array( - GESHI_SEARCH => '([^a-zA-Z0-9_#])([A-Z]+[a-zA-Z0-9_]*)', //class names - GESHI_REPLACE => '\\2', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '\\1', - GESHI_AFTER => '' - ), - 1 => array( - GESHI_SEARCH => '(#+)([a-zA-Z0-9_]+)', //symbols - GESHI_REPLACE => '\\1\\2', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '', - GESHI_AFTER => '' - ), - 2 => array( - GESHI_SEARCH => '(#\s*\([^)]*\))', //array symbols - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '', - GESHI_AFTER => '' - ), - 3 => array( - GESHI_SEARCH => '\|([a-zA-Z0-9_\s]+)\|', //temporary variables - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '|', - GESHI_AFTER => '|' - ), - 4 => array( - GESHI_SEARCH => '(self|super|true|false|nil)', //keywords again (to avoid matching in next regexp) - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '', - GESHI_AFTER => '' - ), - 5 => array( - GESHI_SEARCH => '([:(,=[.*/+-]\s*)([a-zA-Z0-9_]+)', //message parameters, message receivers - GESHI_REPLACE => '\\2', - GESHI_MODIFIERS => 's', - GESHI_BEFORE => '\\1', - GESHI_AFTER => '' - ), - 6 => array( - GESHI_SEARCH => '([a-zA-Z0-9_]+)(\s*:=)', //assignment targets - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '', - GESHI_AFTER => '\\2' - ) - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) +$language_data = array( + 'LANG_NAME' => 'Smalltalk', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array('"' => '"'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'"), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array('self','super','true','false','nil') + ), + 'SYMBOLS' => array( + '[', ']', '=' , ':=', '(', ')', '#' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #7f007f;' + ), + 'COMMENTS' => array( + 'MULTI' => 'color: #007f00; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => '' + ), + 'STRINGS' => array( + 0 => 'color: #7f0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #7f0000;' + ), + 'METHODS' => array( + 0 => '' + ), + 'SYMBOLS' => array( + 0 => 'color: #000066; font-weight:bold;' + ), + 'REGEXPS' => array( + 0 => 'color: #0000ff;', + 1 => 'color: #7f0000;', + 2 => 'color: #7f0000;', + 3 => 'color: #00007f;', + 4 => 'color: #7f007f;', + 5 => 'color: #00007f;', + 6 => 'color: #00007f;' + ), + 'SCRIPT' => array( + 0 => '' + ) + ), + 'URLS' => array( + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 0 => array( + GESHI_SEARCH => '([^a-zA-Z0-9_#])([A-Z]+[a-zA-Z0-9_]*)', //class names + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '' + ), + 1 => array( + GESHI_SEARCH => '(#+)([a-zA-Z0-9_]+)', //symbols + GESHI_REPLACE => '\\1\\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 2 => array( + GESHI_SEARCH => '(#\s*\([^)]*\))', //array symbols + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 3 => array( + GESHI_SEARCH => '\|([a-zA-Z0-9_\s]+)\|', //temporary variables + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '|', + GESHI_AFTER => '|' + ), + 4 => array( + GESHI_SEARCH => '(self|super|true|false|nil)', //keywords again (to avoid matching in next regexp) + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 5 => array( + GESHI_SEARCH => '([:(,=[.*/+-]\s*)([a-zA-Z0-9_]+)', //message parameters, message receivers + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => 's', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '' + ), + 6 => array( + GESHI_SEARCH => '([a-zA-Z0-9_]+)(\s*:=)', //assignment targets + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '\\2' + ) + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/smarty.php b/plugins/geshi/smarty.php old mode 100644 new mode 100755 index 02613a0..cc22adc --- a/plugins/geshi/smarty.php +++ b/plugins/geshi/smarty.php @@ -37,136 +37,134 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Smarty', - 'COMMENT_SINGLE' => array(), - 'COMMENT_MULTI' => array('{*' => '*}'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - '$smarty', 'now', 'const', 'capture', 'config', 'section', 'foreach', 'template', 'version', 'ldelim', 'rdelim', - 'config_load', 'foreachelse', 'include', 'include_php', 'insert', 'if', 'elseif', 'else', 'php', - 'sectionelse', 'clear_all_cache', 'clear_cache', 'is_cached', - ), - 2 => array( - 'capitalize', 'count_characters', 'cat', 'count_paragraphs', 'count_sentences', 'count_words', 'date_format', - 'default', 'escape', 'indent', 'lower', 'nl2br', 'regex_replace', 'replace', 'spacify', 'string_format', - 'strip', 'strip_tags', 'truncate', 'upper', 'wordwrap' - ), - 3 => array( - 'assign', 'counter', 'cycle', 'debug', 'eval', 'fetch', 'html_checkboxes', 'html_image', 'html_options', - 'html_radios', 'html_select_date', 'html_select_time', 'html_table', 'math', 'mailto', 'popup_init', - 'popup', 'textformat' - ), - 4 => array( - '$template_dir', '$compile_dir', '$config_dir', '$plugins_dir', '$debugging', '$debug_tpl', - '$debugging_ctrl', '$autoload_filters', '$compile_check', '$force_compile', '$caching', '$cache_dir', - '$cache_lifetime', '$cache_handler_func', '$cache_modified_check', '$config_overwrite', - '$config_booleanize', '$config_read_hidden', '$config_fix_newlines', '$default_template_handler_func', - '$php_handling', '$security', '$secure_dir', '$security_settings', '$trusted_dir', '$left_delimiter', - '$right_delimiter', '$compiler_class', '$request_vars_order', '$request_use_auto_globals', - '$error_reporting', '$compile_id', '$use_sub_dirs', '$default_modifiers', '$default_resource_type' - ), - 5 => array( - 'append', 'append_by_ref', 'assign', 'assign_by_ref', 'clear_all_assign', 'clear_all_cache', - 'clear_assign', 'clear_cache', 'clear_compiled_tpl', 'clear_config', 'config_load', 'display', - 'fetch', 'get_config_vars', 'get_registered_object', 'get_template_vars', 'is_cached', - 'load_filter', 'register_block', 'register_compiler_function', 'register_function', - 'register_modifier', 'register_object', 'register_outputfilter', 'register_postfilter', - 'register_prefilter', 'register_resource', 'trigger_error', 'template_exists', 'unregister_block', - 'unregister_compiler_function', 'unregister_function', 'unregister_modifier', 'unregister_object', - 'unregister_outputfilter', 'unregister_postfilter', 'unregister_prefilter', 'unregister_resource' - ), - 6 => array( - 'name', 'assign', 'file', 'scope', 'global', 'key', 'once', 'script', - 'loop', 'start', 'step', 'max', 'show', 'values', 'value', 'from', 'item' - ), - 7 => array( - 'eq', 'neq', 'ne', 'lte', 'gte', 'ge', 'le', 'not', 'mod' - ), - ), - 'SYMBOLS' => array( - '/', '=', '==', '!=', '>', '<', '>=', '<=', '!', '%' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => false, - 2 => false, - 3 => false, - 4 => false, - 5 => false, - 6 => false, - 7 => false, - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #0600FF;', //Functions - 2 => 'color: #008000;', //Modifiers - 3 => 'color: #0600FF;', //Custom Functions - 4 => 'color: #804040;', //Variables - 5 => 'color: #008000;', //Methods - 6 => 'color: #6A0A0A;', //Attributes - 7 => 'color: #D36900;' //Text-based symbols - ), - 'COMMENTS' => array( - 'MULTI' => 'color: #008080; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: #D36900;' - ), - 'STRINGS' => array( - 0 => 'color: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( - 1 => 'color: #006600;' - ), - 'SYMBOLS' => array( - 0 => 'color: #D36900;' - ), - 'SCRIPT' => array( +$language_data = array( + 'LANG_NAME' => 'Smarty', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array('{*' => '*}'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + '$smarty', 'now', 'const', 'capture', 'config', 'section', 'foreach', 'template', 'version', 'ldelim', 'rdelim', + 'config_load', 'foreachelse', 'include', 'include_php', 'insert', 'if', 'elseif', 'else', 'php', + 'sectionelse', 'clear_all_cache', 'clear_cache', 'is_cached', + ), + 2 => array( + 'capitalize', 'count_characters', 'cat', 'count_paragraphs', 'count_sentences', 'count_words', 'date_format', + 'default', 'escape', 'indent', 'lower', 'nl2br', 'regex_replace', 'replace', 'spacify', 'string_format', + 'strip', 'strip_tags', 'truncate', 'upper', 'wordwrap' + ), + 3 => array( + 'assign', 'counter', 'cycle', 'debug', 'eval', 'fetch', 'html_checkboxes', 'html_image', 'html_options', + 'html_radios', 'html_select_date', 'html_select_time', 'html_table', 'math', 'mailto', 'popup_init', + 'popup', 'textformat' + ), + 4 => array( + '$template_dir', '$compile_dir', '$config_dir', '$plugins_dir', '$debugging', '$debug_tpl', + '$debugging_ctrl', '$autoload_filters', '$compile_check', '$force_compile', '$caching', '$cache_dir', + '$cache_lifetime', '$cache_handler_func', '$cache_modified_check', '$config_overwrite', + '$config_booleanize', '$config_read_hidden', '$config_fix_newlines', '$default_template_handler_func', + '$php_handling', '$security', '$secure_dir', '$security_settings', '$trusted_dir', '$left_delimiter', + '$right_delimiter', '$compiler_class', '$request_vars_order', '$request_use_auto_globals', + '$error_reporting', '$compile_id', '$use_sub_dirs', '$default_modifiers', '$default_resource_type' + ), + 5 => array( + 'append', 'append_by_ref', 'assign', 'assign_by_ref', 'clear_all_assign', 'clear_all_cache', + 'clear_assign', 'clear_cache', 'clear_compiled_tpl', 'clear_config', 'config_load', 'display', + 'fetch', 'get_config_vars', 'get_registered_object', 'get_template_vars', 'is_cached', + 'load_filter', 'register_block', 'register_compiler_function', 'register_function', + 'register_modifier', 'register_object', 'register_outputfilter', 'register_postfilter', + 'register_prefilter', 'register_resource', 'trigger_error', 'template_exists', 'unregister_block', + 'unregister_compiler_function', 'unregister_function', 'unregister_modifier', 'unregister_object', + 'unregister_outputfilter', 'unregister_postfilter', 'unregister_prefilter', 'unregister_resource' + ), + 6 => array( + 'name', 'assign', 'file', 'scope', 'global', 'key', 'once', 'script', + 'loop', 'start', 'step', 'max', 'show', 'values', 'value', 'from', 'item' + ), + 7 => array( + 'eq', 'neq', 'ne', 'lte', 'gte', 'ge', 'le', 'not', 'mod' + ), + ), + 'SYMBOLS' => array( + '/', '=', '==', '!=', '>', '<', '>=', '<=', '!', '%' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0600FF;', //Functions + 2 => 'color: #008000;', //Modifiers + 3 => 'color: #0600FF;', //Custom Functions + 4 => 'color: #804040;', //Variables + 5 => 'color: #008000;', //Methods + 6 => 'color: #6A0A0A;', //Attributes + 7 => 'color: #D36900;' //Text-based symbols + ), + 'COMMENTS' => array( + 'MULTI' => 'color: #008080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #D36900;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #D36900;' + ), + 'SCRIPT' => array( 0 => '' - ), - 'REGEXPS' => array( - ) - ), - 'URLS' => array( - 1 => 'http://smarty.php.net/{FNAME}', - 2 => 'http://smarty.php.net/{FNAME}', - 3 => 'http://smarty.php.net/{FNAME}', - 4 => 'http://smarty.php.net/{FNAME}', - 5 => 'http://smarty.php.net/{FNAME}', - 6 => '', - 7 => 'http://smarty.php.net/{FNAME}' - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.' - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_ALWAYS, - 'SCRIPT_DELIMITERS' => array( - 0 => array( - '{' => '}' - ) - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - 0 => true - ), - 'PARSER_CONTROL' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => 'http://smarty.php.net/{FNAME}', + 2 => 'http://smarty.php.net/{FNAME}', + 3 => 'http://smarty.php.net/{FNAME}', + 4 => 'http://smarty.php.net/{FNAME}', + 5 => 'http://smarty.php.net/{FNAME}', + 6 => '', + 7 => 'http://smarty.php.net/{FNAME}' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_ALWAYS, + 'SCRIPT_DELIMITERS' => array( + 0 => array( + '{' => '}' + ) + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => true + ), + 'PARSER_CONTROL' => array( 'KEYWORDS' => array( 'DISALLOWED_BEFORE' => "a-zA-Z0-9\$_\|\#;>|^", 'DISALLOWED_AFTER' => "a-zA-Z0-9_<\|%\\-&" ) ) ); - -?> diff --git a/plugins/geshi/sql.php b/plugins/geshi/sql.php old mode 100644 new mode 100755 index b21298e..cc09638 --- a/plugins/geshi/sql.php +++ b/plugins/geshi/sql.php @@ -47,89 +47,87 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'SQL', - 'COMMENT_SINGLE' => array(1 =>'--', 2 => '#'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => 1, - 'QUOTEMARKS' => array("'", '"', '`'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - 'ALL', 'ASC', 'AS', 'ALTER', 'AND', 'ADD', 'AUTO_INCREMENT', - 'BETWEEN', 'BINARY', 'BOTH', 'BY', 'BOOLEAN', - 'CHANGE', 'CHECK', 'COLUMNS', 'COLUMN', 'CROSS','CREATE', - 'DATABASES', 'DATABASE', 'DATA', 'DELAYED', 'DESCRIBE', 'DESC', 'DISTINCT', 'DELETE', 'DROP', 'DEFAULT', - 'ENCLOSED', 'ESCAPED', 'EXISTS', 'EXPLAIN', - 'FIELDS', 'FIELD', 'FLUSH', 'FOR', 'FOREIGN', 'FUNCTION', 'FROM', - 'GROUP', 'GRANT', - 'HAVING', - 'IGNORE', 'INDEX', 'INFILE', 'INSERT', 'INNER', 'INTO', 'IDENTIFIED', 'IN', 'IS', 'IF', - 'JOIN', - 'KEYS', 'KILL','KEY', - 'LEADING', 'LIKE', 'LIMIT', 'LINES', 'LOAD', 'LOCAL', 'LOCK', 'LOW_PRIORITY', 'LEFT', 'LANGUAGE', - 'MODIFY', - 'NATURAL', 'NOT', 'NULL', 'NEXTVAL', - 'OPTIMIZE', 'OPTION', 'OPTIONALLY', 'ORDER', 'OUTFILE', 'OR', 'OUTER', 'ON', - 'PROCEEDURE','PROCEDURAL', 'PRIMARY', - 'READ', 'REFERENCES', 'REGEXP', 'RENAME', 'REPLACE', 'RETURN', 'REVOKE', 'RLIKE', 'RIGHT', - 'SHOW', 'SONAME', 'STATUS', 'STRAIGHT_JOIN', 'SELECT', 'SETVAL', 'SET', - 'TABLES', 'TEMINATED', 'TO', 'TRAILING','TRUNCATE', 'TABLE', 'TEMPORARY', 'TRIGGER', 'TRUSTED', - 'UNIQUE', 'UNLOCK', 'USE', 'USING', 'UPDATE', 'UNSIGNED', - 'VALUES', 'VARIABLES', 'VIEW', - 'WITH', 'WRITE', 'WHERE', - 'ZEROFILL', - 'XOR', - ) - ), - 'SYMBOLS' => array( - '(', ')', '=', '<', '>', '|' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #993333; font-weight: bold;' - ), - 'COMMENTS' => array( - 1 => 'color: #808080; font-style: italic;', - 2 => 'color: #808080; font-style: italic;', +$language_data = array( + 'LANG_NAME' => 'SQL', + 'COMMENT_SINGLE' => array(1 =>'--', 2 => '#'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => 1, + 'QUOTEMARKS' => array("'", '"', '`'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'ALL', 'ASC', 'AS', 'ALTER', 'AND', 'ADD', 'AUTO_INCREMENT', + 'BETWEEN', 'BINARY', 'BOTH', 'BY', 'BOOLEAN', + 'CHANGE', 'CHECK', 'COLUMNS', 'COLUMN', 'CROSS','CREATE', + 'DATABASES', 'DATABASE', 'DATA', 'DELAYED', 'DESCRIBE', 'DESC', 'DISTINCT', 'DELETE', 'DROP', 'DEFAULT', + 'ENCLOSED', 'ESCAPED', 'EXISTS', 'EXPLAIN', + 'FIELDS', 'FIELD', 'FLUSH', 'FOR', 'FOREIGN', 'FUNCTION', 'FROM', + 'GROUP', 'GRANT', + 'HAVING', + 'IGNORE', 'INDEX', 'INFILE', 'INSERT', 'INNER', 'INTO', 'IDENTIFIED', 'IN', 'IS', 'IF', + 'JOIN', + 'KEYS', 'KILL','KEY', + 'LEADING', 'LIKE', 'LIMIT', 'LINES', 'LOAD', 'LOCAL', 'LOCK', 'LOW_PRIORITY', 'LEFT', 'LANGUAGE', + 'MODIFY', + 'NATURAL', 'NOT', 'NULL', 'NEXTVAL', + 'OPTIMIZE', 'OPTION', 'OPTIONALLY', 'ORDER', 'OUTFILE', 'OR', 'OUTER', 'ON', + 'PROCEEDURE','PROCEDURAL', 'PRIMARY', + 'READ', 'REFERENCES', 'REGEXP', 'RENAME', 'REPLACE', 'RETURN', 'REVOKE', 'RLIKE', 'RIGHT', + 'SHOW', 'SONAME', 'STATUS', 'STRAIGHT_JOIN', 'SELECT', 'SETVAL', 'SET', + 'TABLES', 'TEMINATED', 'TO', 'TRAILING','TRUNCATE', 'TABLE', 'TEMPORARY', 'TRIGGER', 'TRUSTED', + 'UNIQUE', 'UNLOCK', 'USE', 'USING', 'UPDATE', 'UNSIGNED', + 'VALUES', 'VARIABLES', 'VIEW', + 'WITH', 'WRITE', 'WHERE', + 'ZEROFILL', + 'XOR', + ) + ), + 'SYMBOLS' => array( + '(', ')', '=', '<', '>', '|' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #993333; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 2 => 'color: #808080; 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: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'SCRIPT' => array( - ), - 'REGEXPS' => array( - ) - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + ), + '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;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/tcl.php b/plugins/geshi/tcl.php old mode 100644 new mode 100755 index 697ce8d..7cae528 --- a/plugins/geshi/tcl.php +++ b/plugins/geshi/tcl.php @@ -46,136 +46,134 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'TCL', - 'COMMENT_SINGLE' => array(1 => '#'), - 'COMMENT_MULTI' => array(), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array('"', "'"), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( +$language_data = array( + 'LANG_NAME' => 'TCL', + '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( - 'proc', 'global', 'upvar', 'if', 'then', 'else', 'elseif', 'for', 'foreach', - 'break', 'continue', 'while', 'set', 'eval', 'case', 'in', 'switch', - 'default', 'exit', 'error', 'proc', 'return', 'uplevel', 'loop', - 'for_array_keys', 'for_recursive_glob', 'for_file', 'unwind_protect', - 'expr', 'catch', 'namespace', 'rename', 'variable', - // itcl - 'method', 'itcl_class', 'public', 'protected'), + /* + ** Set 1: reserved words + ** http://python.org/doc/current/ref/keywords.html + */ + 1 => array( + 'proc', 'global', 'upvar', 'if', 'then', 'else', 'elseif', 'for', 'foreach', + 'break', 'continue', 'while', 'set', 'eval', 'case', 'in', 'switch', + 'default', 'exit', 'error', 'proc', 'return', 'uplevel', 'loop', + 'for_array_keys', 'for_recursive_glob', 'for_file', 'unwind_protect', + 'expr', 'catch', 'namespace', 'rename', 'variable', + // itcl + 'method', 'itcl_class', 'public', 'protected'), - /* - ** Set 2: builtins - ** http://asps.activatestate.com/ASPN/docs/ActiveTcl/8.4/tcl/tcl_2_contents.htm - */ - 2 => array( - // string handling - 'append', 'binary', 'format', 're_syntax', 'regexp', 'regsub', - 'scan', 'string', 'subst', - // list handling - 'concat', 'join', 'lappend', 'lindex', 'list', 'llength', 'lrange', - 'lreplace', 'lsearch', 'lset', 'lsort', 'split', - // math - 'expr', - // procedures and output - 'incr', 'close', 'eof', 'fblocked', 'fconfigure', 'fcopy', 'file', - 'fileevent', 'flush', 'gets', 'open', 'puts', 'read', 'seek', - 'socket', 'tell', - // packages and source files - 'load', 'loadTk', 'package', 'pgk::create', 'pgk_mkIndex', 'source', - // interpreter routines - 'bgerror', 'history', 'info', 'interp', 'memory', 'unknown', - // library routines - 'enconding', 'http', 'msgcat', - // system related - 'cd', 'clock', 'exec', 'exit', 'glob', 'pid', 'pwd', 'time', - // platform specified - 'dde', 'registry', 'resource', - // special variables - '$argc', '$argv', '$errorCode', '$errorInfo', '$argv0', - '$auto_index', '$auto_oldpath', '$auto_path', '$env', - '$tcl_interactive', '$tcl_libpath', '$tcl_library', - '$tcl_pkgPath', '$tcl_platform', '$tcl_precision', '$tcl_traceExec', - ), + /* + ** Set 2: builtins + ** http://asps.activatestate.com/ASPN/docs/ActiveTcl/8.4/tcl/tcl_2_contents.htm + */ + 2 => array( + // string handling + 'append', 'binary', 'format', 're_syntax', 'regexp', 'regsub', + 'scan', 'string', 'subst', + // list handling + 'concat', 'join', 'lappend', 'lindex', 'list', 'llength', 'lrange', + 'lreplace', 'lsearch', 'lset', 'lsort', 'split', + // math + 'expr', + // procedures and output + 'incr', 'close', 'eof', 'fblocked', 'fconfigure', 'fcopy', 'file', + 'fileevent', 'flush', 'gets', 'open', 'puts', 'read', 'seek', + 'socket', 'tell', + // packages and source files + 'load', 'loadTk', 'package', 'pgk::create', 'pgk_mkIndex', 'source', + // interpreter routines + 'bgerror', 'history', 'info', 'interp', 'memory', 'unknown', + // library routines + 'enconding', 'http', 'msgcat', + // system related + 'cd', 'clock', 'exec', 'exit', 'glob', 'pid', 'pwd', 'time', + // platform specified + 'dde', 'registry', 'resource', + // special variables + '$argc', '$argv', '$errorCode', '$errorInfo', '$argv0', + '$auto_index', '$auto_oldpath', '$auto_path', '$env', + '$tcl_interactive', '$tcl_libpath', '$tcl_library', + '$tcl_pkgPath', '$tcl_platform', '$tcl_precision', '$tcl_traceExec', + ), - /* - ** Set 3: standard library - */ - 3 => array( - 'comment', 'dde', 'filename', 'http', 'library', 'memory', - 'packagens', 'registry', 'resource', 'tcltest', 'tclvars', - ), + /* + ** Set 3: standard library + */ + 3 => array( + 'comment', 'dde', 'filename', 'http', 'library', 'memory', + 'packagens', 'registry', 'resource', 'tcltest', 'tclvars', + ), - /* - ** Set 4: special methods - */ - 4 => array( - ) + /* + ** Set 4: special methods + */ + 4 => array( + ) - ), - 'SYMBOLS' => array( - '(', ')', '[', ']', '{', '}', '$', '*', '&', '%', '!', ';', '<', '>', '?' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => true, + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '{', '}', '$', '*', '&', '%', '!', ';', '<', '>', '?' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => true, 2 => true, 3 => true, 4 => true - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #ff7700;font-weight:bold;', // Reserved - 2 => 'color: #008000;', // Built-ins + self - 3 => 'color: #dc143c;', // Standard lib - 4 => 'color: #0000cd;' // Special methods - ), - 'COMMENTS' => array( - 1 => 'color: #808080; font-style: italic;', - 'MULTI' => 'color: #808080; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: black;' - ), - 'STRINGS' => array( - 0 => 'color: #483d8b;' - ), - 'NUMBERS' => array( - 0 => 'color: #ff4500;' - ), - 'METHODS' => array( - 1 => 'color: black;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'REGEXPS' => array( + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #ff7700;font-weight:bold;', // Reserved + 2 => 'color: #008000;', // Built-ins + self + 3 => 'color: #dc143c;', // Standard lib + 4 => 'color: #0000cd;' // Special methods + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: black;' + ), + 'STRINGS' => array( + 0 => 'color: #483d8b;' + ), + 'NUMBERS' => array( + 0 => 'color: #ff4500;' + ), + 'METHODS' => array( + 1 => 'color: black;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( 0 => 'color: #ff3333;' - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '::' - ), - 'REGEXPS' => array( - 0 => '[\\$]+[a-zA-Z_][a-zA-Z0-9_]*', - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '::' + ), + 'REGEXPS' => array( + 0 => '[\\$]+[a-zA-Z_][a-zA-Z0-9_]*', + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/text.php b/plugins/geshi/text.php old mode 100644 new mode 100755 index 8388696..bb90f31 --- a/plugins/geshi/text.php +++ b/plugins/geshi/text.php @@ -42,40 +42,39 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Text', - 'COMMENT_SINGLE' => array( ), - '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(), - 'ESCAPE_CHAR' => array(), - 'BRACKETS' => array(), - 'STRINGS' => array(), - 'NUMBERS' => array(), - 'METHODS' => array(), - 'SYMBOLS' => array(), - 'SCRIPT' => array(), - 'REGEXPS' => array() - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array(), - 'REGEXPS' => array( ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( ), - 'HIGHLIGHT_STRICT_BLOCK' => array( ) +$language_data = array( + 'LANG_NAME' => 'Text', + 'COMMENT_SINGLE' => array( ), + '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(), + 'ESCAPE_CHAR' => array(), + 'BRACKETS' => array(), + 'STRINGS' => array(), + 'NUMBERS' => array(), + 'METHODS' => array(), + 'SYMBOLS' => array(), + 'SCRIPT' => array(), + 'REGEXPS' => array() + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( ), + 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); if (isset($this) && is_a($this, 'GeSHi')) { $this->set_numbers_highlighting(false); $this->set_brackets_highlighting(false); $this->disable_highlighting(); } -?> diff --git a/plugins/geshi/thinbasic.php b/plugins/geshi/thinbasic.php old mode 100644 new mode 100755 index aa79ec6..6d7e508 --- a/plugins/geshi/thinbasic.php +++ b/plugins/geshi/thinbasic.php @@ -36,7 +36,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ************************************************************************************/ - $language_data = array ( + $language_data = array( 'LANG_NAME' => 'thinBasic', 'COMMENT_SINGLE' => array(1 => "'"), 'COMMENT_MULTI' => array(), @@ -860,5 +860,3 @@ 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/plugins/geshi/tsql.php b/plugins/geshi/tsql.php old mode 100644 new mode 100755 index af57a13..461763d --- a/plugins/geshi/tsql.php +++ b/plugins/geshi/tsql.php @@ -37,346 +37,344 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'T-SQL', - 'COMMENT_SINGLE' => array(1 => '--'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - /* - This will be highlighted in blue - */ +$language_data = array( + 'LANG_NAME' => 'T-SQL', + 'COMMENT_SINGLE' => array(1 => '--'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + /* + This will be highlighted in blue + */ - // Datatypes - 'bigint', 'int', 'smallint', 'tinyint', 'bit', 'decimal', 'numeric', 'money', - 'smallmoney', 'float', 'real', 'datetime', 'smalldatetime', 'char', 'varchar', - 'text', 'nchar', 'nvarchar', 'ntext', 'binary', 'varbinary', 'image', 'cursor', - 'sql_variant', 'table', 'timestamp', 'uniqueidentifier', + // Datatypes + 'bigint', 'int', 'smallint', 'tinyint', 'bit', 'decimal', 'numeric', 'money', + 'smallmoney', 'float', 'real', 'datetime', 'smalldatetime', 'char', 'varchar', + 'text', 'nchar', 'nvarchar', 'ntext', 'binary', 'varbinary', 'image', 'cursor', + 'sql_variant', 'table', 'timestamp', 'uniqueidentifier', - // 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', - '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', - 'CURSOR', 'CYCLE', 'DATA', 'DATABASE', 'DATE', 'DAY', 'DBCC', 'DEALLOCATE', 'DEC', 'DECIMAL', 'DECLARE', 'DEFAULT', 'DEFERRABLE', - 'DEFERRED', 'DELETE', 'DENY', 'DEPTH', 'DEREF', 'DESC', 'DESCRIBE', 'DESCRIPTOR', 'DESTROY', 'DESTRUCTOR', 'DETERMINISTIC', - 'DIAGNOSTICS', 'DICTIONARY', 'DISCONNECT', 'DISK', 'DISTINCT', 'DISTRIBUTED', 'DOMAIN', 'DOUBLE', 'DROP', 'DUMMY', 'DUMP', 'DYNAMIC', - 'EACH', 'ELSE', 'END', 'END-EXEC', 'EQUALS', 'ERRLVL', 'ESCAPE', 'EVERY', 'EXCEPT', 'EXCEPTION', 'EXEC', 'EXECUTE', 'EXIT', - 'EXTERNAL', 'FALSE', 'FETCH', 'FILE', 'FILLFACTOR', 'FIRST', 'FLOAT', 'FOR', 'FOREIGN', 'FOUND', 'FREE', 'FREETEXT', 'FREETEXTTABLE', - 'FROM', 'FULL', 'FUNCTION', 'GENERAL', 'GET', 'GLOBAL', 'GOTO', 'GRANT', 'GROUP', 'GROUPING', 'HAVING', 'HOLDLOCK', 'HOST', 'HOUR', - 'IDENTITY', 'IDENTITY_INSERT', 'IDENTITYCOL', 'IF', 'IGNORE', 'IMMEDIATE', 'INDEX', 'INDICATOR', 'INITIALIZE', 'INITIALLY', - 'INNER', 'INOUT', 'INPUT', 'INSERT', 'INT', 'INTEGER', 'INTERSECT', 'INTERVAL', 'INTO', 'IS', 'ISOLATION', 'ITERATE', 'KEY', - 'KILL', 'LANGUAGE', 'LARGE', 'LAST', 'LATERAL', 'LEADING', 'LEFT', 'LESS', 'LEVEL', 'LIMIT', 'LINENO', 'LOAD', 'LOCAL', - 'LOCALTIME', 'LOCALTIMESTAMP', 'LOCATOR', 'MAP', 'MATCH', 'MINUTE', 'MODIFIES', 'MODIFY', 'MODULE', 'MONTH', 'NAMES', 'NATIONAL', - 'NATURAL', 'NCHAR', 'NCLOB', 'NEW', 'NEXT', 'NO', 'NOCHECK', 'NONCLUSTERED', 'NONE', 'NULLIF', 'NUMERIC', 'OBJECT', 'OF', - 'OFF', 'OFFSETS', 'OLD', 'ON', 'ONLY', 'OPEN', 'OPENDATASOURCE', 'OPENQUERY', 'OPENROWSET', 'OPENXML', 'OPERATION', 'OPTION', - 'ORDER', 'ORDINALITY', 'OUT', 'OUTPUT', 'OVER', 'PAD', 'PARAMETER', 'PARAMETERS', 'PARTIAL', 'PATH', 'PERCENT', 'PLAN', - 'POSTFIX', 'PRECISION', 'PREFIX', 'PREORDER', 'PREPARE', 'PRESERVE', 'PRIMARY', 'PRINT', 'PRIOR', 'PRIVILEGES', 'PROC', 'PROCEDURE', - 'PUBLIC', 'RAISERROR', 'READ', 'READS', 'READTEXT', 'REAL', 'RECONFIGURE', 'RECURSIVE', 'REF', 'REFERENCES', 'REFERENCING', 'RELATIVE', - 'REPLICATION', 'RESTORE', 'RESTRICT', 'RESULT', 'RETURN', 'RETURNS', 'REVOKE', 'RIGHT', 'ROLE', 'ROLLBACK', 'ROLLUP', 'ROUTINE', 'ROW', - 'ROWGUIDCOL', 'ROWS', 'RULE', 'SAVE', 'SAVEPOINT', 'SCHEMA', 'SCOPE', 'SCROLL', 'SEARCH', 'SECOND', 'SECTION', 'SELECT', - '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', - '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', - ), - 2 => array( - /* - Built-in functions - Highlighted in pink. - */ + // 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', + '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', + 'CURSOR', 'CYCLE', 'DATA', 'DATABASE', 'DATE', 'DAY', 'DBCC', 'DEALLOCATE', 'DEC', 'DECIMAL', 'DECLARE', 'DEFAULT', 'DEFERRABLE', + 'DEFERRED', 'DELETE', 'DENY', 'DEPTH', 'DEREF', 'DESC', 'DESCRIBE', 'DESCRIPTOR', 'DESTROY', 'DESTRUCTOR', 'DETERMINISTIC', + 'DIAGNOSTICS', 'DICTIONARY', 'DISCONNECT', 'DISK', 'DISTINCT', 'DISTRIBUTED', 'DOMAIN', 'DOUBLE', 'DROP', 'DUMMY', 'DUMP', 'DYNAMIC', + 'EACH', 'ELSE', 'END', 'END-EXEC', 'EQUALS', 'ERRLVL', 'ESCAPE', 'EVERY', 'EXCEPT', 'EXCEPTION', 'EXEC', 'EXECUTE', 'EXIT', + 'EXTERNAL', 'FALSE', 'FETCH', 'FILE', 'FILLFACTOR', 'FIRST', 'FLOAT', 'FOR', 'FOREIGN', 'FOUND', 'FREE', 'FREETEXT', 'FREETEXTTABLE', + 'FROM', 'FULL', 'FUNCTION', 'GENERAL', 'GET', 'GLOBAL', 'GOTO', 'GRANT', 'GROUP', 'GROUPING', 'HAVING', 'HOLDLOCK', 'HOST', 'HOUR', + 'IDENTITY', 'IDENTITY_INSERT', 'IDENTITYCOL', 'IF', 'IGNORE', 'IMMEDIATE', 'INDEX', 'INDICATOR', 'INITIALIZE', 'INITIALLY', + 'INNER', 'INOUT', 'INPUT', 'INSERT', 'INT', 'INTEGER', 'INTERSECT', 'INTERVAL', 'INTO', 'IS', 'ISOLATION', 'ITERATE', 'KEY', + 'KILL', 'LANGUAGE', 'LARGE', 'LAST', 'LATERAL', 'LEADING', 'LEFT', 'LESS', 'LEVEL', 'LIMIT', 'LINENO', 'LOAD', 'LOCAL', + 'LOCALTIME', 'LOCALTIMESTAMP', 'LOCATOR', 'MAP', 'MATCH', 'MINUTE', 'MODIFIES', 'MODIFY', 'MODULE', 'MONTH', 'NAMES', 'NATIONAL', + 'NATURAL', 'NCHAR', 'NCLOB', 'NEW', 'NEXT', 'NO', 'NOCHECK', 'NONCLUSTERED', 'NONE', 'NULLIF', 'NUMERIC', 'OBJECT', 'OF', + 'OFF', 'OFFSETS', 'OLD', 'ON', 'ONLY', 'OPEN', 'OPENDATASOURCE', 'OPENQUERY', 'OPENROWSET', 'OPENXML', 'OPERATION', 'OPTION', + 'ORDER', 'ORDINALITY', 'OUT', 'OUTPUT', 'OVER', 'PAD', 'PARAMETER', 'PARAMETERS', 'PARTIAL', 'PATH', 'PERCENT', 'PLAN', + 'POSTFIX', 'PRECISION', 'PREFIX', 'PREORDER', 'PREPARE', 'PRESERVE', 'PRIMARY', 'PRINT', 'PRIOR', 'PRIVILEGES', 'PROC', 'PROCEDURE', + 'PUBLIC', 'RAISERROR', 'READ', 'READS', 'READTEXT', 'REAL', 'RECONFIGURE', 'RECURSIVE', 'REF', 'REFERENCES', 'REFERENCING', 'RELATIVE', + 'REPLICATION', 'RESTORE', 'RESTRICT', 'RESULT', 'RETURN', 'RETURNS', 'REVOKE', 'RIGHT', 'ROLE', 'ROLLBACK', 'ROLLUP', 'ROUTINE', 'ROW', + 'ROWGUIDCOL', 'ROWS', 'RULE', 'SAVE', 'SAVEPOINT', 'SCHEMA', 'SCOPE', 'SCROLL', 'SEARCH', 'SECOND', 'SECTION', 'SELECT', + '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', + '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', + ), + 2 => array( + /* + Built-in functions + Highlighted in pink. + */ - //Configuration Functions - '@@DATEFIRST','@@OPTIONS','@@DBTS','@@REMSERVER','@@LANGID','@@SERVERNAME', - '@@LANGUAGE','@@SERVICENAME','@@LOCK_TIMEOUT','@@SPID','@@MAX_CONNECTIONS','@@TEXTSIZE', - '@@MAX_PRECISION','@@VERSION','@@NESTLEVEL', + //Configuration Functions + '@@DATEFIRST','@@OPTIONS','@@DBTS','@@REMSERVER','@@LANGID','@@SERVERNAME', + '@@LANGUAGE','@@SERVICENAME','@@LOCK_TIMEOUT','@@SPID','@@MAX_CONNECTIONS','@@TEXTSIZE', + '@@MAX_PRECISION','@@VERSION','@@NESTLEVEL', - //Cursor Functions - '@@CURSOR_ROWS','@@FETCH_STATUS', + //Cursor Functions + '@@CURSOR_ROWS','@@FETCH_STATUS', - //Date and Time Functions - 'DATEADD','DATEDIFF','DATENAME','DATEPART','DAY','GETDATE','GETUTCDATE','MONTH','YEAR', + //Date and Time Functions + 'DATEADD','DATEDIFF','DATENAME','DATEPART','DAY','GETDATE','GETUTCDATE','MONTH','YEAR', - //Mathematical Functions - 'ABS','DEGREES','RAND','ACOS','EXP','ROUND','ASIN','FLOOR','SIGN', - 'ATAN','LOG','SIN','ATN2','LOG10','SQUARE','CEILING','PI','SQRT','COS', - 'POWER','TAN','COT','RADIANS', + //Mathematical Functions + 'ABS','DEGREES','RAND','ACOS','EXP','ROUND','ASIN','FLOOR','SIGN', + 'ATAN','LOG','SIN','ATN2','LOG10','SQUARE','CEILING','PI','SQRT','COS', + 'POWER','TAN','COT','RADIANS', - //Meta Data Functions - 'COL_LENGTH','fn_listextendedproperty','COL_NAME','FULLTEXTCATALOGPROPERTY', - 'COLUMNPROPERTY','FULLTEXTSERVICEPROPERTY','DATABASEPROPERTY','INDEX_COL', - 'DATABASEPROPERTYEX','INDEXKEY_PROPERTY','DB_ID','INDEXPROPERTY','DB_NAME', - 'OBJECT_ID','FILE_ID','OBJECT_NAME','FILE_NAME','OBJECTPROPERTY','FILEGROUP_ID', - '@@PROCID','FILEGROUP_NAME','SQL_VARIANT_PROPERTY','FILEGROUPPROPERTY', - 'TYPEPROPERTY','FILEPROPERTY', + //Meta Data Functions + 'COL_LENGTH','fn_listextendedproperty','COL_NAME','FULLTEXTCATALOGPROPERTY', + 'COLUMNPROPERTY','FULLTEXTSERVICEPROPERTY','DATABASEPROPERTY','INDEX_COL', + 'DATABASEPROPERTYEX','INDEXKEY_PROPERTY','DB_ID','INDEXPROPERTY','DB_NAME', + 'OBJECT_ID','FILE_ID','OBJECT_NAME','FILE_NAME','OBJECTPROPERTY','FILEGROUP_ID', + '@@PROCID','FILEGROUP_NAME','SQL_VARIANT_PROPERTY','FILEGROUPPROPERTY', + 'TYPEPROPERTY','FILEPROPERTY', - //Security Functions - 'fn_trace_geteventinfo','IS_SRVROLEMEMBER','fn_trace_getfilterinfo','SUSER_SID', - 'fn_trace_getinfo','SUSER_SNAME','fn_trace_gettable','USER_ID','HAS_DBACCESS', - 'IS_MEMBER', + //Security Functions + 'fn_trace_geteventinfo','IS_SRVROLEMEMBER','fn_trace_getfilterinfo','SUSER_SID', + 'fn_trace_getinfo','SUSER_SNAME','fn_trace_gettable','USER_ID','HAS_DBACCESS', + 'IS_MEMBER', - //String Functions - 'ASCII','NCHAR','SOUNDEX','CHAR','PATINDEX','SPACE','CHARINDEX', - 'REPLACE','STR','DIFFERENCE','QUOTENAME','STUFF','LEFT','REPLICATE', - 'SUBSTRING','LEN','REVERSE','UNICODE','LOWER','RIGHT','UPPER','LTRIM', - 'RTRIM', + //String Functions + 'ASCII','NCHAR','SOUNDEX','CHAR','PATINDEX','SPACE','CHARINDEX', + 'REPLACE','STR','DIFFERENCE','QUOTENAME','STUFF','LEFT','REPLICATE', + 'SUBSTRING','LEN','REVERSE','UNICODE','LOWER','RIGHT','UPPER','LTRIM', + 'RTRIM', - //System Functions - 'APP_NAME','COLLATIONPROPERTY','@@ERROR','fn_helpcollations', - 'fn_servershareddrives','fn_virtualfilestats','FORMATMESSAGE', - 'GETANSINULL','HOST_ID','HOST_NAME','IDENT_CURRENT','IDENT_INCR', - 'IDENT_SEED','@@IDENTITY','ISDATE','ISNUMERIC','PARSENAME','PERMISSIONS', - '@@ROWCOUNT','ROWCOUNT_BIG','SCOPE_IDENTITY','SERVERPROPERTY','SESSIONPROPERTY', - 'STATS_DATE','@@TRANCOUNT','USER_NAME', + //System Functions + 'APP_NAME','COLLATIONPROPERTY','@@ERROR','fn_helpcollations', + 'fn_servershareddrives','fn_virtualfilestats','FORMATMESSAGE', + 'GETANSINULL','HOST_ID','HOST_NAME','IDENT_CURRENT','IDENT_INCR', + 'IDENT_SEED','@@IDENTITY','ISDATE','ISNUMERIC','PARSENAME','PERMISSIONS', + '@@ROWCOUNT','ROWCOUNT_BIG','SCOPE_IDENTITY','SERVERPROPERTY','SESSIONPROPERTY', + 'STATS_DATE','@@TRANCOUNT','USER_NAME', - //System Statistical Functions - '@@CONNECTIONS','@@PACK_RECEIVED','@@CPU_BUSY','@@PACK_SENT', - 'fn_virtualfilestats','@@TIMETICKS','@@IDLE','@@TOTAL_ERRORS','@@IO_BUSY', - '@@TOTAL_READ','@@PACKET_ERRORS','@@TOTAL_WRITE', + //System Statistical Functions + '@@CONNECTIONS','@@PACK_RECEIVED','@@CPU_BUSY','@@PACK_SENT', + 'fn_virtualfilestats','@@TIMETICKS','@@IDLE','@@TOTAL_ERRORS','@@IO_BUSY', + '@@TOTAL_READ','@@PACKET_ERRORS','@@TOTAL_WRITE', - //Text and Image Functions - 'TEXTPTR','TEXTVALID', + //Text and Image Functions + 'TEXTPTR','TEXTVALID', - //Aggregate functions - 'AVG', 'MAX', 'BINARY_CHECKSUM', 'MIN', 'CHECKSUM', 'SUM', 'CHECKSUM_AGG', - 'STDEV', 'COUNT', 'STDEVP', 'COUNT_BIG', 'VAR', 'GROUPING', 'VARP' - ), - 3 => array( - /* - System stored procedures - Higlighted dark brown - */ + //Aggregate functions + 'AVG', 'MAX', 'BINARY_CHECKSUM', 'MIN', 'CHECKSUM', 'SUM', 'CHECKSUM_AGG', + 'STDEV', 'COUNT', 'STDEVP', 'COUNT_BIG', 'VAR', 'GROUPING', 'VARP' + ), + 3 => array( + /* + System stored procedures + Higlighted dark brown + */ - //Active Directory Procedures - 'sp_ActiveDirectory_Obj', 'sp_ActiveDirectory_SCP', + //Active Directory Procedures + 'sp_ActiveDirectory_Obj', 'sp_ActiveDirectory_SCP', - //Catalog Procedures - 'sp_column_privileges', 'sp_special_columns', 'sp_columns', 'sp_sproc_columns', - 'sp_databases', 'sp_statistics', 'sp_fkeys', 'sp_stored_procedures', 'sp_pkeys', - 'sp_table_privileges', 'sp_server_info', 'sp_tables', + //Catalog Procedures + 'sp_column_privileges', 'sp_special_columns', 'sp_columns', 'sp_sproc_columns', + 'sp_databases', 'sp_statistics', 'sp_fkeys', 'sp_stored_procedures', 'sp_pkeys', + 'sp_table_privileges', 'sp_server_info', 'sp_tables', - //Cursor Procedures - 'sp_cursor_list', 'sp_describe_cursor_columns', 'sp_describe_cursor', 'sp_describe_cursor_tables', + //Cursor Procedures + 'sp_cursor_list', 'sp_describe_cursor_columns', 'sp_describe_cursor', 'sp_describe_cursor_tables', - //Database Maintenance Plan Procedures - 'sp_add_maintenance_plan', 'sp_delete_maintenance_plan_db', 'sp_add_maintenance_plan_db', - 'sp_delete_maintenance_plan_job', 'sp_add_maintenance_plan_job', 'sp_help_maintenance_plan', - 'sp_delete_maintenance_plan', + //Database Maintenance Plan Procedures + 'sp_add_maintenance_plan', 'sp_delete_maintenance_plan_db', 'sp_add_maintenance_plan_db', + 'sp_delete_maintenance_plan_job', 'sp_add_maintenance_plan_job', 'sp_help_maintenance_plan', + 'sp_delete_maintenance_plan', - //Distributed Queries Procedures - 'sp_addlinkedserver', 'sp_indexes', 'sp_addlinkedsrvlogin', 'sp_linkedservers', 'sp_catalogs', - 'sp_primarykeys', 'sp_column_privileges_ex', 'sp_serveroption', 'sp_columns_ex', - 'sp_table_privileges_ex', 'sp_droplinkedsrvlogin', 'sp_tables_ex', 'sp_foreignkeys', + //Distributed Queries Procedures + 'sp_addlinkedserver', 'sp_indexes', 'sp_addlinkedsrvlogin', 'sp_linkedservers', 'sp_catalogs', + 'sp_primarykeys', 'sp_column_privileges_ex', 'sp_serveroption', 'sp_columns_ex', + 'sp_table_privileges_ex', 'sp_droplinkedsrvlogin', 'sp_tables_ex', 'sp_foreignkeys', - //Full-Text Search Procedures - 'sp_fulltext_catalog', 'sp_help_fulltext_catalogs_cursor', 'sp_fulltext_column', - 'sp_help_fulltext_columns', 'sp_fulltext_database', 'sp_help_fulltext_columns_cursor', - 'sp_fulltext_service', 'sp_help_fulltext_tables', 'sp_fulltext_table', - 'sp_help_fulltext_tables_cursor', 'sp_help_fulltext_catalogs', + //Full-Text Search Procedures + 'sp_fulltext_catalog', 'sp_help_fulltext_catalogs_cursor', 'sp_fulltext_column', + 'sp_help_fulltext_columns', 'sp_fulltext_database', 'sp_help_fulltext_columns_cursor', + 'sp_fulltext_service', 'sp_help_fulltext_tables', 'sp_fulltext_table', + 'sp_help_fulltext_tables_cursor', 'sp_help_fulltext_catalogs', - //Log Shipping Procedures - 'sp_add_log_shipping_database', 'sp_delete_log_shipping_database', 'sp_add_log_shipping_plan', - 'sp_delete_log_shipping_plan', 'sp_add_log_shipping_plan_database', - 'sp_delete_log_shipping_plan_database', 'sp_add_log_shipping_primary', - 'sp_delete_log_shipping_primary', 'sp_add_log_shipping_secondary', - 'sp_delete_log_shipping_secondary', 'sp_can_tlog_be_applied', 'sp_get_log_shipping_monitor_info', - 'sp_change_monitor_role', 'sp_remove_log_shipping_monitor', 'sp_change_primary_role', - 'sp_resolve_logins', 'sp_change_secondary_role', 'sp_update_log_shipping_monitor_info', - 'sp_create_log_shipping_monitor_account', 'sp_update_log_shipping_plan', - 'sp_define_log_shipping_monitor', 'sp_update_log_shipping_plan_database', + //Log Shipping Procedures + 'sp_add_log_shipping_database', 'sp_delete_log_shipping_database', 'sp_add_log_shipping_plan', + 'sp_delete_log_shipping_plan', 'sp_add_log_shipping_plan_database', + 'sp_delete_log_shipping_plan_database', 'sp_add_log_shipping_primary', + 'sp_delete_log_shipping_primary', 'sp_add_log_shipping_secondary', + 'sp_delete_log_shipping_secondary', 'sp_can_tlog_be_applied', 'sp_get_log_shipping_monitor_info', + 'sp_change_monitor_role', 'sp_remove_log_shipping_monitor', 'sp_change_primary_role', + 'sp_resolve_logins', 'sp_change_secondary_role', 'sp_update_log_shipping_monitor_info', + 'sp_create_log_shipping_monitor_account', 'sp_update_log_shipping_plan', + 'sp_define_log_shipping_monitor', 'sp_update_log_shipping_plan_database', - //OLE Automation Extended Stored Procedures - 'sp_OACreate', 'sp_OAMethod', 'sp_OADestroy', 'sp_OASetProperty', 'sp_OAGetErrorInfo', - 'sp_OAStop', 'sp_OAGetProperty', + //OLE Automation Extended Stored Procedures + 'sp_OACreate', 'sp_OAMethod', 'sp_OADestroy', 'sp_OASetProperty', 'sp_OAGetErrorInfo', + 'sp_OAStop', 'sp_OAGetProperty', - //Replication Procedures - 'sp_add_agent_parameter', 'sp_enableagentoffload', 'sp_add_agent_profile', - 'sp_enumcustomresolvers', 'sp_addarticle', 'sp_enumdsn', 'sp_adddistpublisher', - 'sp_enumfullsubscribers', 'sp_adddistributiondb', 'sp_expired_subscription_cleanup', - 'sp_adddistributor', 'sp_generatefilters', 'sp_addmergealternatepublisher', - 'sp_getagentoffloadinfo', 'sp_addmergearticle', 'sp_getmergedeletetype', 'sp_addmergefilter', - 'sp_get_distributor', 'sp_addmergepublication', 'sp_getqueuedrows', 'sp_addmergepullsubscription', - 'sp_getsubscriptiondtspackagename', 'sp_addmergepullsubscription_agent', 'sp_grant_publication_access', - 'sp_addmergesubscription', 'sp_help_agent_default', 'sp_addpublication', 'sp_help_agent_parameter', - 'sp_addpublication_snapshot', 'sp_help_agent_profile', 'sp_addpublisher70', 'sp_helparticle', - 'sp_addpullsubscription', 'sp_helparticlecolumns', 'sp_addpullsubscription_agent', 'sp_helparticledts', - 'sp_addscriptexec', 'sp_helpdistpublisher', 'sp_addsubscriber', 'sp_helpdistributiondb', - 'sp_addsubscriber_schedule', 'sp_helpdistributor', 'sp_addsubscription', 'sp_helpmergealternatepublisher', - 'sp_addsynctriggers', 'sp_helpmergearticle', 'sp_addtabletocontents', 'sp_helpmergearticlecolumn', - 'sp_adjustpublisheridentityrange', 'sp_helpmergearticleconflicts', 'sp_article_validation', - 'sp_helpmergeconflictrows', 'sp_articlecolumn', 'sp_helpmergedeleteconflictrows', 'sp_articlefilter', - 'sp_helpmergefilter', 'sp_articlesynctranprocs', 'sp_helpmergepublication', 'sp_articleview', - 'sp_helpmergepullsubscription', 'sp_attachsubscription', 'sp_helpmergesubscription', 'sp_browsesnapshotfolder', - 'sp_helppublication', 'sp_browsemergesnapshotfolder', 'sp_help_publication_access', 'sp_browsereplcmds', - 'sp_helppullsubscription', 'sp_change_agent_parameter', 'sp_helpreplfailovermode', 'sp_change_agent_profile', - 'sp_helpreplicationdboption', 'sp_changearticle', 'sp_helpreplicationoption', 'sp_changedistpublisher', - 'sp_helpsubscriberinfo', 'sp_changedistributiondb', 'sp_helpsubscription', 'sp_changedistributor_password', - 'sp_ivindexhasnullcols', 'sp_changedistributor_property', 'sp_helpsubscription_properties', 'sp_changemergearticle', - 'sp_link_publication', 'sp_changemergefilter', 'sp_marksubscriptionvalidation', 'sp_changemergepublication', - 'sp_mergearticlecolumn', 'sp_changemergepullsubscription', 'sp_mergecleanupmetadata', 'sp_changemergesubscription', - 'sp_mergedummyupdate', 'sp_changepublication', 'sp_mergesubscription_cleanup', 'sp_changesubscriber', - 'sp_publication_validation', 'sp_changesubscriber_schedule', 'sp_refreshsubscriptions', 'sp_changesubscriptiondtsinfo', - 'sp_reinitmergepullsubscription', 'sp_changesubstatus', 'sp_reinitmergesubscription', 'sp_change_subscription_properties', - 'sp_reinitpullsubscription', 'sp_check_for_sync_trigger', 'sp_reinitsubscription', 'sp_copymergesnapshot', - 'sp_removedbreplication', 'sp_copysnapshot', 'sp_repladdcolumn', 'sp_copysubscription', 'sp_replcmds', - 'sp_deletemergeconflictrow', 'sp_replcounters', 'sp_disableagentoffload', 'sp_repldone', 'sp_drop_agent_parameter', - 'sp_repldropcolumn', 'sp_drop_agent_profile', 'sp_replflush', 'sp_droparticle', 'sp_replicationdboption', - 'sp_dropanonymouseagent', 'sp_replication_agent_checkup', 'sp_dropdistpublisher', 'sp_replqueuemonitor', - 'sp_dropdistributiondb', 'sp_replsetoriginator', 'sp_dropmergealternatepublisher', 'sp_replshowcmds', - 'sp_dropdistributor', 'sp_repltrans', 'sp_dropmergearticle', 'sp_restoredbreplication', 'sp_dropmergefilter', - 'sp_revoke_publication_access', 'sp_scriptsubconflicttable', 'sp_dropmergepublication', 'sp_script_synctran_commands', - 'sp_dropmergepullsubscription', 'sp_setreplfailovermode', 'sp_showrowreplicainfo', 'sp_dropmergesubscription', - 'sp_subscription_cleanup', 'sp_droppublication', 'sp_table_validation', 'sp_droppullsubscription', - 'sp_update_agent_profile', 'sp_dropsubscriber', 'sp_validatemergepublication', 'sp_dropsubscription', - 'sp_validatemergesubscription', 'sp_dsninfo', 'sp_vupgrade_replication', 'sp_dumpparamcmd', + //Replication Procedures + 'sp_add_agent_parameter', 'sp_enableagentoffload', 'sp_add_agent_profile', + 'sp_enumcustomresolvers', 'sp_addarticle', 'sp_enumdsn', 'sp_adddistpublisher', + 'sp_enumfullsubscribers', 'sp_adddistributiondb', 'sp_expired_subscription_cleanup', + 'sp_adddistributor', 'sp_generatefilters', 'sp_addmergealternatepublisher', + 'sp_getagentoffloadinfo', 'sp_addmergearticle', 'sp_getmergedeletetype', 'sp_addmergefilter', + 'sp_get_distributor', 'sp_addmergepublication', 'sp_getqueuedrows', 'sp_addmergepullsubscription', + 'sp_getsubscriptiondtspackagename', 'sp_addmergepullsubscription_agent', 'sp_grant_publication_access', + 'sp_addmergesubscription', 'sp_help_agent_default', 'sp_addpublication', 'sp_help_agent_parameter', + 'sp_addpublication_snapshot', 'sp_help_agent_profile', 'sp_addpublisher70', 'sp_helparticle', + 'sp_addpullsubscription', 'sp_helparticlecolumns', 'sp_addpullsubscription_agent', 'sp_helparticledts', + 'sp_addscriptexec', 'sp_helpdistpublisher', 'sp_addsubscriber', 'sp_helpdistributiondb', + 'sp_addsubscriber_schedule', 'sp_helpdistributor', 'sp_addsubscription', 'sp_helpmergealternatepublisher', + 'sp_addsynctriggers', 'sp_helpmergearticle', 'sp_addtabletocontents', 'sp_helpmergearticlecolumn', + 'sp_adjustpublisheridentityrange', 'sp_helpmergearticleconflicts', 'sp_article_validation', + 'sp_helpmergeconflictrows', 'sp_articlecolumn', 'sp_helpmergedeleteconflictrows', 'sp_articlefilter', + 'sp_helpmergefilter', 'sp_articlesynctranprocs', 'sp_helpmergepublication', 'sp_articleview', + 'sp_helpmergepullsubscription', 'sp_attachsubscription', 'sp_helpmergesubscription', 'sp_browsesnapshotfolder', + 'sp_helppublication', 'sp_browsemergesnapshotfolder', 'sp_help_publication_access', 'sp_browsereplcmds', + 'sp_helppullsubscription', 'sp_change_agent_parameter', 'sp_helpreplfailovermode', 'sp_change_agent_profile', + 'sp_helpreplicationdboption', 'sp_changearticle', 'sp_helpreplicationoption', 'sp_changedistpublisher', + 'sp_helpsubscriberinfo', 'sp_changedistributiondb', 'sp_helpsubscription', 'sp_changedistributor_password', + 'sp_ivindexhasnullcols', 'sp_changedistributor_property', 'sp_helpsubscription_properties', 'sp_changemergearticle', + 'sp_link_publication', 'sp_changemergefilter', 'sp_marksubscriptionvalidation', 'sp_changemergepublication', + 'sp_mergearticlecolumn', 'sp_changemergepullsubscription', 'sp_mergecleanupmetadata', 'sp_changemergesubscription', + 'sp_mergedummyupdate', 'sp_changepublication', 'sp_mergesubscription_cleanup', 'sp_changesubscriber', + 'sp_publication_validation', 'sp_changesubscriber_schedule', 'sp_refreshsubscriptions', 'sp_changesubscriptiondtsinfo', + 'sp_reinitmergepullsubscription', 'sp_changesubstatus', 'sp_reinitmergesubscription', 'sp_change_subscription_properties', + 'sp_reinitpullsubscription', 'sp_check_for_sync_trigger', 'sp_reinitsubscription', 'sp_copymergesnapshot', + 'sp_removedbreplication', 'sp_copysnapshot', 'sp_repladdcolumn', 'sp_copysubscription', 'sp_replcmds', + 'sp_deletemergeconflictrow', 'sp_replcounters', 'sp_disableagentoffload', 'sp_repldone', 'sp_drop_agent_parameter', + 'sp_repldropcolumn', 'sp_drop_agent_profile', 'sp_replflush', 'sp_droparticle', 'sp_replicationdboption', + 'sp_dropanonymouseagent', 'sp_replication_agent_checkup', 'sp_dropdistpublisher', 'sp_replqueuemonitor', + 'sp_dropdistributiondb', 'sp_replsetoriginator', 'sp_dropmergealternatepublisher', 'sp_replshowcmds', + 'sp_dropdistributor', 'sp_repltrans', 'sp_dropmergearticle', 'sp_restoredbreplication', 'sp_dropmergefilter', + 'sp_revoke_publication_access', 'sp_scriptsubconflicttable', 'sp_dropmergepublication', 'sp_script_synctran_commands', + 'sp_dropmergepullsubscription', 'sp_setreplfailovermode', 'sp_showrowreplicainfo', 'sp_dropmergesubscription', + 'sp_subscription_cleanup', 'sp_droppublication', 'sp_table_validation', 'sp_droppullsubscription', + 'sp_update_agent_profile', 'sp_dropsubscriber', 'sp_validatemergepublication', 'sp_dropsubscription', + 'sp_validatemergesubscription', 'sp_dsninfo', 'sp_vupgrade_replication', 'sp_dumpparamcmd', - //Security Procedures - 'sp_addalias', 'sp_droprolemember', 'sp_addapprole', 'sp_dropserver', 'sp_addgroup', 'sp_dropsrvrolemember', - 'sp_addlinkedsrvlogin', 'sp_dropuser', 'sp_addlogin', 'sp_grantdbaccess', 'sp_addremotelogin', - 'sp_grantlogin', 'sp_addrole', 'sp_helpdbfixedrole', 'sp_addrolemember', 'sp_helpgroup', - 'sp_addserver', 'sp_helplinkedsrvlogin', 'sp_addsrvrolemember', 'sp_helplogins', 'sp_adduser', - 'sp_helpntgroup', 'sp_approlepassword', 'sp_helpremotelogin', 'sp_changedbowner', 'sp_helprole', - 'sp_changegroup', 'sp_helprolemember', 'sp_changeobjectowner', 'sp_helprotect', 'sp_change_users_login', - 'sp_helpsrvrole', 'sp_dbfixedrolepermission', 'sp_helpsrvrolemember', 'sp_defaultdb', 'sp_helpuser', - 'sp_defaultlanguage', 'sp_MShasdbaccess', 'sp_denylogin', 'sp_password', 'sp_dropalias', 'sp_remoteoption', - 'sp_dropapprole', 'sp_revokedbaccess', 'sp_dropgroup', 'sp_revokelogin', 'sp_droplinkedsrvlogin', - 'sp_setapprole', 'sp_droplogin', 'sp_srvrolepermission', 'sp_dropremotelogin', 'sp_validatelogins', 'sp_droprole', + //Security Procedures + 'sp_addalias', 'sp_droprolemember', 'sp_addapprole', 'sp_dropserver', 'sp_addgroup', 'sp_dropsrvrolemember', + 'sp_addlinkedsrvlogin', 'sp_dropuser', 'sp_addlogin', 'sp_grantdbaccess', 'sp_addremotelogin', + 'sp_grantlogin', 'sp_addrole', 'sp_helpdbfixedrole', 'sp_addrolemember', 'sp_helpgroup', + 'sp_addserver', 'sp_helplinkedsrvlogin', 'sp_addsrvrolemember', 'sp_helplogins', 'sp_adduser', + 'sp_helpntgroup', 'sp_approlepassword', 'sp_helpremotelogin', 'sp_changedbowner', 'sp_helprole', + 'sp_changegroup', 'sp_helprolemember', 'sp_changeobjectowner', 'sp_helprotect', 'sp_change_users_login', + 'sp_helpsrvrole', 'sp_dbfixedrolepermission', 'sp_helpsrvrolemember', 'sp_defaultdb', 'sp_helpuser', + 'sp_defaultlanguage', 'sp_MShasdbaccess', 'sp_denylogin', 'sp_password', 'sp_dropalias', 'sp_remoteoption', + 'sp_dropapprole', 'sp_revokedbaccess', 'sp_dropgroup', 'sp_revokelogin', 'sp_droplinkedsrvlogin', + 'sp_setapprole', 'sp_droplogin', 'sp_srvrolepermission', 'sp_dropremotelogin', 'sp_validatelogins', 'sp_droprole', - //SQL Mail Procedures - 'sp_processmail', 'xp_sendmail', 'xp_deletemail', 'xp_startmail', 'xp_findnextmsg', 'xp_stopmail', 'xp_readmail', + //SQL Mail Procedures + 'sp_processmail', 'xp_sendmail', 'xp_deletemail', 'xp_startmail', 'xp_findnextmsg', 'xp_stopmail', 'xp_readmail', - //SQL Profiler Procedures - 'sp_trace_create', 'sp_trace_setfilter', 'sp_trace_generateevent', 'sp_trace_setstatus', 'sp_trace_setevent', + //SQL Profiler Procedures + 'sp_trace_create', 'sp_trace_setfilter', 'sp_trace_generateevent', 'sp_trace_setstatus', 'sp_trace_setevent', - //SQL Server Agent Procedures - 'sp_add_alert', 'sp_help_jobhistory', 'sp_add_category', 'sp_help_jobschedule', 'sp_add_job', - 'sp_help_jobserver', 'sp_add_jobschedule', 'sp_help_jobstep', 'sp_add_jobserver', 'sp_help_notification', - 'sp_add_jobstep', 'sp_help_operator', 'sp_add_notification', 'sp_help_targetserver', - 'sp_add_operator', 'sp_help_targetservergroup', 'sp_add_targetservergroup', 'sp_helptask', - 'sp_add_targetsvrgrp_member', 'sp_manage_jobs_by_login', 'sp_addtask', 'sp_msx_defect', - 'sp_apply_job_to_targets', 'sp_msx_enlist', 'sp_delete_alert', 'sp_post_msx_operation', - 'sp_delete_category', 'sp_purgehistory', 'sp_delete_job', 'sp_purge_jobhistory', 'sp_delete_jobschedule', - 'sp_reassigntask', 'sp_delete_jobserver', 'sp_remove_job_from_targets', 'sp_delete_jobstep', - 'sp_resync_targetserver', 'sp_delete_notification', 'sp_start_job', 'sp_delete_operator', - 'sp_stop_job', 'sp_delete_targetserver', 'sp_update_alert', 'sp_delete_targetservergroup', - 'sp_update_category', 'sp_delete_targetsvrgrp_member', 'sp_update_job', 'sp_droptask', - 'sp_update_jobschedule', 'sp_help_alert', 'sp_update_jobstep', 'sp_help_category', - 'sp_update_notification', 'sp_help_downloadlist', 'sp_update_operator', 'sp_helphistory', - 'sp_update_targetservergroup', 'sp_help_job', 'sp_updatetask', 'xp_sqlagent_proxy_account', + //SQL Server Agent Procedures + 'sp_add_alert', 'sp_help_jobhistory', 'sp_add_category', 'sp_help_jobschedule', 'sp_add_job', + 'sp_help_jobserver', 'sp_add_jobschedule', 'sp_help_jobstep', 'sp_add_jobserver', 'sp_help_notification', + 'sp_add_jobstep', 'sp_help_operator', 'sp_add_notification', 'sp_help_targetserver', + 'sp_add_operator', 'sp_help_targetservergroup', 'sp_add_targetservergroup', 'sp_helptask', + 'sp_add_targetsvrgrp_member', 'sp_manage_jobs_by_login', 'sp_addtask', 'sp_msx_defect', + 'sp_apply_job_to_targets', 'sp_msx_enlist', 'sp_delete_alert', 'sp_post_msx_operation', + 'sp_delete_category', 'sp_purgehistory', 'sp_delete_job', 'sp_purge_jobhistory', 'sp_delete_jobschedule', + 'sp_reassigntask', 'sp_delete_jobserver', 'sp_remove_job_from_targets', 'sp_delete_jobstep', + 'sp_resync_targetserver', 'sp_delete_notification', 'sp_start_job', 'sp_delete_operator', + 'sp_stop_job', 'sp_delete_targetserver', 'sp_update_alert', 'sp_delete_targetservergroup', + 'sp_update_category', 'sp_delete_targetsvrgrp_member', 'sp_update_job', 'sp_droptask', + 'sp_update_jobschedule', 'sp_help_alert', 'sp_update_jobstep', 'sp_help_category', + 'sp_update_notification', 'sp_help_downloadlist', 'sp_update_operator', 'sp_helphistory', + 'sp_update_targetservergroup', 'sp_help_job', 'sp_updatetask', 'xp_sqlagent_proxy_account', - //System Procedures - 'sp_add_data_file_recover_suspect_db', 'sp_helpconstraint', 'sp_addextendedproc', - 'sp_helpdb', 'sp_addextendedproperty', 'sp_helpdevice', 'sp_add_log_file_recover_suspect_db', - 'sp_helpextendedproc', 'sp_addmessage', 'sp_helpfile', 'sp_addtype', 'sp_helpfilegroup', - 'sp_addumpdevice', 'sp_helpindex', 'sp_altermessage', 'sp_helplanguage', 'sp_autostats', - 'sp_helpserver', 'sp_attach_db', 'sp_helpsort', 'sp_attach_single_file_db', 'sp_helpstats', - 'sp_bindefault', 'sp_helptext', 'sp_bindrule', 'sp_helptrigger', 'sp_bindsession', - 'sp_indexoption', 'sp_certify_removable', 'sp_invalidate_textptr', 'sp_configure', - 'sp_lock', 'sp_create_removable', 'sp_monitor', 'sp_createstats', 'sp_procoption', - 'sp_cycle_errorlog', 'sp_recompile', 'sp_datatype_info', 'sp_refreshview', 'sp_dbcmptlevel', - 'sp_releaseapplock', 'sp_dboption', 'sp_rename', 'sp_dbremove', 'sp_renamedb', - 'sp_delete_backuphistory', 'sp_resetstatus', 'sp_depends', 'sp_serveroption', 'sp_detach_db', - 'sp_setnetname', 'sp_dropdevice', 'sp_settriggerorder', 'sp_dropextendedproc', 'sp_spaceused', - 'sp_dropextendedproperty', 'sp_tableoption', 'sp_dropmessage', 'sp_unbindefault', 'sp_droptype', - 'sp_unbindrule', 'sp_executesql', 'sp_updateextendedproperty', 'sp_getapplock', 'sp_updatestats', - 'sp_getbindtoken', 'sp_validname', 'sp_help', 'sp_who', + //System Procedures + 'sp_add_data_file_recover_suspect_db', 'sp_helpconstraint', 'sp_addextendedproc', + 'sp_helpdb', 'sp_addextendedproperty', 'sp_helpdevice', 'sp_add_log_file_recover_suspect_db', + 'sp_helpextendedproc', 'sp_addmessage', 'sp_helpfile', 'sp_addtype', 'sp_helpfilegroup', + 'sp_addumpdevice', 'sp_helpindex', 'sp_altermessage', 'sp_helplanguage', 'sp_autostats', + 'sp_helpserver', 'sp_attach_db', 'sp_helpsort', 'sp_attach_single_file_db', 'sp_helpstats', + 'sp_bindefault', 'sp_helptext', 'sp_bindrule', 'sp_helptrigger', 'sp_bindsession', + 'sp_indexoption', 'sp_certify_removable', 'sp_invalidate_textptr', 'sp_configure', + 'sp_lock', 'sp_create_removable', 'sp_monitor', 'sp_createstats', 'sp_procoption', + 'sp_cycle_errorlog', 'sp_recompile', 'sp_datatype_info', 'sp_refreshview', 'sp_dbcmptlevel', + 'sp_releaseapplock', 'sp_dboption', 'sp_rename', 'sp_dbremove', 'sp_renamedb', + 'sp_delete_backuphistory', 'sp_resetstatus', 'sp_depends', 'sp_serveroption', 'sp_detach_db', + 'sp_setnetname', 'sp_dropdevice', 'sp_settriggerorder', 'sp_dropextendedproc', 'sp_spaceused', + 'sp_dropextendedproperty', 'sp_tableoption', 'sp_dropmessage', 'sp_unbindefault', 'sp_droptype', + 'sp_unbindrule', 'sp_executesql', 'sp_updateextendedproperty', 'sp_getapplock', 'sp_updatestats', + 'sp_getbindtoken', 'sp_validname', 'sp_help', 'sp_who', - //Web Assistant Procedures - 'sp_dropwebtask', 'sp_makewebtask', 'sp_enumcodepages', 'sp_runwebtask', + //Web Assistant Procedures + 'sp_dropwebtask', 'sp_makewebtask', 'sp_enumcodepages', 'sp_runwebtask', - //XML Procedures - 'sp_xml_preparedocument', 'sp_xml_removedocument', + //XML Procedures + 'sp_xml_preparedocument', 'sp_xml_removedocument', - //General Extended Procedures - 'xp_cmdshellxp_logininfo', 'xp_enumgroups', 'xp_msver', 'xp_findnextmsgxp_revokelogin', - 'xp_grantlogin', 'xp_sprintf', 'xp_logevent', 'xp_sqlmaint', 'xp_loginconfig', 'xp_sscanf', + //General Extended Procedures + 'xp_cmdshellxp_logininfo', 'xp_enumgroups', 'xp_msver', 'xp_findnextmsgxp_revokelogin', + 'xp_grantlogin', 'xp_sprintf', 'xp_logevent', 'xp_sqlmaint', 'xp_loginconfig', 'xp_sscanf', - //API System Stored Procedures - 'sp_cursor', 'sp_cursorclose', 'sp_cursorexecute', 'sp_cursorfetch', 'sp_cursoropen', - 'sp_cursoroption', 'sp_cursorprepare', 'sp_cursorunprepare', 'sp_execute', 'sp_prepare', 'sp_unprepare', + //API System Stored Procedures + 'sp_cursor', 'sp_cursorclose', 'sp_cursorexecute', 'sp_cursorfetch', 'sp_cursoropen', + 'sp_cursoroption', 'sp_cursorprepare', 'sp_cursorunprepare', 'sp_execute', 'sp_prepare', 'sp_unprepare', - //Misc - 'sp_createorphan', 'sp_droporphans', 'sp_reset_connection', 'sp_sdidebug' - ), - 4 => array( - //Function/sp's higlighted brown. - 'fn_helpcollations', 'fn_listextendedproperty ', 'fn_servershareddrives', - 'fn_trace_geteventinfo', 'fn_trace_getfilterinfo', 'fn_trace_getinfo', - 'fn_trace_gettable', 'fn_virtualfilestats', - ), - ), - 'SYMBOLS' => array( - '!', '!=', '%', '&', '&&', '(', ')', '*', '+', '-', '/', '<', '<<', '<=', - '<=>', '<>', '=', '>', '>=', '>>', '^', 'ALL', 'AND', 'ANY', 'BETWEEN', 'CROSS', - 'EXISTS', 'IN', 'JOIN', 'LIKE', 'NOT', 'NULL', 'OR', 'OUTER', 'SOME', '|', '||', '~' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false, - 2 => false, - 3 => false, - 4 => false, - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #0000FF;', - 2 => 'color: #FF00FF;', - 3 => 'color: #AF0000;', - 4 => 'color: #AF0000;' - ), - 'COMMENTS' => array( - 1 => 'color: #008080;', - 'MULTI' => 'color: #008080;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: #808080;' - ), - 'STRINGS' => array( - 0 => 'color: #FF0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #000;' - ), - 'METHODS' => array( - 1 => 'color: #202020;', - 2 => 'color: #202020;' - ), - 'SYMBOLS' => array( - 0 => 'color: #808080;' - ), - '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( - ) + //Misc + 'sp_createorphan', 'sp_droporphans', 'sp_reset_connection', 'sp_sdidebug' + ), + 4 => array( + //Function/sp's higlighted brown. + 'fn_helpcollations', 'fn_listextendedproperty ', 'fn_servershareddrives', + 'fn_trace_geteventinfo', 'fn_trace_getfilterinfo', 'fn_trace_getinfo', + 'fn_trace_gettable', 'fn_virtualfilestats', + ), + ), + 'SYMBOLS' => array( + '!', '!=', '%', '&', '&&', '(', ')', '*', '+', '-', '/', '<', '<<', '<=', + '<=>', '<>', '=', '>', '>=', '>>', '^', 'ALL', 'AND', 'ANY', 'BETWEEN', 'CROSS', + 'EXISTS', 'IN', 'JOIN', 'LIKE', 'NOT', 'NULL', 'OR', 'OUTER', 'SOME', '|', '||', '~' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000FF;', + 2 => 'color: #FF00FF;', + 3 => 'color: #AF0000;', + 4 => 'color: #AF0000;' + ), + 'COMMENTS' => array( + 1 => 'color: #008080;', + 'MULTI' => 'color: #008080;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #808080;' + ), + 'STRINGS' => array( + 0 => 'color: #FF0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #000;' + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #808080;' + ), + '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/plugins/geshi/vb.php b/plugins/geshi/vb.php old mode 100644 new mode 100755 index bbea101..8c9b746 --- a/plugins/geshi/vb.php +++ b/plugins/geshi/vb.php @@ -38,111 +38,109 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ************************************************************************************/ - $language_data = array ( - 'LANG_NAME' => 'Visual Basic', - 'COMMENT_SINGLE' => array(1 => "'"), - 'COMMENT_MULTI' => array(), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array('"'), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - 1 => array( - 'as', 'err', 'boolean', 'and', 'or', 'recordset', 'unload', 'to', - 'integer','long','single','new','database','nothing','set','close', - 'open','print','split','line','field','querydef','instrrev', - 'abs','array','asc','ascb','ascw','atn','avg','me', - 'cbool','cbyte','ccur','cdate','cdbl','cdec','choose','chr','chrb','chrw','cint','clng', - 'command','cos','count','createobject','csng','cstr','curdir','cvar','cvdate','cverr', - 'date','dateadd','datediff','datepart','dateserial','datevalue','day','ddb','dir','doevents', - 'environ','eof','error','exp', - 'fileattr','filedatetime','filelen','fix','format','freefile','fv', - 'getallstrings','getattr','getautoserversettings','getobject','getsetting', - 'hex','hour','iif','imestatus','input','inputb','inputbox','instr','instb','int','ipmt', - 'isarray','isdate','isempty','iserror','ismissing','isnull','isnumeric','isobject', - 'lbound','lcase','left','leftb','len','lenb','loadpicture','loc','lof','log','ltrim', - 'max','mid','midb','min','minute','mirr','month','msgbox', - 'now','nper','npv','oct','partition','pmt','ppmt','pv','qbcolor', - 'rate','rgb','right','rightb','rnd','rtrim', - 'second','seek','sgn','shell','sin','sln','space','spc','sqr','stdev','stdevp','str', - 'strcomp','strconv','string','switch','sum','syd', - 'tab','tan','time','timer','timeserial','timevalue','trim','typename', - 'ubound','ucase','val','var','varp','vartype','weekday','year', - 'appactivate','base','beep','call','case','chdir','chdrive','const', - 'declare','defbool','defbyte','defcur','defdate','defdbl','defdec','defint', - 'deflng','defobj','defsng','defstr','deftype','defvar','deletesetting','dim','do', - 'else','elseif','end','enum','erase','event','exit','explicit', - 'false','filecopy','for','foreach','friend','function','get','gosub','goto', - 'if','implements','kill','let','lineinput','lock','loop','lset','mkdir','name','next','not', - 'onerror','on','option','private','property','public','put','raiseevent','randomize', - 'redim','rem','reset','resume','return','rmdir','rset', - 'savepicture','savesetting','sendkeys','setattr','static','sub', - 'then','true','type','unlock','wend','while','width','with','write', - 'vbabort','vbabortretryignore','vbapplicationmodal','vbarray', - 'vbbinarycompare','vbblack','vbblue','vbboolean','vbbyte','vbcancel', - 'vbcr','vbcritical','vbcrlf','vbcurrency','vbcyan','vbdataobject', - 'vbdate','vbdecimal','vbdefaultbutton1','vbdefaultbutton2', - 'vbdefaultbutton3','vbdefaultbutton4','vbdouble','vbempty', - 'vberror','vbexclamation','vbfirstfourdays','vbfirstfullweek', - 'vbfirstjan1','vbformfeed','vbfriday','vbgeneraldate','vbgreen', - 'vbignore','vbinformation','vbinteger','vblf','vblong','vblongdate', - 'vblongtime','vbmagenta','vbmonday','vbnewline','vbno','vbnull', - 'vbnullchar','vbnullstring','vbobject','vbobjecterror','vbok','vbokcancel', - 'vbokonly','vbquestion','vbred','vbretry','vbretrycancel','vbsaturday', - 'vbshortdate','vbshorttime','vbsingle','vbstring','vbsunday', - 'vbsystemmodal','vbtab','vbtextcompare','vbthursday','vbtuesday', - 'vbusesystem','vbusesystemdayofweek','vbvariant','vbverticaltab', - 'vbwednesday','vbwhite','vbyellow','vbyes','vbyesno','vbyesnocancel', - 'vbnormal','vbdirectory' - ) - ), - 'SYMBOLS' => array( - '(', ')' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #b1b100;' - ), - 'COMMENTS' => array( - 1 => 'color: #808080;' - ), - 'BRACKETS' => array( - 0 => 'color: #66cc66;' - ), - 'STRINGS' => array( - 0 => 'color: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( - 1 => 'color: #66cc66;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099;' - ), - 'SCRIPT' => array( - ), - 'REGEXPS' => array( - ) - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.' - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + $language_data = array( + 'LANG_NAME' => 'Visual Basic', + 'COMMENT_SINGLE' => array(1 => "'"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'as', 'err', 'boolean', 'and', 'or', 'recordset', 'unload', 'to', + 'integer','long','single','new','database','nothing','set','close', + 'open','print','split','line','field','querydef','instrrev', + 'abs','array','asc','ascb','ascw','atn','avg','me', + 'cbool','cbyte','ccur','cdate','cdbl','cdec','choose','chr','chrb','chrw','cint','clng', + 'command','cos','count','createobject','csng','cstr','curdir','cvar','cvdate','cverr', + 'date','dateadd','datediff','datepart','dateserial','datevalue','day','ddb','dir','doevents', + 'environ','eof','error','exp', + 'fileattr','filedatetime','filelen','fix','format','freefile','fv', + 'getallstrings','getattr','getautoserversettings','getobject','getsetting', + 'hex','hour','iif','imestatus','input','inputb','inputbox','instr','instb','int','ipmt', + 'isarray','isdate','isempty','iserror','ismissing','isnull','isnumeric','isobject', + 'lbound','lcase','left','leftb','len','lenb','loadpicture','loc','lof','log','ltrim', + 'max','mid','midb','min','minute','mirr','month','msgbox', + 'now','nper','npv','oct','partition','pmt','ppmt','pv','qbcolor', + 'rate','rgb','right','rightb','rnd','rtrim', + 'second','seek','sgn','shell','sin','sln','space','spc','sqr','stdev','stdevp','str', + 'strcomp','strconv','string','switch','sum','syd', + 'tab','tan','time','timer','timeserial','timevalue','trim','typename', + 'ubound','ucase','val','var','varp','vartype','weekday','year', + 'appactivate','base','beep','call','case','chdir','chdrive','const', + 'declare','defbool','defbyte','defcur','defdate','defdbl','defdec','defint', + 'deflng','defobj','defsng','defstr','deftype','defvar','deletesetting','dim','do', + 'else','elseif','end','enum','erase','event','exit','explicit', + 'false','filecopy','for','foreach','friend','function','get','gosub','goto', + 'if','implements','kill','let','lineinput','lock','loop','lset','mkdir','name','next','not', + 'onerror','on','option','private','property','public','put','raiseevent','randomize', + 'redim','rem','reset','resume','return','rmdir','rset', + 'savepicture','savesetting','sendkeys','setattr','static','sub', + 'then','true','type','unlock','wend','while','width','with','write', + 'vbabort','vbabortretryignore','vbapplicationmodal','vbarray', + 'vbbinarycompare','vbblack','vbblue','vbboolean','vbbyte','vbcancel', + 'vbcr','vbcritical','vbcrlf','vbcurrency','vbcyan','vbdataobject', + 'vbdate','vbdecimal','vbdefaultbutton1','vbdefaultbutton2', + 'vbdefaultbutton3','vbdefaultbutton4','vbdouble','vbempty', + 'vberror','vbexclamation','vbfirstfourdays','vbfirstfullweek', + 'vbfirstjan1','vbformfeed','vbfriday','vbgeneraldate','vbgreen', + 'vbignore','vbinformation','vbinteger','vblf','vblong','vblongdate', + 'vblongtime','vbmagenta','vbmonday','vbnewline','vbno','vbnull', + 'vbnullchar','vbnullstring','vbobject','vbobjecterror','vbok','vbokcancel', + 'vbokonly','vbquestion','vbred','vbretry','vbretrycancel','vbsaturday', + 'vbshortdate','vbshorttime','vbsingle','vbstring','vbsunday', + 'vbsystemmodal','vbtab','vbtextcompare','vbthursday','vbtuesday', + 'vbusesystem','vbusesystemdayofweek','vbvariant','vbverticaltab', + 'vbwednesday','vbwhite','vbyellow','vbyes','vbyesno','vbyesnocancel', + 'vbnormal','vbdirectory' + ) + ), + 'SYMBOLS' => array( + '(', ')' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #66cc66;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/vbnet.php b/plugins/geshi/vbnet.php old mode 100644 new mode 100755 index c417fee..e490757 --- a/plugins/geshi/vbnet.php +++ b/plugins/geshi/vbnet.php @@ -37,161 +37,159 @@ * ************************************************************************************/ - $language_data = array ( - 'LANG_NAME' => 'vb.net', - 'COMMENT_SINGLE' => array(1 => "'"), - 'COMMENT_MULTI' => array(), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array('"'), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - 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', 'TAB', 'TEMPORARYFOLDER', - 'TEXTCOMPARE', 'TITLEBARTEXT', 'TRUE', 'UNICODE', 'UNKNOWN', 'UPPERCASE', 'VERTICALTAB', - 'VOLUME', 'WHITE', 'WIDE', 'WIN16', 'WIN32', 'WINDOWBACKGROUND', 'WINDOWFRAME', - 'WINDOWSFOLDER', 'WINDOWTEXT', 'YELLOW', 'YES', 'YESNO', 'YESNOCANCEL' - ), - 2 => array( - 'AndAlso', 'As', 'ADDHANDLER', 'ASSEMBLY', 'AUTO', 'Binary', 'ByRef', 'ByVal', 'BEGINEPILOGUE', - 'Else', 'ElseIf', 'Empty', 'Error', 'ENDPROLOGUE', 'EXTERNALSOURCE', 'ENVIRON', 'For', - 'Friend', 'GET', 'HANDLES', 'Input', 'Is', 'IsNot', 'Len', 'Lock', 'Me', 'Mid', 'MUSTINHERIT', - 'MYBASE', 'MYCLASS', 'New', 'Next', 'Nothing', 'Null', 'NOTINHERITABLE', - 'NOTOVERRIDABLE', 'OFF', 'On', 'Option', 'Optional', 'Overloads', 'OVERRIDABLE', 'ParamArray', - 'Print', 'Private', 'Property', 'Public', 'Resume', 'Return', 'Seek', 'Static', 'Step', - 'String', 'SHELL', 'SENDKEYS', 'SET', 'Shared', 'Then', 'Time', 'To', 'THROW', 'WithEvents' - ), - 3 => array( - 'COLLECTION', 'DEBUG', 'DICTIONARY', 'DRIVE', 'DRIVES', 'ERR', 'FILE', 'FILES', - 'FILESYSTEMOBJECT', 'FOLDER', 'FOLDERS', 'TEXTSTREAM' - ), - 4 => array( - 'BOOLEAN', 'BYTE', 'DATE', 'DECIMIAL', 'DOUBLE', 'INTEGER', 'LONG', 'OBJECT', - 'SINGLE STRING' - ), - 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', 'MIDB', 'NAMESPACE', 'OPEN', 'PUT', - 'RAISEEVENT', 'RANDOMIZE', 'REDIM', 'REM', 'RESET', 'SAVESETTING', 'SELECT', - 'SETATTR', 'STOP', 'SUB', 'SYNCLOCK', 'STRUCTURE', 'SHADOWS', 'SWITCH', - 'TIMEOFDAY', 'TODAY', 'TRY', 'WIDTH', 'WITH', 'WRITE', 'WHILE' - ), - 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', - 'DATEDIFF', 'DATEPART', 'DATESERIAL', 'DATEVALUE', 'DAY', 'DDB', 'DIR', 'DIR$', - 'EOF', 'ERROR$', 'EXP', 'FILEATTR', 'FILECOPY', 'FILEDATATIME', 'FILELEN', 'FILTER', - 'FIX', 'FORMAT', 'FORMAT$', 'FORMATCURRENCY', 'FORMATDATETIME', 'FORMATNUMBER', - 'FORMATPERCENT', 'FREEFILE', 'FV', 'GETALLSETTINGS', 'GETATTRGETOBJECT', 'GETSETTING', - 'HEX', 'HEX$', 'HOUR', 'IIF', 'IMESTATUS', 'INPUT$', 'INPUTB', 'INPUTB$', 'INPUTBOX', - 'INSTR', 'INSTRB', 'INSTRREV', 'INT', 'IPMT', 'IRR', 'ISARRAY', 'ISDATE', 'ISEMPTY', - 'ISERROR', 'ISNULL', 'ISNUMERIC', 'ISOBJECT', 'JOIN', 'LBOUND', 'LCASE', 'LCASE$', - 'LEFT', 'LEFT$', 'LEFTB', 'LEFTB$', 'LENB', 'LINEINPUT', 'LOC', 'LOF', 'LOG', 'LTRIM', - 'LTRIM$', 'MID$', 'MIDB', 'MIDB$', 'MINUTE', 'MIRR', 'MKDIR', 'MONTH', 'MONTHNAME', - 'MSGBOX', 'NOW', 'NPER', 'NPV', 'OCT', 'OCT$', 'PARTITION', 'PMT', 'PPMT', 'PV', - 'RATE', 'REPLACE', 'RIGHT', 'RIGHT$', 'RIGHTB', 'RIGHTB$', 'RMDIR', 'RND', 'RTRIM', - 'RTRIM$', 'SECOND', 'SIN', 'SLN', 'SPACE', 'SPACE$', 'SPC', 'SPLIT', 'SQRT', 'STR', 'STR$', - 'STRCOMP', 'STRCONV', 'STRING$', 'STRREVERSE', 'SYD', 'TAB', 'TAN', 'TIMEOFDAY', - '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 => true, - 1 => false, - 2 => false, - 3 => false, - 4 => false, - 5 => false, - 6 => false, - 7 => false, - 8 => 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 - ), - 'COMMENTS' => array( - 1 => 'color: #008080; font-style: italic;', - 'MULTI' => 'color: #008080; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #008080; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: #000000;' - ), - 'STRINGS' => array( - 0 => 'color: #808080;' - ), - 'NUMBERS' => array( - 0 => 'color: #FF0000;' - ), - 'METHODS' => array( - 1 => 'color: #0000FF;' - ), - 'SYMBOLS' => array( - 0 => 'color: #008000;' - ), - 'REGEXPS' => array( - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - 1 => '', - 2 => '', - 3 => 'http://www.google.com/search?q={FNAME}+msdn.microsoft.com', - 4 => '' - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 =>'.' - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) + $language_data = array( + 'LANG_NAME' => 'vb.net', + 'COMMENT_SINGLE' => array(1 => "'"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 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', 'TAB', 'TEMPORARYFOLDER', + 'TEXTCOMPARE', 'TITLEBARTEXT', 'TRUE', 'UNICODE', 'UNKNOWN', 'UPPERCASE', 'VERTICALTAB', + 'VOLUME', 'WHITE', 'WIDE', 'WIN16', 'WIN32', 'WINDOWBACKGROUND', 'WINDOWFRAME', + 'WINDOWSFOLDER', 'WINDOWTEXT', 'YELLOW', 'YES', 'YESNO', 'YESNOCANCEL' + ), + 2 => array( + 'AndAlso', 'As', 'ADDHANDLER', 'ASSEMBLY', 'AUTO', 'Binary', 'ByRef', 'ByVal', 'BEGINEPILOGUE', + 'Else', 'ElseIf', 'Empty', 'Error', 'ENDPROLOGUE', 'EXTERNALSOURCE', 'ENVIRON', 'For', + 'Friend', 'GET', 'HANDLES', 'Input', 'Is', 'IsNot', 'Len', 'Lock', 'Me', 'Mid', 'MUSTINHERIT', + 'MYBASE', 'MYCLASS', 'New', 'Next', 'Nothing', 'Null', 'NOTINHERITABLE', + 'NOTOVERRIDABLE', 'OFF', 'On', 'Option', 'Optional', 'Overloads', 'OVERRIDABLE', 'ParamArray', + 'Print', 'Private', 'Property', 'Public', 'Resume', 'Return', 'Seek', 'Static', 'Step', + 'String', 'SHELL', 'SENDKEYS', 'SET', 'Shared', 'Then', 'Time', 'To', 'THROW', 'WithEvents' + ), + 3 => array( + 'COLLECTION', 'DEBUG', 'DICTIONARY', 'DRIVE', 'DRIVES', 'ERR', 'FILE', 'FILES', + 'FILESYSTEMOBJECT', 'FOLDER', 'FOLDERS', 'TEXTSTREAM' + ), + 4 => array( + 'BOOLEAN', 'BYTE', 'DATE', 'DECIMIAL', 'DOUBLE', 'INTEGER', 'LONG', 'OBJECT', + 'SINGLE STRING' + ), + 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', 'MIDB', 'NAMESPACE', 'OPEN', 'PUT', + 'RAISEEVENT', 'RANDOMIZE', 'REDIM', 'REM', 'RESET', 'SAVESETTING', 'SELECT', + 'SETATTR', 'STOP', 'SUB', 'SYNCLOCK', 'STRUCTURE', 'SHADOWS', 'SWITCH', + 'TIMEOFDAY', 'TODAY', 'TRY', 'WIDTH', 'WITH', 'WRITE', 'WHILE' + ), + 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', + 'DATEDIFF', 'DATEPART', 'DATESERIAL', 'DATEVALUE', 'DAY', 'DDB', 'DIR', 'DIR$', + 'EOF', 'ERROR$', 'EXP', 'FILEATTR', 'FILECOPY', 'FILEDATATIME', 'FILELEN', 'FILTER', + 'FIX', 'FORMAT', 'FORMAT$', 'FORMATCURRENCY', 'FORMATDATETIME', 'FORMATNUMBER', + 'FORMATPERCENT', 'FREEFILE', 'FV', 'GETALLSETTINGS', 'GETATTRGETOBJECT', 'GETSETTING', + 'HEX', 'HEX$', 'HOUR', 'IIF', 'IMESTATUS', 'INPUT$', 'INPUTB', 'INPUTB$', 'INPUTBOX', + 'INSTR', 'INSTRB', 'INSTRREV', 'INT', 'IPMT', 'IRR', 'ISARRAY', 'ISDATE', 'ISEMPTY', + 'ISERROR', 'ISNULL', 'ISNUMERIC', 'ISOBJECT', 'JOIN', 'LBOUND', 'LCASE', 'LCASE$', + 'LEFT', 'LEFT$', 'LEFTB', 'LEFTB$', 'LENB', 'LINEINPUT', 'LOC', 'LOF', 'LOG', 'LTRIM', + 'LTRIM$', 'MID$', 'MIDB', 'MIDB$', 'MINUTE', 'MIRR', 'MKDIR', 'MONTH', 'MONTHNAME', + 'MSGBOX', 'NOW', 'NPER', 'NPV', 'OCT', 'OCT$', 'PARTITION', 'PMT', 'PPMT', 'PV', + 'RATE', 'REPLACE', 'RIGHT', 'RIGHT$', 'RIGHTB', 'RIGHTB$', 'RMDIR', 'RND', 'RTRIM', + 'RTRIM$', 'SECOND', 'SIN', 'SLN', 'SPACE', 'SPACE$', 'SPC', 'SPLIT', 'SQRT', 'STR', 'STR$', + 'STRCOMP', 'STRCONV', 'STRING$', 'STRREVERSE', 'SYD', 'TAB', 'TAN', 'TIMEOFDAY', + '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 => true, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => 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 + ), + 'COMMENTS' => array( + 1 => 'color: #008080; font-style: italic;', + 'MULTI' => 'color: #008080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #008080; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #808080;' + ), + 'NUMBERS' => array( + 0 => 'color: #FF0000;' + ), + 'METHODS' => array( + 1 => 'color: #0000FF;' + ), + 'SYMBOLS' => array( + 0 => 'color: #008000;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => 'http://www.google.com/search?q={FNAME}+msdn.microsoft.com', + 4 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 =>'.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/vhdl.php b/plugins/geshi/vhdl.php old mode 100644 new mode 100755 index 47d1eb7..ad960f7 --- a/plugins/geshi/vhdl.php +++ b/plugins/geshi/vhdl.php @@ -37,7 +37,7 @@ * ************************************************************************************/ -$language_data = array ( +$language_data = array( 'LANG_NAME' => 'VHDL', 'COMMENT_SINGLE' => array(1 => '--'), 'COMMENT_MULTI' => array(), @@ -134,5 +134,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/plugins/geshi/visualfoxpro.php b/plugins/geshi/visualfoxpro.php old mode 100644 new mode 100755 index 7265342..ada39ce --- a/plugins/geshi/visualfoxpro.php +++ b/plugins/geshi/visualfoxpro.php @@ -39,404 +39,402 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Visual Fox Pro', - 'COMMENT_SINGLE' => array(1 => "//", 2 => "\n*"), - 'COMMENT_MULTI' => array(), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array('"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array('Case', 'Else', '#Else', 'Then', - 'Endcase', 'Enddefine', 'Enddo', 'Endfor', 'Endfunc', 'Endif', 'Endprintjob', - 'Endproc', 'Endscan', 'Endtext', 'Endwith', '#Endif', - '#Elif','#Else','#Endif','#Define','#If','#Include', - '#Itsexpression','#Readclauses','#Region','#Section','#Undef','#Wname', - 'Case','Define','Do','Else','Endcase','Enddefine', - 'Enddo','Endfor','Endfunc','Endif','Endprintjob','Endproc', - 'Endscan','Endtext','Endwith','For','Function','Hidden', - 'If','Local','Lparameter','Lparameters','Next','Otherwise', - 'Parameters','Printjob','Procedure','Protected','Public','Scan', - 'Text','Then','While','With','?','??', - '???','Abs','Accept','Access','Aclass','Acopy', - 'Acos','Adatabases','Adbobjects','Addbs','Addrelationtoenv','Addtabletoenv', - 'Adel','Adir','Aelement','Aerror','Afields','Afont', - 'Agetclass','Agetfileversion','Ains','Ainstance','Alen','Align', - 'Alines','Alltrim','Alter','Amembers','Amouseobj','Anetresources', - 'Ansitooem','Append','Aprinters','Ascan','Aselobj','Asin', - 'Asort','Assert','Asserts','Assist','Asubscript','Asynchronous', - 'At_c','Atan','Atc','Atcc','Atcline','Atline', - 'Atn2','Aused','Autoform','Autoreport','Avcxclasses','Average', - 'BarCount','BarPrompt','BatchMode','BatchUpdateCount','Begin','BellSound', - 'BinToC','Bintoc','Bitand','Bitclear','Bitlshift','Bitnot', - 'Bitor','Bitrshift','Bitset','Bittest','Bitxor','Bof', - 'Browse','BrowseRefresh','Buffering','BuilderLock','COMArray','COMReturnError', - 'CToBin','Calculate','Call','Capslock','Cd','Cdow', - 'Ceiling','Central','Change','Char','Chdir','Chr', - 'Chrsaw','Chrtran','Chrtranc','Close','Cmonth','Cntbar', - 'Cntpad','Col','Comclassinfo','CommandTargetQuery','Compile','Completed', - 'Compobj','Compute','Concat','ConnectBusy','ConnectHandle','ConnectName', - 'ConnectString','ConnectTimeOut','ContainerReleaseType','Continue','Copy','Cos', - 'Cot','Count','Coverage','Cpconvert','Cpcurrent','Cpdbf', - 'Cpnotrans','Create','CreateBinary','Createobject','Createobjectex','Createoffline', - 'CrsBuffering','CrsFetchMemo','CrsFetchSize','CrsMaxRows','CrsMethodUsed','CrsNumBatch', - 'CrsShareConnection','CrsUseMemoSize','CrsWhereClause','Ctobin','Ctod','Ctot', - 'Curdate','Curdir','CurrLeft','CurrSymbol','CursorGetProp','CursorSetProp', - 'Curtime','Curval','DBGetProp','DBSetProp','DB_BufLockRow','DB_BufLockTable', - 'DB_BufOff','DB_BufOptRow','DB_BufOptTable','DB_Complette','DB_DeleteInsert','DB_KeyAndModified', - 'DB_KeyAndTimestamp','DB_KeyAndUpdatable','DB_LocalSQL','DB_NoPrompt','DB_Prompt','DB_RemoteSQL', - 'DB_TransAuto','DB_TransManual','DB_TransNone','DB_Update','Datetime','Day', - 'Dayname','Dayofmonth','Dayofweek','Dayofyear','Dbalias','Dbused', - 'Ddeaborttrans','Ddeadvise','Ddeenabled','Ddeexecute','Ddeinitiate','Ddelasterror', - 'Ddepoke','Dderequest','Ddesetoption','Ddesetservice','Ddesettopic','Ddeterminate', - 'Debugout','Declare','DefOLELCid','DefaultValue','Defaultext','Degrees', - 'DeleteTrigger','Desc','Description','Difference','Dimension','Dir', - 'Directory','Diskspace','DispLogin','DispWarnings','Display','Dll', - 'Dmy','DoDefault','DoEvents','Doc','Doevents','Dow', - 'Drivetype','Drop','Dropoffline','Dtoc','Dtor','Dtos', - 'Dtot','DynamicInputMask','Each','Edit','Eject','Elif', - 'End','Eof','Erase','Evaluate','Event','Eventtracking', - 'Exclude','Exclusive','Exit','Exp','Export','External', - 'FDate','FTime','Fchsize','Fclose','Fcount','Fcreate', - 'Feof','Ferror','FetchMemo','FetchSize','Fflush','Fgets', - 'Filer','Filetostr','Find','Fklabel','Fkmax','Fldlist', - 'Flock','Floor','Flush','Fontmetric','Fopen','Forceext', - 'Forcepath','FormSetClass','FormSetLib','FormsClass','FormsLib','Found', - 'FoxPro','Foxcode','Foxdoc','Foxgen','Foxgraph','Foxview', - 'Fputs','Fread','French','Fseek','Fsize','Fv', - 'Fwrite','Gather','German','GetPem','Getbar','Getcolor', - 'Getcp','Getdir','Getenv','Getexpr','Getfile','Getfldstate', - 'Getfont','Gethost','Getnextmodified','Getobject','Getpad','Getpict', - 'Getprinter','Go','Gomonth','Goto','Graph','GridHorz', - 'GridShow','GridShowPos','GridSnap','GridVert','Help','HelpOn', - 'HelpTo','HighLightRow','Home','Hour','IMEStatus','IdleTimeOut', - 'Idxcollate','Ifdef','Ifndef','Iif','Import','Include', - 'Indbc','Index','Indexseek','Inkey','Inlist','Input', - 'Insert','InsertTrigger','Insmode','IsBlank','IsFLocked','IsLeadByte', - 'IsMouse','IsNull','IsRLocked','Isalpha','Iscolor','Isdigit', - 'Isexclusive','Isflocked','Ishosted','Islower','Isreadonly','Isrlocked', - 'Isupper','Italian','Japan','Join','Justdrive','Justext', - 'Justfname','Justpath','Juststem','KeyField','KeyFieldList','Keyboard' - ), - 2 => array('Keymatch','LastProject','Lastkey','Lcase','Leftc','Len', - 'Lenc','Length','Likec','Lineno','LoadPicture','Loadpicture', - 'Locate','Locfile','Log','Log10','Logout','Lookup', - 'Loop','Lower','Ltrim','Lupdate','Mail','MaxRecords', - 'Mcol','Md','Mdown','Mdx','Mdy','Memlines', - 'Menu','Messagebox','Minute','Mkdir','Mline','Modify', - 'Month','Monthname','Mouse','Mrkbar','Mrkpad','Mrow', - 'Mtdll','Mton','Mwindow','Native','Ndx','Network', - 'NoFilter','Nodefault','Normalize','Note','Now','Ntom', - 'NullString','Numlock','Nvl','ODBChdbc','ODBChstmt','OLEDropTextInsertion', - 'OLELCid','Objnum','Objref','Objtoclient','Objvar','Occurs', - 'Oemtoansi','Oldval','OlePublic','Olereturnerror','On','Open', - 'Oracle','Order','Os','Outer','PCount','Pack', - 'PacketSize','Padc','Padl','Padr','Payment','Pcol', - 'PemStatus','Pi','Pivot','Play','Pop','Popup', - 'Power','PrimaryKey','Printstatus','Private','Prmbar','Prmpad', - 'ProjectClick','Proper','Prow','Prtinfo','Push','Putfile', - 'Pv','Qpr','Quater','QueryTimeOut','Quit','Radians', - 'Rand','Rat','Ratc','Ratline','Rd','Rdlevel', - 'Read','Readkey','Recall','Reccount','RecentlyUsedFiles','Recno', - 'Recsize','Regional','Reindex','RelatedChild','RelatedTable','RelatedTag', - 'Remove','Rename','Repeat','Replace','Replicate','Report', - 'ResHeight','ResWidth','ResourceOn','ResourceTo','Resources','Restore', - 'Resume','Retry','Return','Revertoffline','Rgbscheme','Rightc', - 'Rlock','Rmdir','Rollback','Round','Rtod','Rtrim', - 'RuleExpression','RuleText','Run','Runscript','Rview','SQLAsynchronous', - 'SQLBatchMode','SQLCancel','SQLColumns','SQLConnect','SQLConnectTimeOut','SQLDisconnect', - 'SQLDispLogin','SQLDispWarnings','SQLExec','SQLGetProp','SQLIdleTimeOut','SQLMoreResults', - 'SQLPrepare','SQLQueryTimeOut','SQLSetProp','SQLTables','SQLTransactions','SQLWaitTime', - 'Save','SavePicture','Savepicture','ScaleUnits','Scatter','Scols', - 'Scroll','Sec','Second','Seek','Select','SendUpdates', - 'Set','SetDefault','Setfldstate','Setup','ShareConnection','ShowOLEControls', - 'ShowOLEInsertable','ShowVCXs','Sign','Sin','Size','SizeBox', - 'Skpbar','Skppad','Sort','Soundex','SourceName','Sqlcommit', - 'Sqll','Sqlrollback','Sqlstringconnect','Sqrt','Srows','StatusBar', - 'Store','Str','Strconv','Strtofile','Strtran','Stuff', - 'Stuffc','Substr','Substrc','Substring','Sum','Suspend', - 'Sys','Sysmetric','TabOrdering','Table','TableRefresh','Tablerevert', - 'Tableupdate','TagCount','TagNo','Tan','Target','This', - 'Thisform','Thisformset','Timestamp','Timestampdiff','Total','Transactions', - 'Transform','Trim','Truncate','Ttoc','Ttod','Txnlevel', - 'Txtwidth','Type','Ucase','Undefine','Unlock','Unpack', - 'Updatable','UpdatableFieldList','Update','UpdateName','UpdateNameList','UpdateTrigger', - 'UpdateType','Updated','Upper','Upsizing','Usa','Use', - 'UseMemoSize','Used','Val','Validate','Varread','Vartype', - 'Version','VersionLanguage','Wait','WaitTime','Wborder','Wchild', - 'Wcols','Week','Wexist','Wfont','WhereType','Windcmd', - 'Windhelp','Windmemo','Windmenu','Windmodify','Windquery','Windscreen', - 'Windsnip','Windstproc','WizardPrompt','Wlast','Wlcol','Wlrow', - 'Wmaximum','Wminimum','Wontop','Woutput','Wparent','Wread', - 'Wrows','Wtitle','Wvisible','Year','Zap','_Alignment', - '_Asciicols','_Asciirows','_Assist','_Beautify','_Box','_Browser', - '_Builder','_Calcmem','_Calcvalue','_Cliptext','_Converter','_Coverage', - '_Curobj','_Dblclick','_Diarydate','_Dos','_Foxdoc','_Foxgraph', - '_Gallery','_Gengraph','_Genhtml','_Genmenu','_Genpd','_Genscrn', - '_Genxtab','_Getexpr','_Include','_Indent','_Lmargin','_Mac', - '_Mbr_appnd','_Mbr_cpart','_Mbr_delet','_Mbr_font','_Mbr_goto','_Mbr_grid', - '_Mbr_link','_Mbr_mode','_Mbr_mvfld','_Mbr_mvprt','_Mbr_seek','_Mbr_sp100', - '_Mbr_sp200','_Mbr_szfld','_Mbrowse','_Mda_appnd','_Mda_avg','_Mda_brow', - '_Mda_calc','_Mda_copy','_Mda_count','_Mda_label','_Mda_pack','_Mda_reprt', - '_Mda_rindx','_Mda_setup','_Mda_sort','_Mda_sp100','_Mda_sp200','_Mda_sp300', - '_Mda_sum','_Mda_total','_Mdata','_Mdiary','_Med_clear','_Med_copy', - '_Med_cut','_Med_cvtst','_Med_find','_Med_finda','_Med_goto','_Med_insob', - '_Med_link','_Med_obj','_Med_paste','_Med_pref','_Med_pstlk','_Med_redo', - '_Med_repl','_Med_repla','_Med_slcta','_Med_sp100','_Med_sp200','_Med_sp300', - '_Med_sp400','_Med_sp500','_Med_undo','_Medit','_Mfi_clall','_Mfi_close', - '_Mfi_export','_Mfi_import','_Mfi_new','_Mfi_open','_Mfi_pgset','_Mfi_prevu', - '_Mfi_print','_Mfi_quit','_Mfi_revrt','_Mfi_savas','_Mfi_save','_Mfi_send', - '_Mfi_setup','_Mfi_sp100','_Mfi_sp200','_Mfi_sp300','_Mfi_sp400','_Mfile', - '_Mfiler','_Mfirst','_Mlabel','_Mlast','_Mline','_Mmacro', - '_Mmbldr','_Mpr_beaut','_Mpr_cancl','_Mpr_compl','_Mpr_do','_Mpr_docum', - '_Mpr_formwz','_Mpr_gener','_Mpr_graph','_Mpr_resum','_Mpr_sp100','_Mpr_sp200', - '_Mpr_sp300','_Mpr_suspend','_Mprog','_Mproj','_Mrc_appnd','_Mrc_chnge', - '_Mrc_cont','_Mrc_delet','_Mrc_goto','_Mrc_locat','_Mrc_recal','_Mrc_repl', - '_Mrc_seek','_Mrc_sp100','_Mrc_sp200','_Mrecord','_Mreport','_Mrqbe', - '_Mscreen','_Msm_data','_Msm_edit','_Msm_file','_Msm_format','_Msm_prog', - '_Msm_recrd','_Msm_systm','_Msm_text','_Msm_tools','_Msm_view','_Msm_windo', - '_Mst_about','_Mst_ascii','_Mst_calcu','_Mst_captr','_Mst_dbase','_Mst_diary', - '_Mst_filer','_Mst_help','_Mst_hphow','_Mst_hpsch','_Mst_macro','_Mst_office', - '_Mst_puzzl','_Mst_sp100','_Mst_sp200','_Mst_sp300','_Mst_specl','_Msysmenu', - '_Msystem','_Mtable','_Mtb_appnd','_Mtb_cpart','_Mtb_delet','_Mtb_delrc', - '_Mtb_goto','_Mtb_link','_Mtb_mvfld','_Mtb_mvprt','_Mtb_props','_Mtb_recal', - '_Mtb_sp100','_Mtb_sp200','_Mtb_sp300','_Mtb_sp400','_Mtb_szfld','_Mwi_arran', - '_Mwi_clear','_Mwi_cmd','_Mwi_color','_Mwi_debug','_Mwi_hide','_Mwi_hidea', - '_Mwi_min','_Mwi_move','_Mwi_rotat','_Mwi_showa','_Mwi_size','_Mwi_sp100', - '_Mwi_sp200','_Mwi_toolb','_Mwi_trace','_Mwi_view','_Mwi_zoom','_Mwindow', - '_Mwizards','_Mwz_all','_Mwz_form','_Mwz_foxdoc','_Mwz_import','_Mwz_label', - '_Mwz_mail','_Mwz_pivot','_Mwz_query','_Mwz_reprt','_Mwz_setup','_Mwz_table', - '_Mwz_upsizing','_Netware','_Oracle','_Padvance','_Pageno','_Pbpage', - '_Pcolno','_Pcopies','_Pdparms','_Pdriver','_Pdsetup','_Pecode', - '_Peject','_Pepage','_Pform','_Plength','_Plineno','_Ploffset', - '_Ppitch','_Pquality','_Pretext','_Pscode','_Pspacing','_Pwait', - '_Rmargin','_Runactivedoc','_Samples','_Screen','_Shell','_Spellchk', - '_Sqlserver','_Startup','_Tabs','_Tally','_Text','_Throttle', - '_Transport','_Triggerlevel','_Unix','_WebDevOnly','_WebMenu','_WebMsftHomePage', - '_WebVFPHomePage','_WebVfpOnlineSupport','_Windows','_Wizard','_Wrap','_scctext', - '_vfp','Additive','After','Again','Aindent','Alignright', - 'All','Alt','Alternate','And','Ansi','Any', - 'Aplabout','App','Array','As','Asc','Ascending', - 'Ascii','At','Attributes','Automatic','Autosave','Avg', - 'Bar','Before','Bell','Between','Bitmap','Blank', - 'Blink','Blocksize','Border','Bottom','Brstatus','Bucket', - 'Buffers','By','Candidate','Carry','Cascade','Catalog', - 'Cdx','Center','Century','Cga','Character','Check', - 'Classlib','Clock','Cnt','Codepage','Collate','Color', - 'Com1','Com2','Command','Compact','Compatible','Compress', - 'Confirm','Connection','Connections','Connstring','Console','Copies', - 'Cpcompile','Cpdialog','Csv','Currency','Cycle','Databases', - 'Datasource','Date','Db4','Dbc','Dbf','Dbmemo3', - 'Debug','Decimals','Defaultsource','Deletetables','Delimited','Delimiters', - 'Descending','Design','Development','Device','Dif','Disabled', - 'Distinct','Dlls','Dohistory','Dos','Dosmem','Double', - 'Driver','Duplex','Echo','Editwork','Ega25','Ega43', - 'Ems','Ems64','Encrypt','Encryption','Environment','Escape', - 'Events','Exact','Except','Exe','Exists','Expression', - 'Extended','F','Fdow','Fetch','Field','Fields', - 'File','Files','Fill','Fixed','Float','Foldconst', - 'Font','Footer','Force','Foreign','Fox2x','Foxplus', - 'Free','Freeze','From','Fullpath','Fw2','Fweek', - 'Get','Gets','Global','Group','Grow','Halfheight', - 'Having','Heading','Headings','Helpfilter','History','Hmemory', - 'Hours','Id','In','Indexes','Information','Instruct', - 'Int','Integer','Intensity','Intersect','Into','Is', - 'Isometric','Key','Keycolumns','Keycomp','Keyset','Last', - 'Ledit','Level','Library','Like','Linked','Lock', - 'Logerrors','Long','Lpartition','Mac','Macdesktop','Machelp', - 'Mackey','Macros','Mark','Master','Max','Maxmem', - 'Mdi','Memlimit','Memory','Memos','Memowidth','Memvar', - 'Menus','Messages','Middle','Min','Minimize','Minus', - 'Mod','Modal','Module','Mono43','Movers','Multilocks', - 'Mvarsiz','Mvcount','N','Near','Negotiate','Noalias', - 'Noappend','Noclear','Noclose','Noconsole','Nocptrans','Nodata', - 'Nodebug','Nodelete','Nodup','Noedit','Noeject','Noenvironment', - 'Nofloat','Nofollow','Nogrow','Noinit','Nolgrid','Nolink', - 'Nolock','Nomargin','Nomdi','Nomenu','Nominimize','Nomodify' - ), - 3 => array('Nomouse','None','Nooptimize','Nooverwrite','Noprojecthook','Noprompt', - 'Noread','Norefresh','Norequery','Norgrid','Norm','Normal', - 'Nosave','Noshadow','Noshow','Nospace','Not','Notab', - 'Notify','Noupdate','Novalidate','Noverify','Nowait','Nowindow', - 'Nowrap','Nozoom','Npv','Null','Number','Objects', - 'Odometer','Of','Off','Oleobjects','Only','Optimize', - 'Or','Orientation','Output','Outshow','Overlay','Overwrite', - 'Pad','Palette','Paperlength','Papersize','Paperwidth','Password', - 'Path','Pattern','Pause','Pdox','Pdsetup','Pen', - 'Pfs','Pixels','Plain','Popups','Precision','Preference', - 'Preview','Primary','Printer','Printquality','Procedures','Production', - 'Program','Progwork','Project','Prompt','Query','Random', - 'Range','Readborder','Readerror','Record','Recover','Redit', - 'Reference','References','Relative','Remote','Reprocess','Resource', - 'Rest','Restrict','Rgb','Right','Row','Rowset', - 'Rpd','Runtime','Safety','Same','Sample','Say', - 'Scale','Scheme','Scoreboard','Screen','Sdf','Seconds', - 'Selection','Shadows','Shared','Sheet','Shell','Shift', - 'Shutdown','Single','Some','Sortwork','Space','Sql', - 'Standalone','Status','Std','Step','Sticky','String', - 'Structure','Subclass','Summary','Sylk','Sysformats','Sysmenus', - 'System','T','Tab','Tables','Talk','Tedit', - 'Textmerge','Time','Timeout','Titles','Tmpfiles','To', - 'Topic','Transaction','Trap','Trbetween','Trigger','Ttoption', - 'Typeahead','Udfparms','Union','Unique','Userid','Users', - 'Values','Var','Verb','Vga25','Vga50','Views', - 'Volume','Where','Windows','Wk1','Wk3','Wks', - 'Workarea','Wp','Wr1','Wrap','Wrk','Xcmdfile', - 'Xl5','Xl8','Xls','Y','Yresolution','Zoom', - 'Activate','ActivateCell','Add','AddColumn','AddItem','AddListItem', - 'AddObject','AddProperty','AddToSCC','AfterBuild','AfterCloseTables','AfterDock', - 'AfterRowColChange','BeforeBuild','BeforeDock','BeforeOpenTables','BeforeRowColChange','Box', - 'Build','CheckIn','CheckOut','Circle','Clear','ClearData', - 'Cleanup','Click','CloneObject','CloseEditor','CloseTables','Cls', - 'CommandTargetExec','CommandTargetQueryStas','ContainerRelease','DataToClip','DblClick','Deactivate', - 'Delete','DeleteColumn','Deleted','Destroy','DoCmd','Dock', - 'DoScroll','DoVerb','DownClick','Drag','DragDrop','DragOver', - 'DropDown','Draw','EnterFocus','Error','ErrorMessage','Eval', - 'ExitFocus','FormatChange','GetData','GetFormat','GetLatestVersion','GoBack', - 'GotFocus','GoForward','GridHitTest','Hide','HideDoc','IndexToItemId', - 'Init','InteractiveChange','Item','ItemIdToIndex','KeyPress','Line', - 'Load','LostFocus','Message','MiddleClick','MouseDown','MouseMove', - 'MouseUp','MouseWheel','Move','Moved','NavigateTo','Newobject', - 'OLECompleteDrag','OLEDrag','OLEDragDrop','OLEDragOver','OLEGiveFeedback','OLESetData', - 'OLEStartDrag','OpenEditor','OpenTables','Paint','Point','Print', - 'ProgrammaticChange','PSet','QueryAddFile','QueryModifyFile','QueryRemoveFile','QueryRunFile', - 'QueryUnload','RangeHigh','RangeLow','ReadActivate','ReadExpression','ReadDeactivate', - 'ReadMethod','ReadShow','ReadValid','ReadWhen','Refresh','Release', - 'RemoveFromSCC','RemoveItem','RemoveListItem','RemoveObject','Requery','RequestData', - 'Reset','ResetToDefault','Resize','RightClick','SaveAs','SaveAsClass', - 'Scrolled','SetAll','SetData','SetFocus','SetFormat','SetMain', - 'SetVar','SetViewPort','ShowDoc','ShowWhatsThis','TextHeight','TextWidth', - 'Timer','UIEnable','UnDock','UndoCheckOut','Unload','UpClick', - 'Valid','WhatsThisMode','When','WriteExpression','WriteMethod','ZOrder', - 'ATGetColors','ATListColors','Accelerate','ActiveColumn','ActiveControl','ActiveForm', - 'ActiveObjectId','ActivePage','ActiveProject','ActiveRow','AddLineFeeds','Alias', - 'Alignment','AllowAddNew','AllowHeaderSizing','AllowResize','AllowRowSizing','AllowTabs', - 'AlwaysOnTop','Application','AutoActivate','AutoCenter','AutoCloseTables','AutoIncrement', - 'AutoOpenTables','AutoRelease','AutoSize','AutoVerbMenu','AutoYield','AvailNum', - 'BackColor','BackStyle','BaseClass','BorderColor','BorderStyle','BorderWidth', - 'Bound','BoundColumn','BoundTo','BrowseAlignment','BrowseCellMarg','BrowseDestWidth', - 'BufferMode','BufferModeOverride','BuildDateTime','ButtonCount','ButtonIndex','Buttons', - 'CLSID','CanAccelerate','CanGetFocus','CanLoseFocus','Cancel','Caption', - 'ChildAlias','ChildOrder','Class','ClassLibrary','ClipControls','ClipRect', - 'Closable','ColorScheme','ColorSource','ColumnCount','ColumnHeaders','ColumnLines', - 'ColumnOrder','ColumnWidths','Columns','Comment','ContinuousScroll','ControlBox', - 'ControlCount','ControlIndex','ControlSource','Controls','CurrentControl','CurrentX', - 'CurrentY','CursorSource','Curvature','DataSession','DataSessionId','DataSourceObj', - 'DataType','Database','DateFormat','DateMark','DefButton','DefButtonOrig', - 'DefHeight','DefLeft','DefTop','DefWidth','Default','DefaultFilePath', - 'DefineWindows','DeleteMark','Desktop','Dirty','DisabledBackColor','DisabledByEOF', - 'DisabledForeColor','DisabledItemBackColor','DisabledItemForeColor','DisabledPicture','DispPageHeight','DispPageWidth', - 'DisplayCount','DisplayValue','DoCreate','DockPosition','Docked','DocumentFile', - 'DownPicture','DragIcon','DragMode','DragState','DrawMode','DrawStyle', - 'DrawWidth','DynamicAlignment','DynamicBackColor','DynamicCurrentControl','DynamicFontBold','DynamicFontItalic', - 'DynamicFontName','DynamicFontOutline','DynamicFontShadow','DynamicFontSize','DynamicFontStrikethru','DynamicFontUnderline', - 'DynamicForeColor','EditFlags','Enabled','EnabledByReadLock','Encrypted','EnvLevel', - 'ErasePage','FileClass','FileClassLibrary','FillColor','FillStyle','Filter', - 'FirstElement','FontBold','FontItalic','FontName','FontOutline','FontShadow', - 'FontSize','FontStrikethru','FontUnderline','ForceFocus','ForeColor','FormCount', - 'FormIndex','FormPageCount','FormPageIndex','Format','Forms','FoxFont', - 'FullName','GoFirst','GoLast','GridLineColor','GridLineWidth','GridLines' - ), - 4 => array('HPROJ','HWnd','HalfHeightCaption','HasClip','HeaderGap','HeaderHeight', - 'Height','HelpContextID','HideSelection','Highlight','HomeDir','HostName', - 'HotKey','HscrollSmallChange','IMEMode','Icon','IgnoreInsert','InResize', - 'Increment','IncrementalSearch','InitialSelectedAlias','InputMask','Instancing','IntegralHeight', - 'Interval','ItemBackColor','ItemData','ItemForeColor','ItemIDData','ItemTips', - 'JustReadLocked','KeyPreview','KeyboardHighValue','KeyboardLowValue','LastModified','Left', - 'LeftColumn','LineSlant','LinkMaster','List','ListCount','ListIndex', - 'ListItem','ListItemId','LockDataSource','LockScreen','MDIForm','MainClass', - 'MainFile','Margin','MaxButton','MaxHeight','MaxLeft','MaxLength', - 'MaxTop','MaxWidth','MemoWindow','MinButton','MinHeight','MinWidth', - 'MouseIcon','MousePointer','Movable','MoverBars','MultiSelect','Name', - 'NapTime','NewIndex','NewItemId','NoDataOnLoad','NoDefine','NotifyContainer', - 'NullDisplay','NumberOfElements','OLEDragMode','OLEDragPicture','OLEDropEffects','OLEDropHasData', - 'OLEDropMode','OLERequestPendingTimeOut','OLEServerBusyRaiseError','OLEServerBusyTimeOut','OLETypeAllowed','OleClass', - 'OleClassId','OleControlContainer','OleIDispInValue','OleIDispOutValue','OleIDispatchIncoming','OleIDispatchOutgoing', - 'OnResize','OneToMany','OpenViews','OpenWindow','PageCount','PageHeight', - 'PageOrder','PageWidth','Pages','Panel','PanelLink','Parent', - 'ParentAlias','ParentClass','Partition','PasswordChar','Picture','ProcessID', - 'ProgID','ProjectHookClass','ProjectHookLibrary','Projects','ReadColors','ReadCycle', - 'ReadFiller','ReadLock','ReadMouse','ReadOnly','ReadSave','ReadSize', - 'ReadTimeout','RecordMark','RecordSource','RecordSourceType','Rect','RelationalExpr', - 'RelativeColumn','RelativeRow','ReleaseErase','ReleaseType','ReleaseWindows','Resizable', - 'RightToLeft','RowHeight','RowSource','RowSourceType','SCCProvider','SCCStatus', - 'SDIForm','ScaleMode','ScrollBars','SelLength','SelStart','SelText', - 'SelectOnEntry','Selected','SelectedBackColor','SelectedForeColor','SelectedID','SelectedItemBackColor', - 'SelectedItemForeColor','SelfEdit','ServerClass','ServerClassLibrary','ServerHelpFile','ServerName', - 'ServerProject','ShowTips','ShowWindow','Sizable','Size','Size', - 'Size','Skip','SkipForm','Sorted','SourceType','Sparse', - 'SpecialEffect','SpinnerHighValue','SpinnerLowValue','SplitBar','StartMode','StatusBarText', - 'Stretch','StrictDateEntry','Style','SystemRefCount','TabIndex','TabStop', - 'TabStretch','TabStyle','Tabhit','Tabs','Tag','TerminateRead', - 'ThreadID','TitleBar','ToolTipText','Top','TopIndex','TopItemId', - 'TypeLibCLSID','TypeLibDesc','TypeLibName','UnlockDataSource','Value','ValueDirty', - 'VersionComments','VersionCompany','VersionCopyright','VersionDescription','VersionNumber','VersionProduct', - 'VersionTrademarks','View','ViewPortHeight','ViewPortLeft','ViewPortTop','ViewPortWidth', - 'Visible','VscrollSmallChange','WasActive','WasOpen','WhatsThisButton','WhatsThisHelp', - 'WhatsThisHelpID','Width','WindowList','WindowNTIList','WindowState','WindowType', - 'WordWrap','ZOrderSet','ActiveDoc','Checkbox','Column','ComboBox', - 'CommandButton','CommandGroup','Container','Control','Cursor','Custom', - 'DataEnvironment','EditBox','Empty','FontClass','Form','Formset', - 'General','Grid','Header','HyperLink','Image','Label', - 'ListBox','Memo','OleBaseControl','OleBoundControl','OleClassIDispOut','OleControl', - 'OptionButton','OptionGroup','Page','PageFrame','ProjectHook','RectClass', - 'Relation','Session','Shape','Spinner','TextBox' ,'Toolbar' - ), - ), - 'SYMBOLS' => array("!", "@", "$", "%", "(", ")", "-", "+", "=", "/", "{", "}", "[", "]", ":", ";", ",", " ", ".", "*", "&"), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false, - 2 => false, - 3 => false, - 4 => false, - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: blue;', - 2 => 'color: blue;', - 3 => 'color: blue;', - 4 => 'color: blue;' - ), - 'COMMENTS' => array( - 1 => 'color: green; font-style: italic;', - 2 => 'color: green; font-style: italic;', - 'MULTI' => 'color: #808080; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: blue;' - ), - 'STRINGS' => array( - 0 => 'color: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #cc66cc;' - ), - 'METHODS' => array( - 1 => 'color: #006600;' - ), - 'SYMBOLS' => array( - 0 => 'color: blue;' - ), - 'REGEXPS' => array( - ), - 'SCRIPT' => array( - ) - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.' - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) +$language_data = array( + 'LANG_NAME' => 'Visual Fox Pro', + 'COMMENT_SINGLE' => array(1 => "//", 2 => "\n*"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array('Case', 'Else', '#Else', 'Then', + 'Endcase', 'Enddefine', 'Enddo', 'Endfor', 'Endfunc', 'Endif', 'Endprintjob', + 'Endproc', 'Endscan', 'Endtext', 'Endwith', '#Endif', + '#Elif','#Else','#Endif','#Define','#If','#Include', + '#Itsexpression','#Readclauses','#Region','#Section','#Undef','#Wname', + 'Case','Define','Do','Else','Endcase','Enddefine', + 'Enddo','Endfor','Endfunc','Endif','Endprintjob','Endproc', + 'Endscan','Endtext','Endwith','For','Function','Hidden', + 'If','Local','Lparameter','Lparameters','Next','Otherwise', + 'Parameters','Printjob','Procedure','Protected','Public','Scan', + 'Text','Then','While','With','?','??', + '???','Abs','Accept','Access','Aclass','Acopy', + 'Acos','Adatabases','Adbobjects','Addbs','Addrelationtoenv','Addtabletoenv', + 'Adel','Adir','Aelement','Aerror','Afields','Afont', + 'Agetclass','Agetfileversion','Ains','Ainstance','Alen','Align', + 'Alines','Alltrim','Alter','Amembers','Amouseobj','Anetresources', + 'Ansitooem','Append','Aprinters','Ascan','Aselobj','Asin', + 'Asort','Assert','Asserts','Assist','Asubscript','Asynchronous', + 'At_c','Atan','Atc','Atcc','Atcline','Atline', + 'Atn2','Aused','Autoform','Autoreport','Avcxclasses','Average', + 'BarCount','BarPrompt','BatchMode','BatchUpdateCount','Begin','BellSound', + 'BinToC','Bintoc','Bitand','Bitclear','Bitlshift','Bitnot', + 'Bitor','Bitrshift','Bitset','Bittest','Bitxor','Bof', + 'Browse','BrowseRefresh','Buffering','BuilderLock','COMArray','COMReturnError', + 'CToBin','Calculate','Call','Capslock','Cd','Cdow', + 'Ceiling','Central','Change','Char','Chdir','Chr', + 'Chrsaw','Chrtran','Chrtranc','Close','Cmonth','Cntbar', + 'Cntpad','Col','Comclassinfo','CommandTargetQuery','Compile','Completed', + 'Compobj','Compute','Concat','ConnectBusy','ConnectHandle','ConnectName', + 'ConnectString','ConnectTimeOut','ContainerReleaseType','Continue','Copy','Cos', + 'Cot','Count','Coverage','Cpconvert','Cpcurrent','Cpdbf', + 'Cpnotrans','Create','CreateBinary','Createobject','Createobjectex','Createoffline', + 'CrsBuffering','CrsFetchMemo','CrsFetchSize','CrsMaxRows','CrsMethodUsed','CrsNumBatch', + 'CrsShareConnection','CrsUseMemoSize','CrsWhereClause','Ctobin','Ctod','Ctot', + 'Curdate','Curdir','CurrLeft','CurrSymbol','CursorGetProp','CursorSetProp', + 'Curtime','Curval','DBGetProp','DBSetProp','DB_BufLockRow','DB_BufLockTable', + 'DB_BufOff','DB_BufOptRow','DB_BufOptTable','DB_Complette','DB_DeleteInsert','DB_KeyAndModified', + 'DB_KeyAndTimestamp','DB_KeyAndUpdatable','DB_LocalSQL','DB_NoPrompt','DB_Prompt','DB_RemoteSQL', + 'DB_TransAuto','DB_TransManual','DB_TransNone','DB_Update','Datetime','Day', + 'Dayname','Dayofmonth','Dayofweek','Dayofyear','Dbalias','Dbused', + 'Ddeaborttrans','Ddeadvise','Ddeenabled','Ddeexecute','Ddeinitiate','Ddelasterror', + 'Ddepoke','Dderequest','Ddesetoption','Ddesetservice','Ddesettopic','Ddeterminate', + 'Debugout','Declare','DefOLELCid','DefaultValue','Defaultext','Degrees', + 'DeleteTrigger','Desc','Description','Difference','Dimension','Dir', + 'Directory','Diskspace','DispLogin','DispWarnings','Display','Dll', + 'Dmy','DoDefault','DoEvents','Doc','Doevents','Dow', + 'Drivetype','Drop','Dropoffline','Dtoc','Dtor','Dtos', + 'Dtot','DynamicInputMask','Each','Edit','Eject','Elif', + 'End','Eof','Erase','Evaluate','Event','Eventtracking', + 'Exclude','Exclusive','Exit','Exp','Export','External', + 'FDate','FTime','Fchsize','Fclose','Fcount','Fcreate', + 'Feof','Ferror','FetchMemo','FetchSize','Fflush','Fgets', + 'Filer','Filetostr','Find','Fklabel','Fkmax','Fldlist', + 'Flock','Floor','Flush','Fontmetric','Fopen','Forceext', + 'Forcepath','FormSetClass','FormSetLib','FormsClass','FormsLib','Found', + 'FoxPro','Foxcode','Foxdoc','Foxgen','Foxgraph','Foxview', + 'Fputs','Fread','French','Fseek','Fsize','Fv', + 'Fwrite','Gather','German','GetPem','Getbar','Getcolor', + 'Getcp','Getdir','Getenv','Getexpr','Getfile','Getfldstate', + 'Getfont','Gethost','Getnextmodified','Getobject','Getpad','Getpict', + 'Getprinter','Go','Gomonth','Goto','Graph','GridHorz', + 'GridShow','GridShowPos','GridSnap','GridVert','Help','HelpOn', + 'HelpTo','HighLightRow','Home','Hour','IMEStatus','IdleTimeOut', + 'Idxcollate','Ifdef','Ifndef','Iif','Import','Include', + 'Indbc','Index','Indexseek','Inkey','Inlist','Input', + 'Insert','InsertTrigger','Insmode','IsBlank','IsFLocked','IsLeadByte', + 'IsMouse','IsNull','IsRLocked','Isalpha','Iscolor','Isdigit', + 'Isexclusive','Isflocked','Ishosted','Islower','Isreadonly','Isrlocked', + 'Isupper','Italian','Japan','Join','Justdrive','Justext', + 'Justfname','Justpath','Juststem','KeyField','KeyFieldList','Keyboard' + ), + 2 => array('Keymatch','LastProject','Lastkey','Lcase','Leftc','Len', + 'Lenc','Length','Likec','Lineno','LoadPicture','Loadpicture', + 'Locate','Locfile','Log','Log10','Logout','Lookup', + 'Loop','Lower','Ltrim','Lupdate','Mail','MaxRecords', + 'Mcol','Md','Mdown','Mdx','Mdy','Memlines', + 'Menu','Messagebox','Minute','Mkdir','Mline','Modify', + 'Month','Monthname','Mouse','Mrkbar','Mrkpad','Mrow', + 'Mtdll','Mton','Mwindow','Native','Ndx','Network', + 'NoFilter','Nodefault','Normalize','Note','Now','Ntom', + 'NullString','Numlock','Nvl','ODBChdbc','ODBChstmt','OLEDropTextInsertion', + 'OLELCid','Objnum','Objref','Objtoclient','Objvar','Occurs', + 'Oemtoansi','Oldval','OlePublic','Olereturnerror','On','Open', + 'Oracle','Order','Os','Outer','PCount','Pack', + 'PacketSize','Padc','Padl','Padr','Payment','Pcol', + 'PemStatus','Pi','Pivot','Play','Pop','Popup', + 'Power','PrimaryKey','Printstatus','Private','Prmbar','Prmpad', + 'ProjectClick','Proper','Prow','Prtinfo','Push','Putfile', + 'Pv','Qpr','Quater','QueryTimeOut','Quit','Radians', + 'Rand','Rat','Ratc','Ratline','Rd','Rdlevel', + 'Read','Readkey','Recall','Reccount','RecentlyUsedFiles','Recno', + 'Recsize','Regional','Reindex','RelatedChild','RelatedTable','RelatedTag', + 'Remove','Rename','Repeat','Replace','Replicate','Report', + 'ResHeight','ResWidth','ResourceOn','ResourceTo','Resources','Restore', + 'Resume','Retry','Return','Revertoffline','Rgbscheme','Rightc', + 'Rlock','Rmdir','Rollback','Round','Rtod','Rtrim', + 'RuleExpression','RuleText','Run','Runscript','Rview','SQLAsynchronous', + 'SQLBatchMode','SQLCancel','SQLColumns','SQLConnect','SQLConnectTimeOut','SQLDisconnect', + 'SQLDispLogin','SQLDispWarnings','SQLExec','SQLGetProp','SQLIdleTimeOut','SQLMoreResults', + 'SQLPrepare','SQLQueryTimeOut','SQLSetProp','SQLTables','SQLTransactions','SQLWaitTime', + 'Save','SavePicture','Savepicture','ScaleUnits','Scatter','Scols', + 'Scroll','Sec','Second','Seek','Select','SendUpdates', + 'Set','SetDefault','Setfldstate','Setup','ShareConnection','ShowOLEControls', + 'ShowOLEInsertable','ShowVCXs','Sign','Sin','Size','SizeBox', + 'Skpbar','Skppad','Sort','Soundex','SourceName','Sqlcommit', + 'Sqll','Sqlrollback','Sqlstringconnect','Sqrt','Srows','StatusBar', + 'Store','Str','Strconv','Strtofile','Strtran','Stuff', + 'Stuffc','Substr','Substrc','Substring','Sum','Suspend', + 'Sys','Sysmetric','TabOrdering','Table','TableRefresh','Tablerevert', + 'Tableupdate','TagCount','TagNo','Tan','Target','This', + 'Thisform','Thisformset','Timestamp','Timestampdiff','Total','Transactions', + 'Transform','Trim','Truncate','Ttoc','Ttod','Txnlevel', + 'Txtwidth','Type','Ucase','Undefine','Unlock','Unpack', + 'Updatable','UpdatableFieldList','Update','UpdateName','UpdateNameList','UpdateTrigger', + 'UpdateType','Updated','Upper','Upsizing','Usa','Use', + 'UseMemoSize','Used','Val','Validate','Varread','Vartype', + 'Version','VersionLanguage','Wait','WaitTime','Wborder','Wchild', + 'Wcols','Week','Wexist','Wfont','WhereType','Windcmd', + 'Windhelp','Windmemo','Windmenu','Windmodify','Windquery','Windscreen', + 'Windsnip','Windstproc','WizardPrompt','Wlast','Wlcol','Wlrow', + 'Wmaximum','Wminimum','Wontop','Woutput','Wparent','Wread', + 'Wrows','Wtitle','Wvisible','Year','Zap','_Alignment', + '_Asciicols','_Asciirows','_Assist','_Beautify','_Box','_Browser', + '_Builder','_Calcmem','_Calcvalue','_Cliptext','_Converter','_Coverage', + '_Curobj','_Dblclick','_Diarydate','_Dos','_Foxdoc','_Foxgraph', + '_Gallery','_Gengraph','_Genhtml','_Genmenu','_Genpd','_Genscrn', + '_Genxtab','_Getexpr','_Include','_Indent','_Lmargin','_Mac', + '_Mbr_appnd','_Mbr_cpart','_Mbr_delet','_Mbr_font','_Mbr_goto','_Mbr_grid', + '_Mbr_link','_Mbr_mode','_Mbr_mvfld','_Mbr_mvprt','_Mbr_seek','_Mbr_sp100', + '_Mbr_sp200','_Mbr_szfld','_Mbrowse','_Mda_appnd','_Mda_avg','_Mda_brow', + '_Mda_calc','_Mda_copy','_Mda_count','_Mda_label','_Mda_pack','_Mda_reprt', + '_Mda_rindx','_Mda_setup','_Mda_sort','_Mda_sp100','_Mda_sp200','_Mda_sp300', + '_Mda_sum','_Mda_total','_Mdata','_Mdiary','_Med_clear','_Med_copy', + '_Med_cut','_Med_cvtst','_Med_find','_Med_finda','_Med_goto','_Med_insob', + '_Med_link','_Med_obj','_Med_paste','_Med_pref','_Med_pstlk','_Med_redo', + '_Med_repl','_Med_repla','_Med_slcta','_Med_sp100','_Med_sp200','_Med_sp300', + '_Med_sp400','_Med_sp500','_Med_undo','_Medit','_Mfi_clall','_Mfi_close', + '_Mfi_export','_Mfi_import','_Mfi_new','_Mfi_open','_Mfi_pgset','_Mfi_prevu', + '_Mfi_print','_Mfi_quit','_Mfi_revrt','_Mfi_savas','_Mfi_save','_Mfi_send', + '_Mfi_setup','_Mfi_sp100','_Mfi_sp200','_Mfi_sp300','_Mfi_sp400','_Mfile', + '_Mfiler','_Mfirst','_Mlabel','_Mlast','_Mline','_Mmacro', + '_Mmbldr','_Mpr_beaut','_Mpr_cancl','_Mpr_compl','_Mpr_do','_Mpr_docum', + '_Mpr_formwz','_Mpr_gener','_Mpr_graph','_Mpr_resum','_Mpr_sp100','_Mpr_sp200', + '_Mpr_sp300','_Mpr_suspend','_Mprog','_Mproj','_Mrc_appnd','_Mrc_chnge', + '_Mrc_cont','_Mrc_delet','_Mrc_goto','_Mrc_locat','_Mrc_recal','_Mrc_repl', + '_Mrc_seek','_Mrc_sp100','_Mrc_sp200','_Mrecord','_Mreport','_Mrqbe', + '_Mscreen','_Msm_data','_Msm_edit','_Msm_file','_Msm_format','_Msm_prog', + '_Msm_recrd','_Msm_systm','_Msm_text','_Msm_tools','_Msm_view','_Msm_windo', + '_Mst_about','_Mst_ascii','_Mst_calcu','_Mst_captr','_Mst_dbase','_Mst_diary', + '_Mst_filer','_Mst_help','_Mst_hphow','_Mst_hpsch','_Mst_macro','_Mst_office', + '_Mst_puzzl','_Mst_sp100','_Mst_sp200','_Mst_sp300','_Mst_specl','_Msysmenu', + '_Msystem','_Mtable','_Mtb_appnd','_Mtb_cpart','_Mtb_delet','_Mtb_delrc', + '_Mtb_goto','_Mtb_link','_Mtb_mvfld','_Mtb_mvprt','_Mtb_props','_Mtb_recal', + '_Mtb_sp100','_Mtb_sp200','_Mtb_sp300','_Mtb_sp400','_Mtb_szfld','_Mwi_arran', + '_Mwi_clear','_Mwi_cmd','_Mwi_color','_Mwi_debug','_Mwi_hide','_Mwi_hidea', + '_Mwi_min','_Mwi_move','_Mwi_rotat','_Mwi_showa','_Mwi_size','_Mwi_sp100', + '_Mwi_sp200','_Mwi_toolb','_Mwi_trace','_Mwi_view','_Mwi_zoom','_Mwindow', + '_Mwizards','_Mwz_all','_Mwz_form','_Mwz_foxdoc','_Mwz_import','_Mwz_label', + '_Mwz_mail','_Mwz_pivot','_Mwz_query','_Mwz_reprt','_Mwz_setup','_Mwz_table', + '_Mwz_upsizing','_Netware','_Oracle','_Padvance','_Pageno','_Pbpage', + '_Pcolno','_Pcopies','_Pdparms','_Pdriver','_Pdsetup','_Pecode', + '_Peject','_Pepage','_Pform','_Plength','_Plineno','_Ploffset', + '_Ppitch','_Pquality','_Pretext','_Pscode','_Pspacing','_Pwait', + '_Rmargin','_Runactivedoc','_Samples','_Screen','_Shell','_Spellchk', + '_Sqlserver','_Startup','_Tabs','_Tally','_Text','_Throttle', + '_Transport','_Triggerlevel','_Unix','_WebDevOnly','_WebMenu','_WebMsftHomePage', + '_WebVFPHomePage','_WebVfpOnlineSupport','_Windows','_Wizard','_Wrap','_scctext', + '_vfp','Additive','After','Again','Aindent','Alignright', + 'All','Alt','Alternate','And','Ansi','Any', + 'Aplabout','App','Array','As','Asc','Ascending', + 'Ascii','At','Attributes','Automatic','Autosave','Avg', + 'Bar','Before','Bell','Between','Bitmap','Blank', + 'Blink','Blocksize','Border','Bottom','Brstatus','Bucket', + 'Buffers','By','Candidate','Carry','Cascade','Catalog', + 'Cdx','Center','Century','Cga','Character','Check', + 'Classlib','Clock','Cnt','Codepage','Collate','Color', + 'Com1','Com2','Command','Compact','Compatible','Compress', + 'Confirm','Connection','Connections','Connstring','Console','Copies', + 'Cpcompile','Cpdialog','Csv','Currency','Cycle','Databases', + 'Datasource','Date','Db4','Dbc','Dbf','Dbmemo3', + 'Debug','Decimals','Defaultsource','Deletetables','Delimited','Delimiters', + 'Descending','Design','Development','Device','Dif','Disabled', + 'Distinct','Dlls','Dohistory','Dos','Dosmem','Double', + 'Driver','Duplex','Echo','Editwork','Ega25','Ega43', + 'Ems','Ems64','Encrypt','Encryption','Environment','Escape', + 'Events','Exact','Except','Exe','Exists','Expression', + 'Extended','F','Fdow','Fetch','Field','Fields', + 'File','Files','Fill','Fixed','Float','Foldconst', + 'Font','Footer','Force','Foreign','Fox2x','Foxplus', + 'Free','Freeze','From','Fullpath','Fw2','Fweek', + 'Get','Gets','Global','Group','Grow','Halfheight', + 'Having','Heading','Headings','Helpfilter','History','Hmemory', + 'Hours','Id','In','Indexes','Information','Instruct', + 'Int','Integer','Intensity','Intersect','Into','Is', + 'Isometric','Key','Keycolumns','Keycomp','Keyset','Last', + 'Ledit','Level','Library','Like','Linked','Lock', + 'Logerrors','Long','Lpartition','Mac','Macdesktop','Machelp', + 'Mackey','Macros','Mark','Master','Max','Maxmem', + 'Mdi','Memlimit','Memory','Memos','Memowidth','Memvar', + 'Menus','Messages','Middle','Min','Minimize','Minus', + 'Mod','Modal','Module','Mono43','Movers','Multilocks', + 'Mvarsiz','Mvcount','N','Near','Negotiate','Noalias', + 'Noappend','Noclear','Noclose','Noconsole','Nocptrans','Nodata', + 'Nodebug','Nodelete','Nodup','Noedit','Noeject','Noenvironment', + 'Nofloat','Nofollow','Nogrow','Noinit','Nolgrid','Nolink', + 'Nolock','Nomargin','Nomdi','Nomenu','Nominimize','Nomodify' + ), + 3 => array('Nomouse','None','Nooptimize','Nooverwrite','Noprojecthook','Noprompt', + 'Noread','Norefresh','Norequery','Norgrid','Norm','Normal', + 'Nosave','Noshadow','Noshow','Nospace','Not','Notab', + 'Notify','Noupdate','Novalidate','Noverify','Nowait','Nowindow', + 'Nowrap','Nozoom','Npv','Null','Number','Objects', + 'Odometer','Of','Off','Oleobjects','Only','Optimize', + 'Or','Orientation','Output','Outshow','Overlay','Overwrite', + 'Pad','Palette','Paperlength','Papersize','Paperwidth','Password', + 'Path','Pattern','Pause','Pdox','Pdsetup','Pen', + 'Pfs','Pixels','Plain','Popups','Precision','Preference', + 'Preview','Primary','Printer','Printquality','Procedures','Production', + 'Program','Progwork','Project','Prompt','Query','Random', + 'Range','Readborder','Readerror','Record','Recover','Redit', + 'Reference','References','Relative','Remote','Reprocess','Resource', + 'Rest','Restrict','Rgb','Right','Row','Rowset', + 'Rpd','Runtime','Safety','Same','Sample','Say', + 'Scale','Scheme','Scoreboard','Screen','Sdf','Seconds', + 'Selection','Shadows','Shared','Sheet','Shell','Shift', + 'Shutdown','Single','Some','Sortwork','Space','Sql', + 'Standalone','Status','Std','Step','Sticky','String', + 'Structure','Subclass','Summary','Sylk','Sysformats','Sysmenus', + 'System','T','Tab','Tables','Talk','Tedit', + 'Textmerge','Time','Timeout','Titles','Tmpfiles','To', + 'Topic','Transaction','Trap','Trbetween','Trigger','Ttoption', + 'Typeahead','Udfparms','Union','Unique','Userid','Users', + 'Values','Var','Verb','Vga25','Vga50','Views', + 'Volume','Where','Windows','Wk1','Wk3','Wks', + 'Workarea','Wp','Wr1','Wrap','Wrk','Xcmdfile', + 'Xl5','Xl8','Xls','Y','Yresolution','Zoom', + 'Activate','ActivateCell','Add','AddColumn','AddItem','AddListItem', + 'AddObject','AddProperty','AddToSCC','AfterBuild','AfterCloseTables','AfterDock', + 'AfterRowColChange','BeforeBuild','BeforeDock','BeforeOpenTables','BeforeRowColChange','Box', + 'Build','CheckIn','CheckOut','Circle','Clear','ClearData', + 'Cleanup','Click','CloneObject','CloseEditor','CloseTables','Cls', + 'CommandTargetExec','CommandTargetQueryStas','ContainerRelease','DataToClip','DblClick','Deactivate', + 'Delete','DeleteColumn','Deleted','Destroy','DoCmd','Dock', + 'DoScroll','DoVerb','DownClick','Drag','DragDrop','DragOver', + 'DropDown','Draw','EnterFocus','Error','ErrorMessage','Eval', + 'ExitFocus','FormatChange','GetData','GetFormat','GetLatestVersion','GoBack', + 'GotFocus','GoForward','GridHitTest','Hide','HideDoc','IndexToItemId', + 'Init','InteractiveChange','Item','ItemIdToIndex','KeyPress','Line', + 'Load','LostFocus','Message','MiddleClick','MouseDown','MouseMove', + 'MouseUp','MouseWheel','Move','Moved','NavigateTo','Newobject', + 'OLECompleteDrag','OLEDrag','OLEDragDrop','OLEDragOver','OLEGiveFeedback','OLESetData', + 'OLEStartDrag','OpenEditor','OpenTables','Paint','Point','Print', + 'ProgrammaticChange','PSet','QueryAddFile','QueryModifyFile','QueryRemoveFile','QueryRunFile', + 'QueryUnload','RangeHigh','RangeLow','ReadActivate','ReadExpression','ReadDeactivate', + 'ReadMethod','ReadShow','ReadValid','ReadWhen','Refresh','Release', + 'RemoveFromSCC','RemoveItem','RemoveListItem','RemoveObject','Requery','RequestData', + 'Reset','ResetToDefault','Resize','RightClick','SaveAs','SaveAsClass', + 'Scrolled','SetAll','SetData','SetFocus','SetFormat','SetMain', + 'SetVar','SetViewPort','ShowDoc','ShowWhatsThis','TextHeight','TextWidth', + 'Timer','UIEnable','UnDock','UndoCheckOut','Unload','UpClick', + 'Valid','WhatsThisMode','When','WriteExpression','WriteMethod','ZOrder', + 'ATGetColors','ATListColors','Accelerate','ActiveColumn','ActiveControl','ActiveForm', + 'ActiveObjectId','ActivePage','ActiveProject','ActiveRow','AddLineFeeds','Alias', + 'Alignment','AllowAddNew','AllowHeaderSizing','AllowResize','AllowRowSizing','AllowTabs', + 'AlwaysOnTop','Application','AutoActivate','AutoCenter','AutoCloseTables','AutoIncrement', + 'AutoOpenTables','AutoRelease','AutoSize','AutoVerbMenu','AutoYield','AvailNum', + 'BackColor','BackStyle','BaseClass','BorderColor','BorderStyle','BorderWidth', + 'Bound','BoundColumn','BoundTo','BrowseAlignment','BrowseCellMarg','BrowseDestWidth', + 'BufferMode','BufferModeOverride','BuildDateTime','ButtonCount','ButtonIndex','Buttons', + 'CLSID','CanAccelerate','CanGetFocus','CanLoseFocus','Cancel','Caption', + 'ChildAlias','ChildOrder','Class','ClassLibrary','ClipControls','ClipRect', + 'Closable','ColorScheme','ColorSource','ColumnCount','ColumnHeaders','ColumnLines', + 'ColumnOrder','ColumnWidths','Columns','Comment','ContinuousScroll','ControlBox', + 'ControlCount','ControlIndex','ControlSource','Controls','CurrentControl','CurrentX', + 'CurrentY','CursorSource','Curvature','DataSession','DataSessionId','DataSourceObj', + 'DataType','Database','DateFormat','DateMark','DefButton','DefButtonOrig', + 'DefHeight','DefLeft','DefTop','DefWidth','Default','DefaultFilePath', + 'DefineWindows','DeleteMark','Desktop','Dirty','DisabledBackColor','DisabledByEOF', + 'DisabledForeColor','DisabledItemBackColor','DisabledItemForeColor','DisabledPicture','DispPageHeight','DispPageWidth', + 'DisplayCount','DisplayValue','DoCreate','DockPosition','Docked','DocumentFile', + 'DownPicture','DragIcon','DragMode','DragState','DrawMode','DrawStyle', + 'DrawWidth','DynamicAlignment','DynamicBackColor','DynamicCurrentControl','DynamicFontBold','DynamicFontItalic', + 'DynamicFontName','DynamicFontOutline','DynamicFontShadow','DynamicFontSize','DynamicFontStrikethru','DynamicFontUnderline', + 'DynamicForeColor','EditFlags','Enabled','EnabledByReadLock','Encrypted','EnvLevel', + 'ErasePage','FileClass','FileClassLibrary','FillColor','FillStyle','Filter', + 'FirstElement','FontBold','FontItalic','FontName','FontOutline','FontShadow', + 'FontSize','FontStrikethru','FontUnderline','ForceFocus','ForeColor','FormCount', + 'FormIndex','FormPageCount','FormPageIndex','Format','Forms','FoxFont', + 'FullName','GoFirst','GoLast','GridLineColor','GridLineWidth','GridLines' + ), + 4 => array('HPROJ','HWnd','HalfHeightCaption','HasClip','HeaderGap','HeaderHeight', + 'Height','HelpContextID','HideSelection','Highlight','HomeDir','HostName', + 'HotKey','HscrollSmallChange','IMEMode','Icon','IgnoreInsert','InResize', + 'Increment','IncrementalSearch','InitialSelectedAlias','InputMask','Instancing','IntegralHeight', + 'Interval','ItemBackColor','ItemData','ItemForeColor','ItemIDData','ItemTips', + 'JustReadLocked','KeyPreview','KeyboardHighValue','KeyboardLowValue','LastModified','Left', + 'LeftColumn','LineSlant','LinkMaster','List','ListCount','ListIndex', + 'ListItem','ListItemId','LockDataSource','LockScreen','MDIForm','MainClass', + 'MainFile','Margin','MaxButton','MaxHeight','MaxLeft','MaxLength', + 'MaxTop','MaxWidth','MemoWindow','MinButton','MinHeight','MinWidth', + 'MouseIcon','MousePointer','Movable','MoverBars','MultiSelect','Name', + 'NapTime','NewIndex','NewItemId','NoDataOnLoad','NoDefine','NotifyContainer', + 'NullDisplay','NumberOfElements','OLEDragMode','OLEDragPicture','OLEDropEffects','OLEDropHasData', + 'OLEDropMode','OLERequestPendingTimeOut','OLEServerBusyRaiseError','OLEServerBusyTimeOut','OLETypeAllowed','OleClass', + 'OleClassId','OleControlContainer','OleIDispInValue','OleIDispOutValue','OleIDispatchIncoming','OleIDispatchOutgoing', + 'OnResize','OneToMany','OpenViews','OpenWindow','PageCount','PageHeight', + 'PageOrder','PageWidth','Pages','Panel','PanelLink','Parent', + 'ParentAlias','ParentClass','Partition','PasswordChar','Picture','ProcessID', + 'ProgID','ProjectHookClass','ProjectHookLibrary','Projects','ReadColors','ReadCycle', + 'ReadFiller','ReadLock','ReadMouse','ReadOnly','ReadSave','ReadSize', + 'ReadTimeout','RecordMark','RecordSource','RecordSourceType','Rect','RelationalExpr', + 'RelativeColumn','RelativeRow','ReleaseErase','ReleaseType','ReleaseWindows','Resizable', + 'RightToLeft','RowHeight','RowSource','RowSourceType','SCCProvider','SCCStatus', + 'SDIForm','ScaleMode','ScrollBars','SelLength','SelStart','SelText', + 'SelectOnEntry','Selected','SelectedBackColor','SelectedForeColor','SelectedID','SelectedItemBackColor', + 'SelectedItemForeColor','SelfEdit','ServerClass','ServerClassLibrary','ServerHelpFile','ServerName', + 'ServerProject','ShowTips','ShowWindow','Sizable','Size','Size', + 'Size','Skip','SkipForm','Sorted','SourceType','Sparse', + 'SpecialEffect','SpinnerHighValue','SpinnerLowValue','SplitBar','StartMode','StatusBarText', + 'Stretch','StrictDateEntry','Style','SystemRefCount','TabIndex','TabStop', + 'TabStretch','TabStyle','Tabhit','Tabs','Tag','TerminateRead', + 'ThreadID','TitleBar','ToolTipText','Top','TopIndex','TopItemId', + 'TypeLibCLSID','TypeLibDesc','TypeLibName','UnlockDataSource','Value','ValueDirty', + 'VersionComments','VersionCompany','VersionCopyright','VersionDescription','VersionNumber','VersionProduct', + 'VersionTrademarks','View','ViewPortHeight','ViewPortLeft','ViewPortTop','ViewPortWidth', + 'Visible','VscrollSmallChange','WasActive','WasOpen','WhatsThisButton','WhatsThisHelp', + 'WhatsThisHelpID','Width','WindowList','WindowNTIList','WindowState','WindowType', + 'WordWrap','ZOrderSet','ActiveDoc','Checkbox','Column','ComboBox', + 'CommandButton','CommandGroup','Container','Control','Cursor','Custom', + 'DataEnvironment','EditBox','Empty','FontClass','Form','Formset', + 'General','Grid','Header','HyperLink','Image','Label', + 'ListBox','Memo','OleBaseControl','OleBoundControl','OleClassIDispOut','OleControl', + 'OptionButton','OptionGroup','Page','PageFrame','ProjectHook','RectClass', + 'Relation','Session','Shape','Spinner','TextBox' ,'Toolbar' + ), + ), + 'SYMBOLS' => array("!", "@", "$", "%", "(", ")", "-", "+", "=", "/", "{", "}", "[", "]", ":", ";", ",", " ", ".", "*", "&"), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: blue;', + 2 => 'color: blue;', + 3 => 'color: blue;', + 4 => 'color: blue;' + ), + 'COMMENTS' => array( + 1 => 'color: green; font-style: italic;', + 2 => 'color: green; font-style: italic;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: blue;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: blue;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/winbatch.php b/plugins/geshi/winbatch.php old mode 100644 new mode 100755 index 6228a79..972985a --- a/plugins/geshi/winbatch.php +++ b/plugins/geshi/winbatch.php @@ -46,322 +46,320 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'Winbatch', - 'COMMENT_SINGLE' => array(1 => ';', 2 => ':'), - 'COMMENT_MULTI' => array(), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"', '`'), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - 1 => array( - 'While', 'To', 'Then', 'Switch', 'Select', 'Return', 'Next', 'IntControl', 'Include', 'In', 'If', - 'Goto', 'GoSub', 'ForEach', 'For', 'Exit', 'Execute', 'ErrorMode', 'EndWhile', 'EndSwitch', '#EndSubRoutine', - 'EndSelect', 'EndIf', '#EEndFunction', 'EndFor', 'End', 'Else', 'DropWild', 'Drop', '#DefineSubRoutine', - '#DefineFunction', 'Debug', 'Continue', 'Case', 'CallExt', 'Call', 'By', 'BreakPoint', 'Break' - ), - 2 => array( - 'ZOOMED', 'YES', 'WORD4', 'WORD2', 'WORD1', 'WHOLESECTION', 'WAIT', 'UNSORTED', 'UNCHECK', 'TRUE', 'TILE', - 'TAB', 'STRING', 'STACK', 'SPC2NET', 'SORTED', 'SOK', 'SNET2PC', 'SINGLE', 'SHIFT', 'SERVER', 'SERRWINSOCK', - 'SERRVOICE', 'SERRSOCKET', 'SERRSERVICE', 'SERRSELECT', 'SERRPARAM', 'SERROUTOFMEM', 'SERRNOTFOUND', 'SERRNOCONN', - 'SERRNOANSWER', 'SERRMUSTWAIT', 'SERRIPADDR', 'SERRHOSTNAME', 'SERRFAILURE', 'SERRBUSY', 'SCROLLLOCK', 'SCANCEL', - 'SAVE', 'SALREADY', 'ROWS', 'REGUSERS', 'REGROOT', 'REGMACHINE', 'REGCURRENT', 'REGCLASSES', 'RDBLCLICK', 'RCLICK', - 'RBUTTON', 'RAD2DEG', 'QSUCCESSINFO', 'QSUCCESS', 'QSTILLEX', 'QROLLBACK', 'QNULL', 'QNODATA', 'QNEXT', 'QNEEDDATA', - 'QFIRST', 'QCOMMIT', 'QBADHANDLE', 'PRINTER', 'PLANCKJOULES', 'PLANCKERGS', 'PI', 'PARSEONLY', 'PARSEC', 'P3ERRREPLY', - 'OPEN', 'ON', 'OFF', 'NUMLOCK', 'NOWAIT', 'NOTIFY', 'NORMAL', 'NORESIZE', 'NONE', 'NO', 'NCSAFORMAT', 'MULTIPLE', - 'MSFORMAT', 'MPLAYRDBLCK', 'MPLAYRCLK', 'MPLAYRBUTTON', 'MPLAYMDBLCK', 'MPLAYMCLK', 'MPLAYMBUTTON', 'MPLAYLDBLCK', - 'MPLAYLCLK', 'MPLAYLBUTTON', 'MINOR', 'MDBLCLICK', 'MCLICK', 'MBYESNO', 'MBUTTON', 'MBOKCANCEL', 'MAJOR', 'MAGFIELD', - 'LOCALGROUP', 'LIGHTMTPS', 'LIGHTMPS', 'LF', 'LDBLCLICK', 'LCLICK', 'LBUTTON', 'LAFFDBERROR', 'ICON', 'HTTPS', 'HTTP', - 'HNOHEADER', 'HMETHODPOST', 'HMETHODGET', 'HIDDEN', 'HHEADERONLY', 'HHEADER', 'GRAVITATION', 'GOPHER', 'GOLDENRATIO', - 'GMTSEC', 'GLOBALGROUP', 'GFTSEC', 'GETPROCID', 'GETEXITCODE', 'FWDSCAN', 'FTPPASSIVE', 'FTP', 'FLOAT8', 'FARADAY', - 'FALSE', 'EXTENDED', 'EULERS', 'ENABLE', 'ELECTRIC', 'DRIVE', 'DISABLE', 'DESCENDING', 'DEG2RAD', 'DEFAULT', 'CTRL', - 'CRLF', 'CR', 'COMMONFORMAT', 'COLUMNS', 'CHECK', 'CAPSLOCK', 'CANCEL', 'BOLTZMANN', 'BACKSCAN', 'AVOGADRO', 'ATTR_X', - 'ATTR_T', 'ATTR_SY', 'ATTR_SH', 'ATTR_RO', 'ATTR_RI', 'ATTR_P', 'ATTR_IC', 'ATTR_H', 'ATTR_DM', 'ATTR_DI', 'ATTR_DC', - 'ATTR_CI', 'ATTR_A', 'ASCENDING', 'ARRANGE', 'AMC', 'ACC_WRITE', 'ACC_READ_NT', 'ACC_READ_95', 'ACC_READ', 'ACC_PRINT_NT', - 'ACC_PMANG_NT', 'ACC_PFULL_NT', 'ACC_LIST', 'ACC_FULL_NT', 'ACC_FULL_95', 'ACC_DELETE', 'ACC_CREATE', 'ACC_CONTROL', - 'ACC_CHNG_NT', 'ACC_ATTRIB', 'ABOVEICONS' - ), - 3 => array( - 'Yields', 'Yield', 'WinZoom', 'WinWaitExist', 'WinWaitClose', 'WinWaitChild', 'WinVersion', 'WinTitle', 'WinSysInfo', - 'WinState', 'WinShow', 'WinResources', 'WinPositionChild', 'WinPosition', 'WinPlaceSet', 'WinPlaceGet', 'WinPlaceChild', - 'WinPlace', 'WinParmSet', 'WinParmGet', 'WinName', 'WinMetrics', 'WinItemProcId', 'WinItemNameId', 'WinItemizeEx', - 'WinItemize', 'WinItemChild', 'WinIsDos', 'WinIdGet', 'WinIconize', 'WinHide', 'WinHelp', 'WinGetactive', 'WinExistchild', - 'WinExist', 'WinExename', 'WinConfig', 'WinClosenot', 'WinClose', 'WinArrange', 'WinActivechild', 'WinActivchild', - 'WinActivate', 'WebVerifyCard', 'WebSetTimeout', 'WebParamSize', 'WebParamNames', 'WebParamFile', 'WebParamData', - 'WebParamBuf', 'WebOutFile', 'WebOutBinary', 'WebOut', 'WebDumpError', 'WebDatData', 'WebCounter', 'WebConSize', 'WebConData', - 'WebConBuf', 'WebCmdData', 'WebBaseConv', 'Wallpaper', 'WaitForKeyEX', 'WaitForKey', 'VersionDLL', 'Version', 'VarType', - 'TimeYmdHms', 'TimeWait', 'TimeSubtract', 'TimeJulToYmd', 'TimeJulianDay', 'TimeDiffSecs', 'TimeDiffDays', 'TimeDiff', 'TimeDelay', - 'TimeDate', 'TimeAdd', 'TextSelect', 'TextBoxSort', 'TextBox', 'Terminate', 'Tanh', 'Tan', 'SysParamInfo', 'SvcWaitForCmd', - 'SvcSetState', 'SvcSetAccept', 'StrUpper', 'StrTrim', 'StrSubWild', 'StrSub', 'StrScan', 'StrReplace', 'StrLower', 'StrLenWild', - 'StrLen', 'StrIndexWild', 'StrIndexNC', 'StrIndex', 'StriCmp', 'StrFixLeft', 'StrFixCharsL', 'StrFixChars', 'StrFix', 'StrFill', - 'StrCnt', 'StrCmp', 'StrClean', 'StrCharCount', 'StrCat', 'StrByteCount', 'Sqrt', 'SoundVolume', 'Sounds', 'Snapshot', 'Sinh', 'Sin', - 'ShortCutMake', 'ShortCutInfo', 'ShortCutExtra', 'ShortCutEdit', 'ShortCutDir', 'ShellExecute', 'SendMenusToEx', 'SendMenusTo', - 'SendKeysTo', 'SendKeysChild', 'SendKey', 'RunZoomWait', 'RunZoom', 'RunWithLogon', 'RunWait', 'RunShell', 'RunIconWait', - 'RunIcon', 'RunHideWait', 'RunHide', 'RunExit', 'RunEnviron', 'Run', 'RtStatus', 'Reload', 'RegUnloadHive', 'RegSetValue', - 'RegSetQword', 'RegSetMulSz', 'RegSetExpSz', 'RegSetEx', 'RegSetDword', 'RegSetBin', 'RegQueryValue', 'RegQueryStr', - 'RegQueryQword', 'RegQueryMulSz', 'RegQueryKeys', 'RegQueryKeyLastWriteTime', 'RegQueryKey', 'RegQueryItem', 'RegQueryExpSz', - 'RegQueryEx', 'RegQueryDword', 'RegQueryBin', 'RegOpenKeyEx', 'RegOpenKey', 'RegOpenFlags', 'RegLoadHive', 'RegExistValue', - 'RegExistKey', 'RegEntryType', 'RegDelValue', 'RegDeleteKey', 'RegCreateKey', 'RegConnect', 'RegCloseKey', 'RegApp', 'Random', - 'PtrPersistent', 'PtrGlobalDefine', 'PtrGlobal', 'Print', 'PlayWaveform', 'PlayMidi', 'PlayMedia', 'PipeServerWrite', 'PipeServerRead', - 'PipeServerCreate', 'PipeServerClose', 'PipeInfo', 'PipeClientSendRecvData', 'PipeClientOpen', 'PipeClientClose', 'Pause', - 'ParseData', 'ObjectTypeGet', 'ObjectType', 'ObjectOpen', 'ObjectGet', 'ObjectEventRemove', 'objecteventremove', 'ObjectEventAdd', - 'objecteventadd', 'ObjectCreate', 'ObjectConstToArray', 'ObjectConstantsGet', 'ObjectCollectionOpen', 'ObjectCollectionNext', - 'ObjectCollectionClose', 'ObjectClose', 'ObjectAccess', 'Num2Char', 'NetInfo', 'MsgTextGet', 'MousePlay', 'MouseMove', 'MouseInfo', - 'MouseDrag', 'MouseCoords', 'MouseClickBtn', 'MouseClick', 'mod', 'Min', 'Message', 'Max', 'Loge', 'LogDisk', 'Log10', 'LastError', - 'KeyToggleSet', 'KeyToggleGet', 'ItemSortNc', 'ItemSort', 'ItemSelect', 'ItemReplace', 'ItemRemove', 'ItemLocate', 'ItemInsert', - 'ItemExtractCSV', 'ItemExtract', 'ItemCountCSV', 'ItemCount', 'IsNumber', 'IsLicensed', 'IsKeyDown', 'IsInt', 'IsFloat', 'IsDefined', - 'Int', 'InstallFile', 'IniWritePvt', 'IniWrite', 'IniReadPvt', 'IniRead', 'IniItemizePvt', 'IniItemize', 'IniDeletePvt', 'IniDelete', - 'IgnoreInput', 'IconReplace', 'IconInfo', 'IconExtract', 'IconArrange', 'GetTickCount', 'GetObject', 'GetExactTime', 'Floor', - 'FindWindow', 'FileYmdHms', 'FileWrite', 'FileVerInfo', 'FileTimeTouch', 'FileTimeSetEx', 'FileTimeSet', 'FileTimeGetEx', - 'FileTimeGet', 'FileTimeCode', 'FileSizeEx', 'FileSize', 'FileRoot', 'FileRename', 'FileRead', 'FilePutW', 'FilePut', 'FilePath', - 'FileOpen', 'FileNameShort', 'FileNameLong', 'FileNameEval2', 'FileNameEval1', 'FileMoveAttr', 'FileMove', 'FileMapName', - 'FileLocate', 'FileItemPath', 'FileItemize', 'FileInfoToArray', 'FileGetW', 'FileGet', 'FileFullname', 'FileExtension', 'FileExist', - 'FileDelete', 'FileCreateTemp', 'FileCopyAttr', 'FileCopy', 'FileCompare', 'FileClose', 'FileBaseName', 'FileAttrSetEx', - 'FileAttrSet', 'FileAttrGetEx', 'FileAttrGet', 'FileAppend', 'Fabs', 'ExtractAttachedFile', 'Exp', 'ExeTypeInfo', 'Exclusive', - 'EnvItemize', 'EnvironSet', 'Environment', 'EndSession', 'DosVersion', 'DllLoad', 'DllLastError', 'DllHwnd', 'DllHinst', - 'DllFree', 'DllCallCDecl', 'DllCall', 'Display', 'DiskVolinfo', 'DiskSize', 'DiskScan', 'DiskInfo', 'DiskFree', 'DiskExist', - 'DirWindows', 'DirSize', 'DirScript', 'DirRename', 'DirRemove', 'DirMake', 'DirItemize', 'DirInfoToArray', 'DirHome', 'DirGet', - 'DirExist', 'DirChange', 'DirAttrSetEx', 'DirAttrSet', 'DirAttrGetEx', 'DirAttrGet', 'DialogProcOptions', 'DialogObject', - 'DialogControlState', 'DialogControlSet', 'DialogControlGet', 'DialogBox', 'Dialog', 'Delay', 'Decimals', 'DebugTrace', - 'DebugData', 'DDETimeout', 'DDETerminate', 'DDERequest', 'DDEPoke', 'DDEInitiate', 'DDEExecute', 'DateTime', 'CurrFilepath', - 'CurrentPath', 'CurrentFile', 'CreateObject', 'Cosh', 'Cos', 'ClipPut', 'ClipHasFormat', 'ClipGetEx', 'ClipGet', 'ClipAppend', - 'ChrUnicodeToString', 'ChrUnicodeToHex', 'ChrStringToUnicode', 'ChrSetCodepage', 'ChrHexToUnicode', 'ChrGetCodepage', - 'Char2Num', 'Ceiling', 'ButtonNames', 'BoxUpdates', 'BoxTitle', 'BoxTextFont', 'BoxTextColor', 'BoxText', 'BoxShut', 'BoxPen', - 'BoxOpen', 'BoxNew', 'BoxMapmode', 'BoxesUp', 'BoxDrawText', 'BoxDrawRect', 'BoxDrawLine', 'BoxDrawCircle', 'BoxDestroy', - 'BoxDataTag', 'BoxDataClear', 'BoxColor', 'BoxCaption', 'BoxButtonWait', 'BoxButtonStat', 'BoxButtonKill', 'BoxButtonDraw', - 'BoxBitMap', 'BinaryXor', 'BinaryXlate', 'BinaryWriteEx', 'BinaryWrite', 'BinaryTagRepl', 'BinaryTagLen', 'BinaryTagInit', - 'BinaryTagIndex', 'BinaryTagFind', 'BinaryTagExtr', 'BinaryStrCnt', 'BinarySort', 'BinaryReplace', 'BinaryReadEx', - 'BinaryRead', 'BinaryPokeStrW', 'BinaryPokeStr', 'BinaryPokeHex', 'BinaryPokeFlt', 'BinaryPoke4', 'BinaryPoke2', 'BinaryPoke', - 'BinaryPeekStrW', 'BinaryPeekStr', 'BinaryPeekHex', 'BinaryPeekFlt', 'BinaryPeek4', 'BinaryPeek2', 'BinaryPeek', 'BinaryOr', - 'BinaryOleType', 'BinaryIndexNc', 'BinaryIndexEx', 'BinaryIndexBin', 'BinaryIndex', 'BinaryIncrFlt', 'BinaryIncr4', - 'BinaryIncr2', 'BinaryIncr', 'BinaryHashRec', 'BinaryFree', 'BinaryEodSet', 'BinaryEodGet', 'BinaryCopy', 'BinaryConvert', - 'BinaryCompare', 'BinaryClipPut', 'BinaryClipGet', 'BinaryChecksum', 'BinaryBufInfo', 'BinaryAnd', 'BinaryAllocArray', - 'BinaryAlloc', 'Beep', 'Average', 'Atan', 'AskYesNo', 'AskTextbox', 'AskPassword', 'AskLine', 'AskItemlist', 'AskFont', - 'AskFiletext', 'AskFilename', 'AskDirectory', 'AskColor', 'Asin', 'ArrInitialize', 'ArrInfo', 'ArrDimension', - 'Arrayize', 'ArrayFilePutCSV', 'ArrayFilePut', 'ArrayFileGetCSV', 'ArrayFileGet', 'AppWaitClose', 'AppExist', 'AddExtender', - 'Acos', 'Abs', 'About' - ), - 4 => array( - 'zZipFiles', 'zVersionInfo', 'zVersion', 'zUnZipFiles', 'zSetPortBit', 'zRPortShift', 'zPortOut', 'zPortIn', 'zNotPortBit', - 'zLPortShift', 'zGetPortBit', 'zClrPortBit', 'xVerifyCCard', 'xSendMessage', 'xMessageBox', 'xMemCompact', 'xHex', 'xGetElapsed', - 'xGetChildHwnd', 'xExtenderInfo', 'xEnumStreams', 'xEjectMedia', 'xDriveReady', 'xDiskLabelGet', 'xCursorSet', 'xBaseConvert', - 'wxPing', 'wxParmSet', 'wxParmGet', 'wxMsgSetHdr', 'wxMsgGetHdr', 'wxMsgGetBody', 'wxHost2Addr', 'wxGetLastErr', 'wxGetInfo', - 'wxGetErrDesc', 'wxAddr2Host', 'wtsWaitSystemEvent', 'wtsVersion', 'wtsTerminateProcess', 'wtsShutdownSystem', 'wtsSendMessage', - 'wtsQuerySessionInfo', 'wtsProcIdToSessId', 'wtsLogoffSession', 'wtsLastErrMsg', 'wtsIsTSEnabled', 'wtsIsCitrixEnabled', - 'wtsGetActiveConsoleSessId', 'wtsEnumSessions', 'wtsEnumProcesses', 'wtsDisconnectSession', 'wnWrkGroups', 'wnVersion', 'wntWtsUserSet', - 'wntWtsUserGet', 'wntVersion', 'wntUserSidChk', 'wntUserSetDat', 'wntUserRename', 'wntUserProps', 'wntUserList', 'wntUserInfo', - 'wntUserGetDat', 'wntUserFiles', 'wntUserExist', 'wntUserDel', 'wntUserAddDat', 'wntUserAdd', 'wntSvcStatus', 'wntSvcStart', - 'wntSvcList', 'wntSvcDelete', 'wntSvcCreate', 'wntSvcControl', 'wntSvcCfgSet', 'wntSvcCfgGet', 'wntShutdown', 'wntShareUsers', - 'wntShareSet', 'wntShareList', 'wntShareInfo', 'wntShareDel', 'wntShareAdd', 'wntServiceInf', 'wntServiceAt', 'wntServerType', - 'wntServerList', 'wntServerInfo', 'wntSecurityGet', 'wntRunAsUser', 'wntResources2', 'wntResources', 'wntRemoteTime', 'wntRasUserSet', - 'wntRasUserGet', 'wntProfileInfo', 'wntProfileDel', 'wntPrivUsers', 'wntPrivList', 'wntPrivGet', 'wntPrivDel', 'wntPrivAdd', - 'wntOwnerSet', 'wntOwnerGet', 'wntMemberSet', 'wntMemberLst2', 'wntMemberList', 'wntMemberGrps', 'wntMemberGet', 'wntMemberDel', - 'wntLsaPolSet', 'wntLsaPolGet', 'wntListGroups', 'wntLastErrMsg', 'wntGroupRen', 'wntGroupInfo', 'wntGroupEdit', 'wntGroupDel', - 'wntGroupAdd', 'wntGetUser', 'wntGetDrive', 'wntGetDc', 'wntGetCon', 'wntFileUsers', 'wntFilesOpen', 'wntFileClose', 'wntEventWrite', - 'wntEventLog', 'wntDomainSync', 'wntDirDialog', 'wntDfsList', 'wntDfsGetInfo', 'wntCurrUsers', 'wntChgPswd', 'wntCancelCon', - 'wntAuditMod', 'wntAuditList', 'wntAuditGet', 'wntAuditDel', 'wntAuditAdd2', 'wntAuditAdd', 'wntAddPrinter', 'wntAddDrive', - 'wntAcctPolSet', 'wntAcctPolGet', 'wntAcctList', 'wntAcctInfo', 'wntAccessMod', 'wntAccessList', 'wntAccessGet', 'wntAccessDel', - 'wntaccessadd2', 'wntAccessAdd', 'wnShares', 'wnSharePath', 'wnShareName', 'wnShareCnt', 'wnServers', 'wnRestore', 'wnNetNames', - 'wnGetUser', 'wnGetCon', 'wnGetCaps', 'wnDlgShare', 'wnDlgNoShare', 'wnDlgDiscon', 'wnDlgCon4', 'wnDlgCon3', 'wnDlgCon2', 'wnDlgCon', - 'wnDlgBrowse', 'wnDialog', 'wnCmptrInfo', 'wnCancelCon', 'wnAddCon', 'WaitSRQ', 'w9xVersion', 'w9xUserSetDat', 'w9xUserRename', - 'w9xUserprops', 'w9xUserList', 'w9xUserinfo', 'w9xUserGetDat', 'w9xUserExist', 'w9xUserDel', 'w9xUserAddDat', 'w9xUserAdd', 'w9xShareSet', - 'w9xShareInfo', 'w9xShareDel', 'w9xShareAdd', 'w9xServiceAt', 'w9xServerList', 'w9xRemoteTime', 'w9xOwnerGet', 'w9xMemberSet', - 'w9xMemberList', 'w9xMemberGrps', 'w9xMemberGet', 'w9xMemberDel', 'w9xListGroups', 'w9xGroupInfo', 'w9xGroupDel', 'w9xGroupAdd', - 'w9xGetDC', 'w9xFileUsers', 'w9xAccessList', 'w9xAccessGet', 'w9xAccessDel', 'w9xAccessAdd', 'w95Version', 'w95ShareUsers', - 'w95ShareSet', 'w95ShareList', 'w95ShareInfo', 'w95ShareDel', 'w95ShareAdd', 'w95ServiceInf', 'w95ServiceAt', 'w95ServerType', - 'w95ServerInfo', 'w95Resources', 'w95GetUser', 'w95GetDrive', 'w95GetCon', 'w95FileUsers', 'w95FileClose', 'w95DirDialog', - 'w95CancelCon', 'w95AddPrinter', 'w95AddDrive', 'w95AccessDel', 'w95AccessAdd', 'w3Version', 'w3PrtBrowse', 'w3NetGetUser', - 'w3NetDialog', 'w3GetCon', 'w3GetCaps', 'w3DirBrowse', 'w3CancelCon', 'w3AddCon', 'urlGetScheme', 'urlEncode', 'urlDecode', - 'tVersion', 'tSetPriority', 'TriggerList', 'Trigger', 'tRemoteConn', 'tOpenProc', 'tListProc', 'tListMod', 'tKillProc', 'tGetProcInfo', - 'tGetPriority', 'tGetModInfo', 'tGetLastError', 'tGetData', 'TestSys', 'TestSRQ', 'tCountProc', 'tCompatible', 'tCloseProc', - 'tBrowseCntrs', 'sSendString', 'sSendNum', 'sSendLine', 'sSendBinary', 'sRecvNum', 'sRecvLine', 'sRecvBinary', 'SrchVersion', - 'SrchNext', 'SrchInit', 'SrchFree', 'sOpen', 'sOK2Send', 'sOK2Recv', 'smtpSendText', 'smtpSendFile', 'sListen', 'SetRWLS', - 'SendSetup', 'SendLLO', 'SendList', 'SendIFC', 'SendDataBytes', 'SendCmds', 'Send', 'sConnect', 'sClose', 'SByteOrder32', - 'sByteOrder16', 'sAccept', 'rRegVersion', 'rRegSearch', 'ResetSys', 'ReceiveSetup', 'Receive', 'ReadStsByte', 'RcvRespMsg', - 'RasVersion', 'RasTypeSize', 'RasRename', 'RasNumCons', 'RasNameValid', 'RasListActCon', 'RasItemize', 'RasHangUp', 'RasGetLastErr', - 'RasGetConStat', 'RasEntrySet', 'RasEntryInfo', 'RasEntryExist', 'RasEntryDel', 'RasEntryAdd', 'RasDialInfo', 'RasDial', - 'RasCopy', 'RasConStatus', 'qVersionInfo', 'qTransact', 'qTables', 'qSpecial', 'qSetConnOpt', 'qNumRsltCol', 'qNativeSql', 'qLastCode', - 'qGetData', 'qFreeStmt', 'qFreeEnv', 'qFreeConnect', 'qFetch', 'qExecDirect', 'qError', 'qDriverList', 'qDriverCon', 'qDisconnect', - 'qDataSources', 'qConnect', 'qConfigError', 'qConfigData', 'qColumns', 'qBindCol', 'qAllocStmt', 'qAllocEnv', 'qAllocConnect', - 'pWaitFor', 'pVersionInfo', 'pTimeout', 'pSetPublish', 'pSetPrtInfo', 'pSetPrtAttrib', 'pSetDefPrtEx', 'pSetDefPrt', 'pSendFile', - 'pRecvFile', 'pPutString', 'pPutLine', 'pPutChar', 'pPutByte', 'pPutBinary', 'PPollUnconfig', 'PPollConfig', 'PPoll', 'pPeekChar', - 'pPeekByte', 'pPaperSizes', 'pPaperBins', 'pModemSReg', 'pModemParams', 'pModemInit', 'pModemHangUp', 'pModemDial', 'pModemControl', - 'pModemConnect', 'pModemCommand', 'pModemAnsRing', 'pModemAnsCall', 'pMediaTypes', 'pGetString', 'pGetPublish', 'pGetPrtList', - 'pGetPrtInfo', 'pGetPrtAttrib', 'pGetLine', 'pGetLastError', 'pGetErrorMsg', 'pGetErrorCode', 'pGetDefPrtInf', 'pGetChar', - 'pGetByte', 'pGetBinary', 'pDelPrtConn', 'pDelPrinter', 'pComOpen', 'pComModify', 'pComInfo', 'pComControl', 'pComClose', - 'pCheckSum', 'pCheckBinary', 'pCaptureOn', 'pCaptureOff', 'pCaptureLog', 'PassControl', 'pAddPrtConn', 'pAddPrinter', 'p3RecvText', - 'p3RecvFile', 'p3Peek', 'p3Open', 'p3GetReply', 'p3Delete', 'p3Count', 'p3Close', 'nwWhoAmI', 'nwVfyPassword', 'nwVersion', - 'nwSrvShutdown', 'nwSrvNLMMgr', 'nwSrvGenGUID', 'nwSrvExecNCF', 'nwSetVolLimit', 'nwSetSrvParam', 'nwSetSrvInfo', 'nwSetPrimServ', - 'nwSetPassword', 'nwSetOptions', 'nwSetFileInfo', 'nwSetDirLimit', 'nwSetDirInfo', 'nwSetContext', 'nwSetBcastMode', 'nwServerList', - 'nwSendBcastMsg', 'nwSearchObjects', 'nwSearchFilter', 'nwRenameObject', 'nwRemoveObject', 'nwReceiveBcastMsg', 'nwNameConvert', - 'nwMutateObject', 'nwMoveObject', 'nwModifyObject', 'nwMapDelete', 'nwMap', 'nwLogout', 'nwLogin', 'nwListUserGroups', - 'nwListObjects', 'nwListGroupMembers', 'nwLastErrMsg', 'nwIsUserInGroup', 'nwGetVolLimit', 'nwGetSrvStats', 'nwGetSrvParam', - 'nwGetSrvInfo', 'nwGetSrvCfg', 'nwGetOptions', 'nwGetObjValue', 'nwGetObjInfo', 'nwGetNLMInfo', 'nwGetMapped', 'nwGetFileInfo', - 'nwGetDirLimit', 'nwGetDirInfo', 'nwGetContext', 'nwGetConnInfo', 'nwGetCapture', 'nwGetBcastMode', 'nwGetAttrInfo', - 'nwDriveStatus', 'nwDrivePath', 'nwDetachFromServer', 'nwDelUserFromGroup', 'nwDelConnNum', 'nwCompareObject', 'nwClientInfo', - 'nwChgPassword', 'nwAttachToServer', 'nwAddUserToGroup', 'nwAddObject', 'netVersion', 'netResources', 'netGetUser', 'netGetCon', - 'netDirDialog', 'netCancelCon', 'netAddPrinter', 'netAddDrive', 'n4Version', 'n4UserGroups', 'n4UserGroupEx', 'n4SetPrimServ', - 'n4SetOptions', 'n4SetContextG', 'n4SetContext', 'n4ServerList', 'n4ServerInfo', 'n4ObjSearch', 'n4ObjRename', 'n4ObjOptions', - 'n4ObjMove', 'n4ObjGetVal', 'n4ObjectProps', 'n4ObjectList', 'n4ObjectInfo', 'n4ObjDelete', 'n4NameConvert', 'n4MsgsEndAll', - 'n4MsgsEnd', 'n4MemberSet', 'n4MemberGet', 'n4MemberDel', 'n4MapRoot', 'n4MapDir', 'n4MapDelete', 'n4Map', 'n4LogoutTree', - 'n4Logout', 'n4Login', 'n4GetUserName', 'n4GetUserId', 'n4GetUser', 'n4GetNetAddr', 'n4GetMapped', 'n4GetContext', - 'n4GetConnNum', 'n4FileUsers', 'n4FileTimeGet', 'n4FileAttrSet', 'n4FileAttrGet', 'n4DriveStatus', 'n4DrivePath', 'n4DirTimeGet', - 'n4DirAttrSet', 'n4DirAttrGet', 'n4Detach', 'n4ChgPassword', 'n4CapturePrt', 'n4CaptureGet', 'n4CaptureEnd', 'n4Attach', - 'n3Version', 'n3UserGroups', 'n3ServerList', 'n3ServerInfo', 'n3MsgsEndAll', 'n3MsgsEnd', 'n3MemberSet', 'n3MemberGet', - 'n3MemberDel', 'n3Maproot', 'n3Mapdir', 'n3Mapdelete', 'n3Map', 'n3Logout', 'n3GetUserId', 'n3GetUser', 'n3GetNetAddr', - 'n3GetMapped', 'n3GetConnNum', 'n3FileTimeGet', 'n3FileAttrSet', 'n3FileAttrGet', 'n3DriveStatus', 'n3DrivePath', - 'n3DirTimeGet', 'n3DirAttrSet', 'n3DirAttrGet', 'n3Detach', 'n3ChgPassword', 'n3CapturePrt', 'n3CaptureGet', - 'n3CaptureEnd', 'n3Attach', 'mVersion', 'mSyncMail', 'mSendMailEx', 'mSendMail', 'mrecvmail', 'mReadNextMsg', 'mLogOn', - 'mLogOff', 'mFindNext', 'mError', 'mCompatible', 'kVerInfo', 'kStatusInfo', 'kSendText', 'kSendFile', 'kManageImap4', - 'kInit', 'kGetMail', 'kExtra', 'kDest', 'kDeletePop3', 'iWriteDataBuf', 'iWriteData', 'iVersion', 'IUrlOpen', 'iUrlEncode', - 'iUrlDecode', 'iReadDataBuf', 'iReadData', 'ipVersion', 'ipPing', 'iPing', 'ipHost2Addr', 'ipGetLastErr', 'ipGetAddress', - 'iParseURL', 'ipAddr2Host', 'iOptionSet', 'iOptionGet', 'ImgWave', 'ImgVersion', 'ImgUnsharpMask', 'ImgThreshold', 'ImgSwirl', - 'ImgSpread', 'ImgSolarize', 'ImgShear', 'ImgSharpen', 'ImgShade', 'ImgScale', 'ImgSample', 'ImgRotate', 'ImgResize', - 'ImgReduceNoise', 'ImgRaise', 'ImgOilPaint', 'ImgNormalize', 'ImgNegate', 'ImgMotionBlur', 'ImgModulate', 'ImgMinify', - 'ImgMedianFilter', 'ImgMagnify', 'ImgLevel', 'ImgIsValid', 'ImgIsPalette', 'ImgIsMono', 'ImgIsGray', 'ImgInfo', 'ImgImplode', - 'ImgGetImageType', 'ImgGetColorCount', 'ImgGaussianBlur', 'ImgGamma', 'ImgFrame', 'ImgFlop', 'ImgFlip', 'ImgEqualize', - 'ImgEnhance', 'ImgEmboss', 'ImgCrop', 'ImgConvert', 'ImgContrast', 'ImgCompare', 'ImgColorize', 'ImgChop', 'ImgCharcoal', - 'ImgBorder', 'ImgBlur', 'ImgAddNoise', 'iLocFindNext', 'iLocFindInit', 'iHttpOpen', 'iHttpInit', 'iHttpHeaders', 'iHttpAccept', - 'iHostConnect', 'iHost2Addr', 'iGetResponse', 'iGetLastError', 'iGetIEVer', 'iGetConStatEx', 'iGetConState', 'iFtpRename', - 'iFtpPut', 'iFtpOpen', 'iFtpGet', 'iFtpFindNext', 'iFtpFindInit', 'iFtpDirRemove', 'iFtpDirMake', 'iFtpDirGet', 'iFtpDirChange', - 'iFtpDialog', 'iFtpDelete', 'iFtpCmd', 'iErrorDialog', 'iDialItemize', 'iDialHangUp', 'iDial', 'iCookieSet', 'iCookieGet', - 'iContentURL', 'iContentFile', 'iContentData', 'iClose', 'ibWrtf', 'ibWrt', 'ibWait', 'ibVersion', 'ibUnlock', 'ibTrg', - 'ibTmo', 'ibStop', 'ibStatus', 'ibSta', 'ibSre', 'ibSic', 'ibSad', 'ibRsv', 'ibRsp', 'ibRsc', 'ibRpp', 'ibRdf', 'ibRd', - 'ibPpc', 'ibPoke', 'ibPct', 'ibPad', 'ibOnl', 'ibMakeAddr', 'ibLock', 'ibLoc', 'ibLn', 'ibLines', 'ibIst', 'ibInit', - 'ibGts', 'ibGetSad', 'ibGetPad', 'ibFind', 'ibEvent', 'ibErr', 'ibEot', 'ibEos', 'iBegin', 'ibDma', 'ibDev', 'ibConfig', - 'ibCntl', 'ibCnt', 'ibCmda', 'ibCmd', 'ibClr', 'ibCac', 'ibBna', 'ibAsk', 'iAddr2Host', 'huge_Thousands', 'huge_Subtract', - 'huge_SetOptions', 'huge_Multiply', 'huge_GetLastError', 'huge_ExtenderInfo', 'huge_Divide', 'huge_Decimal', 'huge_Add', - 'httpStripHTML', 'httpRecvTextF', 'httpRecvText', 'httpRecvQuery', 'httpRecvQryF', 'httpRecvFile', 'httpGetServer', - 'httpGetQuery', 'httpGetPath', 'httpGetFile', 'httpGetDir', 'httpGetAnchor', 'httpFullPath', 'httpFirewall', 'httpAuth', - 'ftpRename', 'ftpQuote', 'ftpPut', 'ftpOpen', 'ftpList', 'ftpGet', 'ftpFirewall', 'ftpDelete', 'ftpClose', 'ftpChDir', - 'FindRQS', 'FindLstn', 'EnvSetVar', 'EnvPathDel', 'EnvPathChk', 'EnvPathAdd', 'EnvListVars', 'EnvGetVar', 'EnvGetInfo', - 'EnableRemote', 'EnableLocal', 'ehllapiWait', 'ehllapiVersion', 'ehllapiUninit', 'ehllapiStopKeyIntercept', 'ehllapiStopHostNotify', - 'ehllapiStopCloseIntercept', 'ehllapiStartKeyIntercept', 'ehllapiStartHostNotify', 'ehllapiStartCloseIntercept', - 'ehllapiSetWindowStatus', 'ehllapiSetSessionParams', 'ehllapiSetPSWindowName', 'ehllapiSetCursorLoc', 'ehllapiSendKey', - 'ehllapiSendFile', 'ehllapiSearchPS', 'ehllapiSearchField', 'ehllapiRunProfile', 'ehllapiResetSystem', 'ehllapiReserve', - 'ehllapiRelease', 'ehllapiReceiveFile', 'ehllapiQuerySystem', 'ehllapiQueryPSStatus', 'ehllapiQueryHostNotify', - 'ehllapiQueryFieldAttr', 'ehllapiQueryCursorLoc', 'ehllapiQueryCloseIntercept', 'ehllapiPostInterceptStatus', - 'ehllapiPause', 'ehllapiLastErrMsg', 'ehllapiInit', 'ehllapiGetWindowStatus', 'ehllapiGetPSHWND', 'ehllapiGetKey', - 'ehllapiFindFieldPos', 'ehllapiFindFieldLen', 'ehllapiDisconnectPS', 'ehllapiCvtRCToPos', 'ehllapiCvtPosToRC', - 'ehllapiCopyTextToPS', 'ehllapiCopyTextToField', 'ehllapiCopyTextFromPS', 'ehllapiCopyTextFromField', 'ehllapiCopyOIA', - 'ehllapiConnectPS', 'dunItemize', 'dunDisconnect', 'dunConnectEx', 'dunConnect', 'dsTestParam', 'dsSIDtoHexStr', 'dsSetSecProp', - 'dsSetProperty', 'dsSetPassword', 'dsSetObj', 'dsSetCredentX', 'dsSetCredent', 'dsRemFromGrp', 'dsRelSecObj', 'dsMoveObj', - 'dsIsObject', 'dsIsMemberGrp', 'dsIsContainer', 'dsGetUsersGrps', 'dsGetSecProp', 'dsGetPropName', 'dsGetProperty', - 'dsGetPrntPath', 'dsGetPrimGrp', 'dsGetMemGrp', 'dsGetInfo', 'dsGetClass', 'dsGetChldPath', 'dsFindPath', 'dsDeleteObj', - 'dsCreatSecObj', 'dsCreateObj', 'dsCopySecObj', 'dsAddToGrp', 'dsAclRemAce', 'dsAclOrderAce', 'dsAclGetAces', 'dsAclAddAce', - 'DevClearList', 'DevClear', 'dbTest', 'dbSwapColumns', 'dbSort', 'dbSetRecordField', 'dbSetOptions', 'dbSetErrorReporting', - 'dbSetEntireRecord', 'dbSetDelimiter', 'dbSave', 'dbOpen', 'dbNameColumn', 'dbMakeNewItem', 'dbInsertColumn', 'dbGetVersion', - 'dbGetSaveStatus', 'dbGetRecordField', 'dbGetRecordCount', 'dbGetNextItem', 'dbGetLastError', 'dbGetEntireRecord', - 'dbGetColumnType', 'dbGetColumnNumber', 'dbGetColumnName', 'dbGetColumnCount', 'dbFindRecord', 'dbExist', 'dbEasterEgg', - 'dbDeleteRecord', 'dbDeleteColumn', 'dbDebug', 'dbCookDatabases', 'dbClose', 'dbCloneRecord', 'dbBindCol', 'cWndState', - 'cWndinfo', 'cWndGetWndSpecName', 'cWndGetWndSpec', 'cWndexist', 'cWndByWndSpecName', 'cWndByWndSpec', 'cWndbyseq', - 'cWndbyname', 'cWndbyid', 'cWndbyclass', 'cWinIDConvert', 'cVersionInfo', 'cVendorId', 'cSetWndText', 'cSetUpDownPos', - 'cSetTvItem', 'cSetTrackPos', 'cSetTabItem', 'cSetLvItem', 'cSetLbItemEx', 'cSetLbItem', 'cSetIpAddr', 'cSetFocus', - 'cSetEditText', 'cSetDtpDate', 'cSetCbItem', 'cSetCalDate', 'cSendMessage', 'cRadioButton', 'cPostMessage', 'cPostButton', - 'cMemStat', 'cGetWndCursor', 'cGetUpDownPos', 'cGetUpDownMin', 'cGetUpDownMax', 'cGetTVItem', 'cGetTrackPos', 'cGetTrackMin', - 'cGetTrackMax', 'cGetTbText', 'cGetSbText', 'cGetLvText', 'cGetLvSelText', 'cGetLvFocText', 'cGetLvDdtText', 'cGetLvColText', - 'cGetLbText', 'cGetLbSelText', 'cGetLbCount', 'cGetIpAddr', 'cGetInfo', 'cGetHrText', 'cGetFocus', 'cGetEditText', 'cGetDtpDate', - 'cGetControlImageCRC', 'cGetCBText', 'cGetCbCount', 'cGetCalDate', 'cFindByName', 'cFindByClass', 'cEnablestate', 'cDblClickItem', - 'cCpuSupt', 'cCpuSpeed', 'cCpuIdExt', 'cCpuId', 'cCpuFeat', 'cCpuBenchmark', 'cCloneCheck', 'cClickToolbar', 'cClickButton', - 'cClearTvItem', 'cClearLvItem', 'cClearLbAll', 'cCheckbox', 'aVersion', 'aStatusbar', 'aShellFolder', 'aMsgTimeout', 'AllSPoll', - 'aGetLastError', 'aFileRename', 'aFileMove', 'aFileDelete', 'aFileCopy' - ), - 5 => array( - 'wWordRight', 'wWordLeft', 'wWinTile', 'wWinRestore', 'wWinNext', 'wWinMinimize', 'wWinMaximize', 'wWinCloseAll', 'wWinClose', - 'wWinCascade', 'wWinArricons', 'wViewOutput', 'wViewOptions', 'wViewHtml', 'wUpperCase', 'wUpline', 'wUndo', 'wTopOfFile', 'wToggleIns', - 'wTab', 'wStatusMsg', 'wStartSel', 'wSpellcheck', 'wSetProject', 'wSetPrefs', 'wSetColblk', 'wSetBookmark', 'wSelWordRight', - 'wSelWordLeft', 'wSelUp', 'wSelTop', 'wSelRight', 'wSelPgUp', 'wSelPgDn', 'wSelLeft', 'wSelInfo', 'wSelHome', 'wSelEnd', 'wSelectAll', - 'wSelDown', 'wSelBottom', 'wRunRebuild', 'wRunMake', 'wRunExecute', 'wRunDebug', 'wRunConfig', 'wRunCompile', 'wRunCommand', 'wRight', - 'wRepeat', 'wRedo', 'wRecord', 'wProperties', 'wPrintDirect', 'wPrinSetup', 'wPrevError', 'wPaste', 'wPageUp', 'wPageDown', 'wNextError', - 'wNewLine', 'wLowerCase', 'wLineCount', 'wLeft', 'wInvertCase', 'wInsString', 'wInsLine', 'wHome', 'wHelpKeyword', 'wHelpKeybrd', - 'wHelpIndex', 'wHelpHelp', 'wHelpCmds', 'wHelpAbout', 'wGotoLine', 'wGotoCol', 'wGetWrap', 'wGetWord', 'wGetUndo', 'wGetSelstate', - 'wGetRedo', 'wGetOutput', 'wGetModified', 'wGetLineNo', 'wGetIns', 'wGetFilename', 'wGetColNo', 'wGetChar', 'wFtpOpen', 'wFindNext', - 'wFindInFiles', 'wFind', 'wFileSaveAs', 'wFileSave', 'wFileRevert', 'wFilePrint', 'wFilePgSetup', 'wFileOpen', 'wFileNew', 'wFileMerge', - 'wFileList', 'wFileExit', 'wEndSel', 'wEndOfFile', 'wEnd', 'wEdWrap', 'wEdWordRight', 'wEdWordLeft', 'wEdUpLine', 'wEdUndo', 'wEdTopOfFile', - 'wEdToggleIns', 'wEdTab', 'wEdStartSel', 'wEdSetColBlk', 'wEdSelectAll', 'wEdRight', 'wEdRedo', 'wEdPaste', 'wEdPageUp', 'wEdPageDown', - 'wEdNewLine', 'wEdLeft', 'wEdInsString', 'wEdHome', 'wEdGoToLine', 'wEdGoToCol', 'wEdGetWord', 'wEdEndSel', 'wEdEndOfFile', 'wEdEnd', - 'wEdDownLine', 'wEdDelete', 'wEdCutLine', 'wEdCut', 'wEdCopyLine', 'wEdCopy', 'wEdClearSel', 'wEdBackTab', 'wEdBackspace', 'wDownLine', - 'wDelete', 'wDelButton', 'wCutMarked', 'wCutLine', 'wCutAppend', 'wCut', 'wCopyMarked', 'wCopyLine', 'wCopyAppend', 'wCopy', 'wCompile', - 'wClearSel', 'wChange', 'wCallMacro', 'wBackTab', 'wBackspace', 'wAutoIndent', 'wAddButton', 'edWindowTile', 'edWindowRestore', - 'edWindowNext', 'edWindowMinimize', 'edWindowMaximize', 'edWindowCloseall', 'edWindowClose', 'edWindowCascade', 'edWindowArrangeIcons', - 'edStatusMsg', 'edSearchViewOutput', 'edSearchRepeat', 'edSearchPrevError', 'edSearchNextError', 'edSearchFind', 'edSearchChange', - 'edRunRebuild', 'edRunMake', 'edRunExecute', 'edRunDebug', 'edRunConfigure', 'edRunCompile', 'edRunCommand', 'edRecord', 'edHelpProcedures', - 'edHelpKeyword', 'edHelpKeyboard', 'edHelpIndex', 'edHelpHelp', 'edHelpCommands', 'edHelpAbout', 'edGetWordWrapState', 'edGetWindowName', - 'edGetUndoState', 'edGetSelectionState', 'edGetRedoState', 'edGetModifiedStatus', 'edGetLineNumber', 'edGetInsertState', 'edGetColumnNumber', - 'edGetChar', 'edFileSetPreferences', 'edFileSaveAs', 'edFileSave', 'edFilePrinterSetup', 'edFilePrint', 'edFilePageSetup', 'edFileOpen', - 'edFileNew', 'edFileMerge', 'edFileList', 'edFileExit', 'edEditWrap', 'edEditWordRight', 'edEditWordLeft', 'edEditUpLine', 'edEditUndo', - 'edEditToggleIns', 'edEditTab', 'edEditStartSelection', 'edEditSetColumnBlock', 'edEditSetBookmark', 'edEditSelectAll', 'edEditRight', - 'edEditRedo', 'edEditPaste', 'edEditPageUp', 'edEditPageDown', 'edEditLeft', 'edEditInsertString', 'edEditGoToLine', 'edEditGoToColumn', - 'edEditGoToBookmark', 'edEditGetCurrentWord', 'edEditEndSelection', 'edEditEndOfLine', 'edEditEndOfFile', 'edEditDownline', 'edEditDelete', - 'edEditCutline', 'edEditCut', 'edEditCopyline', 'edEditCopy', 'edEditClearSelection', 'edEditBeginningOfLine', 'edEditBeginningOfFile', - 'edEditBackTab', 'edEditBackspace', 'edDeleteButton', 'edAddButton' - ) - ), - 'SYMBOLS' => array( - '(', ')', '[', ']', '{', '}', '!', '+', '-', '~', '$', '^', '?', '@', '%', '#', '&', '*', '|', '/', '<', '>' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => false, - 2 => false, - 3 => false, - 4 => false, - 5 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #800080;', - 2 => 'color: #0080FF; font-weight: bold;', - 3 => 'color: #0000FF;', - 4 => 'color: #FF00FF;', - 5 => 'color: #008000;' - ), - 'COMMENTS' => array( - 1 => 'color: #008000; font-style: italic;', - 2 => 'color: #FF1010; font-weight: bold;', - 'MULTI' => '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( - 0 => 'color: #006600;' - ), - 'SYMBOLS' => array( - 0 => 'color: #66cc66;' - ), - 'REGEXPS' => array( - 0 => 'color: #0000ff;' - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - 1 => '', - 2 => '', - 3 => '', - 4 => '', - 5 => '' - ), - 'OOLANG' => false, - 'OBJECT_SPLITTER' => '', - 'REGEXPS' => array( - 0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*" - ), - 'STRICT_MODE_APPLIES' => GESHI_MAYBE, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) +$language_data = array( + 'LANG_NAME' => 'Winbatch', + 'COMMENT_SINGLE' => array(1 => ';', 2 => ':'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"', '`'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'While', 'To', 'Then', 'Switch', 'Select', 'Return', 'Next', 'IntControl', 'Include', 'In', 'If', + 'Goto', 'GoSub', 'ForEach', 'For', 'Exit', 'Execute', 'ErrorMode', 'EndWhile', 'EndSwitch', '#EndSubRoutine', + 'EndSelect', 'EndIf', '#EEndFunction', 'EndFor', 'End', 'Else', 'DropWild', 'Drop', '#DefineSubRoutine', + '#DefineFunction', 'Debug', 'Continue', 'Case', 'CallExt', 'Call', 'By', 'BreakPoint', 'Break' + ), + 2 => array( + 'ZOOMED', 'YES', 'WORD4', 'WORD2', 'WORD1', 'WHOLESECTION', 'WAIT', 'UNSORTED', 'UNCHECK', 'TRUE', 'TILE', + 'TAB', 'STRING', 'STACK', 'SPC2NET', 'SORTED', 'SOK', 'SNET2PC', 'SINGLE', 'SHIFT', 'SERVER', 'SERRWINSOCK', + 'SERRVOICE', 'SERRSOCKET', 'SERRSERVICE', 'SERRSELECT', 'SERRPARAM', 'SERROUTOFMEM', 'SERRNOTFOUND', 'SERRNOCONN', + 'SERRNOANSWER', 'SERRMUSTWAIT', 'SERRIPADDR', 'SERRHOSTNAME', 'SERRFAILURE', 'SERRBUSY', 'SCROLLLOCK', 'SCANCEL', + 'SAVE', 'SALREADY', 'ROWS', 'REGUSERS', 'REGROOT', 'REGMACHINE', 'REGCURRENT', 'REGCLASSES', 'RDBLCLICK', 'RCLICK', + 'RBUTTON', 'RAD2DEG', 'QSUCCESSINFO', 'QSUCCESS', 'QSTILLEX', 'QROLLBACK', 'QNULL', 'QNODATA', 'QNEXT', 'QNEEDDATA', + 'QFIRST', 'QCOMMIT', 'QBADHANDLE', 'PRINTER', 'PLANCKJOULES', 'PLANCKERGS', 'PI', 'PARSEONLY', 'PARSEC', 'P3ERRREPLY', + 'OPEN', 'ON', 'OFF', 'NUMLOCK', 'NOWAIT', 'NOTIFY', 'NORMAL', 'NORESIZE', 'NONE', 'NO', 'NCSAFORMAT', 'MULTIPLE', + 'MSFORMAT', 'MPLAYRDBLCK', 'MPLAYRCLK', 'MPLAYRBUTTON', 'MPLAYMDBLCK', 'MPLAYMCLK', 'MPLAYMBUTTON', 'MPLAYLDBLCK', + 'MPLAYLCLK', 'MPLAYLBUTTON', 'MINOR', 'MDBLCLICK', 'MCLICK', 'MBYESNO', 'MBUTTON', 'MBOKCANCEL', 'MAJOR', 'MAGFIELD', + 'LOCALGROUP', 'LIGHTMTPS', 'LIGHTMPS', 'LF', 'LDBLCLICK', 'LCLICK', 'LBUTTON', 'LAFFDBERROR', 'ICON', 'HTTPS', 'HTTP', + 'HNOHEADER', 'HMETHODPOST', 'HMETHODGET', 'HIDDEN', 'HHEADERONLY', 'HHEADER', 'GRAVITATION', 'GOPHER', 'GOLDENRATIO', + 'GMTSEC', 'GLOBALGROUP', 'GFTSEC', 'GETPROCID', 'GETEXITCODE', 'FWDSCAN', 'FTPPASSIVE', 'FTP', 'FLOAT8', 'FARADAY', + 'FALSE', 'EXTENDED', 'EULERS', 'ENABLE', 'ELECTRIC', 'DRIVE', 'DISABLE', 'DESCENDING', 'DEG2RAD', 'DEFAULT', 'CTRL', + 'CRLF', 'CR', 'COMMONFORMAT', 'COLUMNS', 'CHECK', 'CAPSLOCK', 'CANCEL', 'BOLTZMANN', 'BACKSCAN', 'AVOGADRO', 'ATTR_X', + 'ATTR_T', 'ATTR_SY', 'ATTR_SH', 'ATTR_RO', 'ATTR_RI', 'ATTR_P', 'ATTR_IC', 'ATTR_H', 'ATTR_DM', 'ATTR_DI', 'ATTR_DC', + 'ATTR_CI', 'ATTR_A', 'ASCENDING', 'ARRANGE', 'AMC', 'ACC_WRITE', 'ACC_READ_NT', 'ACC_READ_95', 'ACC_READ', 'ACC_PRINT_NT', + 'ACC_PMANG_NT', 'ACC_PFULL_NT', 'ACC_LIST', 'ACC_FULL_NT', 'ACC_FULL_95', 'ACC_DELETE', 'ACC_CREATE', 'ACC_CONTROL', + 'ACC_CHNG_NT', 'ACC_ATTRIB', 'ABOVEICONS' + ), + 3 => array( + 'Yields', 'Yield', 'WinZoom', 'WinWaitExist', 'WinWaitClose', 'WinWaitChild', 'WinVersion', 'WinTitle', 'WinSysInfo', + 'WinState', 'WinShow', 'WinResources', 'WinPositionChild', 'WinPosition', 'WinPlaceSet', 'WinPlaceGet', 'WinPlaceChild', + 'WinPlace', 'WinParmSet', 'WinParmGet', 'WinName', 'WinMetrics', 'WinItemProcId', 'WinItemNameId', 'WinItemizeEx', + 'WinItemize', 'WinItemChild', 'WinIsDos', 'WinIdGet', 'WinIconize', 'WinHide', 'WinHelp', 'WinGetactive', 'WinExistchild', + 'WinExist', 'WinExename', 'WinConfig', 'WinClosenot', 'WinClose', 'WinArrange', 'WinActivechild', 'WinActivchild', + 'WinActivate', 'WebVerifyCard', 'WebSetTimeout', 'WebParamSize', 'WebParamNames', 'WebParamFile', 'WebParamData', + 'WebParamBuf', 'WebOutFile', 'WebOutBinary', 'WebOut', 'WebDumpError', 'WebDatData', 'WebCounter', 'WebConSize', 'WebConData', + 'WebConBuf', 'WebCmdData', 'WebBaseConv', 'Wallpaper', 'WaitForKeyEX', 'WaitForKey', 'VersionDLL', 'Version', 'VarType', + 'TimeYmdHms', 'TimeWait', 'TimeSubtract', 'TimeJulToYmd', 'TimeJulianDay', 'TimeDiffSecs', 'TimeDiffDays', 'TimeDiff', 'TimeDelay', + 'TimeDate', 'TimeAdd', 'TextSelect', 'TextBoxSort', 'TextBox', 'Terminate', 'Tanh', 'Tan', 'SysParamInfo', 'SvcWaitForCmd', + 'SvcSetState', 'SvcSetAccept', 'StrUpper', 'StrTrim', 'StrSubWild', 'StrSub', 'StrScan', 'StrReplace', 'StrLower', 'StrLenWild', + 'StrLen', 'StrIndexWild', 'StrIndexNC', 'StrIndex', 'StriCmp', 'StrFixLeft', 'StrFixCharsL', 'StrFixChars', 'StrFix', 'StrFill', + 'StrCnt', 'StrCmp', 'StrClean', 'StrCharCount', 'StrCat', 'StrByteCount', 'Sqrt', 'SoundVolume', 'Sounds', 'Snapshot', 'Sinh', 'Sin', + 'ShortCutMake', 'ShortCutInfo', 'ShortCutExtra', 'ShortCutEdit', 'ShortCutDir', 'ShellExecute', 'SendMenusToEx', 'SendMenusTo', + 'SendKeysTo', 'SendKeysChild', 'SendKey', 'RunZoomWait', 'RunZoom', 'RunWithLogon', 'RunWait', 'RunShell', 'RunIconWait', + 'RunIcon', 'RunHideWait', 'RunHide', 'RunExit', 'RunEnviron', 'Run', 'RtStatus', 'Reload', 'RegUnloadHive', 'RegSetValue', + 'RegSetQword', 'RegSetMulSz', 'RegSetExpSz', 'RegSetEx', 'RegSetDword', 'RegSetBin', 'RegQueryValue', 'RegQueryStr', + 'RegQueryQword', 'RegQueryMulSz', 'RegQueryKeys', 'RegQueryKeyLastWriteTime', 'RegQueryKey', 'RegQueryItem', 'RegQueryExpSz', + 'RegQueryEx', 'RegQueryDword', 'RegQueryBin', 'RegOpenKeyEx', 'RegOpenKey', 'RegOpenFlags', 'RegLoadHive', 'RegExistValue', + 'RegExistKey', 'RegEntryType', 'RegDelValue', 'RegDeleteKey', 'RegCreateKey', 'RegConnect', 'RegCloseKey', 'RegApp', 'Random', + 'PtrPersistent', 'PtrGlobalDefine', 'PtrGlobal', 'Print', 'PlayWaveform', 'PlayMidi', 'PlayMedia', 'PipeServerWrite', 'PipeServerRead', + 'PipeServerCreate', 'PipeServerClose', 'PipeInfo', 'PipeClientSendRecvData', 'PipeClientOpen', 'PipeClientClose', 'Pause', + 'ParseData', 'ObjectTypeGet', 'ObjectType', 'ObjectOpen', 'ObjectGet', 'ObjectEventRemove', 'objecteventremove', 'ObjectEventAdd', + 'objecteventadd', 'ObjectCreate', 'ObjectConstToArray', 'ObjectConstantsGet', 'ObjectCollectionOpen', 'ObjectCollectionNext', + 'ObjectCollectionClose', 'ObjectClose', 'ObjectAccess', 'Num2Char', 'NetInfo', 'MsgTextGet', 'MousePlay', 'MouseMove', 'MouseInfo', + 'MouseDrag', 'MouseCoords', 'MouseClickBtn', 'MouseClick', 'mod', 'Min', 'Message', 'Max', 'Loge', 'LogDisk', 'Log10', 'LastError', + 'KeyToggleSet', 'KeyToggleGet', 'ItemSortNc', 'ItemSort', 'ItemSelect', 'ItemReplace', 'ItemRemove', 'ItemLocate', 'ItemInsert', + 'ItemExtractCSV', 'ItemExtract', 'ItemCountCSV', 'ItemCount', 'IsNumber', 'IsLicensed', 'IsKeyDown', 'IsInt', 'IsFloat', 'IsDefined', + 'Int', 'InstallFile', 'IniWritePvt', 'IniWrite', 'IniReadPvt', 'IniRead', 'IniItemizePvt', 'IniItemize', 'IniDeletePvt', 'IniDelete', + 'IgnoreInput', 'IconReplace', 'IconInfo', 'IconExtract', 'IconArrange', 'GetTickCount', 'GetObject', 'GetExactTime', 'Floor', + 'FindWindow', 'FileYmdHms', 'FileWrite', 'FileVerInfo', 'FileTimeTouch', 'FileTimeSetEx', 'FileTimeSet', 'FileTimeGetEx', + 'FileTimeGet', 'FileTimeCode', 'FileSizeEx', 'FileSize', 'FileRoot', 'FileRename', 'FileRead', 'FilePutW', 'FilePut', 'FilePath', + 'FileOpen', 'FileNameShort', 'FileNameLong', 'FileNameEval2', 'FileNameEval1', 'FileMoveAttr', 'FileMove', 'FileMapName', + 'FileLocate', 'FileItemPath', 'FileItemize', 'FileInfoToArray', 'FileGetW', 'FileGet', 'FileFullname', 'FileExtension', 'FileExist', + 'FileDelete', 'FileCreateTemp', 'FileCopyAttr', 'FileCopy', 'FileCompare', 'FileClose', 'FileBaseName', 'FileAttrSetEx', + 'FileAttrSet', 'FileAttrGetEx', 'FileAttrGet', 'FileAppend', 'Fabs', 'ExtractAttachedFile', 'Exp', 'ExeTypeInfo', 'Exclusive', + 'EnvItemize', 'EnvironSet', 'Environment', 'EndSession', 'DosVersion', 'DllLoad', 'DllLastError', 'DllHwnd', 'DllHinst', + 'DllFree', 'DllCallCDecl', 'DllCall', 'Display', 'DiskVolinfo', 'DiskSize', 'DiskScan', 'DiskInfo', 'DiskFree', 'DiskExist', + 'DirWindows', 'DirSize', 'DirScript', 'DirRename', 'DirRemove', 'DirMake', 'DirItemize', 'DirInfoToArray', 'DirHome', 'DirGet', + 'DirExist', 'DirChange', 'DirAttrSetEx', 'DirAttrSet', 'DirAttrGetEx', 'DirAttrGet', 'DialogProcOptions', 'DialogObject', + 'DialogControlState', 'DialogControlSet', 'DialogControlGet', 'DialogBox', 'Dialog', 'Delay', 'Decimals', 'DebugTrace', + 'DebugData', 'DDETimeout', 'DDETerminate', 'DDERequest', 'DDEPoke', 'DDEInitiate', 'DDEExecute', 'DateTime', 'CurrFilepath', + 'CurrentPath', 'CurrentFile', 'CreateObject', 'Cosh', 'Cos', 'ClipPut', 'ClipHasFormat', 'ClipGetEx', 'ClipGet', 'ClipAppend', + 'ChrUnicodeToString', 'ChrUnicodeToHex', 'ChrStringToUnicode', 'ChrSetCodepage', 'ChrHexToUnicode', 'ChrGetCodepage', + 'Char2Num', 'Ceiling', 'ButtonNames', 'BoxUpdates', 'BoxTitle', 'BoxTextFont', 'BoxTextColor', 'BoxText', 'BoxShut', 'BoxPen', + 'BoxOpen', 'BoxNew', 'BoxMapmode', 'BoxesUp', 'BoxDrawText', 'BoxDrawRect', 'BoxDrawLine', 'BoxDrawCircle', 'BoxDestroy', + 'BoxDataTag', 'BoxDataClear', 'BoxColor', 'BoxCaption', 'BoxButtonWait', 'BoxButtonStat', 'BoxButtonKill', 'BoxButtonDraw', + 'BoxBitMap', 'BinaryXor', 'BinaryXlate', 'BinaryWriteEx', 'BinaryWrite', 'BinaryTagRepl', 'BinaryTagLen', 'BinaryTagInit', + 'BinaryTagIndex', 'BinaryTagFind', 'BinaryTagExtr', 'BinaryStrCnt', 'BinarySort', 'BinaryReplace', 'BinaryReadEx', + 'BinaryRead', 'BinaryPokeStrW', 'BinaryPokeStr', 'BinaryPokeHex', 'BinaryPokeFlt', 'BinaryPoke4', 'BinaryPoke2', 'BinaryPoke', + 'BinaryPeekStrW', 'BinaryPeekStr', 'BinaryPeekHex', 'BinaryPeekFlt', 'BinaryPeek4', 'BinaryPeek2', 'BinaryPeek', 'BinaryOr', + 'BinaryOleType', 'BinaryIndexNc', 'BinaryIndexEx', 'BinaryIndexBin', 'BinaryIndex', 'BinaryIncrFlt', 'BinaryIncr4', + 'BinaryIncr2', 'BinaryIncr', 'BinaryHashRec', 'BinaryFree', 'BinaryEodSet', 'BinaryEodGet', 'BinaryCopy', 'BinaryConvert', + 'BinaryCompare', 'BinaryClipPut', 'BinaryClipGet', 'BinaryChecksum', 'BinaryBufInfo', 'BinaryAnd', 'BinaryAllocArray', + 'BinaryAlloc', 'Beep', 'Average', 'Atan', 'AskYesNo', 'AskTextbox', 'AskPassword', 'AskLine', 'AskItemlist', 'AskFont', + 'AskFiletext', 'AskFilename', 'AskDirectory', 'AskColor', 'Asin', 'ArrInitialize', 'ArrInfo', 'ArrDimension', + 'Arrayize', 'ArrayFilePutCSV', 'ArrayFilePut', 'ArrayFileGetCSV', 'ArrayFileGet', 'AppWaitClose', 'AppExist', 'AddExtender', + 'Acos', 'Abs', 'About' + ), + 4 => array( + 'zZipFiles', 'zVersionInfo', 'zVersion', 'zUnZipFiles', 'zSetPortBit', 'zRPortShift', 'zPortOut', 'zPortIn', 'zNotPortBit', + 'zLPortShift', 'zGetPortBit', 'zClrPortBit', 'xVerifyCCard', 'xSendMessage', 'xMessageBox', 'xMemCompact', 'xHex', 'xGetElapsed', + 'xGetChildHwnd', 'xExtenderInfo', 'xEnumStreams', 'xEjectMedia', 'xDriveReady', 'xDiskLabelGet', 'xCursorSet', 'xBaseConvert', + 'wxPing', 'wxParmSet', 'wxParmGet', 'wxMsgSetHdr', 'wxMsgGetHdr', 'wxMsgGetBody', 'wxHost2Addr', 'wxGetLastErr', 'wxGetInfo', + 'wxGetErrDesc', 'wxAddr2Host', 'wtsWaitSystemEvent', 'wtsVersion', 'wtsTerminateProcess', 'wtsShutdownSystem', 'wtsSendMessage', + 'wtsQuerySessionInfo', 'wtsProcIdToSessId', 'wtsLogoffSession', 'wtsLastErrMsg', 'wtsIsTSEnabled', 'wtsIsCitrixEnabled', + 'wtsGetActiveConsoleSessId', 'wtsEnumSessions', 'wtsEnumProcesses', 'wtsDisconnectSession', 'wnWrkGroups', 'wnVersion', 'wntWtsUserSet', + 'wntWtsUserGet', 'wntVersion', 'wntUserSidChk', 'wntUserSetDat', 'wntUserRename', 'wntUserProps', 'wntUserList', 'wntUserInfo', + 'wntUserGetDat', 'wntUserFiles', 'wntUserExist', 'wntUserDel', 'wntUserAddDat', 'wntUserAdd', 'wntSvcStatus', 'wntSvcStart', + 'wntSvcList', 'wntSvcDelete', 'wntSvcCreate', 'wntSvcControl', 'wntSvcCfgSet', 'wntSvcCfgGet', 'wntShutdown', 'wntShareUsers', + 'wntShareSet', 'wntShareList', 'wntShareInfo', 'wntShareDel', 'wntShareAdd', 'wntServiceInf', 'wntServiceAt', 'wntServerType', + 'wntServerList', 'wntServerInfo', 'wntSecurityGet', 'wntRunAsUser', 'wntResources2', 'wntResources', 'wntRemoteTime', 'wntRasUserSet', + 'wntRasUserGet', 'wntProfileInfo', 'wntProfileDel', 'wntPrivUsers', 'wntPrivList', 'wntPrivGet', 'wntPrivDel', 'wntPrivAdd', + 'wntOwnerSet', 'wntOwnerGet', 'wntMemberSet', 'wntMemberLst2', 'wntMemberList', 'wntMemberGrps', 'wntMemberGet', 'wntMemberDel', + 'wntLsaPolSet', 'wntLsaPolGet', 'wntListGroups', 'wntLastErrMsg', 'wntGroupRen', 'wntGroupInfo', 'wntGroupEdit', 'wntGroupDel', + 'wntGroupAdd', 'wntGetUser', 'wntGetDrive', 'wntGetDc', 'wntGetCon', 'wntFileUsers', 'wntFilesOpen', 'wntFileClose', 'wntEventWrite', + 'wntEventLog', 'wntDomainSync', 'wntDirDialog', 'wntDfsList', 'wntDfsGetInfo', 'wntCurrUsers', 'wntChgPswd', 'wntCancelCon', + 'wntAuditMod', 'wntAuditList', 'wntAuditGet', 'wntAuditDel', 'wntAuditAdd2', 'wntAuditAdd', 'wntAddPrinter', 'wntAddDrive', + 'wntAcctPolSet', 'wntAcctPolGet', 'wntAcctList', 'wntAcctInfo', 'wntAccessMod', 'wntAccessList', 'wntAccessGet', 'wntAccessDel', + 'wntaccessadd2', 'wntAccessAdd', 'wnShares', 'wnSharePath', 'wnShareName', 'wnShareCnt', 'wnServers', 'wnRestore', 'wnNetNames', + 'wnGetUser', 'wnGetCon', 'wnGetCaps', 'wnDlgShare', 'wnDlgNoShare', 'wnDlgDiscon', 'wnDlgCon4', 'wnDlgCon3', 'wnDlgCon2', 'wnDlgCon', + 'wnDlgBrowse', 'wnDialog', 'wnCmptrInfo', 'wnCancelCon', 'wnAddCon', 'WaitSRQ', 'w9xVersion', 'w9xUserSetDat', 'w9xUserRename', + 'w9xUserprops', 'w9xUserList', 'w9xUserinfo', 'w9xUserGetDat', 'w9xUserExist', 'w9xUserDel', 'w9xUserAddDat', 'w9xUserAdd', 'w9xShareSet', + 'w9xShareInfo', 'w9xShareDel', 'w9xShareAdd', 'w9xServiceAt', 'w9xServerList', 'w9xRemoteTime', 'w9xOwnerGet', 'w9xMemberSet', + 'w9xMemberList', 'w9xMemberGrps', 'w9xMemberGet', 'w9xMemberDel', 'w9xListGroups', 'w9xGroupInfo', 'w9xGroupDel', 'w9xGroupAdd', + 'w9xGetDC', 'w9xFileUsers', 'w9xAccessList', 'w9xAccessGet', 'w9xAccessDel', 'w9xAccessAdd', 'w95Version', 'w95ShareUsers', + 'w95ShareSet', 'w95ShareList', 'w95ShareInfo', 'w95ShareDel', 'w95ShareAdd', 'w95ServiceInf', 'w95ServiceAt', 'w95ServerType', + 'w95ServerInfo', 'w95Resources', 'w95GetUser', 'w95GetDrive', 'w95GetCon', 'w95FileUsers', 'w95FileClose', 'w95DirDialog', + 'w95CancelCon', 'w95AddPrinter', 'w95AddDrive', 'w95AccessDel', 'w95AccessAdd', 'w3Version', 'w3PrtBrowse', 'w3NetGetUser', + 'w3NetDialog', 'w3GetCon', 'w3GetCaps', 'w3DirBrowse', 'w3CancelCon', 'w3AddCon', 'urlGetScheme', 'urlEncode', 'urlDecode', + 'tVersion', 'tSetPriority', 'TriggerList', 'Trigger', 'tRemoteConn', 'tOpenProc', 'tListProc', 'tListMod', 'tKillProc', 'tGetProcInfo', + 'tGetPriority', 'tGetModInfo', 'tGetLastError', 'tGetData', 'TestSys', 'TestSRQ', 'tCountProc', 'tCompatible', 'tCloseProc', + 'tBrowseCntrs', 'sSendString', 'sSendNum', 'sSendLine', 'sSendBinary', 'sRecvNum', 'sRecvLine', 'sRecvBinary', 'SrchVersion', + 'SrchNext', 'SrchInit', 'SrchFree', 'sOpen', 'sOK2Send', 'sOK2Recv', 'smtpSendText', 'smtpSendFile', 'sListen', 'SetRWLS', + 'SendSetup', 'SendLLO', 'SendList', 'SendIFC', 'SendDataBytes', 'SendCmds', 'Send', 'sConnect', 'sClose', 'SByteOrder32', + 'sByteOrder16', 'sAccept', 'rRegVersion', 'rRegSearch', 'ResetSys', 'ReceiveSetup', 'Receive', 'ReadStsByte', 'RcvRespMsg', + 'RasVersion', 'RasTypeSize', 'RasRename', 'RasNumCons', 'RasNameValid', 'RasListActCon', 'RasItemize', 'RasHangUp', 'RasGetLastErr', + 'RasGetConStat', 'RasEntrySet', 'RasEntryInfo', 'RasEntryExist', 'RasEntryDel', 'RasEntryAdd', 'RasDialInfo', 'RasDial', + 'RasCopy', 'RasConStatus', 'qVersionInfo', 'qTransact', 'qTables', 'qSpecial', 'qSetConnOpt', 'qNumRsltCol', 'qNativeSql', 'qLastCode', + 'qGetData', 'qFreeStmt', 'qFreeEnv', 'qFreeConnect', 'qFetch', 'qExecDirect', 'qError', 'qDriverList', 'qDriverCon', 'qDisconnect', + 'qDataSources', 'qConnect', 'qConfigError', 'qConfigData', 'qColumns', 'qBindCol', 'qAllocStmt', 'qAllocEnv', 'qAllocConnect', + 'pWaitFor', 'pVersionInfo', 'pTimeout', 'pSetPublish', 'pSetPrtInfo', 'pSetPrtAttrib', 'pSetDefPrtEx', 'pSetDefPrt', 'pSendFile', + 'pRecvFile', 'pPutString', 'pPutLine', 'pPutChar', 'pPutByte', 'pPutBinary', 'PPollUnconfig', 'PPollConfig', 'PPoll', 'pPeekChar', + 'pPeekByte', 'pPaperSizes', 'pPaperBins', 'pModemSReg', 'pModemParams', 'pModemInit', 'pModemHangUp', 'pModemDial', 'pModemControl', + 'pModemConnect', 'pModemCommand', 'pModemAnsRing', 'pModemAnsCall', 'pMediaTypes', 'pGetString', 'pGetPublish', 'pGetPrtList', + 'pGetPrtInfo', 'pGetPrtAttrib', 'pGetLine', 'pGetLastError', 'pGetErrorMsg', 'pGetErrorCode', 'pGetDefPrtInf', 'pGetChar', + 'pGetByte', 'pGetBinary', 'pDelPrtConn', 'pDelPrinter', 'pComOpen', 'pComModify', 'pComInfo', 'pComControl', 'pComClose', + 'pCheckSum', 'pCheckBinary', 'pCaptureOn', 'pCaptureOff', 'pCaptureLog', 'PassControl', 'pAddPrtConn', 'pAddPrinter', 'p3RecvText', + 'p3RecvFile', 'p3Peek', 'p3Open', 'p3GetReply', 'p3Delete', 'p3Count', 'p3Close', 'nwWhoAmI', 'nwVfyPassword', 'nwVersion', + 'nwSrvShutdown', 'nwSrvNLMMgr', 'nwSrvGenGUID', 'nwSrvExecNCF', 'nwSetVolLimit', 'nwSetSrvParam', 'nwSetSrvInfo', 'nwSetPrimServ', + 'nwSetPassword', 'nwSetOptions', 'nwSetFileInfo', 'nwSetDirLimit', 'nwSetDirInfo', 'nwSetContext', 'nwSetBcastMode', 'nwServerList', + 'nwSendBcastMsg', 'nwSearchObjects', 'nwSearchFilter', 'nwRenameObject', 'nwRemoveObject', 'nwReceiveBcastMsg', 'nwNameConvert', + 'nwMutateObject', 'nwMoveObject', 'nwModifyObject', 'nwMapDelete', 'nwMap', 'nwLogout', 'nwLogin', 'nwListUserGroups', + 'nwListObjects', 'nwListGroupMembers', 'nwLastErrMsg', 'nwIsUserInGroup', 'nwGetVolLimit', 'nwGetSrvStats', 'nwGetSrvParam', + 'nwGetSrvInfo', 'nwGetSrvCfg', 'nwGetOptions', 'nwGetObjValue', 'nwGetObjInfo', 'nwGetNLMInfo', 'nwGetMapped', 'nwGetFileInfo', + 'nwGetDirLimit', 'nwGetDirInfo', 'nwGetContext', 'nwGetConnInfo', 'nwGetCapture', 'nwGetBcastMode', 'nwGetAttrInfo', + 'nwDriveStatus', 'nwDrivePath', 'nwDetachFromServer', 'nwDelUserFromGroup', 'nwDelConnNum', 'nwCompareObject', 'nwClientInfo', + 'nwChgPassword', 'nwAttachToServer', 'nwAddUserToGroup', 'nwAddObject', 'netVersion', 'netResources', 'netGetUser', 'netGetCon', + 'netDirDialog', 'netCancelCon', 'netAddPrinter', 'netAddDrive', 'n4Version', 'n4UserGroups', 'n4UserGroupEx', 'n4SetPrimServ', + 'n4SetOptions', 'n4SetContextG', 'n4SetContext', 'n4ServerList', 'n4ServerInfo', 'n4ObjSearch', 'n4ObjRename', 'n4ObjOptions', + 'n4ObjMove', 'n4ObjGetVal', 'n4ObjectProps', 'n4ObjectList', 'n4ObjectInfo', 'n4ObjDelete', 'n4NameConvert', 'n4MsgsEndAll', + 'n4MsgsEnd', 'n4MemberSet', 'n4MemberGet', 'n4MemberDel', 'n4MapRoot', 'n4MapDir', 'n4MapDelete', 'n4Map', 'n4LogoutTree', + 'n4Logout', 'n4Login', 'n4GetUserName', 'n4GetUserId', 'n4GetUser', 'n4GetNetAddr', 'n4GetMapped', 'n4GetContext', + 'n4GetConnNum', 'n4FileUsers', 'n4FileTimeGet', 'n4FileAttrSet', 'n4FileAttrGet', 'n4DriveStatus', 'n4DrivePath', 'n4DirTimeGet', + 'n4DirAttrSet', 'n4DirAttrGet', 'n4Detach', 'n4ChgPassword', 'n4CapturePrt', 'n4CaptureGet', 'n4CaptureEnd', 'n4Attach', + 'n3Version', 'n3UserGroups', 'n3ServerList', 'n3ServerInfo', 'n3MsgsEndAll', 'n3MsgsEnd', 'n3MemberSet', 'n3MemberGet', + 'n3MemberDel', 'n3Maproot', 'n3Mapdir', 'n3Mapdelete', 'n3Map', 'n3Logout', 'n3GetUserId', 'n3GetUser', 'n3GetNetAddr', + 'n3GetMapped', 'n3GetConnNum', 'n3FileTimeGet', 'n3FileAttrSet', 'n3FileAttrGet', 'n3DriveStatus', 'n3DrivePath', + 'n3DirTimeGet', 'n3DirAttrSet', 'n3DirAttrGet', 'n3Detach', 'n3ChgPassword', 'n3CapturePrt', 'n3CaptureGet', + 'n3CaptureEnd', 'n3Attach', 'mVersion', 'mSyncMail', 'mSendMailEx', 'mSendMail', 'mrecvmail', 'mReadNextMsg', 'mLogOn', + 'mLogOff', 'mFindNext', 'mError', 'mCompatible', 'kVerInfo', 'kStatusInfo', 'kSendText', 'kSendFile', 'kManageImap4', + 'kInit', 'kGetMail', 'kExtra', 'kDest', 'kDeletePop3', 'iWriteDataBuf', 'iWriteData', 'iVersion', 'IUrlOpen', 'iUrlEncode', + 'iUrlDecode', 'iReadDataBuf', 'iReadData', 'ipVersion', 'ipPing', 'iPing', 'ipHost2Addr', 'ipGetLastErr', 'ipGetAddress', + 'iParseURL', 'ipAddr2Host', 'iOptionSet', 'iOptionGet', 'ImgWave', 'ImgVersion', 'ImgUnsharpMask', 'ImgThreshold', 'ImgSwirl', + 'ImgSpread', 'ImgSolarize', 'ImgShear', 'ImgSharpen', 'ImgShade', 'ImgScale', 'ImgSample', 'ImgRotate', 'ImgResize', + 'ImgReduceNoise', 'ImgRaise', 'ImgOilPaint', 'ImgNormalize', 'ImgNegate', 'ImgMotionBlur', 'ImgModulate', 'ImgMinify', + 'ImgMedianFilter', 'ImgMagnify', 'ImgLevel', 'ImgIsValid', 'ImgIsPalette', 'ImgIsMono', 'ImgIsGray', 'ImgInfo', 'ImgImplode', + 'ImgGetImageType', 'ImgGetColorCount', 'ImgGaussianBlur', 'ImgGamma', 'ImgFrame', 'ImgFlop', 'ImgFlip', 'ImgEqualize', + 'ImgEnhance', 'ImgEmboss', 'ImgCrop', 'ImgConvert', 'ImgContrast', 'ImgCompare', 'ImgColorize', 'ImgChop', 'ImgCharcoal', + 'ImgBorder', 'ImgBlur', 'ImgAddNoise', 'iLocFindNext', 'iLocFindInit', 'iHttpOpen', 'iHttpInit', 'iHttpHeaders', 'iHttpAccept', + 'iHostConnect', 'iHost2Addr', 'iGetResponse', 'iGetLastError', 'iGetIEVer', 'iGetConStatEx', 'iGetConState', 'iFtpRename', + 'iFtpPut', 'iFtpOpen', 'iFtpGet', 'iFtpFindNext', 'iFtpFindInit', 'iFtpDirRemove', 'iFtpDirMake', 'iFtpDirGet', 'iFtpDirChange', + 'iFtpDialog', 'iFtpDelete', 'iFtpCmd', 'iErrorDialog', 'iDialItemize', 'iDialHangUp', 'iDial', 'iCookieSet', 'iCookieGet', + 'iContentURL', 'iContentFile', 'iContentData', 'iClose', 'ibWrtf', 'ibWrt', 'ibWait', 'ibVersion', 'ibUnlock', 'ibTrg', + 'ibTmo', 'ibStop', 'ibStatus', 'ibSta', 'ibSre', 'ibSic', 'ibSad', 'ibRsv', 'ibRsp', 'ibRsc', 'ibRpp', 'ibRdf', 'ibRd', + 'ibPpc', 'ibPoke', 'ibPct', 'ibPad', 'ibOnl', 'ibMakeAddr', 'ibLock', 'ibLoc', 'ibLn', 'ibLines', 'ibIst', 'ibInit', + 'ibGts', 'ibGetSad', 'ibGetPad', 'ibFind', 'ibEvent', 'ibErr', 'ibEot', 'ibEos', 'iBegin', 'ibDma', 'ibDev', 'ibConfig', + 'ibCntl', 'ibCnt', 'ibCmda', 'ibCmd', 'ibClr', 'ibCac', 'ibBna', 'ibAsk', 'iAddr2Host', 'huge_Thousands', 'huge_Subtract', + 'huge_SetOptions', 'huge_Multiply', 'huge_GetLastError', 'huge_ExtenderInfo', 'huge_Divide', 'huge_Decimal', 'huge_Add', + 'httpStripHTML', 'httpRecvTextF', 'httpRecvText', 'httpRecvQuery', 'httpRecvQryF', 'httpRecvFile', 'httpGetServer', + 'httpGetQuery', 'httpGetPath', 'httpGetFile', 'httpGetDir', 'httpGetAnchor', 'httpFullPath', 'httpFirewall', 'httpAuth', + 'ftpRename', 'ftpQuote', 'ftpPut', 'ftpOpen', 'ftpList', 'ftpGet', 'ftpFirewall', 'ftpDelete', 'ftpClose', 'ftpChDir', + 'FindRQS', 'FindLstn', 'EnvSetVar', 'EnvPathDel', 'EnvPathChk', 'EnvPathAdd', 'EnvListVars', 'EnvGetVar', 'EnvGetInfo', + 'EnableRemote', 'EnableLocal', 'ehllapiWait', 'ehllapiVersion', 'ehllapiUninit', 'ehllapiStopKeyIntercept', 'ehllapiStopHostNotify', + 'ehllapiStopCloseIntercept', 'ehllapiStartKeyIntercept', 'ehllapiStartHostNotify', 'ehllapiStartCloseIntercept', + 'ehllapiSetWindowStatus', 'ehllapiSetSessionParams', 'ehllapiSetPSWindowName', 'ehllapiSetCursorLoc', 'ehllapiSendKey', + 'ehllapiSendFile', 'ehllapiSearchPS', 'ehllapiSearchField', 'ehllapiRunProfile', 'ehllapiResetSystem', 'ehllapiReserve', + 'ehllapiRelease', 'ehllapiReceiveFile', 'ehllapiQuerySystem', 'ehllapiQueryPSStatus', 'ehllapiQueryHostNotify', + 'ehllapiQueryFieldAttr', 'ehllapiQueryCursorLoc', 'ehllapiQueryCloseIntercept', 'ehllapiPostInterceptStatus', + 'ehllapiPause', 'ehllapiLastErrMsg', 'ehllapiInit', 'ehllapiGetWindowStatus', 'ehllapiGetPSHWND', 'ehllapiGetKey', + 'ehllapiFindFieldPos', 'ehllapiFindFieldLen', 'ehllapiDisconnectPS', 'ehllapiCvtRCToPos', 'ehllapiCvtPosToRC', + 'ehllapiCopyTextToPS', 'ehllapiCopyTextToField', 'ehllapiCopyTextFromPS', 'ehllapiCopyTextFromField', 'ehllapiCopyOIA', + 'ehllapiConnectPS', 'dunItemize', 'dunDisconnect', 'dunConnectEx', 'dunConnect', 'dsTestParam', 'dsSIDtoHexStr', 'dsSetSecProp', + 'dsSetProperty', 'dsSetPassword', 'dsSetObj', 'dsSetCredentX', 'dsSetCredent', 'dsRemFromGrp', 'dsRelSecObj', 'dsMoveObj', + 'dsIsObject', 'dsIsMemberGrp', 'dsIsContainer', 'dsGetUsersGrps', 'dsGetSecProp', 'dsGetPropName', 'dsGetProperty', + 'dsGetPrntPath', 'dsGetPrimGrp', 'dsGetMemGrp', 'dsGetInfo', 'dsGetClass', 'dsGetChldPath', 'dsFindPath', 'dsDeleteObj', + 'dsCreatSecObj', 'dsCreateObj', 'dsCopySecObj', 'dsAddToGrp', 'dsAclRemAce', 'dsAclOrderAce', 'dsAclGetAces', 'dsAclAddAce', + 'DevClearList', 'DevClear', 'dbTest', 'dbSwapColumns', 'dbSort', 'dbSetRecordField', 'dbSetOptions', 'dbSetErrorReporting', + 'dbSetEntireRecord', 'dbSetDelimiter', 'dbSave', 'dbOpen', 'dbNameColumn', 'dbMakeNewItem', 'dbInsertColumn', 'dbGetVersion', + 'dbGetSaveStatus', 'dbGetRecordField', 'dbGetRecordCount', 'dbGetNextItem', 'dbGetLastError', 'dbGetEntireRecord', + 'dbGetColumnType', 'dbGetColumnNumber', 'dbGetColumnName', 'dbGetColumnCount', 'dbFindRecord', 'dbExist', 'dbEasterEgg', + 'dbDeleteRecord', 'dbDeleteColumn', 'dbDebug', 'dbCookDatabases', 'dbClose', 'dbCloneRecord', 'dbBindCol', 'cWndState', + 'cWndinfo', 'cWndGetWndSpecName', 'cWndGetWndSpec', 'cWndexist', 'cWndByWndSpecName', 'cWndByWndSpec', 'cWndbyseq', + 'cWndbyname', 'cWndbyid', 'cWndbyclass', 'cWinIDConvert', 'cVersionInfo', 'cVendorId', 'cSetWndText', 'cSetUpDownPos', + 'cSetTvItem', 'cSetTrackPos', 'cSetTabItem', 'cSetLvItem', 'cSetLbItemEx', 'cSetLbItem', 'cSetIpAddr', 'cSetFocus', + 'cSetEditText', 'cSetDtpDate', 'cSetCbItem', 'cSetCalDate', 'cSendMessage', 'cRadioButton', 'cPostMessage', 'cPostButton', + 'cMemStat', 'cGetWndCursor', 'cGetUpDownPos', 'cGetUpDownMin', 'cGetUpDownMax', 'cGetTVItem', 'cGetTrackPos', 'cGetTrackMin', + 'cGetTrackMax', 'cGetTbText', 'cGetSbText', 'cGetLvText', 'cGetLvSelText', 'cGetLvFocText', 'cGetLvDdtText', 'cGetLvColText', + 'cGetLbText', 'cGetLbSelText', 'cGetLbCount', 'cGetIpAddr', 'cGetInfo', 'cGetHrText', 'cGetFocus', 'cGetEditText', 'cGetDtpDate', + 'cGetControlImageCRC', 'cGetCBText', 'cGetCbCount', 'cGetCalDate', 'cFindByName', 'cFindByClass', 'cEnablestate', 'cDblClickItem', + 'cCpuSupt', 'cCpuSpeed', 'cCpuIdExt', 'cCpuId', 'cCpuFeat', 'cCpuBenchmark', 'cCloneCheck', 'cClickToolbar', 'cClickButton', + 'cClearTvItem', 'cClearLvItem', 'cClearLbAll', 'cCheckbox', 'aVersion', 'aStatusbar', 'aShellFolder', 'aMsgTimeout', 'AllSPoll', + 'aGetLastError', 'aFileRename', 'aFileMove', 'aFileDelete', 'aFileCopy' + ), + 5 => array( + 'wWordRight', 'wWordLeft', 'wWinTile', 'wWinRestore', 'wWinNext', 'wWinMinimize', 'wWinMaximize', 'wWinCloseAll', 'wWinClose', + 'wWinCascade', 'wWinArricons', 'wViewOutput', 'wViewOptions', 'wViewHtml', 'wUpperCase', 'wUpline', 'wUndo', 'wTopOfFile', 'wToggleIns', + 'wTab', 'wStatusMsg', 'wStartSel', 'wSpellcheck', 'wSetProject', 'wSetPrefs', 'wSetColblk', 'wSetBookmark', 'wSelWordRight', + 'wSelWordLeft', 'wSelUp', 'wSelTop', 'wSelRight', 'wSelPgUp', 'wSelPgDn', 'wSelLeft', 'wSelInfo', 'wSelHome', 'wSelEnd', 'wSelectAll', + 'wSelDown', 'wSelBottom', 'wRunRebuild', 'wRunMake', 'wRunExecute', 'wRunDebug', 'wRunConfig', 'wRunCompile', 'wRunCommand', 'wRight', + 'wRepeat', 'wRedo', 'wRecord', 'wProperties', 'wPrintDirect', 'wPrinSetup', 'wPrevError', 'wPaste', 'wPageUp', 'wPageDown', 'wNextError', + 'wNewLine', 'wLowerCase', 'wLineCount', 'wLeft', 'wInvertCase', 'wInsString', 'wInsLine', 'wHome', 'wHelpKeyword', 'wHelpKeybrd', + 'wHelpIndex', 'wHelpHelp', 'wHelpCmds', 'wHelpAbout', 'wGotoLine', 'wGotoCol', 'wGetWrap', 'wGetWord', 'wGetUndo', 'wGetSelstate', + 'wGetRedo', 'wGetOutput', 'wGetModified', 'wGetLineNo', 'wGetIns', 'wGetFilename', 'wGetColNo', 'wGetChar', 'wFtpOpen', 'wFindNext', + 'wFindInFiles', 'wFind', 'wFileSaveAs', 'wFileSave', 'wFileRevert', 'wFilePrint', 'wFilePgSetup', 'wFileOpen', 'wFileNew', 'wFileMerge', + 'wFileList', 'wFileExit', 'wEndSel', 'wEndOfFile', 'wEnd', 'wEdWrap', 'wEdWordRight', 'wEdWordLeft', 'wEdUpLine', 'wEdUndo', 'wEdTopOfFile', + 'wEdToggleIns', 'wEdTab', 'wEdStartSel', 'wEdSetColBlk', 'wEdSelectAll', 'wEdRight', 'wEdRedo', 'wEdPaste', 'wEdPageUp', 'wEdPageDown', + 'wEdNewLine', 'wEdLeft', 'wEdInsString', 'wEdHome', 'wEdGoToLine', 'wEdGoToCol', 'wEdGetWord', 'wEdEndSel', 'wEdEndOfFile', 'wEdEnd', + 'wEdDownLine', 'wEdDelete', 'wEdCutLine', 'wEdCut', 'wEdCopyLine', 'wEdCopy', 'wEdClearSel', 'wEdBackTab', 'wEdBackspace', 'wDownLine', + 'wDelete', 'wDelButton', 'wCutMarked', 'wCutLine', 'wCutAppend', 'wCut', 'wCopyMarked', 'wCopyLine', 'wCopyAppend', 'wCopy', 'wCompile', + 'wClearSel', 'wChange', 'wCallMacro', 'wBackTab', 'wBackspace', 'wAutoIndent', 'wAddButton', 'edWindowTile', 'edWindowRestore', + 'edWindowNext', 'edWindowMinimize', 'edWindowMaximize', 'edWindowCloseall', 'edWindowClose', 'edWindowCascade', 'edWindowArrangeIcons', + 'edStatusMsg', 'edSearchViewOutput', 'edSearchRepeat', 'edSearchPrevError', 'edSearchNextError', 'edSearchFind', 'edSearchChange', + 'edRunRebuild', 'edRunMake', 'edRunExecute', 'edRunDebug', 'edRunConfigure', 'edRunCompile', 'edRunCommand', 'edRecord', 'edHelpProcedures', + 'edHelpKeyword', 'edHelpKeyboard', 'edHelpIndex', 'edHelpHelp', 'edHelpCommands', 'edHelpAbout', 'edGetWordWrapState', 'edGetWindowName', + 'edGetUndoState', 'edGetSelectionState', 'edGetRedoState', 'edGetModifiedStatus', 'edGetLineNumber', 'edGetInsertState', 'edGetColumnNumber', + 'edGetChar', 'edFileSetPreferences', 'edFileSaveAs', 'edFileSave', 'edFilePrinterSetup', 'edFilePrint', 'edFilePageSetup', 'edFileOpen', + 'edFileNew', 'edFileMerge', 'edFileList', 'edFileExit', 'edEditWrap', 'edEditWordRight', 'edEditWordLeft', 'edEditUpLine', 'edEditUndo', + 'edEditToggleIns', 'edEditTab', 'edEditStartSelection', 'edEditSetColumnBlock', 'edEditSetBookmark', 'edEditSelectAll', 'edEditRight', + 'edEditRedo', 'edEditPaste', 'edEditPageUp', 'edEditPageDown', 'edEditLeft', 'edEditInsertString', 'edEditGoToLine', 'edEditGoToColumn', + 'edEditGoToBookmark', 'edEditGetCurrentWord', 'edEditEndSelection', 'edEditEndOfLine', 'edEditEndOfFile', 'edEditDownline', 'edEditDelete', + 'edEditCutline', 'edEditCut', 'edEditCopyline', 'edEditCopy', 'edEditClearSelection', 'edEditBeginningOfLine', 'edEditBeginningOfFile', + 'edEditBackTab', 'edEditBackspace', 'edDeleteButton', 'edAddButton' + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '{', '}', '!', '+', '-', '~', '$', '^', '?', '@', '%', '#', '&', '*', '|', '/', '<', '>' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #800080;', + 2 => 'color: #0080FF; font-weight: bold;', + 3 => 'color: #0000FF;', + 4 => 'color: #FF00FF;', + 5 => 'color: #008000;' + ), + 'COMMENTS' => array( + 1 => 'color: #008000; font-style: italic;', + 2 => 'color: #FF1010; font-weight: bold;', + 'MULTI' => '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( + 0 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + 0 => 'color: #0000ff;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTER' => '', + 'REGEXPS' => array( + 0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*" + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/xml.php b/plugins/geshi/xml.php old mode 100644 new mode 100755 index 3c38f9c..3da2e41 --- a/plugins/geshi/xml.php +++ b/plugins/geshi/xml.php @@ -42,105 +42,103 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'XML', - 'COMMENT_SINGLE' => array(), - '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( - 'MULTI' => '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;' - ), - 'SCRIPT' => array( - 0 => 'color: #00bbdd;', - 1 => 'color: #ddbb00;', - 2 => 'color: #339933;', - 3 => 'color: #009900;' - ), - 'REGEXPS' => array( - 0 => 'color: #000066;', - 1 => 'font-weight: bold; color: black;', - 2 => 'font-weight: bold; color: black;', - ) - ), - 'URLS' => array( - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - 0 => array( - GESHI_SEARCH => '([a-z_\-:]+)(=)', - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => 'i', - GESHI_BEFORE => '', - GESHI_AFTER => '\\2' - ), - 1 => array( - GESHI_SEARCH => '(<[/?|(\?xml)]?[a-z0-9_\-:]*(\??>)?)', - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => 'i', - GESHI_BEFORE => '', - GESHI_AFTER => '' - ), - 2 => array( - GESHI_SEARCH => '(([/|\?])?>)', - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => 'i', - GESHI_BEFORE => '', - GESHI_AFTER => '' - ) - ), - 'STRICT_MODE_APPLIES' => GESHI_ALWAYS, - 'SCRIPT_DELIMITERS' => array( - 0 => array( - ' '>' - ), - 1 => array( - '&' => ';' - ), - 2 => array( - ' ']]>' - ), - 3 => array( - '<' => '>' - ) - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - 0 => false, - 1 => false, - 2 => false, - 3 => true +$language_data = array( + 'LANG_NAME' => 'XML', + 'COMMENT_SINGLE' => array(), + '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( + 'MULTI' => '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;' + ), + 'SCRIPT' => array( + 0 => 'color: #00bbdd;', + 1 => 'color: #ddbb00;', + 2 => 'color: #339933;', + 3 => 'color: #009900;' + ), + 'REGEXPS' => array( + 0 => 'color: #000066;', + 1 => 'font-weight: bold; color: black;', + 2 => 'font-weight: bold; color: black;', + ) + ), + 'URLS' => array( + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 0 => array( + GESHI_SEARCH => '([a-z_\-:]+)(=)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => 'i', + GESHI_BEFORE => '', + GESHI_AFTER => '\\2' + ), + 1 => array( + GESHI_SEARCH => '(<[/?|(\?xml)]?[a-z0-9_\-:]*(\??>)?)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => 'i', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 2 => array( + GESHI_SEARCH => '(([/|\?])?>)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => 'i', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ) + ), + 'STRICT_MODE_APPLIES' => GESHI_ALWAYS, + 'SCRIPT_DELIMITERS' => array( + 0 => array( + ' '>' + ), + 1 => array( + '&' => ';' + ), + 2 => array( + ' ']]>' + ), + 3 => array( + '<' => '>' + ) + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => false, + 1 => false, + 2 => false, + 3 => true ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/plugins/geshi/xpp.php b/plugins/geshi/xpp.php old mode 100644 new mode 100755 index 3bb06b9..d13311c --- a/plugins/geshi/xpp.php +++ b/plugins/geshi/xpp.php @@ -38,396 +38,394 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'X++', - 'COMMENT_SINGLE' => array(1 => '//'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( // Primitive types - 'void', - 'str', - 'real', - 'int64', - 'int', - 'date', - 'container', - 'boolean', - 'anytype' - ), - 2 => array( // Keywords - 'window', - 'while', - 'try', - 'true', - 'throw', - 'switch', - 'super', - 'static', - 'server', - 'right', - 'return', - 'retry', - 'public', - 'protected', - 'private', - 'print', - 'pause', - 'null', - 'new', - 'mod', - 'left', - 'interface', - 'implements', - 'if', - 'for', - 'final', - 'false', - 'extends', - 'else', - 'edit', - 'do', - 'div', - 'display', - 'default', - 'continue', - 'client', - 'class', - 'changeCompany', - 'case', - 'breakpoint', - 'break', - 'at', - 'abstract' - ), - 3 => array( // Functions within the Axapta kernel - 'year', - 'wkofyr', - 'webwebpartstr', - 'webstaticfilestr', - 'websitetempstr', - 'websitedefstr', - 'webreportstr', - 'webpagedefstr', - 'weboutputcontentitemstr', - 'webmenustr', - 'webletitemstr', - 'webformstr', - 'webdisplaycontentitemstr', - 'webactionitemstr', - 'varstr', - 'utilmoyr', - 'uint2str', - 'typeof', - 'typeid', - 'trunc', - 'today', - 'timenow', - 'time2str', - 'term', - 'tanh', - 'tan', - 'tablestr', - 'tablestaticmethodstr', - 'tablepname', - 'tablenum', - 'tablename2id', - 'tablemethodstr', - 'tableid2pname', - 'tableid2name', - 'tablefieldgroupstr', - 'tablecollectionstr', - 'systemdateset', - 'systemdateget', - 'syd', - 'substr', - 'strupr', - 'strscan', - 'strrtrim', - 'strrep', - 'strrem', - 'strprompt', - 'strpoke', - 'strnfind', - 'strlwr', - 'strltrim', - 'strline', - 'strlen', - 'strkeep', - 'strins', - 'strfmt', - 'strfind', - 'strdel', - 'strcolseq', - 'strcmp', - 'stralpha', - 'str2time', - 'str2num', - 'str2int64', - 'str2int', - 'str2guid', - 'str2enum', - 'str2date', - 'staticmethodstr', - 'sln', - 'sleep', - 'sinh', - 'sin', - 'setprefix', - 'sessionid', - 'securitykeystr', - 'securitykeynum', - 'runbuf', - 'runas', - 'round', - 'resourcestr', - 'reportstr', - 'refprintall', - 'rate', - 'querystr', - 'pv', - 'pt', - 'prmisdefault', - 'primoyr', - 'prevyr', - 'prevqtr', - 'prevmth', - 'power', - 'pmt', - 'num2str', - 'num2date', - 'num2char', - 'nextyr', - 'nextqtr', - 'nextmth', - 'newguid', - 'mthofyr', - 'mthname', - 'mkdate', - 'minint', - 'min', - 'methodstr', - 'menustr', - 'menuitemoutputstr', - 'menuitemdisplaystr', - 'menuitemactionstr', - 'maxint', - 'maxdate', - 'max', - 'match', - 'logn', - 'log10', - 'literalstr', - 'licensecodestr', - 'licensecodenum', - 'intvnorm', - 'intvno', - 'intvname', - 'intvmax', - 'int64str', - 'int64str', - 'indexstr', - 'indexnum', - 'indexname2id', - 'indexid2name', - 'idg', - 'identifierstr', - 'helpfilestr', - 'helpdevstr', - 'helpapplstr', - 'guid2str', - 'getprefix', - 'getCurrentUTCTime', - 'fv', - 'funcname', - 'frac', - 'formstr', - 'fieldstr', - 'fieldpname', - 'fieldnum', - 'fieldname2id', - 'fieldid2pname', - 'fieldid2name', - 'extendedTypeStr', - 'extendedTypeNum', - 'exp10', - 'exp', - 'evalbuf', - 'enumstr', - 'enumnum', - 'enumcnt', - 'enum2str', - 'endmth', - 'dimof', - 'dg', - 'decround', - 'ddb', - 'dayofyr', - 'dayofwk', - 'dayofmth', - 'dayname', - 'date2str', - 'date2num', - 'curuserid', - 'curext', - 'cterm', - 'cosh', - 'cos', - 'corrflagset', - 'corrflagget', - 'convertUTCTimeToLocalTime', - 'convertUTCDateToLocalDate', - 'conpoke', - 'conpeek', - 'connull', - 'conlen', - 'conins', - 'confind', - 'configurationkeystr', - 'configurationkeynum', - 'condel', - 'classstr', - 'classnum', - 'classidget', - 'char2num', - 'beep', - 'atan', - 'asin', - 'ascii2ansi', - 'any2str', - 'any2real', - 'any2int64', - 'any2int', - 'any2guid', - 'any2enum', - 'any2date', - 'ansi2ascii', - 'acos', - 'abs' - ), - 4 => array( // X++ SQL stuff - 'where', - 'update_recordset', - 'ttsCommit', - 'ttsBegin', - 'ttsAbort', - 'sum', - 'setting', - 'select', - 'reverse', - 'pessimisticLock', - 'outer', - 'order by', - 'optimisticLock', - 'notExists', - 'noFetch', - 'next', - 'minof', - 'maxof', - 'like', - 'join', - 'insert_recordset', - 'index hint', - 'index', - 'group by', - 'from', - 'forUpdate', - 'forceSelectOrder', - 'forcePlaceholders', - 'forceNestedLoop', - 'forceLiterals', - 'flush', - 'firstOnly', - 'firstFast', - 'exists', - 'desc', - 'delete_from', - 'count', - 'avg', - 'asc' - ) - ), - 'SYMBOLS' => array( // X++ symbols - '!', - '&', - '(', - ')', - '*', - '^', - '|', - '~', - '+', - ',', - '-', - '/', - ':', - '<', - '=', - '>', - '?', - '[', - ']', - '{', - '}' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false, - 2 => false, - 3 => false, - 4 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #0000ff;', - 2 => 'color: #0000ff;', - 3 => 'color: #0000ff;', - 4 => 'color: #0000ff;' - ), - 'COMMENTS' => array( - 1 => 'color: #007f00;', - 'MULTI' => 'color: #007f00; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000000;' - ), - 'BRACKETS' => array( - 0 => 'color: #000000;' - ), - 'STRINGS' => array( - 0 => 'color: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #000000;' - ), - 'METHODS' => array( - 1 => 'color: #000000;', - 2 => 'color: #000000;' - ), - 'SYMBOLS' => array( - 0 => 'color: #00007f;' - ), - 'REGEXPS' => array( - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.', - 2 => '::' - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ) +$language_data = array( + 'LANG_NAME' => 'X++', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( // Primitive types + 'void', + 'str', + 'real', + 'int64', + 'int', + 'date', + 'container', + 'boolean', + 'anytype' + ), + 2 => array( // Keywords + 'window', + 'while', + 'try', + 'true', + 'throw', + 'switch', + 'super', + 'static', + 'server', + 'right', + 'return', + 'retry', + 'public', + 'protected', + 'private', + 'print', + 'pause', + 'null', + 'new', + 'mod', + 'left', + 'interface', + 'implements', + 'if', + 'for', + 'final', + 'false', + 'extends', + 'else', + 'edit', + 'do', + 'div', + 'display', + 'default', + 'continue', + 'client', + 'class', + 'changeCompany', + 'case', + 'breakpoint', + 'break', + 'at', + 'abstract' + ), + 3 => array( // Functions within the Axapta kernel + 'year', + 'wkofyr', + 'webwebpartstr', + 'webstaticfilestr', + 'websitetempstr', + 'websitedefstr', + 'webreportstr', + 'webpagedefstr', + 'weboutputcontentitemstr', + 'webmenustr', + 'webletitemstr', + 'webformstr', + 'webdisplaycontentitemstr', + 'webactionitemstr', + 'varstr', + 'utilmoyr', + 'uint2str', + 'typeof', + 'typeid', + 'trunc', + 'today', + 'timenow', + 'time2str', + 'term', + 'tanh', + 'tan', + 'tablestr', + 'tablestaticmethodstr', + 'tablepname', + 'tablenum', + 'tablename2id', + 'tablemethodstr', + 'tableid2pname', + 'tableid2name', + 'tablefieldgroupstr', + 'tablecollectionstr', + 'systemdateset', + 'systemdateget', + 'syd', + 'substr', + 'strupr', + 'strscan', + 'strrtrim', + 'strrep', + 'strrem', + 'strprompt', + 'strpoke', + 'strnfind', + 'strlwr', + 'strltrim', + 'strline', + 'strlen', + 'strkeep', + 'strins', + 'strfmt', + 'strfind', + 'strdel', + 'strcolseq', + 'strcmp', + 'stralpha', + 'str2time', + 'str2num', + 'str2int64', + 'str2int', + 'str2guid', + 'str2enum', + 'str2date', + 'staticmethodstr', + 'sln', + 'sleep', + 'sinh', + 'sin', + 'setprefix', + 'sessionid', + 'securitykeystr', + 'securitykeynum', + 'runbuf', + 'runas', + 'round', + 'resourcestr', + 'reportstr', + 'refprintall', + 'rate', + 'querystr', + 'pv', + 'pt', + 'prmisdefault', + 'primoyr', + 'prevyr', + 'prevqtr', + 'prevmth', + 'power', + 'pmt', + 'num2str', + 'num2date', + 'num2char', + 'nextyr', + 'nextqtr', + 'nextmth', + 'newguid', + 'mthofyr', + 'mthname', + 'mkdate', + 'minint', + 'min', + 'methodstr', + 'menustr', + 'menuitemoutputstr', + 'menuitemdisplaystr', + 'menuitemactionstr', + 'maxint', + 'maxdate', + 'max', + 'match', + 'logn', + 'log10', + 'literalstr', + 'licensecodestr', + 'licensecodenum', + 'intvnorm', + 'intvno', + 'intvname', + 'intvmax', + 'int64str', + 'int64str', + 'indexstr', + 'indexnum', + 'indexname2id', + 'indexid2name', + 'idg', + 'identifierstr', + 'helpfilestr', + 'helpdevstr', + 'helpapplstr', + 'guid2str', + 'getprefix', + 'getCurrentUTCTime', + 'fv', + 'funcname', + 'frac', + 'formstr', + 'fieldstr', + 'fieldpname', + 'fieldnum', + 'fieldname2id', + 'fieldid2pname', + 'fieldid2name', + 'extendedTypeStr', + 'extendedTypeNum', + 'exp10', + 'exp', + 'evalbuf', + 'enumstr', + 'enumnum', + 'enumcnt', + 'enum2str', + 'endmth', + 'dimof', + 'dg', + 'decround', + 'ddb', + 'dayofyr', + 'dayofwk', + 'dayofmth', + 'dayname', + 'date2str', + 'date2num', + 'curuserid', + 'curext', + 'cterm', + 'cosh', + 'cos', + 'corrflagset', + 'corrflagget', + 'convertUTCTimeToLocalTime', + 'convertUTCDateToLocalDate', + 'conpoke', + 'conpeek', + 'connull', + 'conlen', + 'conins', + 'confind', + 'configurationkeystr', + 'configurationkeynum', + 'condel', + 'classstr', + 'classnum', + 'classidget', + 'char2num', + 'beep', + 'atan', + 'asin', + 'ascii2ansi', + 'any2str', + 'any2real', + 'any2int64', + 'any2int', + 'any2guid', + 'any2enum', + 'any2date', + 'ansi2ascii', + 'acos', + 'abs' + ), + 4 => array( // X++ SQL stuff + 'where', + 'update_recordset', + 'ttsCommit', + 'ttsBegin', + 'ttsAbort', + 'sum', + 'setting', + 'select', + 'reverse', + 'pessimisticLock', + 'outer', + 'order by', + 'optimisticLock', + 'notExists', + 'noFetch', + 'next', + 'minof', + 'maxof', + 'like', + 'join', + 'insert_recordset', + 'index hint', + 'index', + 'group by', + 'from', + 'forUpdate', + 'forceSelectOrder', + 'forcePlaceholders', + 'forceNestedLoop', + 'forceLiterals', + 'flush', + 'firstOnly', + 'firstFast', + 'exists', + 'desc', + 'delete_from', + 'count', + 'avg', + 'asc' + ) + ), + 'SYMBOLS' => array( // X++ symbols + '!', + '&', + '(', + ')', + '*', + '^', + '|', + '~', + '+', + ',', + '-', + '/', + ':', + '<', + '=', + '>', + '?', + '[', + ']', + '{', + '}' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false, + 2 => false, + 3 => false, + 4 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000ff;', + 2 => 'color: #0000ff;', + 3 => 'color: #0000ff;', + 4 => 'color: #0000ff;' + ), + 'COMMENTS' => array( + 1 => 'color: #007f00;', + 'MULTI' => 'color: #007f00; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000000;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #000000;' + ), + 'METHODS' => array( + 1 => 'color: #000000;', + 2 => 'color: #000000;' + ), + 'SYMBOLS' => array( + 0 => 'color: #00007f;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.', + 2 => '::' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) ); - -?> diff --git a/plugins/geshi/z80.php b/plugins/geshi/z80.php old mode 100644 new mode 100755 index 7feb5cb..248df83 --- a/plugins/geshi/z80.php +++ b/plugins/geshi/z80.php @@ -41,96 +41,94 @@ * ************************************************************************************/ -$language_data = array ( - 'LANG_NAME' => 'ZiLOG Z80 Assembler', - 'COMMENT_SINGLE' => array(1 => ';'), - 'COMMENT_MULTI' => array(), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '', - 'KEYWORDS' => array( - /*CPU*/ - 1 => array( - 'adc','add','and','bit','call','ccf','cp','cpd','cpdr','cpir','cpi', - 'cpl','daa','dec','di','djnz','ei','ex','exx','halt','im','in', - 'in0','inc','ind','indr','inir','ini','jp','jr','ld','ldd','lddr', - 'ldir','ldi','mlt','neg','nop','or','otdm','otdmr','otdr','otim', - 'otimr','otir','out','out0','outd','outi','pop','push','res','ret', - 'reti','retn','rl','rla','rlc','rlca','rld','rr','rra','rrc','rrca', - 'rrd','rst','sbc','scf','set','sla','sl1','sll','slp','sra','srl', - 'sub','tst','tstio','xor' - ), - /*registers*/ - 2 => array( - 'a','b','c','d','e','h','l', - 'af','bc','de','hl','ix','iy','sp', - 'af\'','ixh','ixl','iyh','iyl' - ), - /*Directive*/ - 3 => array( - '#define','#endif','#else','#ifdef','#ifndef','#include','#undef', - '.db','.dd','.df','.dq','.dt','.dw','.end','.org','equ' - ), - ), - 'SYMBOLS' => array( - '[', ']', '(', ')', '?', '+', '-', '*', '/', '%', '$' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => true, - 1 => false, - 2 => false, - 3 => false, - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #0000ff; font-weight:bold;', - 2 => 'color: #0000ff;', - 3 => 'color: #46aa03; font-weight:bold;' - ), - 'COMMENTS' => array( - 1 => 'color: #adadad; font-style: italic;', - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: #0000ff;' - ), - 'STRINGS' => array( - 0 => 'color: #7f007f;' - ), - 'NUMBERS' => array( - 0 => 'color: #dd22dd;' - ), - 'METHODS' => array( - ), - 'SYMBOLS' => array( - 0 => 'color: #008000;' - ), - 'REGEXPS' => array( - 0 => 'color: #22bbff;', - 1 => 'color: #22bbff;', - 2 => 'color: #993333;' - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - 0 => '0[0-9a-fA-F]{1,32}[hH]', - 1 => '\%[01]{1,64}[bB]', - 2 => '^[_a-zA-Z][_a-zA-Z0-9]{0,50}\:' - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( +$language_data = array( + 'LANG_NAME' => 'ZiLOG Z80 Assembler', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + /*CPU*/ + 1 => array( + 'adc','add','and','bit','call','ccf','cp','cpd','cpdr','cpir','cpi', + 'cpl','daa','dec','di','djnz','ei','ex','exx','halt','im','in', + 'in0','inc','ind','indr','inir','ini','jp','jr','ld','ldd','lddr', + 'ldir','ldi','mlt','neg','nop','or','otdm','otdmr','otdr','otim', + 'otimr','otir','out','out0','outd','outi','pop','push','res','ret', + 'reti','retn','rl','rla','rlc','rlca','rld','rr','rra','rrc','rrca', + 'rrd','rst','sbc','scf','set','sla','sl1','sll','slp','sra','srl', + 'sub','tst','tstio','xor' + ), + /*registers*/ + 2 => array( + 'a','b','c','d','e','h','l', + 'af','bc','de','hl','ix','iy','sp', + 'af\'','ixh','ixl','iyh','iyl' + ), + /*Directive*/ + 3 => array( + '#define','#endif','#else','#ifdef','#ifndef','#include','#undef', + '.db','.dd','.df','.dq','.dt','.dw','.end','.org','equ' + ), + ), + 'SYMBOLS' => array( + '[', ']', '(', ')', '?', '+', '-', '*', '/', '%', '$' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false, + 2 => false, + 3 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000ff; font-weight:bold;', + 2 => 'color: #0000ff;', + 3 => 'color: #46aa03; font-weight:bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #adadad; font-style: italic;', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #0000ff;' + ), + 'STRINGS' => array( + 0 => 'color: #7f007f;' + ), + 'NUMBERS' => array( + 0 => 'color: #dd22dd;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #008000;' + ), + 'REGEXPS' => array( + 0 => 'color: #22bbff;', + 1 => 'color: #22bbff;', + 2 => 'color: #993333;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 0 => '0[0-9a-fA-F]{1,32}[hH]', + 1 => '\%[01]{1,64}[bB]', + 2 => '^[_a-zA-Z][_a-zA-Z0-9]{0,50}\:' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( ), 'TAB_WIDTH' => 8 ); - -?> diff --git a/plugins/kodrs.php b/plugins/kodrs.php old mode 100644 new mode 100755 index d618b19..df21f9e --- a/plugins/kodrs.php +++ b/plugins/kodrs.php @@ -1,51 +1,52 @@ -addAction('post_content', 'source_code_beautifier'); - } - - function info() - { - return array( - 'name' => 'kodrs', - 'version' => '0.1', - 'url' => 'http://plugins.gelatocms.com/kodrs/', - 'author' => 'Pedro Santana', - 'authorurl' => 'http://www.pecesama.net/', - 'license' => 'MIT License', - 'description' => 'Geshify your source codes', - ); - } - - function source_code_beautifier() { - global $rows; - if(count($rows)>0){ - foreach($rows as $key=>$post){ - if($post["postType"]=="post"){ - $text = $rows[$key]['Body']; - $result = preg_replace_callback("/(.*)<\/code>/siU", - array('kodrs', 'replace_with_geshi'), - $text - ); - $rows[$key]['Body'] = $result; - } - } - } - } - - function replace_with_geshi($matches) { - $lang = strtolower($matches[1]) ; - $code = trim($matches[2]); - $geshi = new geshi($code, (isset($lang)) ? $lang : ""); - $geshi->enable_classes(false); - $geshi->set_overall_id('geshi_code'); - return @$geshi->parse_code(); - } - -} -?> \ No newline at end of file +addAction('post_content', 'source_code_beautifier'); + } + + public function info() + { + return array( + 'name' => 'kodrs', + 'version' => '0.1', + 'url' => 'http://plugins.gelatocms.com/kodrs/', + 'author' => 'Pedro Santana', + 'authorurl' => 'http://www.pecesama.net/', + 'license' => 'MIT License', + 'description' => 'Geshify your source codes', + ); + } + + public function source_code_beautifier() + { + global $rows; + if (count($rows)>0) { + foreach ($rows as $key=>$post) { + if ($post["postType"]=="post") { + $text = $rows[$key]['Body']; + $result = preg_replace_callback("/(.*)<\/code>/siU", + array('kodrs', 'replace_with_geshi'), + $text + ); + $rows[$key]['Body'] = $result; + } + } + } + } + + public function replace_with_geshi($matches) + { + $lang = strtolower($matches[1]) ; + $code = trim($matches[2]); + $geshi = new geshi($code, (isset($lang)) ? $lang : ""); + $geshi->enable_classes(false); + $geshi->set_overall_id('geshi_code'); + return @$geshi->parse_code(); + } +} diff --git a/plugins/post_confirmation.php b/plugins/post_confirmation.php old mode 100644 new mode 100755 index 164eebc..52db1bc --- a/plugins/post_confirmation.php +++ b/plugins/post_confirmation.php @@ -1,23 +1,25 @@ -addAction('admin_includes', 'post_confirmation_script'); - } - - function post_confirmation_script() { - global $admin_includes,$isEdition; - if(!$isEdition){ - $admin_includes .= " +addAction('admin_includes', 'post_confirmation_script'); + } + + public function post_confirmation_script() + { + global $admin_includes,$isEdition; + if (!$isEdition) { + $admin_includes .= " - "; - } - } -} -?> \ No newline at end of file + "; + } + } +} diff --git a/readme.txt b/readme.txt old mode 100644 new mode 100755 index bbe2aba..0c24426 --- a/readme.txt +++ b/readme.txt @@ -1,43 +1,16 @@ +PLEASE DO NOT USE AS PRODUCTION TUMBLELOG, ONLY FOR TESTING PURPOSES + +This beta version is not ready to replace your actual gelato tumblelog, there is not an update script, only fresh installs for TESTING purposes. + ==== How to install gelato CMS ===== 1) Download and unzip the gelato package, if you haven't already. 2) Place the gelato files in the desired location on your web server. -3) Run the gelato installation script by accessing install.php in your favorite web browser. +3) Rename the file config-sample.php to config.php and edit it with your server info. +4) Run the gelato installation script by accessing install.php in your favorite web browser. * If you installed gelato in the root directory, you should visit: http://example.com/install.php * If you installed gelato in its own subdirectory called tumblelog, for example, you should visit: http://example.com/tumblelog/install.php -4) Set CHMOD / permission ( Chmod 777 ) to the folder 'uploads' and the folder 'uploads/CACHE' -5) REMOVE the install.php and update.php files. +5) Set CHMOD / permission ( Chmod 777 ) to the folder 'uploads' and the folder 'uploads/CACHE' +6) REMOVE the install.php file. -That's it! gelato should now be installed. - -==== How to update to v1.0 from v0.95 version ===== - -1) Download and unzip the gelato package, if you haven't already. -2) Create a backup of your config.php file. -3) Replace all the old files with those from the new 1.0. -4) Rename the config-sample.php file to config.php (DO NOT use your old config.php file). -5) Open config.php in your favorite text editor and fill in your database details (using the information on your old config.php). -4) Execute the update.php file. -7) Set CHMOD / permission ( Chmod 777 ) to the folder 'uploads' and the folder 'uploads/CACHE'. -8) REMOVE the install.php and update.php files. - -That's it! gelato should now be updated. - -==== Update files for version previous to v1.0 are available on the download section ===== - -==== How to install gelato CMS (Manually) ===== - -1) Download and unzip the gelato package, if you haven't already. -2) Create a database for gelato on your web server, as well as a MySQL user who has all privileges for accessing and modifying it. -3) Execute the script /db/gelato_db.sql into your database. -4) Rename the config-sample.php file to config.php. -5) Open config.php in your favorite text editor and fill in your database details. - Note: The test data on the script /db/gelato_db.sql use the table prefix 'gel_' -6) Place the gelato files in the desired location on your web server. - Note: The test data on the script /db/gelato_db.sql point the installation to http://localhost/gelato -7) Set CHMOD / permission ( Chmod 777 ) to the folder 'uploads' and the folder 'uploads/CACHE' -8) REMOVE the install.php and update.php files. - -That's it! gelato should now be installed. - Demo user: admin - Demo pass: demo \ No newline at end of file +That's it! gelato should now be installed. \ No newline at end of file diff --git a/rss.php b/rss.php old mode 100644 new mode 100755 index d50e5ba..1681bae --- a/rss.php +++ b/rss.php @@ -1,97 +1,98 @@ - - - =========================== */ + + + =========================== */ ?> -call('feed_header'); - - header("Content-type: text/xml; charset=utf-8"); - $isFeed = true; - - global $conf, $tumble; - - - echo "\n"; +call('feed_header'); + + header("Content-type: text/xml; charset=utf-8"); + $isFeed = true; + + global $conf, $tumble; + + $util_class = new util(); + + echo "\n"; ?> <?php echo htmlspecialchars($conf->title);?> urlGelato;?> description);?> - gelato CMS + gelato CMS codeName()." (".$util_class->version().")"; ?> urlGelato;?>/images/information.png <?php echo htmlspecialchars($conf->description);?> urlGelato;?> -getPosts("20"); - if ($db->contarRegistros()>0) { - - while($register = mysql_fetch_array($rs)) { - $register["description"] = $register["description"]; - - switch ($register["type"]) { - case "1": - $tit = ($register["title"]=="") ? $register["description"] : $register["title"]; - $desc = $register["description"]; - break; - case "2": - $photoPath = str_replace("../", $conf->urlGelato."/", $register["url"]); - $tit = ($register["description"]=="") ? "Photo" : $register["description"]; - $desc = ""; - break; - case "3": - $tit = "\"".$register["description"]."\""; - $tmpStr = ($register["title"]!="") ? "

        - ".$register["title"]."" : ""; - $desc = "\"".$register["description"]."\"".$tmpStr; - break; - case "4": - $tit = ($register["title"]=="") ? $register["url"] : $register["title"]; - $tmpStr = ($register["description"]!="") ? "

        - ".$register["description"]."" : ""; - $desc = "
        ".$tit."".$tmpStr; - break; - case "5": - $lines = explode("\n", $register["description"]); - $line = $lines[0]; - $tit = ($register["title"]=="") ? $line : $register["title"]; - $desc = $tumble->formatConversation($register["description"]); - break; - case "6": - $tit = ($register["description"]=="") ? "Video" : $register["description"]; - $desc = $tumble->getVideoPlayer($register["url"]); - break; - case "7": - $tit = ($register["description"]=="") ? "MP3" : $register["description"]; - $desc = $tumble->getMp3Player($register["url"]); - break; - } - $tit = util::trimString($tit); - $strEnd = ($conf->urlFriendly) ? "/" : ""; - $url = $tumble->getPermalink($register["id_post"]); - $formatedDate = gmdate("r", strtotime($register["date"]) + util::transform_offset($conf->offsetTime)); -?> +getPosts("20"); + if ($db->contarRegistros()>0) { + while ($register = mysql_fetch_array($rs)) { + $register["description"] = $register["description"]; + + switch ($register["type"]) { + case "1": + $tit = ($register["title"]=="") ? $register["description"] : $register["title"]; + $desc = $register["description"]; + break; + case "2": + $photoPath = str_replace("../", $conf->urlGelato."/", $register["url"]); + $tit = ($register["description"]=="") ? "Photo" : $register["description"]; + $desc = ""; + break; + case "3": + $tit = "\"".$register["description"]."\""; + $tmpStr = ($register["title"]!="") ? "

        - ".$register["title"]."" : ""; + $desc = "\"".$register["description"]."\"".$tmpStr; + break; + case "4": + $tit = ($register["title"]=="") ? $register["url"] : $register["title"]; + $tmpStr = ($register["description"]!="") ? "

        - ".$register["description"]."" : ""; + $desc = "".$tit."".$tmpStr; + break; + case "5": + $lines = explode("\n", $register["description"]); + $line = $lines[0]; + $tit = ($register["title"]=="") ? $line : $register["title"]; + $desc = $tumble->formatConversation($register["description"]); + break; + case "6": + $tit = ($register["description"]=="") ? "Video" : $register["description"]; + $desc = $tumble->getVideoPlayer($register["url"]); + break; + case "7": + $tit = ($register["description"]=="") ? "MP3" : $register["description"]; + $desc = $tumble->getMp3Player($register["url"]); + break; + } + $tit = $util_class->trimString($tit); + $strEnd = ($conf->urlFriendly) ? "/" : ""; + $url = $tumble->getPermalink($register["id_post"]); + $formatedDate = gmdate("r", strtotime($register["date"]) + $util_class->transform_offset($conf->offsetTime)); ?> - <?php echo $tit;?> - ]]> - - - + <?php echo $tit; ?> + ]]> + + + - - \ No newline at end of file + diff --git a/sitemap.php b/sitemap.php old mode 100644 new mode 100755 index a8196e5..ddd064d --- a/sitemap.php +++ b/sitemap.php @@ -1,60 +1,62 @@ - - - =========================== */ + + + =========================== */ ?> -\n"; - echo "urlGelato."/sitemap.xsl\"?>\n"; - - $rs = $tumble->getPosts(1); +\n"; + echo "urlGelato."/sitemap.xsl\"?>\n"; + + $rs = $tumble->getPosts(1); ?> urlGelato;?> -contarRegistros()>0) { - $register = mysql_fetch_array($rs); - $formatedDate = gmdate("Y-m-d", strtotime($register["date"])); - echo "\n\t".$formatedDate.""; - } +contarRegistros()>0) { + $register = mysql_fetch_array($rs); + $formatedDate = gmdate("Y-m-d", strtotime($register["date"])); + echo "\n\t".$formatedDate.""; + } ?> hourly 0.9 -getPosts($tumble->getPostsNumber()); - if ($db->contarRegistros()>0) { - while($register = mysql_fetch_array($rs)) { - $url = $tumble->getPermalink($register["id_post"]); - $formatedDate = gmdate("Y-m-d", strtotime($register["date"])); -?> +getPosts($tumble->getPostsNumber()); + if ($db->contarRegistros()>0) { + while ($register = mysql_fetch_array($rs)) { + $url = $tumble->getPermalink($register["id_post"]); + $formatedDate = gmdate("Y-m-d", strtotime($register["date"])); ?> - - + + daily 0.7 - \ No newline at end of file diff --git a/sitemap.xsl b/sitemap.xsl old mode 100644 new mode 100755 diff --git a/themes/Dreamscape/images/bg.gif b/themes/Dreamscape/images/bg.gif old mode 100644 new mode 100755 diff --git a/themes/Dreamscape/images/content_bg.png b/themes/Dreamscape/images/content_bg.png old mode 100644 new mode 100755 diff --git a/themes/Dreamscape/index.htm b/themes/Dreamscape/index.htm old mode 100644 new mode 100755 diff --git a/themes/Dreamscape/style.css b/themes/Dreamscape/style.css old mode 100644 new mode 100755 diff --git a/themes/tumblr/img/bg.gif b/themes/tumblr/img/bg.gif old mode 100644 new mode 100755 diff --git a/themes/tumblr/img/link.gif b/themes/tumblr/img/link.gif old mode 100644 new mode 100755 diff --git a/themes/tumblr/img/rss.gif b/themes/tumblr/img/rss.gif old mode 100644 new mode 100755 diff --git a/themes/tumblr/index.htm b/themes/tumblr/index.htm old mode 100644 new mode 100755 index 5463c73..e6c8d97 --- a/themes/tumblr/index.htm +++ b/themes/tumblr/index.htm @@ -34,6 +34,10 @@ {__("Add or Edit my posts")}   {__("Sign out")}
        + {else} + {/if} {if $error} diff --git a/themes/tumblr/style.css b/themes/tumblr/style.css old mode 100644 new mode 100755 diff --git a/update.php b/update.php deleted file mode 100644 index 7ec1540..0000000 --- a/update.php +++ /dev/null @@ -1,37 +0,0 @@ - - - =========================== */ -?> -'.__("Error reading configuration file").' -

        '.__("There does not seem to be a config.php file. I need this before we can get started.").'

        -

        '.__("This either means that you did not rename the config-sample.php file to config.php.").'

        '; - die($mensaje); -} else { - require_once($configFile); -} - -$sqlStr = "INSERT INTO `".Table_prefix."options` VALUES ('check_version', '1'), ('active_plugins', '[{\"total\":0},[]]');"; - -$db->ejecutarConsulta($sqlStr); - -echo '

        '.__("Finished!").'

        '; -echo '

        '.__("Now you are running on the new gelato vaniglia version!!!").'

        '; -echo '

        '.__("Return to your tumblelog").'

        '; - -?> diff --git a/uploads/index.php b/uploads/index.php old mode 100644 new mode 100755 index 1e20403..0deef88 --- a/uploads/index.php +++ b/uploads/index.php @@ -1,5 +1,7 @@
    ".$this->obtenerNombreCampo($i)."
    ".$row[$i]."