mirror of
https://github.com/claudehohl/Stikked.git
synced 2025-04-25 20:41:20 -05:00
Merge branch 'master' into dev
This commit is contained in:
commit
db44796ca2
@ -50,7 +50,13 @@
|
||||
* iem@kug https://github.com/iem-projects, umläute https://github.com/umlaeute (Footer fix)
|
||||
* Ridho Muhammad https://github.com/rydhoms (Update geshi.php with php7 fix, indonesian translation)
|
||||
* azdrax https://github.com/azdrax, Zacharias Sdregas https://github.com/zsdregas (Added greek translation)
|
||||
* John Walker https://github.com/techjwalker (YOURLS support)
|
||||
* John Walker https://github.com/techjwalker (YOURLS support and several improvements)
|
||||
* Christian (BBCode support)
|
||||
* Shen-Ta Hsiea https://github.com/ibmibmibm (updated traditional chinese translation)
|
||||
* haliphax https://github.com/haliphax (Fixed cssmin library)
|
||||
* YangJun https://github.com/yangjun1994 (Fix language.php small mistakes of chinese-simplified)
|
||||
* Justin Massey https://github.com/Th3R3p0 (LDAP improvements, xss security fixes, Dockerfiles)
|
||||
* Nilpferd (Shorturl is now shown for 'burn' pastes after creation)
|
||||
* Pascal Briehl (add support for polr url shortener)
|
||||
* Simon Sickle https://github.com/SimonSickle (Protect the langs api call with the apiKey)
|
||||
* John Walker https://github.com/techjwalker (some minor additions)
|
||||
|
10
Dockerfile
Normal file
10
Dockerfile
Normal file
@ -0,0 +1,10 @@
|
||||
FROM php:7.0-apache
|
||||
COPY htdocs /var/www/html
|
||||
COPY htdocs/application/config/stikked.php.dist /var/www/html/application/config/stikked.php
|
||||
COPY docker/replace-envvars.sh /bin/
|
||||
COPY docker/docker-php-entrypoint /usr/local/bin/
|
||||
RUN chmod +x /usr/local/bin/docker-php-entrypoint
|
||||
|
||||
EXPOSE 80
|
||||
RUN a2enmod rewrite
|
||||
RUN docker-php-ext-install mysqli
|
31
README.md
31
README.md
@ -16,7 +16,6 @@ Here are some features:
|
||||
* Anti-Spam features
|
||||
* Themes support
|
||||
* Multilanguage support
|
||||
* An [Android app](https://play.google.com/store/apps/details?id=org.teamblueridge.pasteitapp)
|
||||
* Stikked client with support for client side encryption/decryption: [gostikkit](https://github.com/tcolgate/gostikkit)
|
||||
* Another CLI tool requiring only curl program: [pbin](https://github.com/glensc/pbin)
|
||||
* And many more. View [this review](http://maketecheasier.com/run-your-own-pastebin-with-stikked/2013/01/11)
|
||||
@ -56,6 +55,17 @@ Installation
|
||||
* Be sure to also copy the .htaccess file when you move files around. This is a hidden file and easily overlooked.
|
||||
|
||||
|
||||
How to run it in Docker
|
||||
-----------------------
|
||||
|
||||
sudo docker build -t stikked .
|
||||
sudo docker-compose up -d
|
||||
|
||||
This automatically creates a database with passwords that are configurable in the docker-compose.yml file.
|
||||
|
||||
NOTE: This sets the captcha to false and requires port 80 to be accessible on the host machine. Also, a host entry of 127.0.0.1 stikked.local will fix the base_url issues.
|
||||
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
@ -71,6 +81,25 @@ In the folder doc/, you will find:
|
||||
Changelog
|
||||
---------
|
||||
|
||||
### Version 0.12.0:
|
||||
|
||||
* Updates ensuring the compatibility with PHP7:
|
||||
* Updated CodeIgniter to 3.1.5
|
||||
* Updated GeSHi to 1.0.9.0
|
||||
* Ability to run Stikked in Docker
|
||||
* Small security fixes regarding XSS and LDAP
|
||||
* Various bugfixes and improvements
|
||||
|
||||
#### Upgrade instructions
|
||||
|
||||
Copy your htdocs/application/stikked.php config file away. Upload the new version. Copy it back.
|
||||
|
||||
If you want to keep QR codes being displayed, add the following line in config/stikked.php:
|
||||
|
||||
```php
|
||||
$config['qr_enabled'] = true;
|
||||
```
|
||||
|
||||
### Version 0.11.0:
|
||||
|
||||
* Upgrade to CodeIgniter 3.1.0
|
||||
|
@ -6,4 +6,5 @@ Some guidelines:
|
||||
```
|
||||
php_beautifier --indent_tabs -l "IndentStyles(style=bsd) ArrayNested() NewLines(before=function:T_CLASS:if,after=T_COMMENT) ListClassFunction()"
|
||||
```
|
||||
* Optionally, use https://phpbeautifier.com/ with "Allman style" formatting for smaller segments of PHP-only code
|
||||
* Other people may modify your contribution. Don't take that personal; we all want to improve Stikked. Your input is always welcome!
|
||||
|
@ -2,6 +2,6 @@ How to translate Stikked into your own language
|
||||
-----------------------------------------------
|
||||
|
||||
1. Make a copy of the folder `htdocs/application/language/swissgerman`, and name it as you like.
|
||||
2. Start placing in your texts!
|
||||
2. Start placing in your translated text!
|
||||
|
||||
The date_lang.php and form_validation_lang.php are optional; they lay in the system folder for english fallback. stikked_lang.php is required. If you miss a translation, it will be shown as [translation_index] in Stikked.
|
||||
|
@ -1,6 +1,8 @@
|
||||
Stikked troubleshooting guide
|
||||
-----------------------------
|
||||
|
||||
First, be sure to double-check whether you meet the [prerequisites](//github.com/claudehohl/Stikked#prerequisites).
|
||||
|
||||
### Apache
|
||||
|
||||
#### 404 Not Found after creating a Paste
|
||||
@ -50,4 +52,4 @@ You need to have the GD extension for PHP installed and enabled so that the QR c
|
||||
Still have a problem?
|
||||
---------------------
|
||||
|
||||
Report an issue at GitHub, and we will add your problem to this guide.
|
||||
Report an issue [at GitHub](//github.com/claudehohl/Stikked/issues), and we will add your problem to this guide.
|
||||
|
24
docker-compose.yml
Normal file
24
docker-compose.yml
Normal file
@ -0,0 +1,24 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
db:
|
||||
image: mysql:latest
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
environment:
|
||||
MYSQL_RANDOM_ROOT_PASSWORD: 1
|
||||
MYSQL_DATABASE: stikked
|
||||
MYSQL_USER: stikked
|
||||
MYSQL_PASSWORD: stikked
|
||||
|
||||
stikked:
|
||||
depends_on:
|
||||
- db
|
||||
image: stikked
|
||||
env_file:
|
||||
docker/stikked-envvars.txt
|
||||
ports:
|
||||
- 80:80
|
||||
|
||||
volumes:
|
||||
db_data:
|
12
docker/docker-php-entrypoint
Normal file
12
docker/docker-php-entrypoint
Normal file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# custom script to overwrite stikked config variables
|
||||
bash /bin/replace-envvars.sh
|
||||
|
||||
# first arg is `-f` or `--some-option`
|
||||
if [ "${1#-}" != "$1" ]; then
|
||||
set -- php "$@"
|
||||
fi
|
||||
|
||||
exec "$@"
|
7
docker/replace-envvars.sh
Normal file
7
docker/replace-envvars.sh
Normal file
@ -0,0 +1,7 @@
|
||||
sed -i "s/\['site_name'\].*/['site_name'] = '$SITENAME';/" /var/www/html/application/config/stikked.php
|
||||
sed -i "s/\['base_url'\].*/['base_url'] = '$BASEURL';/" /var/www/html/application/config/stikked.php
|
||||
sed -i "s/\['db_hostname'\].*/['db_hostname'] = '$DBHOST';/" /var/www/html/application/config/stikked.php
|
||||
sed -i "s/\['db_database'\].*/['db_database'] = '$DBNAME';/" /var/www/html/application/config/stikked.php
|
||||
sed -i "s/\['db_username'\].*/['db_username'] = '$DBUSER';/" /var/www/html/application/config/stikked.php
|
||||
sed -i "s/\['db_password'\].*/['db_password'] = '$DBPASS';/" /var/www/html/application/config/stikked.php
|
||||
sed -i "s/\['enable_captcha'\].*/['enable_captcha'] = '$CAPTHCA';/" /var/www/html/application/config/stikked.php
|
7
docker/stikked-envvars.txt
Normal file
7
docker/stikked-envvars.txt
Normal file
@ -0,0 +1,7 @@
|
||||
SITENAME=Stikked
|
||||
BASEURL=http:\/\/stikked.local\/
|
||||
DBHOST=db
|
||||
DBNAME=stikked
|
||||
DBUSER=stikked
|
||||
DBPASS=stikked
|
||||
CAPTCHA=false
|
@ -313,20 +313,6 @@ $config['cookie_path'] = '/';
|
||||
$config['cookie_secure'] = FALSE;
|
||||
$config['cookie_httponly'] = FALSE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Standardize newlines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Determines whether to standardize newline characters in input data,
|
||||
| meaning to replace \r\n, \r, \n occurrences with the PHP_EOL value.
|
||||
|
|
||||
| This is particularly useful for portability between UNIX-based OSes,
|
||||
| (usually \n) and Windows (\r\n).
|
||||
|
|
||||
*/
|
||||
$config['standardize_newlines'] = TRUE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Global XSS Filtering
|
||||
|
@ -95,10 +95,10 @@ $config['supported_languages'] = array(
|
||||
'ckeditor' => NULL
|
||||
),
|
||||
'cn' => array(
|
||||
'name' => '繁體中文',
|
||||
'name' => '简体中文',
|
||||
'folder' => 'chinese-simplified',
|
||||
'direction' => 'ltr',
|
||||
'codes' => array('cht', 'chinese-simplified', 'zh-CN'),
|
||||
'codes' => array('chs', 'chinese-simplified', 'zh-CN'),
|
||||
'ckeditor' => NULL
|
||||
),
|
||||
'zh' => array(
|
||||
|
@ -54,6 +54,14 @@ $config['db_prefix'] = '';
|
||||
*/
|
||||
$config['theme'] = 'default';
|
||||
|
||||
/**
|
||||
* Display QR code
|
||||
*
|
||||
* Whether or not to display the QR code
|
||||
*
|
||||
*/
|
||||
$config['qr_enabled'] = true;
|
||||
|
||||
/**
|
||||
* JavaScript-Editor
|
||||
*
|
||||
@ -101,6 +109,7 @@ $config['cron_key'] = '';
|
||||
* @string gwgd
|
||||
* @string googl
|
||||
* @string bitly
|
||||
* @string polr
|
||||
* @string random - Randomly chose any of upper API-s !WARNING! May be slow! For maximum performanse, it's recommended to either set all API keys or use random_url_engines to list working engines.
|
||||
* @string none - same as off
|
||||
*
|
||||
@ -132,6 +141,9 @@ $config['cron_key'] = '';
|
||||
* bitly_url_api: Famous URL shortening service (API: http://dev.bitly.com/get_started.html)
|
||||
* Usage: Your API key
|
||||
*
|
||||
* polr_url: Your own instance of polr URL-shortener (Download: https://github.com/cydrobolt/polr)
|
||||
* polr_api: Your polr api key
|
||||
*
|
||||
**/
|
||||
$config['url_shortening_use'] = 'off';
|
||||
$config['random_url_engines'] = 'googl,bitly'; // Used only in random mode, read comment above for more info
|
||||
@ -147,9 +159,13 @@ $config['shorturl_selected'] = false;
|
||||
|
||||
// goo.gl API key
|
||||
$config['googl_url_api'] = '';
|
||||
|
||||
// Bit.ly API key
|
||||
$config['bitly_url_api'] = '';
|
||||
|
||||
// polr
|
||||
$config['polr_url'] = '';
|
||||
$config['polr_api'] = '';
|
||||
|
||||
|
||||
/**
|
||||
|
@ -26,6 +26,13 @@ class Api extends Main
|
||||
{
|
||||
die("The API has been disabled\n");
|
||||
}
|
||||
|
||||
// if ldap is configured and no api token is configured, fail the request
|
||||
if ((config_item('require_auth') == true) && (config_item('apikey') == ''))
|
||||
{
|
||||
die("API key not configured");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function index()
|
||||
@ -202,6 +209,11 @@ class Api extends Main
|
||||
|
||||
function langs()
|
||||
{
|
||||
if (config_item('apikey') != $this->input->get('apikey'))
|
||||
{
|
||||
die("Invalid API key\n");
|
||||
}
|
||||
|
||||
$languages = $this->languages->get_languages();
|
||||
echo json_encode($languages);
|
||||
}
|
||||
|
@ -120,7 +120,7 @@ class Auth extends CI_Controller
|
||||
public
|
||||
function alpha_dash_dot($str)
|
||||
{
|
||||
return (!preg_match("/^([-a-z0-9_-\.])+$/i", $str)) ? FALSE : TRUE;
|
||||
return (!preg_match("/^([-a-z0-9_\-\.])+$/i", $str)) ? FALSE : TRUE;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -70,7 +70,7 @@ class Main extends CI_Controller
|
||||
$fields = array(
|
||||
'id' => array(
|
||||
'type' => 'VARCHAR',
|
||||
'constraint' => 40,
|
||||
'constraint' => 128,
|
||||
'default' => 0,
|
||||
) ,
|
||||
'ip_address' => array(
|
||||
@ -266,7 +266,7 @@ class Main extends CI_Controller
|
||||
//ipv6 migration
|
||||
$fields = $this->db->field_data('trending');
|
||||
|
||||
if (config_item('db_driver') != 'sqlite' && $fields[1]->max_length < 45)
|
||||
if (stristr(config_item('db_driver') , 'sqlite') === false && $fields[1]->max_length < 45)
|
||||
{
|
||||
$db_prefix = config_item('db_prefix');
|
||||
|
||||
@ -294,7 +294,7 @@ class Main extends CI_Controller
|
||||
if ($field->name == 'title')
|
||||
{
|
||||
|
||||
if (config_item('db_driver') != 'sqlite' && $field->max_length < 50)
|
||||
if (stristr(config_item('db_driver') , 'sqlite') === false && $field->max_length < 50)
|
||||
{
|
||||
$db_prefix = config_item('db_prefix');
|
||||
|
||||
@ -309,6 +309,34 @@ class Main extends CI_Controller
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//upgrade to CI 3.1.2
|
||||
$fields = $this->db->field_data('sessions');
|
||||
foreach ($fields as $field)
|
||||
{
|
||||
|
||||
if ($field->name == 'id')
|
||||
{
|
||||
|
||||
if (stristr(config_item('db_driver') , 'sqlite') === false)
|
||||
{
|
||||
|
||||
if ($field->max_length < 128)
|
||||
{
|
||||
$db_prefix = config_item('db_prefix');
|
||||
|
||||
if ($this->db->dbdriver == "postgre")
|
||||
{
|
||||
$this->db->query("ALTER TABLE " . $db_prefix . "sessions ALTER COLUMN id SET DATA TYPE varchar(128)");
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->query("ALTER TABLE " . $db_prefix . "sessions CHANGE id id VARCHAR(128) NOT NULL");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function _form_prep($lang = false, $title = '', $paste = '', $reply = false)
|
||||
@ -495,6 +523,10 @@ class Main extends CI_Controller
|
||||
}
|
||||
|
||||
function post_encrypted()
|
||||
{
|
||||
$this->_valid_authentication();
|
||||
|
||||
if ($this->_valid_captcha($this->input->post('captcha')))
|
||||
{
|
||||
$this->load->model('pastes');
|
||||
$_POST['private'] = 1;
|
||||
@ -502,6 +534,11 @@ class Main extends CI_Controller
|
||||
$ret_url = $this->pastes->createPaste();
|
||||
echo $ret_url;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'E_CAPTCHA';
|
||||
}
|
||||
}
|
||||
|
||||
function raw()
|
||||
{
|
||||
@ -724,8 +761,12 @@ class Main extends CI_Controller
|
||||
{
|
||||
|
||||
if (config_item('enable_captcha') && $this->session->userdata('is_human') === null)
|
||||
{
|
||||
|
||||
if (isset($this->form_validation))
|
||||
{
|
||||
$this->form_validation->set_message('_valid_captcha', lang('captcha'));
|
||||
}
|
||||
|
||||
if ($this->use_recaptcha)
|
||||
{
|
||||
|
@ -74,7 +74,7 @@ class Spamadmin extends CI_Controller
|
||||
{
|
||||
$this->db->insert('blocked_ips', array(
|
||||
'ip_address' => $ip_address,
|
||||
'blocked_at' => mktime() ,
|
||||
'blocked_at' => time() ,
|
||||
'spam_attempts' => $paste_count,
|
||||
));
|
||||
}
|
||||
@ -85,8 +85,20 @@ class Spamadmin extends CI_Controller
|
||||
$data = $this->pastes->getSpamLists('spamadmin/' . $ip_address, $seg = 3, $ip_address);
|
||||
$data['ip_address'] = $ip_address;
|
||||
$ip = explode('.', $ip_address);
|
||||
|
||||
if (count($ip) > 1)
|
||||
{
|
||||
$ip_firstpart = $ip[0] . '.' . $ip[1] . '.';
|
||||
$data['ip_range'] = $ip_firstpart . '*.*';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
// ipv6
|
||||
$ip = explode(':', $ip_address);
|
||||
$ip_firstpart = $ip[0] . ':' . $ip[1] . ':' . $ip[2] . ':' . $ip[3] . ':' . $ip[4] . ':' . $ip[5] . ':' . $ip[6];
|
||||
$data['ip_range'] = $ip_firstpart . ':*';
|
||||
}
|
||||
|
||||
//view
|
||||
$this->load->view('spam_detail', $data);
|
||||
|
@ -39,7 +39,7 @@ class MY_Loader extends CI_Loader
|
||||
//return
|
||||
return $this->_ci_load(array(
|
||||
'_ci_view' => $view_path,
|
||||
'_ci_vars' => $this->_ci_object_to_array($vars) ,
|
||||
'_ci_vars' => $this->_ci_prepare_view_vars($vars) ,
|
||||
'_ci_return' => $return
|
||||
));
|
||||
}
|
||||
|
@ -18,11 +18,23 @@
|
||||
// Your config here
|
||||
define("SOURCE_ROOT", "/var/www/your/source/root/");
|
||||
|
||||
// Assume you've put geshi in the include_path already
|
||||
require_once("geshi.php");
|
||||
if (file_exists(__DIR__ . '/../vendor/autoload.php')) {
|
||||
//composer install
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
} else if (file_exists(__DIR__ . '/../src/geshi.php')) {
|
||||
//git checkout
|
||||
require __DIR__ . '/../src/geshi.php';
|
||||
} else {
|
||||
// Assume you've put geshi in the include_path already
|
||||
require_once("geshi.php");
|
||||
}
|
||||
|
||||
if (!isset($_SERVER['PATH_INFO'])) {
|
||||
die("No file name given.\n");
|
||||
}
|
||||
|
||||
// Get path info
|
||||
$path = SOURCE_ROOT.$_SERVER['PATH_INFO'];
|
||||
$path = SOURCE_ROOT . $_SERVER['PATH_INFO'];
|
||||
|
||||
// Check for dickheads trying to use '../' to get to sensitive areas
|
||||
$base_path_len = strlen(SOURCE_ROOT);
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ----------
|
||||
* Author: Nigel McNie (nigel@geshi.org)
|
||||
* Copyright: (c) 2004 Nigel McNie
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/05/20
|
||||
*
|
||||
* Application to generate custom CSS files for GeSHi (based on an idea by Andreas
|
||||
@ -30,7 +30,6 @@
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
set_magic_quotes_runtime(0);
|
||||
//
|
||||
// Functions
|
||||
//
|
||||
@ -165,21 +164,23 @@ if ( !$step || $step == 1 )
|
||||
$geshi_lang_path = get_var('geshi-lang-path');
|
||||
|
||||
if(strstr($geshi_path, '..')) {
|
||||
unset($geshi_path);
|
||||
$geshi_path = null;
|
||||
}
|
||||
if(strstr($geshi_lang_path, '..')) {
|
||||
unset($geshi_lang_path);
|
||||
$geshi_lang_path = null;
|
||||
}
|
||||
|
||||
if ( !$geshi_path )
|
||||
{
|
||||
$geshi_path = '../geshi.php';
|
||||
$geshi_path = '../src/geshi.php';
|
||||
}
|
||||
if ( !$geshi_lang_path )
|
||||
{
|
||||
$geshi_lang_path = '../geshi/';
|
||||
$geshi_lang_path = '../src/geshi/';
|
||||
}
|
||||
|
||||
$no_geshi_dot_php_error = false;
|
||||
$no_lang_dir_error = false;
|
||||
if ( is_file($geshi_path) && is_readable($geshi_path) )
|
||||
{
|
||||
// Get file contents and see if GeSHi is in here
|
||||
|
@ -28,19 +28,19 @@
|
||||
*
|
||||
*/
|
||||
|
||||
require dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'geshi.php';
|
||||
$geshi = new GeSHi;
|
||||
|
||||
$languages = array();
|
||||
if ($handle = opendir($geshi->language_path)) {
|
||||
while (($file = readdir($handle)) !== false) {
|
||||
$pos = strpos($file, '.');
|
||||
if ($pos > 0 && substr($file, $pos) == '.php') {
|
||||
$languages[] = substr($file, 0, $pos);
|
||||
}
|
||||
}
|
||||
closedir($handle);
|
||||
if (file_exists(__DIR__ . '/../vendor/autoload.php')) {
|
||||
//composer install
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
} else if (file_exists(__DIR__ . '/../src/geshi.php')) {
|
||||
//git checkout
|
||||
require __DIR__ . '/../src/geshi.php';
|
||||
} else {
|
||||
// Assume you've put geshi in the include_path already
|
||||
require_once "geshi.php";
|
||||
}
|
||||
|
||||
$geshi = new GeSHi();
|
||||
$languages = $geshi->get_supported_languages();
|
||||
sort($languages);
|
||||
|
||||
header('Content-Type: application/octet-stream');
|
||||
|
@ -15,14 +15,16 @@ error_reporting(E_ALL);
|
||||
// Rudimentary checking of where GeSHi is. In a default install it will be in ../, but
|
||||
// it could be in the current directory if the include_path is set. There's nowhere else
|
||||
// we can reasonably guess.
|
||||
if (is_readable('../geshi.php')) {
|
||||
$path = '../';
|
||||
} elseif (is_readable('geshi.php')) {
|
||||
$path = './';
|
||||
if (file_exists(__DIR__ . '/../vendor/autoload.php')) {
|
||||
//composer install
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
} else if (file_exists(__DIR__ . '/../src/geshi.php')) {
|
||||
//git checkout
|
||||
require __DIR__ . '/../src/geshi.php';
|
||||
} else {
|
||||
die('Could not find geshi.php - make sure it is in your include path!');
|
||||
// Assume you've put geshi in the include_path already
|
||||
require_once("geshi.php");
|
||||
}
|
||||
require $path . 'geshi.php';
|
||||
|
||||
$fill_source = false;
|
||||
if (isset($_POST['submit'])) {
|
||||
@ -94,6 +96,7 @@ if (isset($_POST['submit'])) {
|
||||
} else {
|
||||
// make sure we don't preselect any language
|
||||
$_POST['language'] = null;
|
||||
$geshi = new GeSHi();
|
||||
}
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
@ -178,20 +181,10 @@ if (isset($_POST['submit'])) {
|
||||
<p>
|
||||
<select name="language" id="language">
|
||||
<?php
|
||||
if (!($dir = @opendir(dirname(__FILE__) . '/geshi'))) {
|
||||
if (!($dir = @opendir(dirname(__FILE__) . '/../geshi'))) {
|
||||
$languages = $geshi->get_supported_languages();
|
||||
if (!count($languages)) {
|
||||
echo '<option>No languages available!</option>';
|
||||
}
|
||||
}
|
||||
$languages = array();
|
||||
while ($file = readdir($dir)) {
|
||||
if ( $file[0] == '.' || strpos($file, '.', 1) === false) {
|
||||
continue;
|
||||
}
|
||||
$lang = substr($file, 0, strpos($file, '.'));
|
||||
$languages[] = $lang;
|
||||
}
|
||||
closedir($dir);
|
||||
sort($languages);
|
||||
foreach ($languages as $lang) {
|
||||
if (isset($_POST['language']) && $_POST['language'] == $lang) {
|
||||
|
@ -1,778 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* GeSHi language file validation script
|
||||
*
|
||||
* Just point your browser at this script (with geshi.php in the parent directory)
|
||||
* and the language files in subdirectory "../geshi/" are being validated
|
||||
*
|
||||
* CLI mode is supported
|
||||
*
|
||||
* @author Benny Baumann
|
||||
* @version $Id$
|
||||
*/
|
||||
header('Content-Type: text/html; charset=utf-8');
|
||||
|
||||
set_time_limit(0);
|
||||
error_reporting(E_ALL);
|
||||
$time_start = explode(' ', microtime());
|
||||
|
||||
function colorize($level, $string) {
|
||||
static $colors, $end;
|
||||
if ( !isset($colors) ) {
|
||||
if ( PHP_SAPI != 'cli' ) {
|
||||
$end = '</span>';
|
||||
$colors = array(
|
||||
TYPE_NOTICE => '<span style="color:#080;font-weight:bold;">',
|
||||
TYPE_WARNING => '<span style="color:#CC0; font-weight: bold;">',
|
||||
TYPE_ERROR => '<span style="color:#F00; font-weight: bold;">',
|
||||
TYPE_OK => '<span style="color: #080; font-weight: bold;">'
|
||||
);
|
||||
} else {
|
||||
$end = chr(27).'[0m';
|
||||
$colors = array(
|
||||
TYPE_NOTICE => chr(27).'[1m',
|
||||
TYPE_WARNING => chr(27).'[1;33m',
|
||||
TYPE_ERROR => chr(27).'[1;31m',
|
||||
TYPE_OK => chr(27).'[1;32m'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if ( !isset($colors[$level]) ) {
|
||||
trigger_error("no colors for level $level", E_USER_ERROR);
|
||||
}
|
||||
|
||||
return $colors[$level].$string.$end;
|
||||
}
|
||||
|
||||
define ('TYPE_NOTICE', 0);
|
||||
define ('TYPE_WARNING', 1);
|
||||
define ('TYPE_ERROR', 2);
|
||||
define ('TYPE_OK', 3);
|
||||
|
||||
$error_abort = false;
|
||||
$error_cache = array();
|
||||
function output_error_cache(){
|
||||
global $error_cache;
|
||||
|
||||
if(count($error_cache)) {
|
||||
echo colorize(TYPE_ERROR, "Failed");
|
||||
if ( PHP_SAPI == 'cli' ) {
|
||||
echo "\n\n";
|
||||
} else {
|
||||
echo "<br /><ol>\n";
|
||||
}
|
||||
foreach($error_cache as $error_msg) {
|
||||
if ( PHP_SAPI == 'cli' ) {
|
||||
echo "\n";
|
||||
} else {
|
||||
echo "<li>";
|
||||
}
|
||||
switch($error_msg['t']) {
|
||||
case TYPE_NOTICE:
|
||||
$msg = 'NOTICE';
|
||||
break;
|
||||
case TYPE_WARNING:
|
||||
$msg = 'WARNING';
|
||||
break;
|
||||
case TYPE_ERROR:
|
||||
$msg = 'ERROR';
|
||||
break;
|
||||
}
|
||||
echo colorize($error_msg['t'], $msg);
|
||||
if ( PHP_SAPI == 'cli' ) {
|
||||
echo "\t" . $error_msg['m'];
|
||||
} else {
|
||||
echo " " . $error_msg['m'] . "</li>";
|
||||
}
|
||||
}
|
||||
if ( PHP_SAPI == 'cli' ) {
|
||||
echo "\n";
|
||||
} else {
|
||||
echo "</ol>\n";
|
||||
}
|
||||
} else {
|
||||
echo colorize(TYPE_OK, "OK");
|
||||
if ( PHP_SAPI == 'cli' ) {
|
||||
echo "\n";
|
||||
} else {
|
||||
echo "\n<br />";
|
||||
}
|
||||
}
|
||||
echo "\n";
|
||||
|
||||
$error_cache = array();
|
||||
}
|
||||
|
||||
function report_error($type, $message) {
|
||||
global $error_cache, $error_abort;
|
||||
|
||||
$error_cache[] = array('t' => $type, 'm' => $message);
|
||||
if(TYPE_ERROR == $type) {
|
||||
$error_abort = true;
|
||||
}
|
||||
}
|
||||
|
||||
function dupfind_strtolower(&$value){
|
||||
$value = strtolower($value);
|
||||
}
|
||||
|
||||
if ( PHP_SAPI != 'cli' ) { ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<title>GeSHi Language File Validation Script</title>
|
||||
<style type="text/css">
|
||||
<!--
|
||||
html {
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
body {
|
||||
font-family: Verdana, Arial, sans-serif;
|
||||
margin: 10px;
|
||||
border: 2px solid #e0e0e0;
|
||||
background-color: #fcfcfc;
|
||||
padding: 5px;
|
||||
font-size: 10pt;
|
||||
}
|
||||
h2 {
|
||||
margin: .1em 0 .2em .5em;
|
||||
border-bottom: 1px solid #b0b0b0;
|
||||
color: #b0b0b0;
|
||||
font-weight: normal;
|
||||
font-size: 150%;
|
||||
}
|
||||
h3 {
|
||||
margin: .1em 0 .2em .5em;
|
||||
color: #b0b0b0;
|
||||
font-weight: normal;
|
||||
font-size: 120%;
|
||||
}
|
||||
#footer {
|
||||
text-align: center;
|
||||
font-size: 80%;
|
||||
color: #a9a9a9;
|
||||
}
|
||||
#footer a {
|
||||
color: #9999ff;
|
||||
}
|
||||
textarea {
|
||||
border: 1px solid #b0b0b0;
|
||||
font-size: 90%;
|
||||
color: #333;
|
||||
margin-left: 20px;
|
||||
}
|
||||
select, input {
|
||||
margin-left: 20px;
|
||||
}
|
||||
p {
|
||||
font-size: 90%;
|
||||
margin-left: .5em;
|
||||
}
|
||||
-->
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h2>GeSHi Language File Validation Script</h2>
|
||||
<p>To use this script, make sure that <strong>geshi.php</strong> is in the
|
||||
parent directory or in your include_path, and that the language files are in a
|
||||
subdirectory of GeSHi's directory called <strong>geshi/</strong>.</p>
|
||||
<p>Everything else will be done by this script automatically. After the script
|
||||
finished you should see messages of what could cause trouble with GeSHi or where
|
||||
your language files can be improved. Please be patient, as this might take some time.</p>
|
||||
|
||||
<ol>
|
||||
<li>Checking where to find GeSHi installation ...<?php
|
||||
} else { ?>
|
||||
<?php echo colorize(TYPE_NOTICE, "#### GeSHi Language File Validation Script ####") ?>
|
||||
|
||||
|
||||
To use this script, make sure that <?php echo colorize(TYPE_NOTICE, "geshi.php"); ?> is in the
|
||||
parent directory or in your include_path, and that the language files are in a
|
||||
subdirectory of GeSHi's directory called <?php echo colorize(TYPE_NOTICE, "geshi/"); ?>.
|
||||
|
||||
Everything else will be done by this script automatically. After the script
|
||||
finished you should see messages of what could cause trouble with GeSHi or where
|
||||
your language files can be improved. Please be patient, as this might take some time.
|
||||
|
||||
|
||||
Checking where to find GeSHi installation ...<?php echo "\t";
|
||||
}
|
||||
|
||||
// Rudimentary checking of where GeSHi is. In a default install it will be in ../, but
|
||||
// it could be in the current directory if the include_path is set. There's nowhere else
|
||||
// we can reasonably guess.
|
||||
if (is_readable('../geshi.php')) {
|
||||
$path = '../';
|
||||
} elseif (is_readable('geshi.php')) {
|
||||
$path = './';
|
||||
} else {
|
||||
report_error(TYPE_ERROR, 'Could not find geshi.php - make sure it is in your include path!');
|
||||
}
|
||||
|
||||
if(!$error_abort) {
|
||||
require $path . 'geshi.php';
|
||||
|
||||
if(!class_exists('GeSHi')) {
|
||||
report_error(TYPE_ERROR, 'The GeSHi class was not found, although it seemed we loaded the correct file!');
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error_abort) {
|
||||
if(!defined('GESHI_LANG_ROOT')) {
|
||||
report_error(TYPE_ERROR, 'There\'s no information present on where to find the language files!');
|
||||
} elseif(!is_dir(GESHI_LANG_ROOT)) {
|
||||
report_error(TYPE_ERROR, 'The path "'.GESHI_LANG_ROOT.'" given, does not ressemble a directory!');
|
||||
} elseif(!is_readable(GESHI_LANG_ROOT)) {
|
||||
report_error(TYPE_ERROR, 'The path "'.GESHI_LANG_ROOT.'" is not readable to this script!');
|
||||
}
|
||||
}
|
||||
|
||||
output_error_cache();
|
||||
|
||||
if(!$error_abort) {
|
||||
if ( PHP_SAPI == 'cli' ) {
|
||||
echo "Listing available language files ...\t\t";
|
||||
} else {
|
||||
echo "</li>\n<li>Listing available language files ... ";
|
||||
}
|
||||
|
||||
if (!($dir = @opendir(GESHI_LANG_ROOT))) {
|
||||
report_error(TYPE_ERROR, 'Error requesting listing for available language files!');
|
||||
}
|
||||
|
||||
$languages = array();
|
||||
|
||||
if(!$error_abort) {
|
||||
while ($file = readdir($dir)) {
|
||||
if (!$file || $file[0] == '.' || strpos($file, '.php') === false) {
|
||||
continue;
|
||||
}
|
||||
$lang = substr($file, 0, strpos($file, '.'));
|
||||
if(4 != strlen($file) - strlen($lang)) {
|
||||
continue;
|
||||
}
|
||||
$languages[] = $lang;
|
||||
}
|
||||
closedir($dir);
|
||||
}
|
||||
|
||||
$languages = array_unique($languages);
|
||||
sort($languages);
|
||||
|
||||
if(!count($languages)) {
|
||||
report_error(TYPE_WARNING, 'Unable to locate any usable language files in "'.GESHI_LANG_ROOT.'"!');
|
||||
}
|
||||
|
||||
output_error_cache();
|
||||
}
|
||||
|
||||
if ( PHP_SAPI == 'cli' ) {
|
||||
if (isset($_SERVER['argv'][1]) && in_array($_SERVER['argv'][1], $languages)) {
|
||||
$languages = array($_SERVER['argv'][1]);
|
||||
}
|
||||
} else {
|
||||
if (isset($_REQUEST['show']) && in_array($_REQUEST['show'], $languages)) {
|
||||
$languages = array($_REQUEST['show']);
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error_abort) {
|
||||
foreach ($languages as $lang) {
|
||||
|
||||
if ( PHP_SAPI == 'cli' ) {
|
||||
echo "Validating language file for '$lang' ...\t\t";
|
||||
} else {
|
||||
echo "</li>\n<li>Validating language file for '$lang' ... ";
|
||||
}
|
||||
|
||||
$langfile = GESHI_LANG_ROOT . $lang . '.php';
|
||||
|
||||
$language_data = array();
|
||||
|
||||
if(!is_file($langfile)) {
|
||||
report_error(TYPE_ERROR, 'The path "' .$langfile. '" does not ressemble a regular file!');
|
||||
} elseif(!is_readable($langfile)) {
|
||||
report_error(TYPE_ERROR, 'Cannot read file "' .$langfile. '"!');
|
||||
} else {
|
||||
$langfile_content = file_get_contents($langfile);
|
||||
if(preg_match("/\?>(?:\r?\n|\r(?!\n)){2,}\Z/", $langfile_content)) {
|
||||
report_error(TYPE_ERROR, 'Language file contains trailing empty lines at EOF!');
|
||||
}
|
||||
if(preg_match("/\?>(?:\r?\n|\r(?!\n))?\Z/", $langfile_content)) {
|
||||
report_error(TYPE_ERROR, 'Language file contains an PHP end marker at EOF!');
|
||||
}
|
||||
if(!preg_match("/(?:\r?\n|\r(?!\n))\Z/", $langfile_content)) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no newline at EOF!');
|
||||
}
|
||||
if(preg_match("/(\r?\n|\r(?!\n))\\1\Z/", $langfile_content)) {
|
||||
report_error(TYPE_ERROR, 'Language file contains trailing empty line before EOF!');
|
||||
}
|
||||
if(preg_match("/[\x20\t]$/m", $langfile_content)) {
|
||||
report_error(TYPE_ERROR, 'Language file contains trailing whitespace at EOL!');
|
||||
}
|
||||
if(preg_match("/\t/", $langfile_content)) {
|
||||
report_error(TYPE_NOTICE, 'Language file contains unescaped tabulator chars (probably for indentation)!');
|
||||
}
|
||||
if(preg_match('/^(?: )*(?! )(?! \*) /m', $langfile_content)) {
|
||||
report_error(TYPE_NOTICE, 'Language file contains irregular indentation (other than 4 spaces per indentation level)!');
|
||||
}
|
||||
|
||||
if(!preg_match("/\/\*\*((?!\*\/).)*?Author:((?!\*\/).)*?\*\//s", $langfile_content)) {
|
||||
report_error(TYPE_WARNING, 'Language file does not contain a specification of an author!');
|
||||
}
|
||||
if(!preg_match("/\/\*\*((?!\*\/).)*?Copyright:((?!\*\/).)*?\*\//s", $langfile_content)) {
|
||||
report_error(TYPE_WARNING, 'Language file does not contain a specification of the copyright!');
|
||||
}
|
||||
if(!preg_match("/\/\*\*((?!\*\/).)*?Release Version:((?!\*\/).)*?\*\//s", $langfile_content)) {
|
||||
report_error(TYPE_WARNING, 'Language file does not contain a specification of the release version!');
|
||||
}
|
||||
if(!preg_match("/\/\*\*((?!\*\/).)*?Date Started:((?!\*\/).)*?\*\//s", $langfile_content)) {
|
||||
report_error(TYPE_WARNING, 'Language file does not contain a specification of the date it was started!');
|
||||
}
|
||||
if(!preg_match("/\/\*\*((?!\*\/).)*?This file is part of GeSHi\.((?!\*\/).)*?\*\//s", $langfile_content)) {
|
||||
report_error(TYPE_WARNING, 'Language file does not state that it belongs to GeSHi!');
|
||||
}
|
||||
if(!preg_match("/\/\*\*((?!\*\/).)*?language file for GeSHi\.((?!\*\/).)*?\*\//s", $langfile_content)) {
|
||||
report_error(TYPE_WARNING, 'Language file does not state that it is a language file for GeSHi!');
|
||||
}
|
||||
if(!preg_match("/\/\*\*((?!\*\/).)*?GNU General Public License((?!\*\/).)*?\*\//s", $langfile_content)) {
|
||||
report_error(TYPE_WARNING, 'Language file does not state that it is provided under the terms of the GNU GPL!');
|
||||
}
|
||||
|
||||
unset($langfile_content);
|
||||
|
||||
include $langfile;
|
||||
|
||||
if(!isset($language_data)) {
|
||||
report_error(TYPE_ERROR, 'Language file does not contain a $language_data structure to check!');
|
||||
} elseif (!is_array($language_data)) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data structure which is not an array!');
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error_abort) {
|
||||
if(!isset($language_data['LANG_NAME'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'LANG_NAME\'] specification!');
|
||||
} elseif (!is_string($language_data['LANG_NAME'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'LANG_NAME\'] specification which is not a string!');
|
||||
}
|
||||
|
||||
if(!isset($language_data['COMMENT_SINGLE'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'COMMENT_SIGNLE\'] structure to check!');
|
||||
} elseif (!is_array($language_data['COMMENT_SINGLE'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'COMMENT_SINGLE\'] structure which is not an array!');
|
||||
}
|
||||
|
||||
if(!isset($language_data['COMMENT_MULTI'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'COMMENT_MULTI\'] structure to check!');
|
||||
} elseif (!is_array($language_data['COMMENT_MULTI'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'COMMENT_MULTI\'] structure which is not an array!');
|
||||
}
|
||||
|
||||
if(isset($language_data['COMMENT_REGEXP'])) {
|
||||
if (!is_array($language_data['COMMENT_REGEXP'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'COMMENT_REGEXP\'] structure which is not an array!');
|
||||
}
|
||||
}
|
||||
|
||||
if(!isset($language_data['QUOTEMARKS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'QUOTEMARKS\'] structure to check!');
|
||||
} elseif (!is_array($language_data['QUOTEMARKS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'QUOTEMARKS\'] structure which is not an array!');
|
||||
}
|
||||
|
||||
if(isset($language_data['HARDQUOTE'])) {
|
||||
if (!is_array($language_data['HARDQUOTE'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'HARDQUOTE\'] structure which is not an array!');
|
||||
}
|
||||
}
|
||||
|
||||
if(!isset($language_data['ESCAPE_CHAR'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'ESCAPE_CHAR\'] specification to check!');
|
||||
} elseif (!is_string($language_data['ESCAPE_CHAR'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'ESCAPE_CHAR\'] specification which is not a string!');
|
||||
} elseif (1 < strlen($language_data['ESCAPE_CHAR'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'ESCAPE_CHAR\'] specification is not empty or exactly one char!');
|
||||
}
|
||||
|
||||
if(!isset($language_data['CASE_KEYWORDS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'CASE_KEYWORDS\'] specification!');
|
||||
} elseif (!is_int($language_data['CASE_KEYWORDS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'CASE_KEYWORDS\'] specification which is not an integer!');
|
||||
} elseif (GESHI_CAPS_NO_CHANGE != $language_data['CASE_KEYWORDS'] &&
|
||||
GESHI_CAPS_LOWER != $language_data['CASE_KEYWORDS'] &&
|
||||
GESHI_CAPS_UPPER != $language_data['CASE_KEYWORDS']) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'CASE_KEYWORDS\'] specification which is neither of GESHI_CAPS_NO_CHANGE, GESHI_CAPS_LOWER nor GESHI_CAPS_UPPER!');
|
||||
}
|
||||
|
||||
if(!isset($language_data['KEYWORDS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'KEYWORDS\'] structure to check!');
|
||||
} elseif (!is_array($language_data['KEYWORDS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'KEYWORDS\'] structure which is not an array!');
|
||||
} else {
|
||||
foreach($language_data['KEYWORDS'] as $kw_key => $kw_value) {
|
||||
if(!is_integer($kw_key)) {
|
||||
report_error(TYPE_WARNING, "Language file contains an key '$kw_key' in \$language_data['KEYWORDS'] that is not integer!");
|
||||
} elseif (!is_array($kw_value)) {
|
||||
report_error(TYPE_ERROR, "Language file contains a \$language_data['KEYWORDS']['$kw_value'] structure which is not an array!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!isset($language_data['SYMBOLS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'SYMBOLS\'] structure to check!');
|
||||
} elseif (!is_array($language_data['SYMBOLS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'SYMBOLS\'] structure which is not an array!');
|
||||
}
|
||||
|
||||
if(!isset($language_data['CASE_SENSITIVE'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'CASE_SENSITIVE\'] structure to check!');
|
||||
} elseif (!is_array($language_data['CASE_SENSITIVE'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'CASE_SENSITIVE\'] structure which is not an array!');
|
||||
} else {
|
||||
foreach($language_data['CASE_SENSITIVE'] as $cs_key => $cs_value) {
|
||||
if(!is_integer($cs_key)) {
|
||||
report_error(TYPE_WARNING, "Language file contains an key '$cs_key' in \$language_data['CASE_SENSITIVE'] that is not integer!");
|
||||
} elseif (!is_bool($cs_value)) {
|
||||
report_error(TYPE_ERROR, "Language file contains a Case Sensitivity specification for \$language_data['CASE_SENSITIVE']['$cs_value'] which is not a boolean!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!isset($language_data['URLS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'URLS\'] structure to check!');
|
||||
} elseif (!is_array($language_data['URLS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'URLS\'] structure which is not an array!');
|
||||
} else {
|
||||
foreach($language_data['URLS'] as $url_key => $url_value) {
|
||||
if(!is_integer($url_key)) {
|
||||
report_error(TYPE_WARNING, "Language file contains an key '$url_key' in \$language_data['URLS'] that is not integer!");
|
||||
} elseif (!is_string($url_value)) {
|
||||
report_error(TYPE_ERROR, "Language file contains a Documentation URL specification for \$language_data['URLS']['$url_value'] which is not a string!");
|
||||
} elseif (preg_match('#&([^;]*(=|$))#U', $url_value)) {
|
||||
report_error(TYPE_ERROR, "Language file contains unescaped ampersands (&) in \$language_data['URLS']!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!isset($language_data['OOLANG'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'OOLANG\'] specification!');
|
||||
} elseif (!is_int($language_data['OOLANG']) && !is_bool($language_data['OOLANG'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'OOLANG\'] specification which is neither boolean nor integer!');
|
||||
} elseif (false !== $language_data['OOLANG'] &&
|
||||
true !== $language_data['OOLANG'] &&
|
||||
2 !== $language_data['OOLANG']) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'OOLANG\'] specification which is neither of false, true or 2!');
|
||||
}
|
||||
|
||||
if(!isset($language_data['OBJECT_SPLITTERS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'OBJECT_SPLITTERS\'] structure to check!');
|
||||
} elseif (!is_array($language_data['OBJECT_SPLITTERS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'OBJECT_SPLITTERS\'] structure which is not an array!');
|
||||
}
|
||||
|
||||
if(!isset($language_data['REGEXPS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'REGEXPS\'] structure to check!');
|
||||
} elseif (!is_array($language_data['REGEXPS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'REGEXPS\'] structure which is not an array!');
|
||||
}
|
||||
|
||||
if(!isset($language_data['STRICT_MODE_APPLIES'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'STRICT_MODE_APPLIES\'] specification!');
|
||||
} elseif (!is_int($language_data['STRICT_MODE_APPLIES'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'STRICT_MODE_APPLIES\'] specification which is not an integer!');
|
||||
} elseif (GESHI_MAYBE != $language_data['STRICT_MODE_APPLIES'] &&
|
||||
GESHI_ALWAYS != $language_data['STRICT_MODE_APPLIES'] &&
|
||||
GESHI_NEVER != $language_data['STRICT_MODE_APPLIES']) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'STRICT_MODE_APPLIES\'] specification which is neither of GESHI_MAYBE, GESHI_ALWAYS nor GESHI_NEVER!');
|
||||
}
|
||||
|
||||
if(!isset($language_data['SCRIPT_DELIMITERS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'SCRIPT_DELIMITERS\'] structure to check!');
|
||||
} elseif (!is_array($language_data['SCRIPT_DELIMITERS'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'SCRIPT_DELIMITERS\'] structure which is not an array!');
|
||||
}
|
||||
|
||||
if(!isset($language_data['HIGHLIGHT_STRICT_BLOCK'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'HIGHLIGHT_STRICT_BLOCK\'] structure to check!');
|
||||
} elseif (!is_array($language_data['HIGHLIGHT_STRICT_BLOCK'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'HIGHLIGHT_STRICT_BLOCK\'] structure which is not an array!');
|
||||
}
|
||||
|
||||
if(isset($language_data['TAB_WIDTH'])) {
|
||||
if (!is_int($language_data['TAB_WIDTH'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'TAB_WIDTH\'] specification which is not an integer!');
|
||||
} elseif (1 > $language_data['TAB_WIDTH']) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'TAB_WIDTH\'] specification which is less than 1!');
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($language_data['PARSER_CONTROL'])) {
|
||||
if (!is_array($language_data['PARSER_CONTROL'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'PARSER_CONTROL\'] structure which is not an array!');
|
||||
}
|
||||
}
|
||||
|
||||
if(!isset($language_data['STYLES'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'STYLES\'] structure to check!');
|
||||
} elseif (!is_array($language_data['STYLES'])) {
|
||||
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'STYLES\'] structure which is not an array!');
|
||||
} else {
|
||||
$style_arrays = array('KEYWORDS', 'COMMENTS', 'ESCAPE_CHAR',
|
||||
'BRACKETS', 'STRINGS', 'NUMBERS', 'METHODS', 'SYMBOLS',
|
||||
'REGEXPS', 'SCRIPT');
|
||||
foreach($style_arrays as $style_kind) {
|
||||
if(!isset($language_data['STYLES'][$style_kind])) {
|
||||
report_error(TYPE_ERROR, "Language file contains no \$language_data['STYLES']['$style_kind'] structure to check!");
|
||||
} elseif (!is_array($language_data['STYLES'][$style_kind])) {
|
||||
report_error(TYPE_ERROR, "Language file contains a \$language_data['STYLES\']['$style_kind'] structure which is not an array!");
|
||||
} else {
|
||||
foreach($language_data['STYLES'][$style_kind] as $sk_key => $sk_value) {
|
||||
if(!is_int($sk_key) && ('COMMENTS' != $style_kind && 'MULTI' != $sk_key)
|
||||
&& !(('STRINGS' == $style_kind || 'ESCAPE_CHAR' == $style_kind) && 'HARD' == $sk_key)) {
|
||||
report_error(TYPE_WARNING, "Language file contains an key '$sk_key' in \$language_data['STYLES']['$style_kind'] that is not integer!");
|
||||
} elseif (!is_string($sk_value)) {
|
||||
report_error(TYPE_WARNING, "Language file contains a CSS specification for \$language_data['STYLES']['$style_kind'][$key] which is not a string!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unset($style_arrays);
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error_abort) {
|
||||
//Initial sanity checks survived? --> Let's dig deeper!
|
||||
foreach($language_data['KEYWORDS'] as $key => $keywords) {
|
||||
if(!isset($language_data['CASE_SENSITIVE'][$key])) {
|
||||
report_error(TYPE_ERROR, "Language file contains no \$language_data['CASE_SENSITIVE'] specification for keyword group $key!");
|
||||
}
|
||||
if(!isset($language_data['URLS'][$key])) {
|
||||
report_error(TYPE_ERROR, "Language file contains no \$language_data['URLS'] specification for keyword group $key!");
|
||||
}
|
||||
if(empty($keywords)) {
|
||||
report_error(TYPE_WARNING, "Language file contains an empty keyword list in \$language_data['KEYWORDS'] for group $key!");
|
||||
}
|
||||
foreach($keywords as $id => $kw) {
|
||||
if(!is_string($kw)) {
|
||||
report_error(TYPE_WARNING, "Language file contains an non-string entry at \$language_data['KEYWORDS'][$key][$id]!");
|
||||
} elseif (!strlen($kw)) {
|
||||
report_error(TYPE_ERROR, "Language file contains an empty string entry at \$language_data['KEYWORDS'][$key][$id]!");
|
||||
} elseif (preg_match('/^([\(\)\{\}\[\]\^=.,:;\-+\*\/%\$\"\'\?]|&[\w#]\w*;)+$/i', $kw)) {
|
||||
report_error(TYPE_NOTICE, "Language file contains an keyword ('$kw') at \$language_data['KEYWORDS'][$key][$id] which seems to be better suited for the symbols section!");
|
||||
}
|
||||
}
|
||||
if(isset($language_data['CASE_SENSITIVE'][$key]) && !$language_data['CASE_SENSITIVE'][$key]) {
|
||||
array_walk($keywords, 'dupfind_strtolower');
|
||||
}
|
||||
if(count($keywords) != count(array_unique($keywords))) {
|
||||
$kw_diffs = array_count_values($keywords);
|
||||
foreach($kw_diffs as $kw => $kw_count) {
|
||||
if($kw_count > 1) {
|
||||
report_error(TYPE_WARNING, "Language file contains per-group duplicate keyword '$kw' in \$language_data['KEYWORDS'][$key]!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$disallowed_before = "(?<![a-zA-Z0-9\$_\|\#;>|^&";
|
||||
$disallowed_after = "(?![a-zA-Z0-9_\|%\\-&;";
|
||||
|
||||
foreach($language_data['KEYWORDS'] as $key => $keywords) {
|
||||
foreach($language_data['KEYWORDS'] as $key2 => $keywords2) {
|
||||
if($key2 <= $key) {
|
||||
continue;
|
||||
}
|
||||
$kw_diffs = array_intersect($keywords, $keywords2);
|
||||
foreach($kw_diffs as $kw) {
|
||||
if(isset($language_data['PARSER_CONTROL']['KEYWORDS'])) {
|
||||
//Check the precondition\post-cindition for the involved keyword groups
|
||||
$g1_pre = $disallowed_before;
|
||||
$g2_pre = $disallowed_before;
|
||||
$g1_post = $disallowed_after;
|
||||
$g2_post = $disallowed_after;
|
||||
if(isset($language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'])) {
|
||||
$g1_pre = $language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'];
|
||||
$g2_pre = $language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'];
|
||||
}
|
||||
if(isset($language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'])) {
|
||||
$g1_post = $language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'];
|
||||
$g2_post = $language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'];
|
||||
}
|
||||
|
||||
if(isset($language_data['PARSER_CONTROL']['KEYWORDS'][$key]['DISALLOWED_BEFORE'])) {
|
||||
$g1_pre = $language_data['PARSER_CONTROL']['KEYWORDS'][$key]['DISALLOWED_BEFORE'];
|
||||
}
|
||||
if(isset($language_data['PARSER_CONTROL']['KEYWORDS'][$key]['DISALLOWED_AFTER'])) {
|
||||
$g1_post = $language_data['PARSER_CONTROL']['KEYWORDS'][$key]['DISALLOWED_AFTER'];
|
||||
}
|
||||
|
||||
if(isset($language_data['PARSER_CONTROL']['KEYWORDS'][$key2]['DISALLOWED_BEFORE'])) {
|
||||
$g2_pre = $language_data['PARSER_CONTROL']['KEYWORDS'][$key2]['DISALLOWED_BEFORE'];
|
||||
}
|
||||
if(isset($language_data['PARSER_CONTROL']['KEYWORDS'][$key2]['DISALLOWED_AFTER'])) {
|
||||
$g2_post = $language_data['PARSER_CONTROL']['KEYWORDS'][$key2]['DISALLOWED_AFTER'];
|
||||
}
|
||||
|
||||
if($g1_pre != $g2_pre || $g1_post != $g2_post) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
report_error(TYPE_WARNING, "Language file contains cross-group duplicate keyword '$kw' in \$language_data['KEYWORDS'][$key] and \$language_data['KEYWORDS'][$key2]!");
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach($language_data['CASE_SENSITIVE'] as $key => $keywords) {
|
||||
if(!isset($language_data['KEYWORDS'][$key]) && $key != GESHI_COMMENTS) {
|
||||
report_error(TYPE_WARNING, "Language file contains an superfluous \$language_data['CASE_SENSITIVE'] specification for non-existing keyword group $key!");
|
||||
}
|
||||
}
|
||||
foreach($language_data['URLS'] as $key => $keywords) {
|
||||
if(!isset($language_data['KEYWORDS'][$key])) {
|
||||
report_error(TYPE_WARNING, "Language file contains an superfluous \$language_data['URLS'] specification for non-existing keyword group $key!");
|
||||
}
|
||||
}
|
||||
foreach($language_data['STYLES']['KEYWORDS'] as $key => $keywords) {
|
||||
if(!isset($language_data['KEYWORDS'][$key])) {
|
||||
report_error(TYPE_WARNING, "Language file contains an superfluous \$language_data['STYLES']['KEYWORDS'] specification for non-existing keyword group $key!");
|
||||
}
|
||||
}
|
||||
|
||||
foreach($language_data['COMMENT_SINGLE'] as $ck => $cv) {
|
||||
if(!is_int($ck)) {
|
||||
report_error(TYPE_WARNING, "Language file contains an key '$ck' in \$language_data['COMMENT_SINGLE'] that is not integer!");
|
||||
}
|
||||
if(!is_string($cv)) {
|
||||
report_error(TYPE_WARNING, "Language file contains an non-string entry at \$language_data['COMMENT_SINGLE'][$ck]!");
|
||||
}
|
||||
if(!isset($language_data['STYLES']['COMMENTS'][$ck])) {
|
||||
report_error(TYPE_WARNING, "Language file contains no \$language_data['STYLES']['COMMENTS'] specification for comment group $ck!");
|
||||
}
|
||||
}
|
||||
if(isset($language_data['COMMENT_REGEXP'])) {
|
||||
foreach($language_data['COMMENT_REGEXP'] as $ck => $cv) {
|
||||
if(!is_int($ck)) {
|
||||
report_error(TYPE_WARNING, "Language file contains an key '$ck' in \$language_data['COMMENT_REGEXP'] that is not integer!");
|
||||
}
|
||||
if(!is_string($cv)) {
|
||||
report_error(TYPE_WARNING, "Language file contains an non-string entry at \$language_data['COMMENT_REGEXP'][$ck]!");
|
||||
}
|
||||
if(!isset($language_data['STYLES']['COMMENTS'][$ck])) {
|
||||
report_error(TYPE_WARNING, "Language file contains no \$language_data['STYLES']['COMMENTS'] specification for comment group $ck!");
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach($language_data['STYLES']['COMMENTS'] as $ck => $cv) {
|
||||
if($ck != 'MULTI' && !isset($language_data['COMMENT_SINGLE'][$ck]) &&
|
||||
!isset($language_data['COMMENT_REGEXP'][$ck])) {
|
||||
report_error(TYPE_NOTICE, "Language file contains an superfluous \$language_data['STYLES']['COMMENTS'] specification for Single Line or Regular-Expression Comment key $ck!");
|
||||
}
|
||||
}
|
||||
if (isset($language_data['STYLES']['STRINGS']['HARD'])) {
|
||||
if (empty($language_data['HARDQUOTE'])) {
|
||||
report_error(TYPE_NOTICE, "Language file contains superfluous \$language_data['STYLES']['STRINGS'] specification for key 'HARD', but no 'HARDQUOTE's are defined!");
|
||||
}
|
||||
unset($language_data['STYLES']['STRINGS']['HARD']);
|
||||
}
|
||||
foreach($language_data['STYLES']['STRINGS'] as $sk => $sv) {
|
||||
if($sk && !isset($language_data['QUOTEMARKS'][$sk])) {
|
||||
report_error(TYPE_NOTICE, "Language file contains an superfluous \$language_data['STYLES']['STRINGS'] specification for non-existing quotemark key $sk!");
|
||||
}
|
||||
}
|
||||
|
||||
foreach($language_data['REGEXPS'] as $rk => $rv) {
|
||||
if(!is_int($rk)) {
|
||||
report_error(TYPE_WARNING, "Language file contains an key '$rk' in \$language_data['REGEXPS'] that is not integer!");
|
||||
}
|
||||
if(is_string($rv)) {
|
||||
//Check for unmasked / in regular expressions ...
|
||||
if(empty($rv)) {
|
||||
report_error(TYPE_WARNING, "Language file contains an empty regular expression at \$language_data['REGEXPS'][$rk]!");
|
||||
} else {
|
||||
if(preg_match("/(?<!\\\\)\//s", $rv)) {
|
||||
report_error(TYPE_WARNING, "Language file contains a regular expression with an unmasked / character at \$language_data['REGEXPS'][$rk]!");
|
||||
} elseif (preg_match("/(?<!<)(\\\\\\\\)*\\\\\|(?!>)/s", $rv)) {
|
||||
report_error(TYPE_WARNING, "Language file contains a regular expression with an unescaped match for a pipe character '|' which needs escaping as '<PIPE>' instead at \$language_data['REGEXPS'][$rk]!");
|
||||
}
|
||||
}
|
||||
} elseif(is_array($rv)) {
|
||||
if(!isset($rv[GESHI_SEARCH])) {
|
||||
report_error(TYPE_ERROR, "Language file contains no GESHI_SEARCH entry in extended regular expression at \$language_data['REGEXPS'][$rk]!");
|
||||
} elseif(!is_string($rv[GESHI_SEARCH])) {
|
||||
report_error(TYPE_ERROR, "Language file contains a GESHI_SEARCH entry in extended regular expression at \$language_data['REGEXPS'][$rk] which is not a string!");
|
||||
} else {
|
||||
if(preg_match("/(?<!\\\\)\//s", $rv[GESHI_SEARCH])) {
|
||||
report_error(TYPE_WARNING, "Language file contains a regular expression with an unmasked / character at \$language_data['REGEXPS'][$rk]!");
|
||||
} elseif (preg_match("/(?<!<)(\\\\\\\\)*\\\\\|(?!>)/s", $rv[GESHI_SEARCH])) {
|
||||
report_error(TYPE_WARNING, "Language file contains a regular expression with an unescaped match for a pipe character '|' which needs escaping as '<PIPE>' instead at \$language_data['REGEXPS'][$rk]!");
|
||||
}
|
||||
}
|
||||
if(!isset($rv[GESHI_REPLACE])) {
|
||||
report_error(TYPE_WARNING, "Language file contains no GESHI_REPLACE entry in extended regular expression at \$language_data['REGEXPS'][$rk]!");
|
||||
} elseif(!is_string($rv[GESHI_REPLACE])) {
|
||||
report_error(TYPE_ERROR, "Language file contains a GESHI_REPLACE entry in extended regular expression at \$language_data['REGEXPS'][$rk] which is not a string!");
|
||||
}
|
||||
if(!isset($rv[GESHI_MODIFIERS])) {
|
||||
report_error(TYPE_WARNING, "Language file contains no GESHI_MODIFIERS entry in extended regular expression at \$language_data['REGEXPS'][$rk]!");
|
||||
} elseif(!is_string($rv[GESHI_MODIFIERS])) {
|
||||
report_error(TYPE_ERROR, "Language file contains a GESHI_MODIFIERS entry in extended regular expression at \$language_data['REGEXPS'][$rk] which is not a string!");
|
||||
}
|
||||
if(!isset($rv[GESHI_BEFORE])) {
|
||||
report_error(TYPE_WARNING, "Language file contains no GESHI_BEFORE entry in extended regular expression at \$language_data['REGEXPS'][$rk]!");
|
||||
} elseif(!is_string($rv[GESHI_BEFORE])) {
|
||||
report_error(TYPE_ERROR, "Language file contains a GESHI_BEFORE entry in extended regular expression at \$language_data['REGEXPS'][$rk] which is not a string!");
|
||||
}
|
||||
if(!isset($rv[GESHI_AFTER])) {
|
||||
report_error(TYPE_WARNING, "Language file contains no GESHI_AFTER entry in extended regular expression at \$language_data['REGEXPS'][$rk]!");
|
||||
} elseif(!is_string($rv[GESHI_AFTER])) {
|
||||
report_error(TYPE_ERROR, "Language file contains a GESHI_AFTER entry in extended regular expression at \$language_data['REGEXPS'][$rk] which is not a string!");
|
||||
}
|
||||
} else {
|
||||
report_error(TYPE_WARNING, "Language file contains an non-string and non-array entry at \$language_data['REGEXPS'][$rk]!");
|
||||
}
|
||||
if(!isset($language_data['STYLES']['REGEXPS'][$rk])) {
|
||||
report_error(TYPE_WARNING, "Language file contains no \$language_data['STYLES']['REGEXPS'] specification for regexp group $rk!");
|
||||
}
|
||||
}
|
||||
foreach($language_data['STYLES']['REGEXPS'] as $rk => $rv) {
|
||||
if(!isset($language_data['REGEXPS'][$rk])) {
|
||||
report_error(TYPE_NOTICE, "Language file contains an superfluous \$language_data['STYLES']['REGEXPS'] specification for regexp key $rk!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
output_error_cache();
|
||||
|
||||
flush();
|
||||
|
||||
if($error_abort) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$time_end = explode(' ', microtime());
|
||||
$time_diff = $time_end[0] + $time_end[1] - $time_start[0] - $time_start[1];
|
||||
|
||||
if ( PHP_SAPI != 'cli' ) {
|
||||
?></li>
|
||||
</ol>
|
||||
|
||||
<p>Validation process completed in <?php printf("%.2f", $time_diff); ?> seconds.</p>
|
||||
|
||||
<div id="footer">GeSHi © 2004-2007 Nigel McNie, 2007-2008 Benny Baumann, released under the GNU GPL</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<?php } else { ?>
|
||||
|
||||
Validation process completed in <?php printf("%.2f", $time_diff); ?> seconds.
|
||||
|
||||
GeSHi © 2004-2007 Nigel McNie, 2007-2014 Benny Baumann, released under the GNU GPL
|
||||
|
||||
<?php } ?>
|
@ -173,17 +173,20 @@ features are made available through this script.</p>
|
||||
// Rudimentary checking of where GeSHi is. In a default install it will be in ../, but
|
||||
// it could be in the current directory if the include_path is set. There's nowhere else
|
||||
// we can reasonably guess.
|
||||
if (is_readable('../geshi.php')) {
|
||||
$path = '../';
|
||||
} elseif (is_readable('geshi.php')) {
|
||||
$path = './';
|
||||
if (file_exists(__DIR__ . '/../vendor/autoload.php')) {
|
||||
//composer install
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
} else if (file_exists(__DIR__ . '/../src/geshi.php')) {
|
||||
//git checkout
|
||||
require __DIR__ . '/../src/geshi.php';
|
||||
} else if (stream_resolve_include_path('geshi.php')) {
|
||||
// Assume you've put geshi in the include_path already
|
||||
require_once 'geshi.php';
|
||||
} else {
|
||||
report_error(TYPE_ERROR, 'Could not find geshi.php - make sure it is in your include path!');
|
||||
}
|
||||
|
||||
if(!$error_abort) {
|
||||
require $path . 'geshi.php';
|
||||
|
||||
if(!class_exists('GeSHi')) {
|
||||
report_error(TYPE_ERROR, 'The GeSHi class was not found, although it seemed we loaded the correct file!');
|
||||
}
|
||||
@ -347,7 +350,7 @@ for($i = 1; $i <= count($kw_cases_sel); $i += 1) {
|
||||
}
|
||||
|
||||
$lang = validate_lang();
|
||||
var_dump($lang);
|
||||
//var_dump($lang);
|
||||
echo "</pre>";
|
||||
|
||||
?>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -4,7 +4,7 @@
|
||||
* ------
|
||||
* Author: Jason Curl (jason.curl@continental-corporation.com)
|
||||
* Copyright: (c) 2009 Jason Curl
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2009/09/05
|
||||
*
|
||||
* 4CS language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* -------
|
||||
* Author: Warren Willmey
|
||||
* Copyright: (c) 2010 Warren Willmey.
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2010/05/26
|
||||
*
|
||||
* MOS 6502 (more specifically 6510) ACME Cross Assembler 0.93 by Marco Baye language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* -------
|
||||
* Author: Warren Willmey
|
||||
* Copyright: (c) 2010 Warren Willmey.
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2010/06/07
|
||||
*
|
||||
* MOS 6502 (6510) Kick Assembler 3.13 language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* -------
|
||||
* Author: Warren Willmey
|
||||
* Copyright: (c) 2010 Warren Willmey.
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2010/06/02
|
||||
*
|
||||
* MOS 6502 (6510) TASM/64TASS (64TASS being the super set of TASM) language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* -------
|
||||
* Author: Warren Willmey
|
||||
* Copyright: (c) 2010 Warren Willmey.
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2010/06/09
|
||||
*
|
||||
* Motorola 68000 - HiSoft Devpac ST 2 Assembler language file for GeSHi.
|
||||
|
@ -7,7 +7,7 @@
|
||||
* - Sandra Rossi (sandra.rossi@gmail.com)
|
||||
* - Jacob Laursen (jlu@kmd.dk)
|
||||
* Copyright: (c) 2007 Andres Picazo
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/06/04
|
||||
*
|
||||
* ABAP language file for GeSHi.
|
||||
@ -1326,15 +1326,15 @@ $language_data = array(
|
||||
),
|
||||
'STYLES' => array(
|
||||
'KEYWORDS' => array(
|
||||
1 => 'color: #000066; text-transform: uppercase; font-weight: bold; zzz:control;', //control statements
|
||||
2 => 'color: #cc4050; text-transform: uppercase; font-weight: bold; zzz:data;', //data statements
|
||||
3 => 'color: #005066; text-transform: uppercase; font-weight: bold; zzz:statement;', //first token of other statements
|
||||
4 => 'color: #500066; text-transform: uppercase; font-weight: bold; zzz:keyword;', // next tokens of other statements ("keywords")
|
||||
5 => 'color: #005066; text-transform: uppercase; font-weight: bold; zzz:statement;',
|
||||
6 => 'color: #000066; text-transform: uppercase; font-weight: bold; zzz:control;',
|
||||
7 => 'color: #000066; text-transform: uppercase; font-weight: bold; zzz:control;',
|
||||
8 => 'color: #005066; text-transform: uppercase; font-weight: bold; zzz:statement;',
|
||||
9 => 'color: #500066; text-transform: uppercase; font-weight: bold; zzz:keyword;'
|
||||
1 => 'color: #000066; font-weight: bold; zzz:control;', //control statements
|
||||
2 => 'color: #cc4050; font-weight: bold; zzz:data;', //data statements
|
||||
3 => 'color: #005066; font-weight: bold; zzz:statement;', //first token of other statements
|
||||
4 => 'color: #500066; font-weight: bold; zzz:keyword;', // next tokens of other statements ("keywords")
|
||||
5 => 'color: #005066; font-weight: bold; zzz:statement;',
|
||||
6 => 'color: #000066; font-weight: bold; zzz:control;',
|
||||
7 => 'color: #000066; font-weight: bold; zzz:control;',
|
||||
8 => 'color: #005066; font-weight: bold; zzz:statement;',
|
||||
9 => 'color: #500066; font-weight: bold; zzz:keyword;'
|
||||
),
|
||||
'COMMENTS' => array(
|
||||
1 => 'color: #808080; font-style: italic;',
|
||||
@ -1368,9 +1368,9 @@ $language_data = array(
|
||||
)
|
||||
),
|
||||
'URLS' => array(
|
||||
1 => 'http://help.sap.com/abapdocu/en/ABAP{FNAMEU}.htm',
|
||||
2 => 'http://help.sap.com/abapdocu/en/ABAP{FNAMEU}.htm',
|
||||
3 => 'http://help.sap.com/abapdocu/en/ABAP{FNAMEU}.htm',
|
||||
1 => 'http://help.sap.com/abapdocu_740/en/ABAP{FNAMEU}.htm',
|
||||
2 => 'http://help.sap.com/abapdocu_740/en/ABAP{FNAMEU}.htm',
|
||||
3 => 'http://help.sap.com/abapdocu_740/en/ABAP{FNAMEU}.htm',
|
||||
4 => '',
|
||||
5 => '',
|
||||
6 => '',
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ----------------
|
||||
* Author: Steffen Krause (Steffen.krause@muse.de)
|
||||
* Copyright: (c) 2004 Steffen Krause, Nigel McNie (http://qbnz.com/highlighter)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/06/20
|
||||
*
|
||||
* Actionscript language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ----------------
|
||||
* Author: Jordi Boggiano (j.boggiano@seld.be)
|
||||
* Copyright: (c) 2007 Jordi Boggiano (http://www.seld.be/), Benny Baumann (http://qbnz.com/highlighter)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2007/11/26
|
||||
*
|
||||
* ActionScript3 language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* -------
|
||||
* Author: Tux (tux@inmail.cz)
|
||||
* Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/07/29
|
||||
*
|
||||
* Ada language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Guido Diepen (guido.diepen@aimms.com)
|
||||
* Copyright: (c) 2011 Guido Diepen (http://www.aimms.com)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2011/05/05
|
||||
*
|
||||
* AIMMS language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Neville Dempsey (NevilleD.sourceforge@sgr-a.net)
|
||||
* Copyright: (c) 2010 Neville Dempsey (https://sourceforge.net/projects/algol68/files/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2010/04/24
|
||||
*
|
||||
* ALGOL 68 language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ----------
|
||||
* Author: Tux (tux@inmail.cz)
|
||||
* Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/29/07
|
||||
*
|
||||
* Apache language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Stephan Klimek (http://www.initware.org)
|
||||
* Copyright: Stephan Klimek (http://www.initware.org)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2005/07/20
|
||||
*
|
||||
* AppleScript language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ----------
|
||||
* Author: Milian Wolff (mail@milianw.de)
|
||||
* Copyright: (c) 2008 Milian Wolff (http://milianw.de)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2008/06/17
|
||||
*
|
||||
* Apt sources.list language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* -------
|
||||
* Author: Marat Dukhan (mdukhan3.at.gatech.dot.edu)
|
||||
* Copyright: (c) Marat Dukhan (mdukhan3.at.gatech.dot.edu)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2011/10/06
|
||||
*
|
||||
* ARM Assembler language file for GeSHi.
|
||||
|
@ -8,7 +8,7 @@
|
||||
* 2009-2011 Benny Baumann (http://qbnz.com/highlighter),
|
||||
* 2011 Dennis Yurichev (dennis@conus.info),
|
||||
* 2011 Marat Dukhan (mdukhan3.at.gatech.dot.edu)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/07/27
|
||||
*
|
||||
* x86 Assembler language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Amit Gupta (http://blog.igeek.info/)
|
||||
* Copyright: (c) 2004 Amit Gupta (http://blog.igeek.info/), Nigel McNie (http://qbnz.com/highlighter)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/08/13
|
||||
*
|
||||
* ASP language file for GeSHi.
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -4,7 +4,7 @@
|
||||
* -----
|
||||
* Author: Mihai Vasilian (grayasm@gmail.com)
|
||||
* Copyright: (c) 2010 Mihai Vasilian
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2010/01/25
|
||||
*
|
||||
* autoconf language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Naveen Garg (naveen.garg@gmail.com)
|
||||
* Copyright: (c) 2009 Naveen Garg and GeSHi
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2009/06/11
|
||||
*
|
||||
* Autohotkey language file for GeSHi.
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Ryan Jones (sciguyryan@gmail.com)
|
||||
* Copyright: (c) 2008 Ryan Jones
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2008/10/08
|
||||
*
|
||||
* AviSynth language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* -------
|
||||
* Author: George Pollard (porges@porg.es)
|
||||
* Copyright: (c) 2009 George Pollard
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2009/01/28
|
||||
*
|
||||
* Awk language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ---------------------------------
|
||||
* Author: aquaticus.info
|
||||
* Copyright: (c) 2008 aquaticus.info
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2008/01/09
|
||||
*
|
||||
* BASCOM AVR language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Andreas Gohr (andi@splitbrain.org)
|
||||
* Copyright: (c) 2004 Andreas Gohr, Nigel McNie (http://qbnz.com/highlighter)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/08/20
|
||||
*
|
||||
* BASH language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ---------------------------------
|
||||
* Author: Matthew Webb (bmatthew1@blueyonder.co.uk)
|
||||
* Copyright: (c) 2004 Matthew Webb (http://matthew-4gl.wikispaces.com)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2007/09/15
|
||||
*
|
||||
* Basic4GL language file for GeSHi.
|
||||
|
228
htdocs/application/libraries/geshi/geshi/batch.php
Normal file
228
htdocs/application/libraries/geshi/geshi/batch.php
Normal file
@ -0,0 +1,228 @@
|
||||
<?php
|
||||
/*************************************************************************************
|
||||
* batch.php
|
||||
* ------------
|
||||
* Author: FraidZZ ( fraidzz [@] bk.ru )
|
||||
* Copyright: (c) 2015 FraidZZ ( http://vk.com/fraidzz , http://www.cyberforum.ru/members/340557.html )
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2015/03/28
|
||||
*
|
||||
* Windows batch file language file for GeSHi.
|
||||
*
|
||||
*************************************************************************************
|
||||
* This file is part of GeSHi.
|
||||
*
|
||||
* GeSHi is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* GeSHi is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GeSHi; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
************************************************************************************/
|
||||
|
||||
$language_data = array(
|
||||
'LANG_NAME' => 'Windows Batch file',
|
||||
'COMMENT_SINGLE' => array(),
|
||||
'COMMENT_MULTI' => array(),
|
||||
'COMMENT_REGEXP' => array(
|
||||
100 => '/(?:^|[&|])\\s*(?:rem|::)[^\\n]*/msi',
|
||||
101 => '/[\\/-]\\S*/si',
|
||||
102 => '/^\s*:[^:]\\S*/msi',
|
||||
103 => '/(?:([%!])[^"\'~ ][^"\' ]*\\1|%%?(?:~[dpnxsatz]*)?[^"\'])/si'
|
||||
),
|
||||
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
|
||||
'QUOTEMARKS' => array("'", '"'),
|
||||
'ESCAPE_CHAR' => '',
|
||||
'ESCAPE_REGEXP' => array(
|
||||
100 => '/(?:([%!])\\S+\\1|%%(?:~[dpnxsatz]*)?[^"\'])/si'
|
||||
),
|
||||
'KEYWORDS' => array(
|
||||
1 => array(
|
||||
'echo',
|
||||
'set',
|
||||
'for',
|
||||
'if',
|
||||
'exit',
|
||||
'else',
|
||||
'do',
|
||||
'not',
|
||||
'defined',
|
||||
'exist'
|
||||
),
|
||||
2 => array(
|
||||
"ASSOC",
|
||||
"ATTRIB",
|
||||
"BREAK",
|
||||
"BCDEDIT",
|
||||
"CACLS",
|
||||
"CD",
|
||||
"CHCP",
|
||||
"CHDIR",
|
||||
"CHKDSK",
|
||||
"CHKNTFS",
|
||||
"CLS",
|
||||
"CMD",
|
||||
"COLOR",
|
||||
"COMP",
|
||||
"COMPACT",
|
||||
"CONVERT",
|
||||
"COPY",
|
||||
"DATE",
|
||||
"DEL",
|
||||
"DIR",
|
||||
"DISKCOMP",
|
||||
"DISKCOPY",
|
||||
"DISKPART",
|
||||
"DOSKEY",
|
||||
"DRIVERQUERY",
|
||||
"ECHO",
|
||||
"ENDLOCAL",
|
||||
"ERASE",
|
||||
"EXIT",
|
||||
"FC",
|
||||
"FIND",
|
||||
"FINDSTR",
|
||||
"FOR",
|
||||
"FORMAT",
|
||||
"FSUTIL",
|
||||
"FTYPE",
|
||||
"GPRESULT",
|
||||
"GRAFTABL",
|
||||
"HELP",
|
||||
"ICACLS",
|
||||
"IF",
|
||||
"LABEL",
|
||||
"MD",
|
||||
"MKDIR",
|
||||
"MKLINK",
|
||||
"MODE",
|
||||
"MORE",
|
||||
"MOVE",
|
||||
"OPENFILES",
|
||||
"PATH",
|
||||
"PAUSE",
|
||||
"POPD",
|
||||
"PRINT",
|
||||
"PROMPT",
|
||||
"PUSHD",
|
||||
"RD",
|
||||
"RECOVER",
|
||||
"REN",
|
||||
"RENAME",
|
||||
"REPLACE",
|
||||
"RMDIR",
|
||||
"ROBOCOPY",
|
||||
"SET",
|
||||
"SETLOCAL",
|
||||
"SC",
|
||||
"SCHTASKS",
|
||||
"SHIFT",
|
||||
"SHUTDOWN",
|
||||
"SORT",
|
||||
"START",
|
||||
"SUBST",
|
||||
"SYSTEMINFO",
|
||||
"TASKLIST",
|
||||
"TASKKILL",
|
||||
"TIME",
|
||||
"TITLE",
|
||||
"TREE",
|
||||
"TYPE",
|
||||
"VER",
|
||||
"VERIFY",
|
||||
"VOL",
|
||||
"XCOPY",
|
||||
"WMIC",
|
||||
"CSCRIPT"
|
||||
),
|
||||
3 => array(
|
||||
"enabledelayedexpansion",
|
||||
"enableextensions"
|
||||
)
|
||||
),
|
||||
'SYMBOLS' => array(
|
||||
'(',
|
||||
')',
|
||||
'+',
|
||||
'-',
|
||||
'~',
|
||||
'^',
|
||||
'@',
|
||||
'&',
|
||||
'*',
|
||||
'|',
|
||||
'/',
|
||||
'<',
|
||||
'>'
|
||||
),
|
||||
'CASE_SENSITIVE' => array(
|
||||
GESHI_COMMENTS => false,
|
||||
1 => false,
|
||||
2 => false,
|
||||
3 => false,
|
||||
),
|
||||
'STYLES' => array(
|
||||
'KEYWORDS' => array(
|
||||
1 => 'color: #800080; font-weight: bold;',
|
||||
2 => 'color: #0080FF; font-weight: bold;',
|
||||
3 => 'color: #0000FF; font-weight: bold;'
|
||||
),
|
||||
'COMMENTS' => array(
|
||||
101 => 'color: #44aa44; font-weight: bold;',
|
||||
100 => 'color: #888888;',
|
||||
102 => 'color: #990000; font-weight: bold;',
|
||||
103 => 'color: #000099; font-weight: bold;',
|
||||
'MULTI' => 'color: #808080; font-style: italic;'
|
||||
),
|
||||
'ESCAPE_CHAR' => array(
|
||||
100 => 'color: #000099; font-weight: bold;'
|
||||
),
|
||||
'BRACKETS' => array(
|
||||
0 => 'color: #66cc66; font-weight: bold;'
|
||||
),
|
||||
'STRINGS' => array(
|
||||
0 => 'color: #ff0000;',
|
||||
),
|
||||
'NUMBERS' => array(
|
||||
0 => 'color: #cc66cc;'
|
||||
),
|
||||
'METHODS' => array(
|
||||
0 => 'color: #006600;'
|
||||
),
|
||||
'SYMBOLS' => array(
|
||||
0 => 'color: #44aa44; font-weight: bold;'
|
||||
),
|
||||
'REGEXPS' => array(
|
||||
0 => 'color: #990000; font-weight: bold',
|
||||
1 => 'color: #800080; font-weight: bold;'
|
||||
),
|
||||
'SCRIPT' => array()
|
||||
),
|
||||
'URLS' => array(
|
||||
1 => '',
|
||||
2 => '',
|
||||
3 => ''
|
||||
),
|
||||
'OOLANG' => false,
|
||||
'OBJECT_SPLITTERS' => array(),
|
||||
'REGEXPS' => array(
|
||||
0 => array(
|
||||
GESHI_SEARCH => "((?:goto|call)\\s*)(\\S+)",
|
||||
GESHI_REPLACE => "\\2",
|
||||
GESHI_BEFORE => "\\1",
|
||||
GESHI_MODIFIERS => "si",
|
||||
GESHI_AFTER => ""
|
||||
),
|
||||
1 => "goto|call"
|
||||
),
|
||||
'STRICT_MODE_APPLIES' => GESHI_MAYBE,
|
||||
'SCRIPT_DELIMITERS' => array(),
|
||||
'HIGHLIGHT_STRICT_BLOCK' => array()
|
||||
);
|
@ -4,7 +4,7 @@
|
||||
* ----------
|
||||
* Author: Benny Baumann (BenBE@geshi.org)
|
||||
* Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2009/10/31
|
||||
*
|
||||
* Brainfuck language file for GeSHi.
|
||||
|
200
htdocs/application/libraries/geshi/geshi/biblatex.php
Normal file
200
htdocs/application/libraries/geshi/geshi/biblatex.php
Normal file
@ -0,0 +1,200 @@
|
||||
<?php
|
||||
/********************************************************************************
|
||||
* bibtex.php
|
||||
* -----
|
||||
* Author: Maïeul Rouquette from
|
||||
* Quinn Taylor (quinntaylor@mac.com)
|
||||
* Copyright: (c) 2009 Quinn Taylor (quinntaylor@mac.com), Nigel McNie (http://qbnz.com/highlighter)
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2009/04/29
|
||||
*
|
||||
* BibLaTeX language file for GeSHi.
|
||||
*
|
||||
* CHANGES
|
||||
* 2015/12/29 (1.0.8.13) Biblatex parser
|
||||
* CHANGES
|
||||
* -------
|
||||
* 2009/04/29 (1.0.8.4)
|
||||
* - First Release
|
||||
*
|
||||
* TODO
|
||||
* -------------------------
|
||||
* - Add regex for matching and replacing URLs with corresponding hyperlinks
|
||||
* - Add regex for matching more LaTeX commands that may be embedded in BibTeX
|
||||
* (Someone who understands regex better than I should borrow from latex.php)
|
||||
********************************************************************************
|
||||
*
|
||||
* This file is part of GeSHi.
|
||||
*
|
||||
* GeSHi is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* GeSHi is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GeSHi; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
*
|
||||
*******************************************************************************/
|
||||
|
||||
// http://en.wikipedia.org/wiki/BibTeX
|
||||
// http://www.fb10.uni-bremen.de/anglistik/langpro/bibliographies/jacobsen-bibtex.html
|
||||
|
||||
$language_data = array (
|
||||
'LANG_NAME' => 'BibTeX',
|
||||
'OOLANG' => false,
|
||||
'COMMENT_SINGLE' => array(
|
||||
1 => '%%'
|
||||
),
|
||||
'COMMENT_MULTI' => array(),
|
||||
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
|
||||
'QUOTEMARKS' => array(),
|
||||
'ESCAPE_CHAR' => '',
|
||||
'KEYWORDS' => array(
|
||||
0 => array(
|
||||
'@comment','@preamble','@string'
|
||||
),
|
||||
// Standard entry types
|
||||
1 => array(
|
||||
'@article','@book','@booklet','@conference','@inbook',
|
||||
'@incollection','@inproceedings','@manual','@mastersthesis',
|
||||
'@misc','@phdthesis','@proceedings','@techreport','@unpublished'
|
||||
),
|
||||
// Custom entry types
|
||||
2 => array(
|
||||
'@collection','@patent','@webpage'
|
||||
),
|
||||
// Standard entry field names
|
||||
3 => array(
|
||||
'address','annote','author','booktitle','chapter','crossref',
|
||||
'edition','editor','howpublished','institution','journal','key',
|
||||
'month','note','number','organization','pages','publisher','school',
|
||||
'series','title','type','volume','year',
|
||||
),
|
||||
// Custom entry field names
|
||||
4 => array(
|
||||
'abstract','affiliation','chaptername','cited-by','cites',
|
||||
'contents','copyright','date-added','date-modified','doi','eprint',
|
||||
'isbn','issn','keywords','language','lccn','lib-congress',
|
||||
'location','price','rating','read','size','source','url',
|
||||
)
|
||||
),
|
||||
'URLS' => array(
|
||||
0 => '',
|
||||
1 => '',
|
||||
2 => '',
|
||||
3 => '',
|
||||
4 => ''
|
||||
),
|
||||
'SYMBOLS' => array(
|
||||
'{', '}', '#', '=', ','
|
||||
),
|
||||
'CASE_SENSITIVE' => array(
|
||||
1 => false,
|
||||
2 => false,
|
||||
3 => false,
|
||||
4 => false,
|
||||
GESHI_COMMENTS => false,
|
||||
),
|
||||
// Define the colors for the groups listed above
|
||||
'STYLES' => array(
|
||||
'KEYWORDS' => array(
|
||||
1 => 'color: #C02020;', // Standard entry types
|
||||
2 => 'color: #C02020;', // Custom entry types
|
||||
3 => 'color: #C08020;', // Standard entry field names
|
||||
4 => 'color: #C08020;' // Custom entry field names
|
||||
),
|
||||
'COMMENTS' => array(
|
||||
1 => 'color: #2C922C; font-style: italic;'
|
||||
),
|
||||
'STRINGS' => array(
|
||||
0 => 'color: #2020C0;'
|
||||
),
|
||||
'SYMBOLS' => array(
|
||||
0 => 'color: #E02020;'
|
||||
),
|
||||
'REGEXPS' => array(
|
||||
1 => 'color: #2020C0;', // {...}
|
||||
2 => 'color: #C08020;', // BibDesk fields
|
||||
3 => 'color: #800000;', // LaTeX commands
|
||||
4 => 'color: #C08020;', // Custom entry field (biblatex)
|
||||
5 => 'color: #C02020;', // Custom entry types (biblatex)
|
||||
),
|
||||
'ESCAPE_CHAR' => array(
|
||||
0 => 'color: #000000; font-weight: bold;'
|
||||
),
|
||||
'BRACKETS' => array(
|
||||
0 => 'color: #E02020;'
|
||||
),
|
||||
'NUMBERS' => array(
|
||||
),
|
||||
'METHODS' => array(
|
||||
),
|
||||
'SCRIPT' => array(
|
||||
)
|
||||
),
|
||||
'REGEXPS' => array(
|
||||
// {parameters}
|
||||
1 => array(
|
||||
GESHI_SEARCH => "(?<=\\{)(?:\\{(?R)\\}|[^\\{\\}])*(?=\\})",
|
||||
GESHI_REPLACE => '\0',
|
||||
GESHI_MODIFIERS => 's',
|
||||
GESHI_BEFORE => '',
|
||||
GESHI_AFTER => ''
|
||||
),
|
||||
2 => array(
|
||||
GESHI_SEARCH => "\bBdsk-(File|Url)-\d+",
|
||||
GESHI_REPLACE => '\0',
|
||||
GESHI_MODIFIERS => 'Us',
|
||||
GESHI_BEFORE => '',
|
||||
GESHI_AFTER => ''
|
||||
),
|
||||
3 => array(
|
||||
GESHI_SEARCH => "\\\\[A-Za-z0-9]*+",
|
||||
GESHI_REPLACE => '\0',
|
||||
GESHI_MODIFIERS => 'Us',
|
||||
GESHI_BEFORE => '',
|
||||
GESHI_AFTER => ''
|
||||
),
|
||||
4 => array(
|
||||
GESHI_SEARCH => "([A-z]+)\s+=",
|
||||
GESHI_REPLACE => '\0',
|
||||
GESHI_MODIFIERS => 'Us',
|
||||
GESHI_BEFORE => '',
|
||||
GESHI_AFTER => ''
|
||||
),
|
||||
5 => array(
|
||||
GESHI_SEARCH => "@([A-z])+",
|
||||
GESHI_REPLACE => '\0',
|
||||
GESHI_MODIFIERS => '',
|
||||
GESHI_BEFORE => '',
|
||||
GESHI_AFTER => ''
|
||||
),
|
||||
),
|
||||
'HIGHLIGHT_STRICT_BLOCK' => array(
|
||||
),
|
||||
'OBJECT_SPLITTERS' => array(
|
||||
),
|
||||
'STRICT_MODE_APPLIES' => GESHI_NEVER,
|
||||
'SCRIPT_DELIMITERS' => array(
|
||||
),
|
||||
'PARSER_CONTROL' => array(
|
||||
'ENABLE_FLAGS' => array(
|
||||
'NUMBERS' => GESHI_NEVER
|
||||
),
|
||||
'KEYWORDS' => array(
|
||||
3 => array(
|
||||
'DISALLOWED_AFTER' => '(?=\s*=)'
|
||||
),
|
||||
4 => array(
|
||||
'DISALLOWED_AFTER' => '(?=\s*=)'
|
||||
),
|
||||
)
|
||||
)
|
||||
);
|
@ -4,7 +4,7 @@
|
||||
* -----
|
||||
* Author: Quinn Taylor (quinntaylor@mac.com)
|
||||
* Copyright: (c) 2009 Quinn Taylor (quinntaylor@mac.com), Nigel McNie (http://qbnz.com/highlighter)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2009/04/29
|
||||
*
|
||||
* BibTeX language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------------
|
||||
* Author: P<EFBFBD>draig O`Connel (info@moonsword.info)
|
||||
* Copyright: (c) 2005 P<EFBFBD>draig O`Connel (http://moonsword.info)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 16.10.2005
|
||||
*
|
||||
* BlitzBasic language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Rowan Rodrik van der Molen (rowan@bigsmoke.us)
|
||||
* Copyright: (c) 2006 Rowan Rodrik van der Molen (http://www.bigsmoke.us/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2006/09/28
|
||||
*
|
||||
* BNF (Backus-Naur form) language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Marcus Griep (neoeinstein+GeSHi@gmail.com)
|
||||
* Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2007/09/10
|
||||
*
|
||||
* Boo language file for GeSHi.
|
||||
|
@ -7,7 +7,7 @@
|
||||
* - Jack Lloyd (lloyd@randombit.net)
|
||||
* - Michael Mol (mikemol@gmail.com)
|
||||
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/06/04
|
||||
*
|
||||
* C language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ---------------------------------
|
||||
* Author: Stuart Moncrieff (stuart at myloadtest dot com)
|
||||
* Copyright: (c) 2010 Stuart Moncrieff (http://www.myloadtest.com/loadrunner-syntax-highlighter/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2010-07-25
|
||||
*
|
||||
* C (for LoadRunner) language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ---------
|
||||
* Author: M. Uli Kusterer (witness.of.teachtext@gmx.net)
|
||||
* Copyright: (c) 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/06/04
|
||||
*
|
||||
* C for Macs language file for GeSHi.
|
||||
|
@ -7,7 +7,7 @@
|
||||
* - Jack Lloyd (lloyd@randombit.net)
|
||||
* - Michael Mol (mikemol@gmail.com)
|
||||
* Copyright: (c) 2012 Benny Baumann (http://qbnz.com/highlighter/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2012/08/12
|
||||
*
|
||||
* C (WinAPI) language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ----------
|
||||
* Author: Roberto Rossi (rsoftware@altervista.org)
|
||||
* Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/08/30
|
||||
*
|
||||
* CAD DCL (Dialog Control Language) language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* -----------
|
||||
* Author: Roberto Rossi (rsoftware@altervista.org)
|
||||
* Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/blog)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/08/30
|
||||
*
|
||||
* AutoCAD/IntelliCAD Lisp language file for GeSHi.
|
||||
|
171
htdocs/application/libraries/geshi/geshi/ceylon.php
Normal file
171
htdocs/application/libraries/geshi/geshi/ceylon.php
Normal file
@ -0,0 +1,171 @@
|
||||
<?php
|
||||
/*************************************************************************************
|
||||
* ceylon.php
|
||||
* ----------
|
||||
* Author: Lucas Werkmeister (mail@lucaswerkmeister.de)
|
||||
* Copyright: (c) 2015 Lucas Werkmeister (http://lucaswerkmeister.de)
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2015-01-08
|
||||
*
|
||||
* Ceylon language file for GeSHi.
|
||||
*
|
||||
* CHANGES
|
||||
* -------
|
||||
*
|
||||
* TODO (updated 2015-06-19)
|
||||
* ------------------
|
||||
* * Regexes match and break help URLs, so those are commented out for now
|
||||
* * Ceylon supports nested block comments
|
||||
* * The Ceylon compiler correctly parses
|
||||
* "\{FICTITIOUS CHARACTER WITH " IN NAME}"
|
||||
* as a single string literal.
|
||||
* (However, that's not really important
|
||||
* since Unicode character names never contain quotes.)
|
||||
*
|
||||
*************************************************************************************
|
||||
*
|
||||
* This file is part of GeSHi.
|
||||
*
|
||||
* GeSHi is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* GeSHi is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GeSHi; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
$language_data = array (
|
||||
'LANG_NAME' => 'Ceylon',
|
||||
'COMMENT_SINGLE' => array(1 => '//', 2 => '#!'),
|
||||
'COMMENT_MULTI' => array('/*' => '*/'),
|
||||
'COMMENT_REGEXP' => array(
|
||||
/*
|
||||
* 1. regular line comments (see COMMENT_SINGLE)
|
||||
* 2. shebang line comments (see COMMENT_SINGLE)
|
||||
* 3. strings (including string templates)
|
||||
*/
|
||||
3 => '/(?:"|``).*?(?:``|")/'
|
||||
),
|
||||
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
|
||||
'QUOTEMARKS' => array("'"),
|
||||
'ESCAPE_CHAR' => '\\',
|
||||
'KEYWORDS' => array(
|
||||
/*
|
||||
* 1. lexer keywords (class, else, etc.)
|
||||
* 2. language modifiers (shared, formal, etc.)
|
||||
* 3. language doc modifiers (doc, see, etc.)
|
||||
*/
|
||||
1 => array(
|
||||
'assembly', 'module', 'package', 'import',
|
||||
'alias', 'class', 'interface', 'object', 'given',
|
||||
'value', 'assign', 'void', 'function',
|
||||
'new', 'of', 'extends', 'satisfies', 'abstracts',
|
||||
'in', 'out',
|
||||
'return', 'break', 'continue', 'throw', 'assert',
|
||||
'dynamic',
|
||||
'if', 'else', 'switch', 'case',
|
||||
'for', 'while', 'try', 'catch', 'finally',
|
||||
'then', 'let',
|
||||
'this', 'outer', 'super',
|
||||
'is', 'exists', 'nonempty'
|
||||
),
|
||||
2 => array(
|
||||
'shared', 'abstract', 'formal', 'default', 'actual',
|
||||
'variable', 'late', 'native', 'deprecated',
|
||||
'final', 'sealed', 'annotation', 'small'
|
||||
),
|
||||
3 => array(
|
||||
'doc', 'by', 'license', 'see', 'throws', 'tagged'
|
||||
)
|
||||
),
|
||||
'SYMBOLS' => array(
|
||||
',', ';', '...', '{', '}', '[', ']', '`', '?.', '*.',
|
||||
'?', '->', '=>',
|
||||
'**', '++', '--', '..', ':', '&&', '||',
|
||||
'+=', '-=', '*=', '/=', '%=', '|=', '&=', '~=', '||=', '&&=',
|
||||
'+', '-', '*', '/', '%', '^',
|
||||
'~', '&', '|', '===', '==', '=', '!=', '!',
|
||||
'<=>', '<=', '>=',
|
||||
'<', '>',
|
||||
'.'
|
||||
),
|
||||
'STYLES' => array(
|
||||
'KEYWORDS' => array(
|
||||
1 => 'font-weight:bold;color:#4C4C4C;',
|
||||
2 => 'color:#39C',
|
||||
3 => 'color:#39C'
|
||||
),
|
||||
'COMMENTS' => array(
|
||||
1 => 'color:darkgray;',
|
||||
2 => 'color:darkgray;',
|
||||
3 => 'color:blue',
|
||||
'MULTI' => 'color:darkgray;'
|
||||
),
|
||||
'STRINGS' => array(
|
||||
0 => 'color:blue;'
|
||||
),
|
||||
'REGEXPS' => array(
|
||||
1 => 'color:#639;',
|
||||
2 => 'color:#039;',
|
||||
3 => 'color:#906;'
|
||||
),
|
||||
'ESCAPE_CHAR' => array(),
|
||||
'BRACKETS' => array(),
|
||||
'NUMBERS' => array(),
|
||||
'METHODS' => array(),
|
||||
'SYMBOLS' => array(),
|
||||
'SCRIPT' => array()
|
||||
),
|
||||
'REGEXPS' => array(
|
||||
/*
|
||||
* 1. qualified lidentifiers
|
||||
* 2. lidentifiers
|
||||
* 3. uidentifiers
|
||||
*
|
||||
* All of these contain various lookahead and -behind to ensure
|
||||
* that we don't match various stuff that GeSHi escapes
|
||||
* (for instance, we see semicolons as <SEMI>).
|
||||
*/
|
||||
1 => array(
|
||||
GESHI_SEARCH => '\\b((\?|\*)?\.[[:space:]]*)([[:lower:]][[:alnum:]]*|\\\\i[[:alnum:]]*)\\b',
|
||||
GESHI_REPLACE => '\\3',
|
||||
GESHI_MODIFIERS => '',
|
||||
GESHI_BEFORE => '\\1',
|
||||
GESHI_AFTER => ''
|
||||
),
|
||||
2 => array(
|
||||
GESHI_SEARCH => '(?<![|<>&![:alnum:]])([[:lower:]][[:alnum:]]*|\\\\i[[:alnum:]]*)(?![>[:alnum:]])',
|
||||
GESHI_REPLACE => '\\1',
|
||||
GESHI_MODIFIERS => '',
|
||||
GESHI_BEFORE => '',
|
||||
GESHI_AFTER => ''
|
||||
),
|
||||
3 => array(
|
||||
GESHI_SEARCH => '(?<![|<>&![:alnum:]])([[:upper:]][[:alnum:]]*|\\\\I[[:alnum:]]*)(?![>[:alnum:]])',
|
||||
GESHI_REPLACE => '\\1',
|
||||
GESHI_MODIFIERS => '',
|
||||
GESHI_BEFORE => '',
|
||||
GESHI_AFTER => ''
|
||||
)
|
||||
),
|
||||
'OOLANG' => false,
|
||||
'OBJECT_SPLITTERS' => array(),
|
||||
'URLS' => array(
|
||||
1 => '',
|
||||
2 => '', 3 => '' // the real URLs are commented out because syntax highlighting breaks them
|
||||
// 2 => 'https://modules.ceylon-lang.org/repo/1/ceylon/language/1.1.0/module-doc/api/index.html#{FNAME}',
|
||||
// 3 => 'https://modules.ceylon-lang.org/repo/1/ceylon/language/1.1.0/module-doc/api/index.html#{FNAME}',
|
||||
),
|
||||
'CASE_SENSITIVE' => array(1 => true, 2 => true, 3 => true),
|
||||
'STRICT_MODE_APPLIES' => GESHI_NEVER,
|
||||
'SCRIPT_DELIMITERS' => array(),
|
||||
'HIGHLIGHT_STRICT_BLOCK' => array()
|
||||
);
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: John Horigan <john@glyphic.com>
|
||||
* Copyright: (c) 2006 John Horigan http://www.ozonehouse.com/john/
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2006/03/11
|
||||
*
|
||||
* CFDG language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* -------
|
||||
* Author: Diego
|
||||
* Copyright: (c) 2006 Diego
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2006/02/25
|
||||
*
|
||||
* ColdFusion language file for GeSHi.
|
||||
|
@ -6,7 +6,7 @@
|
||||
* Copyright: (c) 2010 Jason Turner (lefticus@gmail.com),
|
||||
* (c) 2009 Jonathan Turner,
|
||||
* (c) 2004 Ben Keen (ben.keen@gmail.com), Benny Baumann (http://qbnz.com/highlighter)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2009/07/03
|
||||
*
|
||||
* ChaiScript language file for GeSHi.
|
||||
|
@ -4,14 +4,14 @@
|
||||
* -----
|
||||
* Author: Richard Molitor (richard.molitor@student.kit.edu)
|
||||
* Copyright: (c) 2013 Richard Molitor
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2013/06/22
|
||||
*
|
||||
* Chapel language file for GeSHi.
|
||||
*
|
||||
* CHANGES
|
||||
* -------
|
||||
* 2013/06/22 (1.0.8.12)
|
||||
* 2013/06/22 (1.0.8.13)
|
||||
* - First Release
|
||||
*
|
||||
* TODO (updated 2013/06/22)
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Marcus Griep (neoeinstein+GeSHi@gmail.com)
|
||||
* Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2007/10/24
|
||||
*
|
||||
* CIL (Common Intermediate Language) language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Jess Johnson (jess@grok-code.com)
|
||||
* Copyright: (c) 2009 Jess Johnson (http://grok-code.com)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2009/09/20
|
||||
*
|
||||
* Clojure language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* -------
|
||||
* Author: Daniel Nelson (danieln@eng.utah.edu)
|
||||
* Copyright: (c) 2009 Daniel Nelson
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2009/04/06
|
||||
*
|
||||
* CMake language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ----------
|
||||
* Author: BenBE (BenBE@omorphia.org)
|
||||
* Copyright: (c) 2007-2008 BenBE (http://www.omorphia.de/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2007/07/02
|
||||
*
|
||||
* COBOL language file for GeSHi.
|
||||
@ -16,13 +16,13 @@
|
||||
*
|
||||
* CHANGES
|
||||
* -------
|
||||
* 2013/11/17 (1.0.8.12)
|
||||
* 2013/11/17 (1.0.8.13)
|
||||
* - Changed compiler directives to be handled like comments.
|
||||
* - Fixed bug where keywords in identifiers were highlighted.
|
||||
* 2013/08/19 (1.0.8.12)
|
||||
* 2013/08/19 (1.0.8.13)
|
||||
* - Added more intrinsic functions, reserved words, and compiler directives
|
||||
* from the (upcoming) standard.
|
||||
* 2013/07/07 (1.0.8.12)
|
||||
* 2013/07/07 (1.0.8.13)
|
||||
* - Added more reserved words, compiler directives and intrinsic functions.
|
||||
* - Added modern comment syntax and corrected the other one.
|
||||
* - Set OOLANG to true and added an object splitter.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ----------
|
||||
* Author: Trevor Burnham (trevorburnham@gmail.com)
|
||||
* Copyright: (c) 2010 Trevor Burnham (http://iterative.ly)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2010/06/08
|
||||
*
|
||||
* CoffeeScript language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* -------
|
||||
* Author: Iulian M
|
||||
* Copyright: (c) 2006 Iulian M
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/09/27
|
||||
*
|
||||
* C++ (with Qt extensions) language file for GeSHi.
|
||||
@ -95,7 +95,8 @@ $language_data = array (
|
||||
'try', 'catch', 'inline', 'dynamic_cast', 'const_cast', 'reinterpret_cast',
|
||||
'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class' ,
|
||||
'foreach','connect', 'Q_OBJECT' , 'slots' , 'signals', 'Q_SIGNALS', 'Q_SLOTS',
|
||||
'Q_FOREACH', 'QCOMPARE', 'QVERIFY', 'qDebug', 'kDebug', 'QBENCHMARK'
|
||||
'Q_FOREACH', 'QCOMPARE', 'QVERIFY', 'qDebug', 'kDebug', 'QBENCHMARK',
|
||||
'SIGNAL', 'SLOT', 'emit'
|
||||
),
|
||||
3 => array(
|
||||
'cin', 'cerr', 'clog', 'cout',
|
||||
@ -141,334 +142,387 @@ $language_data = array (
|
||||
'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t'
|
||||
),
|
||||
5 => array(
|
||||
"Q_UINT16", "Q_UINT32", "Q_UINT64", "Q_UINT8", "Q_ULLONG",
|
||||
"Q_ULONG", "Q3Accel", "Q3Action", "Q3ActionGroup", "Q3AsciiBucket",
|
||||
"Q3AsciiCache", "Q3AsciiCacheIterator", "Q3AsciiDict",
|
||||
"Q3AsciiDictIterator", "Q3BaseBucket", "Q3BoxLayout", "Q3Button",
|
||||
"Q3ButtonGroup", "Q3Cache", "Q3CacheIterator", "Q3Canvas",
|
||||
"Q3CanvasEllipse", "Q3CanvasItem", "Q3CanvasItemList",
|
||||
"Q3CanvasLine", "Q3CanvasPixmap", "Q3CanvasPixmapArray",
|
||||
"Q3CanvasPolygon", "Q3CanvasPolygonalItem", "Q3CanvasRectangle",
|
||||
"Q3CanvasSpline", "Q3CanvasSprite", "Q3CanvasText", "Q3CanvasView",
|
||||
"Q3CheckListItem", "Q3CheckTableItem", "Q3CleanupHandler",
|
||||
"Q3ColorDrag", "Q3ComboBox", "Q3ComboTableItem", "Q3CString",
|
||||
"Q3DataBrowser", "Q3DataTable", "Q3DataView", "Q3DateEdit",
|
||||
"Q3DateTimeEdit", "Q3DateTimeEditBase", "Q3DeepCopy", "Q3Dict",
|
||||
"Q3DictIterator", "Q3Dns", "Q3DnsSocket", "Q3DockArea",
|
||||
"Q3DockAreaLayout", "Q3DockWindow", "Q3DragObject", "Q3DropSite",
|
||||
"Q3EditorFactory", "Q3FileDialog", "Q3FileIconProvider",
|
||||
"Q3FilePreview", "Q3Frame", "Q3Ftp", "Q3GArray", "Q3GCache",
|
||||
"Q3GCacheIterator", "Q3GDict", "Q3GDictIterator", "Q3GList",
|
||||
"Q3GListIterator", "Q3GListStdIterator", "Q3Grid", "Q3GridLayout",
|
||||
"Q3GridView", "Q3GroupBox", "Q3GVector", "Q3HBox", "Q3HBoxLayout",
|
||||
"Q3HButtonGroup", "Q3Header", "Q3HGroupBox", "Q3Http",
|
||||
"Q3HttpHeader", "Q3HttpRequestHeader", "Q3HttpResponseHeader",
|
||||
"Q3IconDrag", "Q3IconDragItem", "Q3IconView", "Q3IconViewItem",
|
||||
"Q3ImageDrag", "Q3IntBucket", "Q3IntCache", "Q3IntCacheIterator",
|
||||
"Q3IntDict", "Q3IntDictIterator", "Q3ListBox", "Q3ListBoxItem",
|
||||
"Q3ListBoxPixmap", "Q3ListBoxText", "Q3ListView", "Q3ListViewItem",
|
||||
"Q3ListViewItemIterator", "Q3LNode", "Q3LocalFs", "Q3MainWindow",
|
||||
"Q3MemArray", "Q3MimeSourceFactory", "Q3MultiLineEdit",
|
||||
"Q3NetworkOperation", "Q3NetworkProtocol", "Q3NetworkProtocolDict",
|
||||
"Q3NetworkProtocolFactory", "Q3NetworkProtocolFactoryBase",
|
||||
"Q3ObjectDictionary", "Q3PaintDeviceMetrics", "Q3Painter",
|
||||
"Q3Picture", "Q3PointArray", "Q3PolygonScanner", "Q3PopupMenu",
|
||||
"Q3Process", "Q3ProgressBar", "Q3ProgressDialog", "Q3PtrBucket",
|
||||
"Q3PtrCollection", "Q3PtrDict", "Q3PtrDictIterator", "Q3PtrList",
|
||||
"Q3PtrListIterator", "Q3PtrListStdIterator", "Q3PtrQueue",
|
||||
"Q3PtrStack", "Q3PtrVector", "Q3RangeControl", "Q3ScrollView",
|
||||
"Q3Semaphore", "Q3ServerSocket", "Q3Shared", "Q3Signal",
|
||||
"Q3SimpleRichText", "Q3SingleCleanupHandler", "Q3Socket",
|
||||
"Q3SocketDevice", "Q3SortedList", "Q3SpinWidget", "Q3SqlCursor",
|
||||
"Q3SqlEditorFactory", "Q3SqlFieldInfo", "Q3SqlFieldInfoList",
|
||||
"Q3SqlForm", "Q3SqlPropertyMap", "Q3SqlRecordInfo",
|
||||
"Q3SqlSelectCursor", "Q3StoredDrag", "Q3StrIList", "Q3StringBucket",
|
||||
"Q3StrIVec", "Q3StrList", "Q3StrListIterator", "Q3StrVec",
|
||||
"Q3StyleSheet", "Q3StyleSheetItem", "Q3SyntaxHighlighter",
|
||||
"Q3TabDialog", "Q3Table", "Q3TableItem", "Q3TableSelection",
|
||||
"Q3TextBrowser", "Q3TextDrag", "Q3TextEdit",
|
||||
"Q3TextEditOptimPrivate", "Q3TextStream", "Q3TextView",
|
||||
"Q3TimeEdit", "Q3ToolBar", "Q3TSFUNC", "Q3UriDrag", "Q3Url",
|
||||
"Q3UrlOperator", "Q3ValueList", "Q3ValueListConstIterator",
|
||||
"Q3ValueListIterator", "Q3ValueStack", "Q3ValueVector", "Q3VBox",
|
||||
"Q3VBoxLayout", "Q3VButtonGroup", "Q3VGroupBox", "Q3WhatsThis",
|
||||
"Q3WidgetStack", "Q3Wizard", "QAbstractButton",
|
||||
"QAbstractEventDispatcher", "QAbstractExtensionFactory",
|
||||
"QAbstractExtensionManager", "QAbstractFileEngine",
|
||||
"QAbstractFileEngineHandler", "QAbstractFileEngineIterator",
|
||||
"QAbstractFormBuilder", "QAbstractGraphicsShapeItem",
|
||||
"QAbstractItemDelegate", "QAbstractItemModel", "QAbstractItemView",
|
||||
"QAbstractListModel", "QAbstractMessageHandler",
|
||||
"QAbstractNetworkCache", "QAbstractPageSetupDialog",
|
||||
"QAbstractPrintDialog", "QAbstractProxyModel",
|
||||
"QAbstractScrollArea", "QAbstractSlider", "QAbstractSocket",
|
||||
"QAbstractSpinBox", "QAbstractTableModel",
|
||||
"QAbstractTextDocumentLayout", "QAbstractUndoItem",
|
||||
"QAbstractUriResolver", "QAbstractXmlNodeModel",
|
||||
"QAbstractXmlReceiver", "QAccessible", "QAccessible2Interface",
|
||||
"QAccessibleApplication", "QAccessibleBridge",
|
||||
"QAccessibleBridgeFactoryInterface", "QAccessibleBridgePlugin",
|
||||
"QAccessibleEditableTextInterface", "QAccessibleEvent",
|
||||
"QAccessibleFactoryInterface", "QAccessibleInterface",
|
||||
"QAccessibleInterfaceEx", "QAccessibleObject",
|
||||
"QAccessibleObjectEx", "QAccessiblePlugin",
|
||||
"QAccessibleSimpleEditableTextInterface",
|
||||
"QAccessibleTableInterface", "QAccessibleTextInterface",
|
||||
"QAccessibleValueInterface", "QAccessibleWidget",
|
||||
"QAccessibleWidgetEx", "QAction", "QActionEvent", "QActionGroup",
|
||||
"QApplication", "QArgument", "QAssistantClient", "QAtomicInt",
|
||||
"QAtomicPointer", "QAuthenticator", "QBasicAtomicInt",
|
||||
"QBasicAtomicPointer", "QBasicTimer", "QBitArray", "QBitmap",
|
||||
"QBitRef", "QBool", "QBoxLayout", "QBrush", "QBrushData", "QBuffer",
|
||||
"QButtonGroup", "QByteArray", "QByteArrayMatcher", "QByteRef",
|
||||
"QCache", "QCalendarWidget", "QCDEStyle", "QChar", "QCharRef",
|
||||
"QCheckBox", "QChildEvent", "QCleanlooksStyle", "QClipboard",
|
||||
"QClipboardEvent", "QCloseEvent", "QColor", "QColorDialog",
|
||||
"QColorGroup", "QColormap", "QColumnView", "QComboBox",
|
||||
"QCommandLinkButton", "QCommonStyle", "QCompleter",
|
||||
"QConicalGradient", "QConstString", "QContextMenuEvent", "QCOORD",
|
||||
"QCoreApplication", "QCryptographicHash", "QCursor", "QCursorShape",
|
||||
"QCustomEvent", "QDataStream", "QDataWidgetMapper", "QDate",
|
||||
"QDateEdit", "QDateTime", "QDateTimeEdit", "QDB2Driver",
|
||||
"QDB2Result", "QDBusAbstractAdaptor", "QDBusAbstractInterface",
|
||||
"QDBusArgument", "QDBusConnection", "QDBusConnectionInterface",
|
||||
"QDBusContext", "QDBusError", "QDBusInterface", "QDBusMessage",
|
||||
"QDBusMetaType", "QDBusObjectPath", "QDBusPendingCall",
|
||||
"QDBusPendingCallWatcher", "QDBusPendingReply",
|
||||
"QDBusPendingReplyData", "QDBusReply", "QDBusServer",
|
||||
"QDBusSignature", "QDBusVariant", "QDebug",
|
||||
"QDesignerActionEditorInterface", "QDesignerBrushManagerInterface",
|
||||
"QDesignerComponents", "QDesignerContainerExtension",
|
||||
"QDesignerCustomWidgetCollectionInterface",
|
||||
"QDesignerCustomWidgetInterface", "QDesignerDnDItemInterface",
|
||||
"QDesignerDynamicPropertySheetExtension", "QDesignerExportWidget",
|
||||
"QDesignerExtraInfoExtension", "QDesignerFormEditorInterface",
|
||||
"QDesignerFormEditorPluginInterface", "QDesignerFormWindowCursorInterface",
|
||||
"QDesignerFormWindowInterface", "QDesignerFormWindowManagerInterface",
|
||||
"QDesignerFormWindowToolInterface",
|
||||
"QDesignerIconCacheInterface", "QDesignerIntegrationInterface",
|
||||
"QDesignerLanguageExtension", "QDesignerLayoutDecorationExtension",
|
||||
"QDesignerMemberSheetExtension", "QDesignerMetaDataBaseInterface",
|
||||
"QDesignerMetaDataBaseItemInterface",
|
||||
"QDesignerObjectInspectorInterface", "QDesignerPromotionInterface",
|
||||
"QDesignerPropertyEditorInterface",
|
||||
"QDesignerPropertySheetExtension", "QDesignerResourceBrowserInterface",
|
||||
"QDesignerTaskMenuExtension", "QDesignerWidgetBoxInterface",
|
||||
"QDesignerWidgetDataBaseInterface", "QDesignerWidgetDataBaseItemInterface",
|
||||
"QDesignerWidgetFactoryInterface", "QDesktopServices",
|
||||
"QDesktopWidget", "QDial", "QDialog", "QDialogButtonBox", "QDir",
|
||||
"QDirIterator", "QDirModel", "QDockWidget", "QDomAttr",
|
||||
"QDomCDATASection", "QDomCharacterData", "QDomComment",
|
||||
"QDomDocument", "QDomDocumentFragment", "QDomDocumentType",
|
||||
"QDomElement", "QDomEntity", "QDomEntityReference",
|
||||
"QDomImplementation", "QDomNamedNodeMap", "QDomNode",
|
||||
"QDomNodeList", "QDomNotation", "QDomProcessingInstruction",
|
||||
"QDomText", "QDoubleSpinBox", "QDoubleValidator", "QDrag",
|
||||
"QDragEnterEvent", "QDragLeaveEvent", "QDragMoveEvent",
|
||||
"QDragResponseEvent", "QDropEvent", "QDynamicPropertyChangeEvent",
|
||||
"QErrorMessage", "QEvent", "QEventLoop", "QEventSizeOfChecker",
|
||||
"QExplicitlySharedDataPointer", "QExtensionFactory",
|
||||
"QExtensionManager", "QFactoryInterface", "QFile", "QFileDialog",
|
||||
"QFileIconProvider", "QFileInfo", "QFileInfoList",
|
||||
"QFileInfoListIterator", "QFileOpenEvent", "QFileSystemModel",
|
||||
"QFileSystemWatcher", "QFlag", "QFlags", "QFocusEvent",
|
||||
"QFocusFrame", "QFont", "QFontComboBox", "QFontDatabase",
|
||||
"QFontDialog", "QFontInfo", "QFontMetrics", "QFontMetricsF",
|
||||
"QForeachContainer", "QForeachContainerBase", "QFormBuilder",
|
||||
"QFormLayout", "QFrame", "QFSFileEngine", "QFtp", "QFuture",
|
||||
"QFutureInterface", "QFutureInterfaceBase", "QFutureIterator",
|
||||
"QFutureSynchronizer", "QFutureWatcher", "QFutureWatcherBase",
|
||||
"QGenericArgument", "QGenericReturnArgument", "QGLColormap",
|
||||
"QGLContext", "QGLFormat", "QGLFramebufferObject", "QGlobalStatic",
|
||||
"QGlobalStaticDeleter", "QGLPixelBuffer", "QGLWidget", "QGradient",
|
||||
"QGradientStop", "QGradientStops", "QGraphicsEllipseItem",
|
||||
"QGraphicsGridLayout", "QGraphicsItem", "QGraphicsItemAnimation",
|
||||
"QGraphicsItemGroup", "QGraphicsLayout", "QGraphicsLayoutItem",
|
||||
"QGraphicsLinearLayout", "QGraphicsLineItem", "QGraphicsPathItem",
|
||||
"QGraphicsPixmapItem", "QGraphicsPolygonItem",
|
||||
"QGraphicsProxyWidget", "QGraphicsRectItem", "QGraphicsScene",
|
||||
"QGraphicsSceneContextMenuEvent", "QGraphicsSceneDragDropEvent",
|
||||
"QGraphicsSceneEvent", "QGraphicsSceneHelpEvent",
|
||||
"QGraphicsSceneHoverEvent", "QGraphicsSceneMouseEvent",
|
||||
"QGraphicsSceneMoveEvent", "QGraphicsSceneResizeEvent",
|
||||
"QGraphicsSceneWheelEvent", "QGraphicsSimpleTextItem",
|
||||
"QGraphicsSvgItem", "QGraphicsTextItem", "QGraphicsView",
|
||||
"QGraphicsWidget", "QGridLayout", "QGroupBox", "QGtkStyle", "QHash",
|
||||
"QHashData", "QHashDummyNode", "QHashDummyValue", "QHashIterator",
|
||||
"QHashNode", "QHBoxLayout", "QHeaderView", "QHelpContentItem",
|
||||
"QHelpContentModel", "QHelpContentWidget", "QHelpEngine",
|
||||
"QHelpEngineCore", "QHelpEvent", "QHelpGlobal", "QHelpIndexModel",
|
||||
"QHelpIndexWidget", "QHelpSearchEngine", "QHelpSearchQuery",
|
||||
"QHelpSearchQueryWidget", "QHelpSearchResultWidget", "QHideEvent",
|
||||
"QHostAddress", "QHostInfo", "QHoverEvent", "QHttp", "QHttpHeader",
|
||||
"QHttpRequestHeader", "QHttpResponseHeader", "QIBaseDriver",
|
||||
"QIBaseResult", "QIcon", "QIconDragEvent", "QIconEngine",
|
||||
"QIconEngineFactoryInterface", "QIconEngineFactoryInterfaceV2",
|
||||
"QIconEnginePlugin", "QIconEnginePluginV2", "QIconEngineV2",
|
||||
"QIconSet", "QImage", "QImageIOHandler",
|
||||
"QImageIOHandlerFactoryInterface", "QImageIOPlugin", "QImageReader",
|
||||
"QImageTextKeyLang", "QImageWriter", "QIncompatibleFlag",
|
||||
"QInputContext", "QInputContextFactory",
|
||||
"QInputContextFactoryInterface", "QInputContextPlugin",
|
||||
"QInputDialog", "QInputEvent", "QInputMethodEvent", "Q_INT16",
|
||||
"Q_INT32", "Q_INT64", "Q_INT8", "QInternal", "QIntForSize",
|
||||
"QIntForType", "QIntValidator", "QIODevice", "Q_IPV6ADDR",
|
||||
"QIPv6Address", "QItemDelegate", "QItemEditorCreator",
|
||||
"QItemEditorCreatorBase", "QItemEditorFactory", "QItemSelection",
|
||||
"QItemSelectionModel", "QItemSelectionRange", "QKeyEvent",
|
||||
"QKeySequence", "QLabel", "QLatin1Char", "QLatin1String", "QLayout",
|
||||
"QLayoutItem", "QLayoutIterator", "QLCDNumber", "QLibrary",
|
||||
"QLibraryInfo", "QLine", "QLinearGradient", "QLineEdit", "QLineF",
|
||||
"QLinkedList", "QLinkedListData", "QLinkedListIterator",
|
||||
"QLinkedListNode", "QList", "QListData", "QListIterator",
|
||||
"QListView", "QListWidget", "QListWidgetItem", "Q_LLONG", "QLocale",
|
||||
"QLocalServer", "QLocalSocket", "Q_LONG", "QMacCompatGLenum",
|
||||
"QMacCompatGLint", "QMacCompatGLuint", "QMacGLCompatTypes",
|
||||
"QMacMime", "QMacPasteboardMime", "QMainWindow", "QMap", "QMapData",
|
||||
"QMapIterator", "QMapNode", "QMapPayloadNode", "QMatrix",
|
||||
"QMdiArea", "QMdiSubWindow", "QMenu", "QMenuBar",
|
||||
"QMenubarUpdatedEvent", "QMenuItem", "QMessageBox",
|
||||
"QMetaClassInfo", "QMetaEnum", "QMetaMethod", "QMetaObject",
|
||||
"QMetaObjectExtraData", "QMetaProperty", "QMetaType", "QMetaTypeId",
|
||||
"QMetaTypeId2", "QMimeData", "QMimeSource", "QModelIndex",
|
||||
"QModelIndexList", "QMotifStyle", "QMouseEvent", "QMoveEvent",
|
||||
"QMovie", "QMultiHash", "QMultiMap", "QMutableFutureIterator",
|
||||
"QMutableHashIterator", "QMutableLinkedListIterator",
|
||||
"QMutableListIterator", "QMutableMapIterator",
|
||||
"QMutableSetIterator", "QMutableStringListIterator",
|
||||
"QMutableVectorIterator", "QMutex", "QMutexLocker", "QMYSQLDriver",
|
||||
"QMYSQLResult", "QNetworkAccessManager", "QNetworkAddressEntry",
|
||||
"QNetworkCacheMetaData", "QNetworkCookie", "QNetworkCookieJar",
|
||||
"QNetworkDiskCache", "QNetworkInterface", "QNetworkProxy",
|
||||
"QNetworkProxyFactory", "QNetworkProxyQuery", "QNetworkReply",
|
||||
"QNetworkRequest", "QNoDebug", "QNoImplicitBoolCast", "QObject",
|
||||
"QObjectCleanupHandler", "QObjectData", "QObjectList",
|
||||
"QObjectUserData", "QOCIDriver", "QOCIResult", "QODBCDriver",
|
||||
"QODBCResult", "QPageSetupDialog", "QPaintDevice", "QPaintEngine",
|
||||
"QPaintEngineState", "QPainter", "QPainterPath",
|
||||
"QPainterPathPrivate", "QPainterPathStroker", "QPaintEvent",
|
||||
"QPair", "QPalette", "QPen", "QPersistentModelIndex", "QPicture",
|
||||
"QPictureFormatInterface", "QPictureFormatPlugin", "QPictureIO",
|
||||
"Q_PID", "QPixmap", "QPixmapCache", "QPlainTextDocumentLayout",
|
||||
"QPlainTextEdit", "QPlastiqueStyle", "QPluginLoader", "QPoint",
|
||||
"QPointer", "QPointF", "QPolygon", "QPolygonF", "QPrintDialog",
|
||||
"QPrintEngine", "QPrinter", "QPrinterInfo", "QPrintPreviewDialog",
|
||||
"QPrintPreviewWidget", "QProcess", "QProgressBar",
|
||||
"QProgressDialog", "QProxyModel", "QPSQLDriver", "QPSQLResult",
|
||||
"QPushButton", "QQueue", "QRadialGradient", "QRadioButton",
|
||||
"QReadLocker", "QReadWriteLock", "QRect", "QRectF", "QRegExp",
|
||||
"QRegExpValidator", "QRegion", "QResizeEvent", "QResource",
|
||||
"QReturnArgument", "QRgb", "QRubberBand", "QRunnable",
|
||||
"QScriptable", "QScriptClass", "QScriptClassPropertyIterator",
|
||||
"QScriptContext", "QScriptContextInfo", "QScriptContextInfoList",
|
||||
"QScriptEngine", "QScriptEngineAgent", "QScriptEngineDebugger",
|
||||
"QScriptExtensionInterface", "QScriptExtensionPlugin",
|
||||
"QScriptString", "QScriptSyntaxCheckResult", "QScriptValue",
|
||||
"QScriptValueIterator", "QScriptValueList", "QScrollArea",
|
||||
"QScrollBar", "QSemaphore", "QSessionManager", "QSet",
|
||||
"QSetIterator", "QSettings", "QSharedData", "QSharedDataPointer",
|
||||
"QSharedMemory", "QSharedPointer", "QShortcut", "QShortcutEvent",
|
||||
"QShowEvent", "QSignalMapper", "QSignalSpy", "QSimpleXmlNodeModel",
|
||||
"QSize", "QSizeF", "QSizeGrip", "QSizePolicy", "QSlider",
|
||||
"QSocketNotifier", "QSortFilterProxyModel", "QSound",
|
||||
"QSourceLocation", "QSpacerItem", "QSpinBox", "QSplashScreen",
|
||||
"QSplitter", "QSplitterHandle", "QSpontaneKeyEvent", "QSqlDatabase",
|
||||
"QSqlDriver", "QSqlDriverCreator", "QSqlDriverCreatorBase",
|
||||
"QSqlDriverFactoryInterface", "QSqlDriverPlugin", "QSqlError",
|
||||
"QSqlField", "QSqlIndex", "QSQLite2Driver", "QSQLite2Result",
|
||||
"QSQLiteDriver", "QSQLiteResult", "QSqlQuery", "QSqlQueryModel",
|
||||
"QSqlRecord", "QSqlRelation", "QSqlRelationalDelegate",
|
||||
"QSqlRelationalTableModel", "QSqlResult", "QSqlTableModel", "QSsl",
|
||||
"QSslCertificate", "QSslCipher", "QSslConfiguration", "QSslError",
|
||||
"QSslKey", "QSslSocket", "QStack", "QStackedLayout",
|
||||
"QStackedWidget", "QStandardItem", "QStandardItemEditorCreator",
|
||||
"QStandardItemModel", "QStatusBar", "QStatusTipEvent",
|
||||
"QStdWString", "QString", "QStringList", "QStringListIterator",
|
||||
"QStringListModel", "QStringMatcher", "QStringRef", "QStyle",
|
||||
"QStyledItemDelegate", "QStyleFactory", "QStyleFactoryInterface",
|
||||
"QStyleHintReturn", "QStyleHintReturnMask",
|
||||
"QStyleHintReturnVariant", "QStyleOption", "QStyleOptionButton",
|
||||
"QStyleOptionComboBox", "QStyleOptionComplex",
|
||||
"QStyleOptionDockWidget", "QStyleOptionDockWidgetV2",
|
||||
"QStyleOptionFocusRect", "QStyleOptionFrame", "QStyleOptionFrameV2",
|
||||
"QStyleOptionFrameV3", "QStyleOptionGraphicsItem",
|
||||
"QStyleOptionGroupBox", "QStyleOptionHeader",
|
||||
"QStyleOptionMenuItem", "QStyleOptionProgressBar",
|
||||
"QStyleOptionProgressBarV2", "QStyleOptionQ3DockWindow",
|
||||
"QStyleOptionQ3ListView", "QStyleOptionQ3ListViewItem",
|
||||
"QStyleOptionRubberBand", "QStyleOptionSizeGrip",
|
||||
"QStyleOptionSlider", "QStyleOptionSpinBox", "QStyleOptionTab",
|
||||
"QStyleOptionTabBarBase", "QStyleOptionTabBarBaseV2",
|
||||
"QStyleOptionTabV2", "QStyleOptionTabV3",
|
||||
"QStyleOptionTabWidgetFrame", "QStyleOptionTitleBar",
|
||||
"QStyleOptionToolBar", "QStyleOptionToolBox",
|
||||
"QStyleOptionToolBoxV2", "QStyleOptionToolButton",
|
||||
"QStyleOptionViewItem", "QStyleOptionViewItemV2",
|
||||
"QStyleOptionViewItemV3", "QStyleOptionViewItemV4", "QStylePainter",
|
||||
"QStylePlugin", "QSvgGenerator", "QSvgRenderer", "QSvgWidget",
|
||||
"QSyntaxHighlighter", "QSysInfo", "QSystemLocale",
|
||||
"QSystemSemaphore", "QSystemTrayIcon", "Qt", "Qt3Support",
|
||||
"QTabBar", "QTabletEvent", "QTableView", "QTableWidget",
|
||||
"QTableWidgetItem", "QTableWidgetSelectionRange", "QTabWidget",
|
||||
"QtAlgorithms", "QtAssistant", "QtCleanUpFunction",
|
||||
"QtConcurrentFilter", "QtConcurrentMap", "QtConcurrentRun",
|
||||
"QtContainerFwd", "QtCore", "QTcpServer", "QTcpSocket", "QtDBus",
|
||||
"QtDebug", "QtDesigner", "QTDSDriver", "QTDSResult",
|
||||
"QTemporaryFile", "QtEndian", "QTest", "QTestAccessibility",
|
||||
"QTestAccessibilityEvent", "QTestData", "QTestDelayEvent",
|
||||
"QTestEvent", "QTestEventList", "QTestEventLoop",
|
||||
"QTestKeyClicksEvent", "QTestKeyEvent", "QTestMouseEvent",
|
||||
"QtEvents", "QTextBlock", "QTextBlockFormat", "QTextBlockGroup",
|
||||
"QTextBlockUserData", "QTextBoundaryFinder", "QTextBrowser",
|
||||
"QTextCharFormat", "QTextCodec", "QTextCodecFactoryInterface",
|
||||
"QTextCodecPlugin", "QTextCursor", "QTextDecoder", "QTextDocument",
|
||||
"QTextDocumentFragment", "QTextDocumentWriter", "QTextEdit",
|
||||
"QTextEncoder", "QTextFormat", "QTextFragment", "QTextFrame",
|
||||
"QTextFrameFormat", "QTextFrameLayoutData", "QTextImageFormat",
|
||||
"QTextInlineObject", "QTextIStream", "QTextItem", "QTextLayout",
|
||||
"QTextLength", "QTextLine", "QTextList", "QTextListFormat",
|
||||
"QTextObject", "QTextObjectInterface", "QTextOption",
|
||||
"QTextOStream", "QTextStream", "QTextStreamFunction",
|
||||
"QTextStreamManipulator", "QTextTable", "QTextTableCell",
|
||||
"QTextTableCellFormat", "QTextTableFormat", "QtGlobal", "QtGui",
|
||||
"QtHelp", "QThread", "QThreadPool", "QThreadStorage",
|
||||
"QThreadStorageData", "QTime", "QTimeEdit", "QTimeLine", "QTimer",
|
||||
"QTimerEvent", "QtMsgHandler", "QtNetwork", "QToolBar",
|
||||
"QToolBarChangeEvent", "QToolBox", "QToolButton", "QToolTip",
|
||||
"QtOpenGL", "QtPlugin", "QtPluginInstanceFunction", "QTransform",
|
||||
"QTranslator", "QTreeView", "QTreeWidget", "QTreeWidgetItem",
|
||||
"QTreeWidgetItemIterator", "QTS", "QtScript", "QtScriptTools",
|
||||
"QtSql", "QtSvg", "QtTest", "QtUiTools", "QtWebKit", "QtXml",
|
||||
"QtXmlPatterns", "QTypeInfo", "QUdpSocket", "QUiLoader",
|
||||
"QUintForSize", "QUintForType", "QUndoCommand", "QUndoGroup",
|
||||
"QUndoStack", "QUndoView", "QUnixPrintWidget", "QUpdateLaterEvent",
|
||||
"QUrl", "QUrlInfo", "QUuid", "QValidator", "QVariant",
|
||||
"QVariantComparisonHelper", "QVariantHash", "QVariantList",
|
||||
"QVariantMap", "QVarLengthArray", "QVBoxLayout", "QVector",
|
||||
"QVectorData", "QVectorIterator", "QVectorTypedData",
|
||||
"QWaitCondition", "QWeakPointer", "QWebDatabase", "QWebFrame",
|
||||
"QWebHistory", "QWebHistoryInterface", "QWebHistoryItem",
|
||||
"QWebHitTestResult", "QWebPage", "QWebPluginFactory",
|
||||
"QWebSecurityOrigin", "QWebSettings", "QWebView", "QWhatsThis",
|
||||
"QWhatsThisClickedEvent", "QWheelEvent", "QWidget", "QWidgetAction",
|
||||
"QWidgetData", "QWidgetItem", "QWidgetItemV2", "QWidgetList",
|
||||
"QWidgetMapper", "QWidgetSet", "QWindowsCEStyle", "QWindowsMime",
|
||||
"QWindowsMobileStyle", "QWindowsStyle", "QWindowStateChangeEvent",
|
||||
"QWindowsVistaStyle", "QWindowsXPStyle", "QWizard", "QWizardPage",
|
||||
"QWMatrix", "QWorkspace", "QWriteLocker", "QX11EmbedContainer",
|
||||
"QX11EmbedWidget", "QX11Info", "QXmlAttributes",
|
||||
"QXmlContentHandler", "QXmlDeclHandler", "QXmlDefaultHandler",
|
||||
"QXmlDTDHandler", "QXmlEntityResolver", "QXmlErrorHandler",
|
||||
"QXmlFormatter", "QXmlInputSource", "QXmlItem",
|
||||
"QXmlLexicalHandler", "QXmlLocator", "QXmlName", "QXmlNamePool",
|
||||
"QXmlNamespaceSupport", "QXmlNodeModelIndex", "QXmlParseException",
|
||||
"QXmlQuery", "QXmlReader", "QXmlResultItems", "QXmlSerializer",
|
||||
"QXmlSimpleReader", "QXmlStreamAttribute", "QXmlStreamAttributes",
|
||||
"QXmlStreamEntityDeclaration", "QXmlStreamEntityDeclarations",
|
||||
"QXmlStreamEntityResolver", "QXmlStreamNamespaceDeclaration",
|
||||
"QXmlStreamNamespaceDeclarations", "QXmlStreamNotationDeclaration",
|
||||
"QXmlStreamNotationDeclarations", "QXmlStreamReader",
|
||||
"QXmlStreamStringRef", "QXmlStreamWriter"
|
||||
'Q_INT8', 'Q_INT16', 'Q_INT32', 'Q_INT64', 'Q_LLONG', 'Q_LONG',
|
||||
'Q_UINT8', 'Q_UINT16', 'Q_UINT32', 'Q_UINT64', 'Q_ULLONG', 'Q_ULONG',
|
||||
|
||||
'QAbstractAnimation', 'QAbstractButton', 'QAbstractEventDispatcher',
|
||||
'QAbstractExtensionFactory', 'QAbstractExtensionManager',
|
||||
'QAbstractFormBuilder', 'QAbstractGraphicsShapeItem',
|
||||
'QAbstractItemDelegate', 'QAbstractItemModel', 'QAbstractItemView',
|
||||
'QAbstractListModel', 'QAbstractMessageHandler',
|
||||
'QAbstractNativeEventFilter', 'QAbstractNetworkCache',
|
||||
'QAbstractOpenGLFunctions', 'QAbstractPlanarVideoBuffer',
|
||||
'QAbstractPrintDialog', 'QAbstractProxyModel', 'QAbstractScrollArea',
|
||||
'QAbstractSlider', 'QAbstractSocket', 'QAbstractSpinBox',
|
||||
'QAbstractState', 'QAbstractTableModel',
|
||||
'QAbstractTextDocumentLayout', 'QAbstractTransition',
|
||||
'QAbstractUriResolver', 'QAbstractVideoBuffer',
|
||||
'QAbstractVideoSurface', 'QAbstractXmlNodeModel',
|
||||
'QAbstractXmlReceiver', 'QAccelerometer', 'QAccelerometerFilter',
|
||||
'QAccelerometerReading', 'QAccessible', 'QAccessibleActionInterface',
|
||||
'QAccessibleEditableTextInterface', 'QAccessibleEvent',
|
||||
'QAccessibleInterface', 'QAccessibleObject', 'QAccessiblePlugin',
|
||||
'QAccessibleStateChangeEvent', 'QAccessibleTableCellInterface',
|
||||
'QAccessibleTableInterface', 'QAccessibleTableModelChangeEvent',
|
||||
'QAccessibleTextCursorEvent', 'QAccessibleTextInsertEvent',
|
||||
'QAccessibleTextInterface', 'QAccessibleTextRemoveEvent',
|
||||
'QAccessibleTextSelectionEvent', 'QAccessibleTextUpdateEvent',
|
||||
'QAccessibleValueChangeEvent', 'QAccessibleValueInterface',
|
||||
'QAccessibleWidget', 'QAction', 'QActionEvent', 'QActionGroup',
|
||||
'QAltimeter', 'QAltimeterFilter', 'QAltimeterReading',
|
||||
'QAmbientLightFilter','QAmbientLightReading', 'QAmbientLightSensor',
|
||||
'QAmbientTemperatureFilter', 'QAmbientTemperatureReading',
|
||||
'QAmbientTemperatureSensor', 'QAndroidActivityResultReceiver',
|
||||
'QAndroidJniEnvironment', 'QAndroidJniObject', 'QAnimationGroup',
|
||||
'QApplication', 'QAssociativeIterable', 'QAtomicInt',
|
||||
'QAtomicInteger', 'QAtomicPointer', 'QAudioBuffer', 'QAudioDecoder',
|
||||
'QAudioDecoderControl', 'QAudioDeviceInfo', 'QAudioEncoderSettings',
|
||||
'QAudioEncoderSettingsControl', 'QAudioFormat', 'QAudioInput',
|
||||
'QAudioInputSelectorControl', 'QAudioOutput',
|
||||
'QAudioOutputSelectorControl', 'QAudioProbe', 'QAudioRecorder',
|
||||
'QAuthenticator', 'QAxAggregated', 'QAxBase', 'QAxBindable',
|
||||
'QAxFactory', 'QAxObject', 'QAxScript', 'QAxScriptEngine',
|
||||
'QAxScriptManager', 'QAxSelect', 'QAxWidget', 'QBackingStore',
|
||||
'QBasicTimer', 'QBitArray', 'QBitmap', 'QBluetoothAddress',
|
||||
'QBluetoothDeviceDiscoveryAgent', 'QBluetoothDeviceInfo',
|
||||
'QBluetoothHostInfo', 'QBluetoothLocalDevice', 'QBluetoothServer',
|
||||
'QBluetoothServiceDiscoveryAgent', 'QBluetoothServiceInfo',
|
||||
'QBluetoothSocket', 'QBluetoothTransferManager',
|
||||
'QBluetoothTransferReply', 'QBluetoothTransferRequest',
|
||||
'QBluetoothUuid', 'QBoxLayout', 'QBrush', 'QBuffer', 'QButtonGroup',
|
||||
'QByteArray', 'QByteArrayList', 'QByteArrayMatcher', 'QCache',
|
||||
'QCalendarWidget', 'QCamera', 'QCameraCaptureBufferFormatControl',
|
||||
'QCameraCaptureDestinationControl', 'QCameraControl',
|
||||
'QCameraExposure', 'QCameraExposureControl', 'QCameraFeedbackControl',
|
||||
'QCameraFlashControl', 'QCameraFocus', 'QCameraFocusControl',
|
||||
'QCameraFocusZone', 'QCameraImageCapture',
|
||||
'QCameraImageCaptureControl', 'QCameraImageProcessing',
|
||||
'QCameraImageProcessingControl', 'QCameraInfo', 'QCameraInfoControl',
|
||||
'QCameraLocksControl', 'QCameraViewfinder',
|
||||
'QCameraViewfinderSettingsControl', 'QCameraZoomControl', 'QChar',
|
||||
'QCheckBox', 'QChildEvent', 'QClipboard', 'QCloseEvent',
|
||||
'QCocoaNativeContext', 'QCollator', 'QCollatorSortKey', 'QColor',
|
||||
'QColorDialog', 'QColormap', 'QColumnView', 'QComboBox',
|
||||
'QCommandLineOption', 'QCommandLineParser', 'QCommandLinkButton',
|
||||
'QCommonStyle', 'QCompass', 'QCompassFilter', 'QCompassReading',
|
||||
'QCompleter', 'QConicalGradient', 'QContextMenuEvent',
|
||||
'QContiguousCache', 'QCoreApplication', 'QCryptographicHash',
|
||||
'QCursor', 'QDBusAbstractAdaptor', 'QDBusAbstractInterface',
|
||||
'QDBusArgument', 'QDBusConnection', 'QDBusConnectionInterface',
|
||||
'QDBusContext', 'QDBusError', 'QDBusInterface', 'QDBusMessage',
|
||||
'QDBusObjectPath', 'QDBusPendingCall', 'QDBusPendingCallWatcher',
|
||||
'QDBusPendingReply', 'QDBusReply', 'QDBusServer',
|
||||
'QDBusServiceWatcher', 'QDBusSignature', 'QDBusUnixFileDescriptor',
|
||||
'QDBusVariant', 'QDBusVirtualObject', 'QDataStream',
|
||||
'QDataWidgetMapper', 'QDate', 'QDateEdit', 'QDateTime',
|
||||
'QDateTimeEdit', 'QDebug', 'QDebugStateSaver',
|
||||
'QDesignerActionEditorInterface', 'QDesignerContainerExtension',
|
||||
'QDesignerCustomWidgetCollectionInterface',
|
||||
'QDesignerCustomWidgetInterface',
|
||||
'QDesignerDynamicPropertySheetExtension',
|
||||
'QDesignerFormEditorInterface', 'QDesignerFormWindowCursorInterface',
|
||||
'QDesignerFormWindowInterface', 'QDesignerFormWindowManagerInterface',
|
||||
'QDesignerMemberSheetExtension', 'QDesignerObjectInspectorInterface',
|
||||
'QDesignerPropertyEditorInterface', 'QDesignerPropertySheetExtension',
|
||||
'QDesignerTaskMenuExtension', 'QDesignerWidgetBoxInterface',
|
||||
'QDesktopServices', 'QDesktopWidget', 'QDial', 'QDialog',
|
||||
'QDialogButtonBox', 'QDir', 'QDirIterator', 'QDirModel',
|
||||
'QDistanceFilter', 'QDistanceReading', 'QDistanceSensor',
|
||||
'QDnsDomainNameRecord', 'QDnsHostAddressRecord', 'QDnsLookup',
|
||||
'QDnsMailExchangeRecord', 'QDnsServiceRecord', 'QDnsTextRecord',
|
||||
'QDockWidget', 'QDomAttr', 'QDomCDATASection', 'QDomCharacterData',
|
||||
'QDomComment', 'QDomDocument', 'QDomDocumentFragment',
|
||||
'QDomDocumentType', 'QDomElement', 'QDomEntity', 'QDomEntityReference',
|
||||
'QDomImplementation', 'QDomNamedNodeMap', 'QDomNode', 'QDomNodeList',
|
||||
'QDomNotation', 'QDomProcessingInstruction', 'QDomText',
|
||||
'QDoubleSpinBox', 'QDoubleValidator', 'QDrag', 'QDragEnterEvent',
|
||||
'QDragLeaveEvent', 'QDragMoveEvent', 'QDropEvent',
|
||||
'QDynamicPropertyChangeEvent', 'EnginioClient',
|
||||
'EnginioClientConnection', 'EnginioIdentity', 'EnginioModel',
|
||||
'EnginioOAuth2Authentication', 'EnginioReply', 'QEGLNativeContext',
|
||||
'QEasingCurve', 'QEglFSFunctions', 'QElapsedTimer',
|
||||
'QEnableSharedFromThis', 'QEnterEvent', 'QErrorMessage', 'QEvent',
|
||||
'QEventLoop', 'QEventLoopLocker', 'QEventTransition', 'QException',
|
||||
'QExplicitlySharedDataPointer', 'QExposeEvent', 'QExtensionFactory',
|
||||
'QExtensionManager', 'QFile', 'QFileDevice', 'QFileDialog',
|
||||
'QFileIconProvider', 'QFileInfo', 'QFileOpenEvent', 'QFileSelector',
|
||||
'QFileSystemModel', 'QFileSystemWatcher', 'QFinalState', 'QFlag',
|
||||
'QFlags', 'QFocusEvent', 'QFocusFrame', 'QFont', 'QFontComboBox',
|
||||
'QFontDatabase', 'QFontDialog', 'QFontInfo', 'QFontMetrics',
|
||||
'QFontMetricsF', 'QFormBuilder', 'QFormLayout', 'QFrame', 'QFuture',
|
||||
'QFutureIterator', 'QFutureSynchronizer', 'QFutureWatcher',
|
||||
'QGLBuffer', 'QGLColormap', 'QGLContext', 'QGLFormat',
|
||||
'QGLFramebufferObject', 'QGLFramebufferObjectFormat', 'QGLFunctions',
|
||||
'QGLPixelBuffer', 'QGLShader', 'QGLShaderProgram', 'QGLWidget',
|
||||
'QGLXNativeContext', 'QGenericArgument', 'QGenericMatrix',
|
||||
'QGenericPlugin', 'QGenericPluginFactory', 'QGenericReturnArgument',
|
||||
'QGeoAddress', 'QGeoAreaMonitorInfo', 'QGeoAreaMonitorSource',
|
||||
'QGeoCircle', 'QGeoCodeReply', 'QGeoCodingManager',
|
||||
'QGeoCodingManagerEngine', 'QGeoCoordinate', 'QGeoLocation',
|
||||
'QGeoManeuver', 'QGeoPositionInfo', 'QGeoPositionInfoSource',
|
||||
'QGeoPositionInfoSourceFactory', 'QGeoRectangle', 'QGeoRoute',
|
||||
'QGeoRouteReply', 'QGeoRouteRequest', 'QGeoRouteSegment',
|
||||
'QGeoRoutingManager', 'QGeoRoutingManagerEngine',
|
||||
'QGeoSatelliteInfo', 'QGeoSatelliteInfoSource',
|
||||
'QGeoServiceProvider', 'QGeoServiceProviderFactory', 'QGeoShape',
|
||||
'QGesture', 'QGestureEvent', 'QGestureRecognizer', 'QGlobalStatic',
|
||||
'QGlyphRun', 'QGradient', 'QGraphicsAnchor', 'QGraphicsAnchorLayout',
|
||||
'QGraphicsBlurEffect', 'QGraphicsColorizeEffect',
|
||||
'QGraphicsDropShadowEffect', 'QGraphicsEffect',
|
||||
'QGraphicsEllipseItem', 'QGraphicsGridLayout', 'QGraphicsItem',
|
||||
'QGraphicsItemAnimation', 'QGraphicsItemGroup', 'QGraphicsLayout',
|
||||
'QGraphicsLayoutItem', 'QGraphicsLineItem', 'QGraphicsLinearLayout',
|
||||
'QGraphicsObject', 'QGraphicsOpacityEffect', 'QGraphicsPathItem',
|
||||
'QGraphicsPixmapItem', 'QGraphicsPolygonItem',
|
||||
'QGraphicsProxyWidget', 'QGraphicsRectItem', 'QGraphicsRotation',
|
||||
'QGraphicsScale', 'QGraphicsScene', 'QGraphicsSceneContextMenuEvent',
|
||||
'QGraphicsSceneDragDropEvent', 'QGraphicsSceneEvent',
|
||||
'QGraphicsSceneHelpEvent', 'QGraphicsSceneHoverEvent',
|
||||
'QGraphicsSceneMouseEvent', 'QGraphicsSceneMoveEvent',
|
||||
'QGraphicsSceneResizeEvent', 'QGraphicsSceneWheelEvent',
|
||||
'QGraphicsSimpleTextItem', 'QGraphicsSvgItem', 'QGraphicsTextItem',
|
||||
'QGraphicsTransform', 'QGraphicsVideoItem', 'QGraphicsView',
|
||||
'QGraphicsWebView', 'QGraphicsWidget', 'QGridLayout', 'QGroupBox',
|
||||
'QGuiApplication', 'QGyroscope', 'QGyroscopeFilter',
|
||||
'QGyroscopeReading', 'QHBoxLayout', 'QHash', 'QHashIterator',
|
||||
'QHeaderView', 'QHelpContentItem', 'QHelpContentModel',
|
||||
'QHelpContentWidget', 'QHelpEngine', 'QHelpEngineCore', 'QHelpEvent',
|
||||
'QHelpIndexModel', 'QHelpIndexWidget', 'QHelpSearchEngine',
|
||||
'QHelpSearchQuery', 'QHelpSearchQueryWidget',
|
||||
'QHelpSearchResultWidget', 'QHideEvent', 'QHistoryState',
|
||||
'QHolsterFilter', 'QHolsterReading', 'QHolsterSensor',
|
||||
'QHostAddress', 'QHostInfo', 'QHoverEvent', 'QHttpMultiPart',
|
||||
'QHttpPart', 'QIODevice', 'QIRProximityFilter', 'QIRProximityReading',
|
||||
'QIRProximitySensor', 'QIcon', 'QIconDragEvent', 'QIconEngine',
|
||||
'QIconEnginePlugin', 'QIdentityProxyModel', 'QImage',
|
||||
'QImageEncoderControl', 'QImageEncoderSettings', 'QImageIOHandler',
|
||||
'QImageIOPlugin', 'QImageReader', 'QImageWriter', 'QInputDialog',
|
||||
'QInputEvent', 'QInputMethod', 'QInputMethodEvent',
|
||||
'QInputMethodQueryEvent', 'QIntValidator', 'QItemDelegate',
|
||||
'QItemEditorCreator', 'QItemEditorCreatorBase', 'QItemEditorFactory',
|
||||
'QItemSelection', 'QItemSelectionModel', 'QItemSelectionRange',
|
||||
'QJSEngine', 'QJSValue', 'QJSValueIterator', 'QJsonArray',
|
||||
'QJsonDocument', 'QJsonObject', 'QJsonParseError', 'QJsonValue',
|
||||
'QKeyEvent', 'QKeyEventTransition', 'QKeySequence', 'QKeySequenceEdit',
|
||||
'QLCDNumber', 'QLabel', 'QLatin1Char', 'QLatin1String', 'QLayout',
|
||||
'QLayoutItem', 'QLibrary', 'QLibraryInfo', 'QLightFilter',
|
||||
'QLightReading', 'QLightSensor', 'QLine', 'QLineEdit', 'QLineF',
|
||||
'QLinearGradient', 'QLinkedList', 'QLinkedListIterator', 'QList',
|
||||
'QListIterator', 'QListView', 'QListWidget', 'QListWidgetItem',
|
||||
'QLocalServer', 'QLocalSocket', 'QLocale', 'QLockFile',
|
||||
'QLoggingCategory', 'QLowEnergyCharacteristic',
|
||||
'QLowEnergyController', 'QLowEnergyDescriptor', 'QLowEnergyService',
|
||||
'QMacCocoaViewContainer', 'QMacNativeWidget', 'QMacPasteboardMime',
|
||||
'QMacToolBar', 'QMacToolBarItem', 'QMagnetometer',
|
||||
'QMagnetometerFilter', 'QMagnetometerReading', 'QMainWindow', 'QMap',
|
||||
'QMapIterator', 'QMargins', 'QMarginsF', 'QMaskGenerator', 'QMatrix',
|
||||
'QMatrix4x4', 'QMdiArea', 'QMdiSubWindow', 'QMediaAudioProbeControl',
|
||||
'QMediaAvailabilityControl', 'QMediaBindableInterface',
|
||||
'QMediaContainerControl', 'QMediaContent', 'QMediaControl',
|
||||
'QMediaGaplessPlaybackControl', 'QMediaNetworkAccessControl',
|
||||
'QMediaObject', 'QMediaPlayer', 'QMediaPlayerControl',
|
||||
'QMediaPlaylist', 'QMediaRecorder', 'QMediaRecorderControl',
|
||||
'QMediaResource', 'QMediaService', 'QMediaServiceCameraInfoInterface',
|
||||
'QMediaServiceFeaturesInterface', 'QMediaServiceProviderPlugin',
|
||||
'QMediaServiceSupportedDevicesInterface',
|
||||
'QMediaServiceSupportedFormatsInterface', 'QMediaStreamsControl',
|
||||
'QMediaTimeInterval', 'QMediaTimeRange', 'QMediaVideoProbeControl',
|
||||
'QMenu', 'QMenuBar', 'QMessageAuthenticationCode', 'QMessageBox',
|
||||
'QMessageLogContext', 'QMessageLogger', 'QMetaClassInfo',
|
||||
'QMetaDataReaderControl', 'QMetaDataWriterControl', 'QMetaEnum',
|
||||
'QMetaMethod', 'QMetaObject', 'QMetaProperty', 'QMetaType',
|
||||
'QMimeData', 'QMimeDatabase', 'QMimeType', 'QModelIndex',
|
||||
'QMouseEvent', 'QMouseEventTransition', 'QMoveEvent', 'QMovie',
|
||||
'QMultiHash', 'QMultiMap', 'QMutableHashIterator',
|
||||
'QMutableLinkedListIterator', 'QMutableListIterator',
|
||||
'QMutableMapIterator', 'QMutableSetIterator',
|
||||
'QMutableVectorIterator', 'QMutex', 'QMutexLocker',
|
||||
'QNativeGestureEvent', 'QNdefFilter', 'QNdefMessage',
|
||||
'QNdefNfcSmartPosterRecord', 'QNdefNfcTextRecord',
|
||||
'QNdefNfcUriRecord', 'QNdefRecord', 'QNearFieldManager',
|
||||
'QNearFieldShareManager', 'QNearFieldShareTarget', 'QNearFieldTarget',
|
||||
'QNetworkAccessManager', 'QNetworkAddressEntry',
|
||||
'QNetworkCacheMetaData', 'QNetworkConfiguration',
|
||||
'QNetworkConfigurationManager', 'QNetworkCookie', 'QNetworkCookieJar',
|
||||
'QNetworkDiskCache', 'QNetworkInterface', 'QNetworkProxy',
|
||||
'QNetworkProxyFactory', 'QNetworkProxyQuery', 'QNetworkReply',
|
||||
'QNetworkRequest', 'QNetworkSession', 'QNmeaPositionInfoSource',
|
||||
'QObject', 'QObjectCleanupHandler', 'QOffscreenSurface',
|
||||
'QOpenGLBuffer', 'QOpenGLContext', 'QOpenGLContextGroup',
|
||||
'QOpenGLDebugLogger', 'QOpenGLDebugMessage',
|
||||
'QOpenGLFramebufferObject', 'QOpenGLFramebufferObjectFormat',
|
||||
'QOpenGLFunctions', 'QOpenGLFunctions_1_0', 'QOpenGLFunctions_1_1',
|
||||
'QOpenGLFunctions_1_2', 'QOpenGLFunctions_1_3', 'QOpenGLFunctions_1_4',
|
||||
'QOpenGLFunctions_1_5', 'QOpenGLFunctions_2_0', 'QOpenGLFunctions_2_1',
|
||||
'QOpenGLFunctions_3_0', 'QOpenGLFunctions_3_1',
|
||||
'QOpenGLFunctions_3_2_Compatibility', 'QOpenGLFunctions_3_2_Core',
|
||||
'QOpenGLFunctions_3_3_Compatibility', 'QOpenGLFunctions_3_3_Core',
|
||||
'QOpenGLFunctions_4_0_Compatibility', 'QOpenGLFunctions_4_0_Core',
|
||||
'QOpenGLFunctions_4_1_Compatibility', 'QOpenGLFunctions_4_1_Core',
|
||||
'QOpenGLFunctions_4_2_Compatibility', 'QOpenGLFunctions_4_2_Core',
|
||||
'QOpenGLFunctions_4_3_Compatibility', 'QOpenGLFunctions_4_3_Core',
|
||||
'QOpenGLFunctions_ES2', 'QOpenGLPaintDevice',
|
||||
'QOpenGLPixelTransferOptions', 'QOpenGLShader',
|
||||
'QOpenGLShaderProgram', 'QOpenGLTexture', 'QOpenGLTimeMonitor',
|
||||
'QOpenGLTimerQuery', 'QOpenGLVersionProfile',
|
||||
'QOpenGLVertexArrayObject', 'QOpenGLWidget', 'QOpenGLWindow',
|
||||
'QOrientationFilter', 'QOrientationReading', 'QOrientationSensor',
|
||||
'QPageLayout', 'QPageSetupDialog', 'QPageSize', 'QPagedPaintDevice',
|
||||
'QPaintDevice', 'QPaintDeviceWindow', 'QPaintEngine',
|
||||
'QPaintEngineState', 'QPaintEvent', 'QPainter', 'QPainterPath',
|
||||
'QPainterPathStroker', 'QPair', 'QPalette', 'QPanGesture',
|
||||
'QParallelAnimationGroup', 'QPauseAnimation', 'QPdfWriter', 'QPen',
|
||||
'QPersistentModelIndex', 'QPicture', 'QPictureFormatPlugin',
|
||||
'QPictureIO', 'QPinchGesture', 'QPixelFormat', 'QPixmap',
|
||||
'QPixmapCache', 'QPlace', 'QPlaceAttribute', 'QPlaceCategory',
|
||||
'QPlaceContactDetail', 'QPlaceContent', 'QPlaceContentReply',
|
||||
'QPlaceContentRequest', 'QPlaceDetailsReply', 'QPlaceEditorial',
|
||||
'QPlaceIcon', 'QPlaceIdReply', 'QPlaceImage', 'QPlaceManager',
|
||||
'QPlaceManagerEngine', 'QPlaceMatchReply', 'QPlaceMatchRequest',
|
||||
'QPlaceProposedSearchResult', 'QPlaceRatings', 'QPlaceReply',
|
||||
'QPlaceResult', 'QPlaceReview', 'QPlaceSearchReply',
|
||||
'QPlaceSearchRequest', 'QPlaceSearchResult',
|
||||
'QPlaceSearchSuggestionReply', 'QPlaceSupplier', 'QPlaceUser',
|
||||
'QPlainTextDocumentLayout', 'QPlainTextEdit',
|
||||
'QPlatformSystemTrayIcon', 'QPluginLoader', 'QPoint', 'QPointF',
|
||||
'QPointer', 'QPolygon', 'QPolygonF', 'QPressureFilter',
|
||||
'QPressureReading', 'QPressureSensor', 'QPrintDialog', 'QPrintEngine',
|
||||
'QPrintPreviewDialog', 'QPrintPreviewWidget', 'QPrinter',
|
||||
'QPrinterInfo', 'QProcess', 'QProcessEnvironment', 'QProgressBar',
|
||||
'QProgressDialog', 'QPropertyAnimation', 'QProximityFilter',
|
||||
'QProximityReading', 'QProximitySensor', 'QProxyStyle',
|
||||
'QPushButton', 'QQmlAbstractProfilerAdapter',
|
||||
'QQmlAbstractUrlInterceptor', 'QQmlApplicationEngine',
|
||||
'QQmlComponent', 'QQmlContext', 'QQmlEngine', 'QQmlError',
|
||||
'QQmlExpression', 'QQmlExtensionPlugin', 'QQmlFileSelector',
|
||||
'QQmlImageProviderBase', 'QQmlIncubationController', 'QQmlIncubator',
|
||||
'QQmlListProperty', 'QQmlListReference', 'QQmlNdefRecord',
|
||||
'QQmlNetworkAccessManagerFactory', 'QQmlParserStatus', 'QQmlProperty',
|
||||
'QQmlPropertyMap', 'QQmlPropertyValueSource', 'QQmlScriptString',
|
||||
'QQuaternion', 'QQueue', 'QQuickFramebufferObject', 'QQuickImageProvider',
|
||||
'QQuickItem', 'QQuickItemGrabResult', 'QQuickPaintedItem',
|
||||
'QQuickRenderControl', 'QQuickTextDocument', 'QQuickTextureFactory',
|
||||
'QQuickView', 'QQuickWidget', 'QQuickWindow', 'QTouchEventSequence',
|
||||
'Qoutputrange', 'QRadialGradient', 'QRadioButton', 'QRadioData',
|
||||
'QRadioDataControl', 'QRadioTuner', 'QRadioTunerControl',
|
||||
'QRasterPaintEngine', 'QRasterWindow', 'QRawFont', 'QReadLocker',
|
||||
'QReadWriteLock', 'QRect', 'QRectF', 'QRegExp', 'QRegExpValidator',
|
||||
'QRegion', 'QRegularExpression', 'QRegularExpressionMatch',
|
||||
'QRegularExpressionMatchIterator', 'QRegularExpressionValidator',
|
||||
'QResizeEvent', 'QResource', 'QRotationFilter', 'QRotationReading',
|
||||
'QRotationSensor', 'QRubberBand', 'QRunnable', 'QSGAbstractRenderer',
|
||||
'QSGBasicGeometryNode', 'QSGClipNode', 'QSGDynamicTexture',
|
||||
'QSGEngine', 'QSGFlatColorMaterial', 'QSGGeometry', 'QSGGeometryNode',
|
||||
'QSGMaterial', 'QSGMaterialShader', 'QSGMaterialType', 'QSGNode',
|
||||
'QSGOpacityNode', 'QSGOpaqueTextureMaterial', 'QSGSimpleMaterial',
|
||||
'QSGSimpleMaterialShader', 'QSGSimpleRectNode',
|
||||
'QSGSimpleTextureNode', 'QSGTexture', 'QSGTextureMaterial',
|
||||
'QSGTextureProvider', 'QSGTransformNode', 'QSGVertexColorMaterial',
|
||||
'QSaveFile', 'QScopedArrayPointer', 'QScopedPointer',
|
||||
'QScopedValueRollback', 'QScreen', 'QScriptClass',
|
||||
'QScriptClassPropertyIterator', 'QScriptContext',
|
||||
'QScriptContextInfo', 'QScriptEngine', 'QScriptEngineAgent',
|
||||
'QScriptEngineDebugger', 'QScriptExtensionPlugin', 'QScriptProgram',
|
||||
'QScriptString', 'QScriptSyntaxCheckResult', 'QScriptValue',
|
||||
'QScriptValueIterator', 'QScriptable', 'QScrollArea', 'QScrollBar',
|
||||
'QScrollEvent', 'QScrollPrepareEvent', 'QScroller',
|
||||
'QScrollerProperties', 'QSemaphore', 'QSensor', 'QSensorBackend',
|
||||
'QSensorBackendFactory', 'QSensorChangesInterface', 'QSensorFilter',
|
||||
'QSensorGesture', 'QSensorGestureManager',
|
||||
'QSensorGesturePluginInterface', 'QSensorGestureRecognizer',
|
||||
'QSensorManager', 'QSensorPluginInterface', 'QSensorReading',
|
||||
'QSequentialAnimationGroup', 'QSequentialIterable', 'QSerialPort',
|
||||
'QSerialPortInfo', 'QSessionManager', 'QSet', 'QSetIterator',
|
||||
'QSettings', 'QSharedData', 'QSharedDataPointer', 'QSharedMemory',
|
||||
'QSharedPointer', 'QShortcut', 'QShortcutEvent', 'QShowEvent',
|
||||
'QSignalBlocker', 'QSignalMapper', 'QSignalSpy', 'QSignalTransition',
|
||||
'QSimpleXmlNodeModel', 'QSize', 'QSizeF', 'QSizeGrip', 'QSizePolicy',
|
||||
'QSlider', 'QSocketNotifier', 'QSortFilterProxyModel', 'QSound',
|
||||
'QSoundEffect', 'QSourceLocation', 'QSpacerItem', 'QSpinBox',
|
||||
'QSplashScreen', 'QSplitter', 'QSplitterHandle', 'QSqlDatabase',
|
||||
'QSqlDriver', 'QSqlDriverCreator', 'QSqlDriverCreatorBase',
|
||||
'QSqlDriverPlugin', 'QSqlError', 'QSqlField', 'QSqlIndex',
|
||||
'QSqlQuery', 'QSqlQueryModel', 'QSqlRecord', 'QSqlRelation',
|
||||
'QSqlRelationalDelegate', 'QSqlRelationalTableModel', 'QSqlResult',
|
||||
'QSqlTableModel', 'QSslCertificate', 'QSslCertificateExtension',
|
||||
'QSslCipher', 'QSslConfiguration', 'QSslError', 'QSslKey',
|
||||
'QSslSocket', 'QStack', 'QStackedLayout', 'QStackedWidget',
|
||||
'QStandardItem', 'QStandardItemEditorCreator', 'QStandardItemModel',
|
||||
'QStandardPaths', 'QState', 'QStateMachine', 'QStaticPlugin',
|
||||
'QStaticText', 'QStatusBar', 'QStatusTipEvent', 'QStorageInfo',
|
||||
'QString', 'QStringList', 'QStringListModel', 'QStringMatcher',
|
||||
'QStringRef', 'QStyle', 'QStyleFactory', 'QStyleHintReturn',
|
||||
'QStyleHintReturnMask', 'QStyleHintReturnVariant', 'QStyleHints',
|
||||
'QStyleOption', 'QStyleOptionButton', 'QStyleOptionComboBox',
|
||||
'QStyleOptionComplex', 'QStyleOptionDockWidget',
|
||||
'QStyleOptionFocusRect', 'QStyleOptionFrame',
|
||||
'QStyleOptionGraphicsItem', 'QStyleOptionGroupBox',
|
||||
'QStyleOptionHeader', 'QStyleOptionMenuItem',
|
||||
'QStyleOptionProgressBar', 'QStyleOptionRubberBand',
|
||||
'QStyleOptionSizeGrip', 'QStyleOptionSlider',
|
||||
'QStyleOptionSpinBox', 'QStyleOptionTab',
|
||||
'QStyleOptionTabBarBase', 'QStyleOptionTabWidgetFrame',
|
||||
'QStyleOptionTitleBar', 'QStyleOptionToolBar',
|
||||
'QStyleOptionToolBox', 'QStyleOptionToolButton',
|
||||
'QStyleOptionViewItem', 'QStylePainter', 'QStylePlugin',
|
||||
'QStyledItemDelegate', 'QSupportedWritingSystems', 'QSurface',
|
||||
'QSurfaceFormat', 'QSvgGenerator', 'QSvgRenderer', 'QSvgWidget',
|
||||
'QSwipeGesture', 'QSyntaxHighlighter', 'QSysInfo', 'QSystemSemaphore',
|
||||
'QSystemTrayIcon', 'QTabBar', 'QTabWidget', 'QTableView',
|
||||
'QTableWidget', 'QTableWidgetItem', 'QTableWidgetSelectionRange',
|
||||
'QTabletEvent', 'QTapAndHoldGesture', 'QTapFilter', 'QTapGesture',
|
||||
'QTapReading', 'QTapSensor', 'QTcpServer', 'QTcpSocket',
|
||||
'QTemporaryDir', 'QTemporaryFile', 'QTestEventList', 'QTextBlock',
|
||||
'QTextBlockFormat', 'QTextBlockGroup', 'QTextBlockUserData',
|
||||
'QTextBoundaryFinder', 'QTextBrowser', 'QTextCharFormat',
|
||||
'QTextCodec', 'QTextCursor', 'QTextDecoder', 'QTextDocument',
|
||||
'QTextDocumentFragment', 'QTextDocumentWriter', 'QTextEdit',
|
||||
'QTextEncoder', 'QTextFormat', 'QTextFragment', 'QTextFrame',
|
||||
'QTextFrameFormat', 'QTextImageFormat', 'QTextInlineObject',
|
||||
'QTextItem', 'QTextLayout', 'QTextLength', 'QTextLine', 'QTextList',
|
||||
'QTextListFormat', 'QTextObject', 'QTextObjectInterface',
|
||||
'QTextOption', 'QTextStream', 'QTextTable', 'QTextTableCell',
|
||||
'QTextTableCellFormat', 'QTextTableFormat', 'QThread', 'QThreadPool',
|
||||
'QThreadStorage', 'QTileRules', 'QTiltFilter', 'QTiltReading',
|
||||
'QTiltSensor', 'QTime', 'QTimeEdit', 'QTimeLine', 'QTimeZone',
|
||||
'QTimer', 'QTimerEvent', 'QToolBar', 'QToolBox', 'QToolButton',
|
||||
'QToolTip', 'QTouchDevice', 'QTouchEvent', 'QTransform',
|
||||
'QTranslator', 'QTreeView', 'QTreeWidget', 'QTreeWidgetItem',
|
||||
'QTreeWidgetItemIterator', 'QUdpSocket', 'QUiLoader', 'QUndoCommand',
|
||||
'QUndoGroup', 'QUndoStack', 'QUndoView', 'QUnhandledException',
|
||||
'QUrl', 'QUrlQuery', 'QUuid', 'QVBoxLayout', 'QValidator',
|
||||
'QVarLengthArray', 'QVariant', 'QVariantAnimation', 'QVector',
|
||||
'QVector2D', 'QVector3D', 'QVector4D', 'QVectorIterator',
|
||||
'QVideoDeviceSelectorControl', 'QVideoEncoderSettings',
|
||||
'QVideoEncoderSettingsControl', 'QVideoFrame', 'QVideoProbe',
|
||||
'QVideoRendererControl', 'QVideoSurfaceFormat', 'QVideoWidget',
|
||||
'QVideoWidgetControl', 'QVideoWindowControl', 'QWGLNativeContext',
|
||||
'QWaitCondition', 'QWeakPointer', 'QWebChannel',
|
||||
'QWebChannelAbstractTransport', 'QWebDatabase', 'QWebElement',
|
||||
'QWebElementCollection', 'QWebEngineHistory', 'QWebEngineHistoryItem',
|
||||
'QWebEnginePage', 'QWebEngineSettings', 'QWebEngineView', 'QWebFrame',
|
||||
'QWebHistory', 'QWebHistoryInterface', 'QWebHistoryItem',
|
||||
'QWebHitTestResult', 'QWebInspector', 'QWebPage', 'QWebPluginFactory',
|
||||
'QWebSecurityOrigin', 'QWebSettings', 'QWebSocket',
|
||||
'QWebSocketCorsAuthenticator', 'QWebSocketServer', 'QWebView',
|
||||
'QWhatsThis', 'QWhatsThisClickedEvent', 'QWheelEvent', 'QWidget',
|
||||
'QWidgetAction', 'QWidgetItem', 'QWinEventNotifier', 'QWinJumpList',
|
||||
'QWinJumpListCategory', 'QWinJumpListItem', 'QWinMime',
|
||||
'QWinTaskbarButton', 'QWinTaskbarProgress', 'QWinThumbnailToolBar',
|
||||
'QWinThumbnailToolButton', 'QWindow', 'QWindowStateChangeEvent',
|
||||
'QWizard', 'QWizardPage', 'QWriteLocker', 'QX11Info',
|
||||
'QXcbWindowFunctions', 'QXmlAttributes', 'QXmlContentHandler',
|
||||
'QXmlDTDHandler', 'QXmlDeclHandler', 'QXmlDefaultHandler',
|
||||
'QXmlEntityResolver','QXmlErrorHandler', 'QXmlFormatter',
|
||||
'QXmlInputSource', 'QXmlItem', 'QXmlLexicalHandler', 'QXmlLocator',
|
||||
'QXmlName', 'QXmlNamePool', 'QXmlNamespaceSupport',
|
||||
'QXmlNodeModelIndex', 'QXmlParseException', 'QXmlQuery',
|
||||
'QXmlReader', 'QXmlResultItems', 'QXmlSchema', 'QXmlSchemaValidator',
|
||||
'QXmlSerializer', 'QXmlSimpleReader', 'QXmlStreamAttribute',
|
||||
'QXmlStreamAttributes', 'QXmlStreamEntityDeclaration',
|
||||
'QXmlStreamEntityResolver', 'QXmlStreamNamespaceDeclaration',
|
||||
'QXmlStreamNotationDeclaration', 'QXmlStreamReader',
|
||||
'QXmlStreamWriter'
|
||||
)
|
||||
),
|
||||
'SYMBOLS' => array(
|
||||
|
@ -8,7 +8,7 @@
|
||||
* - Jack Lloyd (lloyd@randombit.net)
|
||||
* - Benny Baumann (BenBE@geshi.org)
|
||||
* Copyright: (c) 2004 Dennis Bayer, Nigel McNie, 2012 Benny Baumann (http://qbnz.com/highlighter)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/09/27
|
||||
*
|
||||
* C++ language file for GeSHi.
|
||||
|
@ -7,13 +7,15 @@
|
||||
* - M. Uli Kusterer (witness.of.teachtext@gmx.net)
|
||||
* - Jack Lloyd (lloyd@randombit.net)
|
||||
* Copyright: (c) 2004 Dennis Bayer, Nigel McNie (http://qbnz.com/highlighter)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/09/27
|
||||
*
|
||||
* C++ language file for GeSHi.
|
||||
*
|
||||
* CHANGES
|
||||
* -------
|
||||
* 2013/11/06
|
||||
* - Added nullptr from c++11 & others
|
||||
* 2008/05/23 (1.0.7.22)
|
||||
* - Added description of extra language features (SF#1970248)
|
||||
* 2004/XX/XX (1.0.2)
|
||||
@ -101,10 +103,13 @@ $language_data = array (
|
||||
'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC',
|
||||
'virtual', 'public', 'private', 'protected', 'template', 'using', 'namespace',
|
||||
'try', 'catch', 'inline', 'dynamic_cast', 'const_cast', 'reinterpret_cast',
|
||||
'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class'
|
||||
'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class', 'nullptr',
|
||||
'decltype', 'override', 'final', 'noexcept', 'alignas', 'alignof', 'noreturn',
|
||||
'constexpr', 'and', 'and_eq', 'asm', 'bitand', 'bitor', 'thread_local',
|
||||
'static_assert', 'compl', 'or', 'or_eq', 'xor', 'xor_eq', 'not', 'not_eq'
|
||||
),
|
||||
3 => array(
|
||||
'cin', 'cerr', 'clog', 'cout', 'delete', 'new', 'this',
|
||||
'cin', 'cerr', 'clog', 'cout', 'delete', 'new', 'this', 'export',
|
||||
'printf', 'fprintf', 'snprintf', 'sprintf', 'assert',
|
||||
'isalnum', 'isalpha', 'isdigit', 'iscntrl', 'isgraph', 'islower', 'isprint',
|
||||
'ispunct', 'isspace', 'isupper', 'isxdigit', 'tolower', 'toupper',
|
||||
@ -126,11 +131,12 @@ $language_data = array (
|
||||
'asctime', 'ctime', 'gmtime', 'localtime', 'strftime'
|
||||
),
|
||||
4 => array(
|
||||
'auto', 'bool', 'char', 'const', 'double', 'float', 'int', 'long', 'longint',
|
||||
'register', 'short', 'shortint', 'signed', 'static', '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', 'wchar_t',
|
||||
'auto', 'bool', 'char', 'char16_t', 'char32_t', 'const', 'double', 'float',
|
||||
'int', 'long', 'longint','register', 'short', 'shortint', 'signed',
|
||||
'static', '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', 'wchar_t',
|
||||
'mutable',
|
||||
|
||||
'int8', 'int16', 'int32', 'int64',
|
||||
'uint8', 'uint16', 'uint32', 'uint64',
|
||||
|
@ -5,13 +5,15 @@
|
||||
* Author: Alan Juden (alan@judenware.org)
|
||||
* Revised by: Michael Mol (mikemol@gmail.com)
|
||||
* Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/06/04
|
||||
*
|
||||
* C# language file for GeSHi.
|
||||
*
|
||||
* CHANGES
|
||||
* -------
|
||||
* 2015/04/14
|
||||
* - Added C# 5.0 and 6.0 missing keywords and #pragma directive
|
||||
* 2012/06/18 (1.0.8.11)
|
||||
* - Added missing keywords (Christian Stelzmann)
|
||||
* 2009/04/03 (1.0.8.6)
|
||||
@ -62,7 +64,8 @@ $language_data = array (
|
||||
'ESCAPE_CHAR' => '\\',
|
||||
'KEYWORDS' => array(
|
||||
1 => array(
|
||||
'abstract', 'add', 'as', 'base', 'break', 'by', 'case', 'catch', 'const', 'continue',
|
||||
'abstract', 'add', 'as', 'async', 'await', 'base',
|
||||
'break', 'by', 'case', 'catch', 'const', 'continue',
|
||||
'default', 'do', 'else', 'event', 'explicit', 'extern', 'false',
|
||||
'finally', 'fixed', 'for', 'foreach', 'from', 'get', 'goto', 'group', 'if',
|
||||
'implicit', 'in', 'into', 'internal', 'join', 'lock', 'namespace', 'null',
|
||||
@ -74,10 +77,10 @@ $language_data = array (
|
||||
),
|
||||
2 => array(
|
||||
'#elif', '#endif', '#endregion', '#else', '#error', '#define', '#if',
|
||||
'#line', '#region', '#undef', '#warning'
|
||||
'#line', '#pragma', '#region', '#undef', '#warning'
|
||||
),
|
||||
3 => array(
|
||||
'checked', 'is', 'new', 'sizeof', 'typeof', 'unchecked'
|
||||
'checked', 'is', 'new', 'nameof', 'sizeof', 'typeof', 'unchecked'
|
||||
),
|
||||
4 => array(
|
||||
'bool', 'byte', 'char', 'class', 'decimal', 'delegate', 'double',
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -4,7 +4,7 @@
|
||||
* ----------
|
||||
* Author: Benny Baumann (benbe@geshi.org)
|
||||
* Copyright: (c) 2009 Benny Baumann (http://qbnz.com/highlighter/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2009/12/21
|
||||
*
|
||||
* Cuesheet language file for GeSHi.
|
||||
|
@ -6,7 +6,7 @@
|
||||
* Contributors:
|
||||
* - Jimmy Cao
|
||||
* Copyright: (c) 2005 Thomas Kuehne (http://thomas.kuehne.cn/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2005/04/22
|
||||
*
|
||||
* D language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Edward Hart (edward.dan.hart@gmail.com)
|
||||
* Copyright: (c) 2013 Edward Hart
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2013/10/25
|
||||
*
|
||||
* Dart language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Petr Hendl (petr@hendl.cz)
|
||||
* Copyright: (c) 2011 Petr Hendl http://hendl.cz/geshi/
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2011/02/17
|
||||
*
|
||||
* DCL language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* -------
|
||||
* Author: Benny Baumann (BenBE@omorphia.de)
|
||||
* Copyright: (c) 2007-2014 Benny Baumann (http://geshi.org/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2012/04/12
|
||||
*
|
||||
* DCPU/16 Assembly language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ---------------------------------
|
||||
* Author: Stelio Passaris (GeSHi@stelio.net)
|
||||
* Copyright: (c) 2009 Stelio Passaris (http://stelio.net/stiki/GeSHi)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2009/01/20
|
||||
*
|
||||
* DCS language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ----------
|
||||
* Author: J<EFBFBD>rja Norbert (jnorbi@vipmail.hu), Benny Baumann (BenBE@omorphia.de)
|
||||
* Copyright: (c) 2004 J<EFBFBD>rja Norbert, Benny Baumann (BenBE@omorphia.de), Nigel McNie (http://qbnz.com/highlighter)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/07/26
|
||||
*
|
||||
* Delphi (Object Pascal) language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Conny Brunnkvist (conny@fuchsia.se), W. Tasin (tasin@fhm.edu)
|
||||
* Copyright: (c) 2004 Fuchsia Open Source Solutions (http://www.fuchsia.se/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2004/12/29
|
||||
*
|
||||
* Diff-output language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ---------------------------------
|
||||
* Author: Gabriel Lorenzo (ermakina@gmail.com)
|
||||
* Copyright: (c) 2005 Gabriel Lorenzo (http://ermakina.gazpachito.net)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2005/06/19
|
||||
*
|
||||
* DIV language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* -------
|
||||
* Author: Alessandro Staltari (staltari@geocities.com)
|
||||
* Copyright: (c) 2005 Alessandro Staltari (http://www.geocities.com/SiliconValley/Vista/8155/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2005/07/05
|
||||
*
|
||||
* DOS language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ---------------------------------
|
||||
* Author: Adrien Friggeri (adrien@friggeri.net)
|
||||
* Copyright: (c) 2007 Adrien Friggeri (http://www.friggeri.net)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2007/05/30
|
||||
*
|
||||
* dot language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Kevin Reid (kpreid@switchb.org)
|
||||
* Copyright: (c) 2010 Kevin Reid (http://switchb.org/kpreid/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2010/04/16
|
||||
*
|
||||
* E language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------------
|
||||
* Author: Michel Mariani (http://www.tonton-pixel.com/site/)
|
||||
* Copyright: (c) 2010 Michel Mariani (http://www.tonton-pixel.com/site/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2010/01/08
|
||||
*
|
||||
* ECMAScript language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ----------
|
||||
* Author: Zoran Simic (zsimic@axarosenberg.com)
|
||||
* Copyright: (c) 2005 Zoran Simic
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2005/06/30
|
||||
*
|
||||
* Eiffel language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ---------------
|
||||
* Author: Benny Baumann (BenBE@geshi.org)
|
||||
* Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2008/10/19
|
||||
*
|
||||
* Email (mbox \ eml \ RFC format) language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* --------
|
||||
* Author: Thorsten Muehlfelder (muehlfelder@enertex.de)
|
||||
* Copyright: (c) 2010 Enertex Bayern GmbH
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2010/08/26
|
||||
*
|
||||
* Enerscript language file for GeSHi.
|
||||
|
@ -7,7 +7,7 @@
|
||||
* - Uwe Dauernheim (uwe@dauernheim.net)
|
||||
* - Dan Forest-Barbier (dan@twisted.in)
|
||||
* Copyright: (c) 2008 Uwe Dauernheim (http://www.kreisquadratur.de/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2008-09-27
|
||||
*
|
||||
* Erlang language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ---------------------------------
|
||||
* Author: Nicholas Koceja (nerketur@hotmail.com)
|
||||
* Copyright: (c) 2010 Nicholas Koceja
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 11/24/2010
|
||||
*
|
||||
* Euphoria language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* -----------
|
||||
* Author: Ramesh Vishveshwar (ramesh.vishveshwar@gmail.com)
|
||||
* Copyright: (c) 2012 Ramesh Vishveshwar (http://thecodeisclear.in)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2012/09/01
|
||||
*
|
||||
* Easytrieve language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* -------
|
||||
* Author: Juro Bystricky (juro@f1compiler.com)
|
||||
* Copyright: K2 Software Corp.
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2010/07/06
|
||||
*
|
||||
* Formula One language file for GeSHi.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* ---------------------------------
|
||||
* Author: billykater (billykater+geshi@gmail.com)
|
||||
* Copyright: (c) 2010 billykater (http://falconpl.org/)
|
||||
* Release Version: 1.0.8.12
|
||||
* Release Version: 1.0.9.0
|
||||
* Date Started: 2010/06/07
|
||||
*
|
||||
* Falcon language file for GeSHi.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user