Drush: commands/core/docs.drush.inc Source File

  1. 7.x doxygen/html/docs_8drush_8inc_source.html
  2. master doxygen/html/docs_8drush_8inc_source.html
Go to the documentation of this file.
1 <?php
2 
3 /**
4  * @file
5  * Documentation commands providing various topics.
6  */
7 
8 /**
9  * Implementation of hook_drush_help().
10  */
11 function docs_drush_help($section) {
12  switch ($section) {
13  case 'meta:docs:title':
14  return dt('Documentation commands');
15  case 'meta:docs:summary':
16  return dt('Show information on various drush topics.');
17  }
18 }
19 
20 /**
21  * Implementation of hook_drush_command().
22  *
23  * @return
24  * An associative array describing your command(s).
25  */
26 function docs_drush_command() {
27  $docs_dir = drush_get_context('DOC_PREFIX', DRUSH_BASE_PATH);
28 
29  //
30  // Topic commands.
31  // Any commandfile may add topics.
32  // Set 'topic' => TRUE to indicate the command is a topic (REQUIRED)
33  // Begin the topic name with the name of the commandfile (just like
34  // any other command).
35  //
36  $items['docs-readme'] = array(
37  'description' => 'README.md',
38  'hidden' => TRUE,
39  'topic' => TRUE,
40  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
41  'callback' => 'drush_print_file',
42  'callback arguments' => array($docs_dir . '/README.md'),
43  );
44  $items['docs-bisect'] = array(
45  'description' => 'git bisect and Drush may be used together to find the commit an error was introduced in.',
46  'hidden' => TRUE,
47  'topic' => TRUE,
48  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
49  'callback' => 'drush_print_file',
50  'callback arguments' => array($docs_dir . '/examples/git-bisect.example.sh'),
51  );
52  $items['docs-bashrc'] = array(
53  'description' => 'Bashrc customization examples for Drush.',
54  'hidden' => TRUE,
55  'topic' => TRUE,
56  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
57  'callback' => 'drush_print_file',
58  'callback arguments' => array($docs_dir . '/examples/example.bashrc'),
59  );
60  $items['docs-configuration'] = array(
61  'description' => 'Configuration overview with examples from example.drushrc.php.',
62  'hidden' => TRUE,
63  'topic' => TRUE,
64  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
65  'callback' => 'drush_print_file',
66  'callback arguments' => array($docs_dir . '/examples/example.drushrc.php'),
67  );
68  $items['docs-config-exporting'] = array(
69  'description' => 'Drupal configuration export instructions, including customizing configuration by environment.',
70  'hidden' => TRUE,
71  'topic' => TRUE,
72  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
73  'callback' => 'drush_print_file',
74  'callback arguments' => array($docs_dir . '/docs/config-exporting.md'),
75  );
76  $items['docs-aliases'] = array(
77  'description' => 'Site aliases overview on creating your own aliases for commonly used Drupal sites with examples from example.aliases.drushrc.php.',
78  'hidden' => TRUE,
79  'topic' => TRUE,
80  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
81  'callback' => 'drush_print_file',
82  'callback arguments' => array($docs_dir . '/examples/example.aliases.drushrc.php'),
83  );
84  $items['docs-ini-files'] = array(
85  'description' => 'php.ini or drush.ini configuration to set PHP values for use with Drush.',
86  'hidden' => TRUE,
87  'topic' => TRUE,
88  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
89  'callback' => 'drush_print_file',
90  'callback arguments' => array($docs_dir . '/examples/example.drush.ini'),
91  );
92  $items['docs-bastion'] = array(
93  'description' => 'Bastion server configuration: remotely operate on a Drupal sites behind a firewall.',
94  'hidden' => TRUE,
95  'topic' => TRUE,
96  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
97  'callback' => 'drush_print_file',
98  'callback arguments' => array($docs_dir . '/docs/bastion.md'),
99  );
100  $items['docs-bootstrap'] = array(
101  'description' => 'Bootstrap explanation: how Drush starts up and prepares the Drupal environment for use with the command.',
102  'hidden' => TRUE,
103  'topic' => TRUE,
104  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
105  'callback' => 'drush_print_file',
106  'callback arguments' => array($docs_dir . '/docs/bootstrap.md'),
107  );
108  $items['docs-cron'] = array(
109  'description' => 'Crontab instructions for running your Drupal cron tasks via `drush cron`.',
110  'hidden' => TRUE,
111  'topic' => TRUE,
112  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
113  'callback' => 'drush_print_file',
114  'callback arguments' => array($docs_dir . '/docs/cron.md'),
115  );
116  $items['docs-scripts'] = array(
117  'description' => 'Shell script overview on writing simple sequences of Drush statements.',
118  'hidden' => TRUE,
119  'topic' => TRUE,
120  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
121  'callback' => 'drush_print_file',
122  'callback arguments' => array($docs_dir . '/docs/shellscripts.md'),
123  );
124  $items['docs-shell-aliases'] = array(
125  'description' => 'Shell alias overview on creating your own aliases for commonly used Drush commands.',
126  'hidden' => TRUE,
127  'topic' => TRUE,
128  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
129  'callback' => 'drush_print_file',
130  'callback arguments' => array($docs_dir . '/docs/shellaliases.md'),
131  );
132  $items['docs-commands'] = array(
133  'description' => 'Drush command instructions on creating your own Drush commands.',
134  'hidden' => TRUE,
135  'topic' => TRUE,
136  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
137  'callback' => 'drush_print_file',
138  'callback arguments' => array($docs_dir . '/docs/commands.md'),
139  );
140  $items['docs-errorcodes'] = array(
141  'description' => 'Error code list containing all identifiers used with drush_set_error.',
142  'hidden' => TRUE,
143  'topic' => TRUE,
144  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
145  );
146  $items['docs-api'] = array(
147  'description' => 'Drush API',
148  'hidden' => TRUE,
149  'topic' => TRUE,
150  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
151  'callback' => 'drush_print_file',
152  'callback arguments' => array($docs_dir . '/drush.api.php'),
153  );
154  $items['docs-context'] = array(
155  'description' => 'Contexts overview explaining how Drush manages command line options and configuration file settings.',
156  'hidden' => TRUE,
157  'topic' => TRUE,
158  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
159  'callback' => 'drush_print_file',
160  'callback arguments' => array($docs_dir . '/docs/context.md'),
161  );
162  $items['docs-examplescript'] = array(
163  'description' => 'Example Drush script.',
164  'hidden' => TRUE,
165  'topic' => TRUE,
166  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
167  'callback' => 'drush_print_file',
168  'callback arguments' => array($docs_dir . '/examples/helloworld.script'),
169  );
170  $items['docs-examplecommand'] = array(
171  'description' => 'Example Drush command file.',
172  'hidden' => TRUE,
173  'topic' => TRUE,
174  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
175  'callback' => 'drush_print_file',
176  'callback arguments' => array($docs_dir . '/examples/sandwich.drush.inc'),
177  );
178  $items['docs-example-sync-extension'] = array(
179  'description' => 'Example Drush commandfile that extends sql-sync to enable development modules in the post-sync hook.',
180  'hidden' => TRUE,
181  'topic' => TRUE,
182  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
183  'callback' => 'drush_print_file',
184  'callback arguments' => array($docs_dir . '/examples/sync_enable.drush.inc'),
185  );
186  $items['docs-example-sync-via-http'] = array(
187  'description' => 'Example Drush commandfile that extends sql-sync to allow transfer of the sql dump file via http rather than ssh and rsync.',
188  'hidden' => TRUE,
189  'topic' => TRUE,
190  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
191  'callback' => 'drush_print_file',
192  'callback arguments' => array($docs_dir . '/examples/sync_via_http.drush.inc'),
193  );
194  $items['docs-policy'] = array(
195  'description' => 'Example policy file.',
196  'hidden' => TRUE,
197  'topic' => TRUE,
198  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
199  'callback' => 'drush_print_file',
200  'callback arguments' => array($docs_dir . '/examples/policy.drush.inc'),
201  );
202  $items['docs-strict-options'] = array(
203  'description' => 'Strict option handling, and how commands that use it differ from regular Drush commands.',
204  'hidden' => TRUE,
205  'topic' => TRUE,
206  'bootstrap' => DRUSH_BOOTSTRAP_NONE,
207  'callback' => 'drush_print_file',
208  'callback arguments' => array($docs_dir . '/docs/strict-options.md'),
209  );
210  return $items;
211 }
212 
213 /**
214  * docs-errorcodes command. Print a list of all error codes
215  * that can be found.
216  */
218  $header = <<<EOD
219 ==== Drush Error Codes ====
220 
221 Drush error codes are alphanumeric constants that represent an unrecoverable error condition that may arise during the execution of some command. They are set by the following function:
222 
223  return drush_set_error('DRUSH_ERROR_CODE', dt('Error message.'));
224 
225 In general, any drush command that calls drush_set_error is expected to also return FALSE as its function result. The drush_set_error function returns FALSE to make it easy to exit with an error code. Error codes are returned as part of the drush backend invoke process, which is used by drush API functions such as drush_invoke_process. An example of how to test for a specific error code is shown below:
226 
227  \$result = drush_invoke_process('@self', 'some-command');
228  if (array_key_exists('DRUSH_ERROR_CODE', \$result['error_log'])) {
229  // handle ocurrances of DRUSH_ERROR_CODE here
230  }
231 
232 Some of the available drush error codes are listed in the table below.
233 
234 
235 EOD;
236 
237  // Find all of the files that we will search for error messages.
238  // Start with all of the commandfiles.
239  $commandfiles = drush_commandfile_list();
240  $files = array_flip($commandfiles);
241  // In addition to the commandfiles, we will also look for files
242  // that drush will load when executing a command (e.g
244  $commands = drush_get_commands();
245  foreach ($commands as $command_name => $command) {
246  $files = array_merge($files, drush_command_get_includes($command_name));
247  }
248  // We will also search through all of the .inc files in the
249  // drush includes directory
250  $drush_include_files = drush_scan_directory(DRUSH_BASE_PATH . '/includes', '/.*\.inc$/', array('.', '..', 'CVS'), 0, FALSE);
251  foreach ($drush_include_files as $filename => $info) {
252  $files[$filename] = 'include';
253  }
254 
255  // Extract error messages from all command files
256  $error_list = array();
257  foreach ($files as $file => $commandfile) {
258  _drush_docs_find_set_error_calls($error_list, $file, $commandfile);
259  }
260  // Order error messages alphabetically by key
261  ksort($error_list);
262  // Convert to a table
263  $data = array();
264  foreach ($error_list as $error_code => $error_messages) {
265  $data[] = array($error_code, '-', implode("\n", $error_messages));
266  }
267 
268  $tmpfile = drush_tempnam('drush-errorcodes.');
269  file_put_contents($tmpfile, $header);
270  $handle = fopen($tmpfile, 'a');
271  drush_print_table($data, FALSE, array(0 => 35), $handle);
272  fclose($handle);
273  drush_print_file($tmpfile);
274 }
275 
276 /**
277  * Search through a php source file looking for calls to
278  * the function drush_set_error. If found, and if the
279  * first parameter is an uppercase alphanumeric identifier,
280  * then record the error code and the error message in our table.
281  */
282 function _drush_docs_find_set_error_calls(&$error_list, $filename, $shortname) {
283  $lines = file($filename);
284  foreach ($lines as $line) {
285  $matches = array();
286  // Find the error code after the drush_set_error call. The error code
287  // should consist of uppercase letters and underscores only (numbers thrown in just in case)
288  $match_result = preg_match("/.*drush_set_error[^'\"]['\"]([A-Z0-9_]*)['\"][^,]*,[^'\"]*(['\"])/", $line, $matches);
289  if ($match_result) {
290  $error_code = $matches[1];
291  $quote_char = $matches[2];
292  $error_message = "";
293  $message_start = strlen($matches[0]) - 1;
294 
295  // Regex adapted from http://stackoverflow.com/questions/1824325/regex-expression-for-escaped-... ($quote_char == '"') {
296  if ($quote_char == '"') {
297  $regex = '/"((?:[^\\\]*?(?:\\\")?)*?)"/';
298  }
299  else {
300  $regex = "/'((?:[^\\\]*?(?:\\\')?)*?)'/";
301  }
302  $match_result = preg_match($regex, $line, $matches, 0, $message_start);
303 
304  if ($match_result) {
305  $error_message = $matches[1];
306  }
307  $error_list[$error_code] = array_key_exists($error_code, $error_list) ? array_merge($error_list[$error_code], array($error_message)) : array($error_message);
308  }
309  }
310 }

