ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
email.php
Go to the documentation of this file.
1<?php
2/*************************************************************************************
3 * email.php
4 * ---------------
5 * Author: Benny Baumann (BenBE@geshi.org)
6 * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
7 * Release Version: 1.0.9.0
8 * Date Started: 2008/10/19
9 *
10 * Email (mbox \ eml \ RFC format) language file for GeSHi.
11 *
12 * CHANGES
13 * -------
14 * 2008/10/19 (1.0.8.1)
15 * - First Release
16 *
17 * TODO (updated 2008/10/19)
18 * -------------------------
19 * * Better checks when a header field should be expected
20 * * Fix the bound checks for kw groups 2 and 3, as well as rx group 1
21 *
22 *************************************************************************************
23 *
24 * This file is part of GeSHi.
25 *
26 * GeSHi is free software; you can redistribute it and/or modify
27 * it under the terms of the GNU General Public License as published by
28 * the Free Software Foundation; either version 2 of the License, or
29 * (at your option) any later version.
30 *
31 * GeSHi is distributed in the hope that it will be useful,
32 * but WITHOUT ANY WARRANTY; without even the implied warranty of
33 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
34 * GNU General Public License for more details.
35 *
36 * You should have received a copy of the GNU General Public License
37 * along with GeSHi; if not, write to the Free Software
38 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
39 *
40 ************************************************************************************/
41
43 'LANG_NAME' => 'eMail (mbox)',
44 'COMMENT_SINGLE' => array(),
45 'COMMENT_MULTI' => array(),
46 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
47 'QUOTEMARKS' => array('"'),
48 'ESCAPE_CHAR' => '',
49 'KEYWORDS' => array(
50 1 => array(
51 'HTTP', 'SMTP', 'ASMTP', 'ESMTP'
52 ),
53 2 => array(
54 'Original-Recipient','Accept-Language','Alternate-Recipient',
55 'Archived-At','Authentication-Results','Auto-Submitted',
56 'Autoforwarded','Autosubmitted','Base','Comments',
57 'Content-Alternative','Content-Base','Content-Description',
58 'Content-Disposition','Content-Duration','Content-features',
59 'Content-ID','Content-Identifier','Content-Language',
60 'Content-Location','Content-MD5','Content-Return',
61 'Content-Transfer-Encoding','Content-Type','Conversion',
62 'Conversion-With-Loss','Deferred-Delivery','Delivery-Date',
63 'Discarded-X400-IPMS-Extensions','Discarded-X400-MTS-Extensions',
64 'Disclose-Recipients','Disposition-Notification-Options',
65 'Disposition-Notification-To','DKIM-Signature',
66 'DL-Expansion-History','Downgraded-Bcc','Downgraded-Cc',
67 'Downgraded-Disposition-Notification-To',
68 'Downgraded-Final-Recipient','Downgraded-From',
69 'Downgraded-In-Reply-To','Downgraded-Mail-From',
70 'Downgraded-Message-Id','Downgraded-Original-Recipient',
71 'Downgraded-Rcpt-To','Downgraded-References',
72 'Downgraded-Reply-To','Downgraded-Resent-Bcc',
73 'Downgraded-Resent-Cc','Downgraded-Resent-From',
74 'Downgraded-Resent-Reply-To','Downgraded-Resent-Sender',
75 'Downgraded-Resent-To','Downgraded-Return-Path',
76 'Downgraded-Sender','Downgraded-To','Encoding','Encrypted','Expires',
77 'Expiry-Date','Generate-Delivery-Report','Importance','In-Reply-To',
78 'Incomplete-Copy','Keywords','Language','Latest-Delivery-Time',
79 'List-Archive','List-Help','List-ID','List-Owner','List-Post',
80 'List-Subscribe','List-Unsubscribe','List-Unsubscribe-Post',
81 'Message-Context','Message-ID','Message-Type','MIME-Version',
82 'MMHS-Acp127-Message-Identifier','MMHS-Codress-Message-Indicator',
83 'MMHS-Copy-Precedence','MMHS-Exempted-Address',
84 'MMHS-Extended-Authorisation-Info','MMHS-Handling-Instructions',
85 'MMHS-Message-Instructions','MMHS-Message-Type',
86 'MMHS-Originator-PLAD','MMHS-Originator-Reference',
87 'MMHS-Other-Recipients-Indicator-CC',
88 'MMHS-Other-Recipients-Indicator-To','MMHS-Primary-Precedence',
89 'MMHS-Subject-Indicator-Codes','MT-Priority','Obsoletes',
90 'Organization','Original-Encoded-Information-Types','Original-From',
91 'Original-Message-ID','Original-Subject','Originator-Return-Address',
92 'PICS-Label','Prevent-NonDelivery-Report','Priority','Received',
93 'Received-SPF','References','Reply-By','Reply-To',
94 'Require-Recipient-Valid-Since','Resent-Bcc','Resent-Cc',
95 'Resent-Date','Resent-From','Resent-Message-ID','Resent-Reply-To',
96 'Resent-Sender','Resent-To','Return-Path','Sensitivity',
97 'Solicitation','Supersedes','VBR-Info','X400-Content-Identifier',
98 'X400-Content-Return','X400-Content-Type','X400-MTS-Identifier',
99 'X400-Originator','X400-Received','X400-Recipients','X400-Trace'
100 ),
101 3 => array(
102 'Bcc','CC','Date','From','Sender','Subject','To'
103 ),
104 4 => array(
105 'by', 'for', 'from', 'id', 'with'
106 )
107 ),
108 'SYMBOLS' => array(
109 ':', ';', '<', '>', '[', ']'
110 ),
111 'CASE_SENSITIVE' => array(
112 GESHI_COMMENTS => false,
113 1 => true,
114 2 => false,
115 3 => false,
116 4 => true
117 ),
118 'STYLES' => array(
119 'KEYWORDS' => array(
120 1 => 'color: #0000FF; font-weight: bold;',
121 2 => 'color: #000000; font-weight: bold;',
122 3 => 'color: #800000; font-weight: bold;',
123 4 => 'font-weight: bold;',
124 ),
125 'COMMENTS' => array(
126 ),
127 'ESCAPE_CHAR' => array(
128 0 => 'color: #000099; font-weight: bold;'
129 ),
130 'BRACKETS' => array(
131 0 => 'color: #66cc66;'
132 ),
133 'STRINGS' => array(
134 0 => 'color: #ff0000;'
135 ),
136 'NUMBERS' => array(
137 0 => 'color: #cc66cc;'
138 ),
139 'METHODS' => array(
140 ),
141 'SYMBOLS' => array(
142 0 => 'color: #66cc66;'
143 ),
144 'SCRIPT' => array(
145 0 => 'color: #000040;',
146 1 => 'color: #002040;',
147 ),
148 'REGEXPS' => array(
149 1 => 'color: #000000; font-weight: bold;',
150 2 => 'color: #0000FF;',
151 3 => 'color: #008000;',
152 4 => 'color: #0000FF; font-weight: bold;',
153 5 => 'font-weight: bold;',
154 6 => 'color: #400080;'
155 )
156 ),
157 'URLS' => array(
158 1 => '',
159 2 => '',
160 3 => '',
161 4 => ''
162 ),
163 'OOLANG' => false,
164 'OBJECT_SPLITTERS' => array(
165 ),
166 'REGEXPS' => array(
167 // Non-Standard-Header
168 1 => array(
169 GESHI_SEARCH => "(?<=\A\x20|\n)x-[a-z0-9\-]*(?=\s*:|\s*<)",
170 GESHI_REPLACE => "\\0",
171 GESHI_MODIFIERS => "smi",
172 GESHI_BEFORE => "",
173 GESHI_AFTER => ""
174 ),
175 //Email-Adresses or Mail-IDs
176 2 => array(
177 GESHI_SEARCH => "\b(?<!\\/)(?P<q>\"?)[\w\.\-]+\k<q>@(?!-)[\w\-]+(?<!-)(?:(?:\.(?!-)[\w\-]+(?<!-))*)?",
178 GESHI_REPLACE => "\\0",
179 GESHI_MODIFIERS => "mi",
180 GESHI_BEFORE => "",
181 GESHI_AFTER => ""
182 ),
183 //Date values in RFC format
184 3 => array(
185 GESHI_SEARCH => "\b(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s+\d\d?\s+" .
186 "(?:Jan|Feb|Mar|apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+" .
187 "\d{4}\s+\d\d?:\d\d:\d\d\s+[+\-]\d{4}(?:\s+\‍(\w+\‍))?",
188 GESHI_REPLACE => "\\0",
189 GESHI_MODIFIERS => "mi",
190 GESHI_BEFORE => "",
191 GESHI_AFTER => ""
192 ),
193 //IP addresses
194 4 => array(
195 GESHI_SEARCH => "(?<=\s)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=\s)|".
196 "(?<=\[)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=\])|".
197 "(?<==)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=<)|".
198
199 "(?<=\s)(?:[a-f\d]{1,4}\:)+(?:[a-f\d]{0,4})?(?:\:[a-f\d]{1,4})+(?=\s)|".
200 "(?<=\[)(?:[a-f\d]{1,4}\:)+(?:[a-f\d]{0,4})?(?:\:[a-f\d]{1,4})+(?=\])|".
201 "(?<==)(?:[a-f\d]{1,4}\:)+(?:[a-f\d]{0,4})?(?:\:[a-f\d]{1,4})+(?=<)|".
202
203 "(?<=\s)\:(?:\:[a-f\d]{1,4})+(?=\s)|".
204 "(?<=\[)\:(?:\:[a-f\d]{1,4})+(?=\])|".
205 "(?<==)\:(?:\:[a-f\d]{1,4})+(?=<)|".
206
207 "(?<=\s)(?:[a-f\d]{1,4}\:)+\:(?=\s)|".
208 "(?<=\[)(?:[a-f\d]{1,4}\:)+\:(?=\])|".
209 "(?<==)(?:[a-f\d]{1,4}\:)+\:(?=<)",
210 GESHI_REPLACE => "\\0",
211 GESHI_MODIFIERS => "i",
212 GESHI_BEFORE => "",
213 GESHI_AFTER => ""
214 ),
215 //Field-Assignments
216 5 => array(
217 GESHI_SEARCH => "(?<=\s)[A-Z0-9\-\.]+(?==(?:$|\s$|[^\s=]))",
218 GESHI_REPLACE => "\\0",
219 GESHI_MODIFIERS => "mi",
220 GESHI_BEFORE => "",
221 GESHI_AFTER => ""
222 ),
223 //MIME type
224 6 => array(
225 GESHI_SEARCH => "(?<=\s)(?:audio|application|image|multipart|text|".
226 "video|x-[a-z0-9\-]+)\/[a-z0-9][a-z0-9\-]*(?=\s|<|$)",
227 GESHI_REPLACE => "\\0",
228 GESHI_MODIFIERS => "m",
229 GESHI_BEFORE => "",
230 GESHI_AFTER => ""
231 )
232 ),
233 'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
234 'SCRIPT_DELIMITERS' => array(
235 0 => "/(?P<start>^)[A-Za-z][a-zA-Z0-9\-]*\s*:\s*(?:.|(?=\n\s)\n)*(?P<end>$)/m",
236 1 => "/(?P<start>^)--[a-zA-Z0-9_=\-]+[a-zA-Z0-9_](?:--)?(?P<end>$)/m"
237 ),
238 'HIGHLIGHT_STRICT_BLOCK' => array(
239 0 => true,
240 1 => false
241 ),
242 'TAB_WIDTH' => 4,
243 'PARSER_CONTROL' => array(
244 'KEYWORDS' => array(
245 2 => array(
246 'DISALLOWED_BEFORE' => '(?<=\A\x20|\n)',
247 'DISALLOWED_AFTER' => '(?=\s*:)',
248 ),
249 3 => array(
250 'DISALLOWED_BEFORE' => '(?<=\A\x20|\n)',
251 'DISALLOWED_AFTER' => '(?=\s*:)',
252 ),
253 4 => array(
254 'DISALLOWED_BEFORE' => '(?<=\s)',
255 'DISALLOWED_AFTER' => '(?=\s|\b)',
256 )
257 ),
258 'ENABLE_FLAGS' => array(
259 'BRACKETS' => GESHI_NEVER,
260 'COMMENTS' => GESHI_NEVER,
261 'NUMBERS' => GESHI_NEVER
262 )
263 )
264);
An exception for terminatinating execution or to throw for unit testing.
$language_data
Definition: email.php:42
const GESHI_CAPS_NO_CHANGE
Lowercase keywords found.
Definition: geshi.php:94
const GESHI_BEFORE
The key of the regex array defining what bracket group in a matched search to put before the replacem...
Definition: geshi.php:140
const GESHI_SEARCH
The key of the regex array defining what to search for.
Definition: geshi.php:132
const GESHI_AFTER
The key of the regex array defining what bracket group in a matched search to put after the replaceme...
Definition: geshi.php:143
const GESHI_ALWAYS
Strict mode always applies.
Definition: geshi.php:128
const GESHI_REPLACE
The key of the regex array defining what bracket group in a matched search to use as a replacement.
Definition: geshi.php:135
const GESHI_COMMENTS
Used in language files to mark comments.
Definition: geshi.php:149
const GESHI_NEVER
#+ @access private
Definition: geshi.php:123
const GESHI_MODIFIERS
The key of the regex array defining any modifiers to the regular expression.
Definition: geshi.php:137