File

doxygen/html/docs_8drush_8inc_source.html
View source
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Drush: commands/core/docs.drush.inc Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Drush
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.2 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_afac61274991793aa7e9133a8f4f291e.html">commands</a></li><li class="navelem"><a class="el" href="dir_5762b63965e3a68a35f77c23b4dd4668.html">core</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">docs.drush.inc</div>  </div>
</div><!--header-->
<div class="contents">
<a href="docs_8drush_8inc.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * @file</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *   Documentation commands providing various topics.</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * Implementation of hook_drush_help().</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"><a class="code" href="docs_8drush_8inc.html#a1e0e47c476e48a41ae491107c6879dea">   11</a></span>&#160;<span class="keyword">function</span> <a class="code" href="docs_8drush_8inc.html#a1e0e47c476e48a41ae491107c6879dea">docs_drush_help</a>($section) {</div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;  <span class="keywordflow">switch</span> ($section) {</div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    <span class="keywordflow">case</span> <span class="stringliteral">&#39;meta:docs:title&#39;</span>:</div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="group__outputfunctions.html#ga1218abcb1e27dd3bb412113d1e344d96">dt</a>(<span class="stringliteral">&#39;Documentation commands&#39;</span>);</div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    <span class="keywordflow">case</span> <span class="stringliteral">&#39;meta:docs:summary&#39;</span>:</div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="group__outputfunctions.html#ga1218abcb1e27dd3bb412113d1e344d96">dt</a>(<span class="stringliteral">&#39;Show information on various drush topics.&#39;</span>);</div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;  }</div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}</div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * Implementation of hook_drush_command().</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * @return</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> *   An associative array describing your command(s).</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="code" href="docs_8drush_8inc.html#a3f06ca54fd9c555d590d9190c835a976">   26</a></span>&#160;<span class="keyword">function</span> <a class="code" href="docs_8drush_8inc.html#a3f06ca54fd9c555d590d9190c835a976">docs_drush_command</a>() {</div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;  $docs_dir = <a class="code" href="context_8inc.html#ad25559f8d7d753f636fbeac347c29fc5">drush_get_context</a>(<span class="stringliteral">&#39;DOC_PREFIX&#39;</span>, DRUSH_BASE_PATH);</div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;  <span class="comment">//</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;  <span class="comment">// Topic commands.</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;  <span class="comment">// Any commandfile may add topics.</span></div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;  <span class="comment">// Set &#39;topic&#39; =&gt; TRUE to indicate the command is a topic (REQUIRED)</span></div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;  <span class="comment">// Begin the topic name with the name of the commandfile (just like</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;  <span class="comment">// any other command).</span></div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;  <span class="comment">//</span></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;  $items[<span class="stringliteral">&#39;docs-readme&#39;</span>] = array(</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;README.md&#39;</span>,</div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/README.md&#39;</span>),</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;  );</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;  $items[<span class="stringliteral">&#39;docs-bisect&#39;</span>] = array(</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;git bisect and Drush may be used together to find the commit an error was introduced in.&#39;</span>,</div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/examples/git-bisect.example.sh&#39;</span>),</div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;  );</div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;  $items[<span class="stringliteral">&#39;docs-bashrc&#39;</span>] = array(</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Bashrc customization examples for Drush.&#39;</span>,</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/examples/example.bashrc&#39;</span>),</div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;  );</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;  $items[<span class="stringliteral">&#39;docs-configuration&#39;</span>] = array(</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Configuration overview with examples from example.drushrc.php.&#39;</span>,</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/examples/example.drushrc.php&#39;</span>),</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;  );</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;  $items[<span class="stringliteral">&#39;docs-config-exporting&#39;</span>] = array(</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Drupal configuration export instructions, including customizing configuration by environment.&#39;</span>,</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/docs/config-exporting.md&#39;</span>),</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;  );</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;  $items[<span class="stringliteral">&#39;docs-aliases&#39;</span>] = array(</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Site aliases overview on creating your own aliases for commonly used Drupal sites with examples from example.aliases.drushrc.php.&#39;</span>,</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/examples/example.aliases.drushrc.php&#39;</span>),</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;  );</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;  $items[<span class="stringliteral">&#39;docs-ini-files&#39;</span>] = array(</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;php.ini or drush.ini configuration to set PHP values for use with Drush.&#39;</span>,</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/examples/example.drush.ini&#39;</span>),</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;  );</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;  $items[<span class="stringliteral">&#39;docs-bastion&#39;</span>] = array(</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Bastion server configuration: remotely operate on a Drupal sites behind a firewall.&#39;</span>,</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/docs/bastion.md&#39;</span>),</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;  );</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;  $items[<span class="stringliteral">&#39;docs-bootstrap&#39;</span>] = array(</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Bootstrap explanation: how Drush starts up and prepares the Drupal environment for use with the command.&#39;</span>,</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/docs/bootstrap.md&#39;</span>),</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;  );</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;  $items[<span class="stringliteral">&#39;docs-cron&#39;</span>] = array(</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Crontab instructions for running your Drupal cron tasks via `drush cron`.&#39;</span>,</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/docs/cron.md&#39;</span>),</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;  );</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;  $items[<span class="stringliteral">&#39;docs-scripts&#39;</span>] = array(</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Shell script overview on writing simple sequences of Drush statements.&#39;</span>,</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/docs/shellscripts.md&#39;</span>),</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;  );</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;  $items[<span class="stringliteral">&#39;docs-shell-aliases&#39;</span>] = array(</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Shell alias overview on creating your own aliases for commonly used Drush commands.&#39;</span>,</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/docs/shellaliases.md&#39;</span>),</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;  );</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;  $items[<span class="stringliteral">&#39;docs-commands&#39;</span>] = array(</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Drush command instructions on creating your own Drush commands.&#39;</span>,</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/docs/commands.md&#39;</span>),</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;  );</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;  $items[<span class="stringliteral">&#39;docs-errorcodes&#39;</span>] = array(</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Error code list containing all identifiers used with drush_set_error.&#39;</span>,</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;  );</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;  $items[<span class="stringliteral">&#39;docs-api&#39;</span>] = array(</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Drush API&#39;</span>,</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/drush.api.php&#39;</span>),</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;  );</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;  $items[<span class="stringliteral">&#39;docs-context&#39;</span>] = array(</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Contexts overview explaining how Drush manages command line options and configuration file settings.&#39;</span>,</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/docs/context.md&#39;</span>),</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;  );</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;  $items[<span class="stringliteral">&#39;docs-examplescript&#39;</span>] = array(</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Example Drush script.&#39;</span>,</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/examples/helloworld.script&#39;</span>),</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;  );</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;  $items[<span class="stringliteral">&#39;docs-examplecommand&#39;</span>] = array(</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Example Drush command file.&#39;</span>,</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/examples/sandwich.drush.inc&#39;</span>),</div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;  );</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;  $items[<span class="stringliteral">&#39;docs-example-sync-extension&#39;</span>] = array(</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Example Drush commandfile that extends sql-sync to enable development modules in the post-sync hook.&#39;</span>,</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/examples/sync_enable.drush.inc&#39;</span>),</div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;  );</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;  $items[<span class="stringliteral">&#39;docs-example-sync-via-http&#39;</span>] = array(</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Example Drush commandfile that extends sql-sync to allow transfer of the sql dump file via http rather than ssh and rsync.&#39;</span>,</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/examples/sync_via_http.drush.inc&#39;</span>),</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;  );</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;  $items[<span class="stringliteral">&#39;docs-policy&#39;</span>] = array(</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Example policy file.&#39;</span>,</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/examples/policy.drush.inc&#39;</span>),</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;  );</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;  $items[<span class="stringliteral">&#39;docs-strict-options&#39;</span>] = array(</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="stringliteral">&#39;description&#39;</span> =&gt; <span class="stringliteral">&#39;Strict option handling, and how commands that use it differ from regular Drush commands.&#39;</span>,</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="stringliteral">&#39;hidden&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="stringliteral">&#39;topic&#39;</span> =&gt; TRUE,</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <span class="stringliteral">&#39;bootstrap&#39;</span> =&gt; DRUSH_BOOTSTRAP_NONE,</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="stringliteral">&#39;callback&#39;</span> =&gt; <span class="stringliteral">&#39;drush_print_file&#39;</span>,</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    <span class="stringliteral">&#39;callback arguments&#39;</span> =&gt; array($docs_dir . <span class="stringliteral">&#39;/docs/strict-options.md&#39;</span>),</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;  );</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;  <span class="keywordflow">return</span> $items;</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;}</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="comment"> * docs-errorcodes command.  Print a list of all error codes</span></div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="comment"> * that can be found.</span></div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"><a class="code" href="docs_8drush_8inc.html#afd2b4818980db269a5807a6148edcc3a">  217</a></span>&#160;<span class="keyword">function</span> <a class="code" href="docs_8drush_8inc.html#afd2b4818980db269a5807a6148edcc3a">drush_docs_errorcodes</a>() {</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;  $header = &lt;&lt;&lt;EOD</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;==== <a class="code" href="classDrush.html">Drush</a> Error Codes ====</div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<a class="code" href="classDrush.html">Drush</a> error codes are alphanumeric constants that represent an unrecoverable error condition that may arise during the execution of some command.  They are <span class="keyword">set</span> by the following <span class="keyword">function</span>:</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="group__errorhandling.html#ga23fe9e1e8c1e5ade39256106044b6da4">drush_set_error</a>(<span class="stringliteral">&#39;DRUSH_ERROR_CODE&#39;</span>, <a class="code" href="group__outputfunctions.html#ga1218abcb1e27dd3bb412113d1e344d96">dt</a>(<span class="stringliteral">&#39;Error message.&#39;</span>));</div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;In general, any drush command that calls <a class="code" href="group__errorhandling.html#ga23fe9e1e8c1e5ade39256106044b6da4">drush_set_error</a> is expected to also <span class="keywordflow">return</span> FALSE as its <span class="keyword">function</span> result.  The <a class="code" href="group__errorhandling.html#ga23fe9e1e8c1e5ade39256106044b6da4">drush_set_error</a> <span class="keyword">function</span> returns FALSE to make it easy to exit with an error code.  Error codes are returned as part of the drush backend invoke process, which is used by drush API functions such as <a class="code" href="group__dispatching.html#ga125471885af052278a0874446b332cf9">drush_invoke_process</a>.  An example of how to test <span class="keywordflow">for</span> a specific error code is shown below:</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;  \$result = <a class="code" href="group__dispatching.html#ga125471885af052278a0874446b332cf9">drush_invoke_process</a>(<span class="stringliteral">&#39;@self&#39;</span>, <span class="stringliteral">&#39;some-command&#39;</span>);</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;  <span class="keywordflow">if</span> (array_key_exists(<span class="stringliteral">&#39;DRUSH_ERROR_CODE&#39;</span>, \$result[<span class="stringliteral">&#39;error_log&#39;</span>])) {</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <span class="comment">// handle ocurrances of DRUSH_ERROR_CODE here</span></div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;  }</div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;Some of the available drush error codes are listed in the table below.</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;EOD;</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;  <span class="comment">// Find all of the files that we will search for error messages.</span></div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;  <span class="comment">// Start with all of the commandfiles.</span></div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;  $commandfiles = <a class="code" href="command_8inc.html#ad51d79509a4a134947703f3e58564444">drush_commandfile_list</a>();</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;  $files = array_flip($commandfiles);</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;  <span class="comment">// In addition to the commandfiles, we will also look for files</span></div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;  <span class="comment">// that drush will load when executing a command (e.g</span></div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;  <span class="comment">// updatecode.pm.inc)</span></div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;  $commands = <a class="code" href="command_8inc.html#af0c377881e5c9c772f0cad80ea016452">drush_get_commands</a>();</div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;  <span class="keywordflow">foreach</span> ($commands as $command_name =&gt; $command) {</div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    $files = array_merge($files, drush_command_get_includes($command_name));</div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;  }</div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;  <span class="comment">// We will also search through all of the .inc files in the</span></div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;  <span class="comment">// drush includes directory</span></div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;  $drush_include_files = <a class="code" href="group__filesystemfunctions.html#ga1c545390a8890f6ea47385f79fbe2e82">drush_scan_directory</a>(DRUSH_BASE_PATH . <span class="stringliteral">&#39;/includes&#39;</span>, <span class="stringliteral">&#39;/.*\.inc$/&#39;</span>, array(<span class="charliteral">&#39;.&#39;</span>, <span class="stringliteral">&#39;..&#39;</span>, <span class="stringliteral">&#39;CVS&#39;</span>), 0, FALSE);</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;  <span class="keywordflow">foreach</span> ($drush_include_files as $filename =&gt; $info) {</div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    $files[$filename] = <span class="stringliteral">&#39;include&#39;</span>;</div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;  }</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;  <span class="comment">// Extract error messages from all command files</span></div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;  $error_list = array();</div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;  <span class="keywordflow">foreach</span> ($files as $file =&gt; $commandfile) {</div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    <a class="code" href="docs_8drush_8inc.html#ad423ad33cedfeaa751f107c87664989c">_drush_docs_find_set_error_calls</a>($error_list, $file, $commandfile);</div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;  }</div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;  <span class="comment">// Order error messages alphabetically by key</span></div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;  ksort($error_list);</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;  <span class="comment">// Convert to a table</span></div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;  $data = array();</div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;  <span class="keywordflow">foreach</span> ($error_list as $error_code =&gt; $error_messages) {</div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    $data[] = array($error_code, <span class="charliteral">&#39;-&#39;</span>, implode(<span class="stringliteral">&quot;\n&quot;</span>, $error_messages));</div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;  }</div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;</div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;  $tmpfile = <a class="code" href="group__filesystemfunctions.html#ga01729c5c432a2f30974966d888146d09">drush_tempnam</a>(<span class="stringliteral">&#39;drush-errorcodes.&#39;</span>);</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;  file_put_contents($tmpfile, $header);</div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;  $handle = fopen($tmpfile, <span class="charliteral">&#39;a&#39;</span>);</div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;  <a class="code" href="group__outputfunctions.html#ga2dfb80176f98c67097334acfa98211cd">drush_print_table</a>($data, FALSE, array(0 =&gt; 35), $handle);</div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;  fclose($handle);</div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;  <a class="code" href="group__outputfunctions.html#ga8059aaf93da4ec3f4c5d3821928a9002">drush_print_file</a>($tmpfile);</div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;}</div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<span class="comment"> * Search through a php source file looking for calls to</span></div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;<span class="comment"> * the function drush_set_error.  If found, and if the</span></div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<span class="comment"> * first parameter is an uppercase alphanumeric identifier,</span></div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;<span class="comment"> * then record the error code and the error message in our table.</span></div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"><a class="code" href="docs_8drush_8inc.html#ad423ad33cedfeaa751f107c87664989c">  282</a></span>&#160;<span class="keyword">function</span> <a class="code" href="docs_8drush_8inc.html#ad423ad33cedfeaa751f107c87664989c">_drush_docs_find_set_error_calls</a>(&amp;$error_list, $filename, $shortname) {</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;  $lines = file($filename);</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;  <span class="keywordflow">foreach</span> ($lines as $line) {</div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    $matches = array();</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    <span class="comment">// Find the error code after the drush_set_error call.  The error code</span></div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <span class="comment">// should consist of uppercase letters and underscores only (numbers thrown in just in case)</span></div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    $match_result = preg_match(<span class="stringliteral">&quot;/.*drush_set_error[^&#39;\&quot;][&#39;\&quot;]([A-Z0-9_]*)[&#39;\&quot;][^,]*,[^&#39;\&quot;]*([&#39;\&quot;])/&quot;</span>, $line, $matches);</div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    <span class="keywordflow">if</span> ($match_result) {</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;      $error_code = $matches[1];</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;      $quote_char = $matches[2];</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;      $error_message = <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;      $message_start = strlen($matches[0]) - 1;</div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;</div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;      <span class="comment">// Regex adapted from http://stackoverflow.com/questions/1824325/regex-expression-for-escaped-quoted-string-wont-work-in-phps-preg-match-allif ($quote_char == &#39;&quot;&#39;) {</span></div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;      <span class="keywordflow">if</span> ($quote_char == <span class="charliteral">&#39;&quot;&#39;</span>) {</div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        $regex = <span class="stringliteral">&#39;/&quot;((?:[^\\\]*?(?:\\\&quot;)?)*?)&quot;/&#39;</span>;</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;      }</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;      <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        $regex = <span class="stringliteral">&quot;/&#39;((?:[^\\\]*?(?:\\\&#39;)?)*?)&#39;/&quot;</span>;</div>
<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;      }</div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;      $match_result = preg_match($regex, $line, $matches, 0, $message_start);</div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;</div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;      <span class="keywordflow">if</span> ($match_result) {</div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        $error_message = $matches[1];</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;      }</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;      $error_list[$error_code] = array_key_exists($error_code, $error_list) ? array_merge($error_list[$error_code], array($error_message)) : array($error_message);</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    }</div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;  }</div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Nov 2 2016 07:28:51 for Drush by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1.2
</small></address>
</body>
</html>