Drush: includes/complete.inc File Reference

  1. 7.x doxygen/html/complete_8inc.html
  2. master doxygen/html/complete_8inc.html
complete.inc File Reference

Go to the source code of this file.

Functions

 drush_early_complete ()
 drush_complete_process_argv ()
 drush_complete_match ($last_word, $values)
 drush_complete_match_file ($last_word, $files)
 drush_hyphenate_options ($options)
 drush_complete_get ($type, $command=NULL)
 drush_complete_rebuild ()
 drush_complete_trailing_space (&$item, $key)
 drush_complete_rebuild_arguments ($command)
 drush_complete_cache_set ($complete)
 drush_complete_cache_cid ($type, $command=NULL)

Detailed Description

Provide completion output for shells.

This is not called directly, but by shell completion scripts specific to each shell (bash, csh etc). These run whenever the user triggers completion, typically when pressing <tab>. The shell completion scripts should call "drush complete <text>", where <text> is the full command line, which we take as input and use to produce a list of possible completions for the current/next word, separated by newlines. Typically, when multiple completions are returned the shell will display them to the user in a concise format - but when a single completion is returned it will autocomplete.

We provide completion for site aliases, commands, shell aliases, options, engines and arguments. Displaying all of these when the last word has no characters yet is not useful, as there are too many items. Instead we filter the possible completions based on position, in a similar way to git. For example:

  • We only display site aliases and commands if one is not already present.
  • We only display options if the user has already entered a hyphen.
  • We only display global options before a command is entered, and we only display command specific options after the command (Drush itself does not care about option placement, but this approach keeps things more concise).

Below is typical output of complete in different situations. Tokens in square brackets are optional, and [word] will filter available options that start with the same characters, or display all listed options if empty. drush –[word] : Output global options drush [word] : Output site aliases, sites, commands and shell aliases drush [] [word] : Output commands drush [] command [word] : Output command specific arguments drush [] command –[word] : Output command specific options

Because the purpose of autocompletion is to make the command line more efficient for users we need to respond quickly with the list of completions. To do this, we call drush_complete() early in the Drush bootstrap, and implement a simple caching system.

To generate the list of completions, we set up the Drush environment as if the command was called on it's own, parse the command using the standard Drush functions, bootstrap the site (if any) and collect available completions from various sources. Because this can be somewhat slow, we cache the results. The cache strategy aims to balance accuracy and responsiveness:

  • We cache per site, if a site is available.
  • We generate (and cache) everything except arguments at the same time, so subsequent completions on the site don't need any bootstrap.
  • We generate and cache arguments on-demand, since these can often be expensive to generate. Arguments are also cached per-site.

For argument completions, commandfiles can implement COMMANDFILE_COMMAND_complete() returning an array containing a key 'values' containing an array of all possible argument completions for that command. For example, return array('values' => array('aardvark', 'aardwolf')) offers the words 'aardvark' and 'aardwolf', or will complete to 'aardwolf' if the letters 'aardw' are already present. Since command arguments are cached, commandfiles can bootstrap a site or perform other somewhat time consuming activities to retrieve the list of possible arguments. Commands can also clear the cache (or just the "arguments" cache for their command) when the completion results have likely changed - see drush_complete_cache_clear().

Commandfiles can also return a special optional element in their array with the key 'files' that contains an array of patterns/flags for the glob() function. These are used to produce file and directory completions (the results of these are not cached, since this is a fast operation). See http://php.net/glob for details of valid patterns and flags. For example the following will complete the command arguments on all directories, as well as files ending in tar.gz: return array( 'files' => array( 'directories' => array( 'pattern' => '*', 'flags' => GLOB_ONLYDIR, ), 'tar' => array( 'pattern' => '*.tar.gz', ), ), );

To check completion results without needing to actually trigger shell completion, you can call this manually using a command like:

drush –early=includes/complete.inc [–complete-debug] drush [] [command]...

If you want to simulate the results of pressing tab after a space (i.e. and empty last word, include '' on the end of your command:

drush –early=includes/complete.inc [–complete-debug] drush ''

Definition in file complete.inc.

Function Documentation

drush_complete_cache_cid (   $type,
  $command = NULL 
)

Generate a cache id.

Parameters
$typeThe completion type.
$commandThe command name (optional), if completions are command specific.
Returns
string Cache id.

Definition at line 556 of file complete.inc.

References drush_get_cid(), drush_get_option(), drush_locate_root(), and drush_site_path().

Referenced by drush_complete_cache_clear(), drush_complete_cache_set(), and drush_complete_get().

Here is the call graph for this function:

Here is the caller graph for this function:

drush_complete_cache_set (   $complete)

Stores caches for completions.

Parameters
$completeA structured array of completions, keyed by type, including a 'commands' type that contains all commands with command specific completions keyed by type. The array does not need to include all types - used by drush_complete_rebuild_arguments().

Definition at line 530 of file complete.inc.

References drush_cache_set(), DRUSH_CACHE_TEMPORARY, and drush_complete_cache_cid().

Referenced by drush_complete_rebuild(), and drush_complete_rebuild_arguments().

Here is the call graph for this function:

Here is the caller graph for this function:

drush_complete_get (   $type,
  $command = NULL 
)

Retrieves from cache, or generates a listing of completion candidates of a specific type (and optionally, command).

Parameters
string$typeString indicating type of completions to return. See drush_complete_rebuild() for possible keys.
string$commandAn optional command name if command specific completion is needed.
Returns
array List of candidate completions.

Definition at line 409 of file complete.inc.

References drush_cache_get(), drush_complete_cache_cid(), drush_complete_rebuild(), and drush_complete_rebuild_arguments().

Referenced by drush_early_complete().

Here is the call graph for this function:

Here is the caller graph for this function:

drush_complete_match (   $last_word,
  $values 
)

Retrieves the appropriate list of candidate completions, then filters this list using the last word that we are trying to complete.

Parameters
string$last_wordThe last word in the argument list (i.e. the subject of completion).
array$valuesArray of possible completion values to filter.
Returns
array Array of candidate completions that start with the same characters as the last word. If the last word is empty, return all candidates.

Definition at line 271 of file complete.inc.

Referenced by drush_complete_match_file(), and drush_early_complete().

Here is the caller graph for this function:

drush_complete_match_file (   $last_word,
  $files 
)

Retrieves the appropriate list of candidate file/directory completions, filtered by the last word that we are trying to complete.

Parameters
string$last_wordThe last word in the argument list (i.e. the subject of completion).
array$filesArray of file specs, each with a pattern and flags subarray.
Returns
array Array of candidate file/directory completions that start with the same characters as the last word. If the last word is empty, return all candidates.

Definition at line 290 of file complete.inc.

References drush_complete_match(), drush_shell_exec(), and drush_shell_exec_output().

Referenced by drush_early_complete().

Here is the call graph for this function:

Here is the caller graph for this function:

drush_complete_process_argv ( )

This function resets the raw arguments so that Drush can parse the command as if it was run directly. The shell complete command passes the full command line as an argument, and the –early and –complete-debug options have to come before that, and the "drush" bash script will add a –php option on the end, so we end up with something like this:

/path/to/drush.php –early=includes/complete.inc [–complete-debug] drush [] [command]... –php=/usr/bin/php

Note that "drush" occurs twice, and also that the second occurrence could be an alias, so we can't easily use it as to detect the start of the actual command. Hence our approach is to remove the initial "drush" and then any options directly following that - what remains is then the command we need to complete - i.e.:

drush [] [command]...

Note that if completion is initiated following a space an empty argument is added to argv. So in that case argv looks something like this: array ( '0' => '/path/to/drush.php', '1' => '–early=includes/complete.inc', '2' => 'drush', '3' => 'topic', '4' => '', '5' => '–php=/usr/bin/php', );

Returns
$args Array of arguments (argv), excluding the initial command and options associated with the complete call. array ( '0' => 'drush', '1' => 'topic', '2' => '', );

Definition at line 228 of file complete.inc.

References _drush_preflight_base_environment(), drush_get_context(), drush_parse_args(), drush_set_command(), drush_set_context(), and drush_sitealias_check_arg().

Referenced by drush_early_complete().

Here is the call graph for this function:

Here is the caller graph for this function:

drush_complete_rebuild ( )

Rebuild and cache completions for everything except command arguments.

Returns
array Structured array of completion types, commands and candidate completions.

Definition at line 450 of file complete.inc.

References _drush_sitealias_all_list(), DRUSH_BOOTSTRAP_DRUPAL_CONFIGURATION, drush_bootstrap_max(), drush_complete_cache_set(), drush_get_commands(), drush_get_context(), and drush_get_global_options().

Referenced by drush_complete_get().

Here is the call graph for this function:

Here is the caller graph for this function:

drush_complete_rebuild_arguments (   $command)

Rebuild and cache completions for command arguments.

Parameters
string$commandA specific command to retrieve and cache arguments for.
Returns
array Structured array of candidate completion arguments, keyed by the command.

Definition at line 497 of file complete.inc.

References DRUSH_BOOTSTRAP_DRUPAL_SITE, drush_bootstrap_max(), drush_command_invoke_all(), drush_complete_cache_set(), and drush_get_commands().

Referenced by drush_complete_get().

Here is the call graph for this function:

Here is the caller graph for this function:

drush_complete_trailing_space ( $item,
  $key 
)

Helper callback function that adds a trailing space to completes in an array.

Definition at line 482 of file complete.inc.

drush_early_complete ( )

Produce autocomplete output.

Determine position (is there a site-alias or command set, and are we trying to complete an option). Then produce a list of completions for the last word and output them separated by newlines.

Definition at line 101 of file complete.inc.

References drush_complete_get(), drush_complete_match(), drush_complete_match_file(), drush_complete_process_argv(), drush_get_arguments(), drush_get_context(), drush_get_option(), drush_hyphenate_options(), drush_set_context(), drush_set_option(), and drush_sitealias_get_record().

Here is the call graph for this function:

drush_hyphenate_options (   $options)

Simple helper function to ensure options are properly hyphenated before we return them to the user (we match against the non-hyphenated versions internally).

Parameters
array$optionsArray of unhyphenated option names.
Returns
array Array of hyphenated option names.

Definition at line 389 of file complete.inc.

Referenced by drush_early_complete().

Here is the caller graph for this function:

File

doxygen/html/complete_8inc.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: includes/complete.inc File Reference</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="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</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>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><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_09e761304027c904456130627fd4dcf5.html">includes</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">complete.inc File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><a href="complete_8inc_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:adbec292adabdfe3772d4ede574ab91c9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="complete_8inc.html#adbec292adabdfe3772d4ede574ab91c9">drush_early_complete</a> ()</td></tr>
<tr class="memitem:a9249f2a38d16e008506147243482b39c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="complete_8inc.html#a9249f2a38d16e008506147243482b39c">drush_complete_process_argv</a> ()</td></tr>
<tr class="memitem:abb270b35c688f2a2d842b954ab92bd51"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="complete_8inc.html#abb270b35c688f2a2d842b954ab92bd51">drush_complete_match</a> ($last_word, $values)</td></tr>
<tr class="memitem:a7d912e55f6aa1d293bcacdd6568eeaf1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="complete_8inc.html#a7d912e55f6aa1d293bcacdd6568eeaf1">drush_complete_match_file</a> ($last_word, $files)</td></tr>
<tr class="memitem:a39836b96551005ba8cf4ec0f4df3d603"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="complete_8inc.html#a39836b96551005ba8cf4ec0f4df3d603">drush_hyphenate_options</a> ($options)</td></tr>
<tr class="memitem:ac5c1cad8930371b383f35f1baf65692e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="complete_8inc.html#ac5c1cad8930371b383f35f1baf65692e">drush_complete_get</a> ($type, $command=NULL)</td></tr>
<tr class="memitem:af377cea6e3311628f37a738698e1fb4c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="complete_8inc.html#af377cea6e3311628f37a738698e1fb4c">drush_complete_rebuild</a> ()</td></tr>
<tr class="memitem:ac4f7cc5aff0b9d5f2fd8b956152ed424"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="complete_8inc.html#ac4f7cc5aff0b9d5f2fd8b956152ed424">drush_complete_trailing_space</a> (&amp;$item, $key)</td></tr>
<tr class="memitem:a4bbb8faee318ca6f3b8d70710d0406ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="complete_8inc.html#a4bbb8faee318ca6f3b8d70710d0406ba">drush_complete_rebuild_arguments</a> ($command)</td></tr>
<tr class="memitem:a520dd6cb68367ab70b710431d76c85df"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="complete_8inc.html#a520dd6cb68367ab70b710431d76c85df">drush_complete_cache_set</a> ($complete)</td></tr>
<tr class="memitem:a5cacfdc5ec07fac0d484c64c7368c511"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="complete_8inc.html#a5cacfdc5ec07fac0d484c64c7368c511">drush_complete_cache_cid</a> ($type, $command=NULL)</td></tr>
</table>
<a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Provide completion output for shells.</p>
<p>This is not called directly, but by shell completion scripts specific to each shell (bash, csh etc). These run whenever the user triggers completion, typically when pressing &lt;tab&gt;. The shell completion scripts should call "drush complete &lt;text&gt;", where &lt;text&gt; is the full command line, which we take as input and use to produce a list of possible completions for the current/next word, separated by newlines. Typically, when multiple completions are returned the shell will display them to the user in a concise format - but when a single completion is returned it will autocomplete.</p>
<p>We provide completion for site aliases, commands, shell aliases, options, engines and arguments. Displaying all of these when the last word has no characters yet is not useful, as there are too many items. Instead we filter the possible completions based on position, in a similar way to git. For example:</p>
<ul>
<li>We only display site aliases and commands if one is not already present.</li>
<li>We only display options if the user has already entered a hyphen.</li>
<li>We only display global options before a command is entered, and we only display command specific options after the command (Drush itself does not care about option placement, but this approach keeps things more concise).</li>
</ul>
<p>Below is typical output of complete in different situations. Tokens in square brackets are optional, and [word] will filter available options that start with the same characters, or display all listed options if empty. drush &ndash;[word] : Output global options drush [word] : Output site aliases, sites, commands and shell aliases drush [] [word] : Output commands drush [] command [word] : Output command specific arguments drush [] command &ndash;[word] : Output command specific options</p>
<p>Because the purpose of autocompletion is to make the command line more efficient for users we need to respond quickly with the list of completions. To do this, we call drush_complete() early in the Drush bootstrap, and implement a simple caching system.</p>
<p>To generate the list of completions, we set up the Drush environment as if the command was called on it's own, parse the command using the standard Drush functions, bootstrap the site (if any) and collect available completions from various sources. Because this can be somewhat slow, we cache the results. The cache strategy aims to balance accuracy and responsiveness:</p>
<ul>
<li>We cache per site, if a site is available.</li>
<li>We generate (and cache) everything except arguments at the same time, so subsequent completions on the site don't need any bootstrap.</li>
<li>We generate and cache arguments on-demand, since these can often be expensive to generate. Arguments are also cached per-site.</li>
</ul>
<p>For argument completions, commandfiles can implement COMMANDFILE_COMMAND_complete() returning an array containing a key 'values' containing an array of all possible argument completions for that command. For example, return array('values' =&gt; array('aardvark', 'aardwolf')) offers the words 'aardvark' and 'aardwolf', or will complete to 'aardwolf' if the letters 'aardw' are already present. Since command arguments are cached, commandfiles can bootstrap a site or perform other somewhat time consuming activities to retrieve the list of possible arguments. Commands can also clear the cache (or just the "arguments" cache for their command) when the completion results have likely changed - see <a class="el" href="drush_8inc.html#a12acbc64b339bdd1b32371725edb2dcf">drush_complete_cache_clear()</a>.</p>
<p>Commandfiles can also return a special optional element in their array with the key 'files' that contains an array of patterns/flags for the glob() function. These are used to produce file and directory completions (the results of these are not cached, since this is a fast operation). See <a href="http://php.net/glob">http://php.net/glob</a> for details of valid patterns and flags. For example the following will complete the command arguments on all directories, as well as files ending in tar.gz: return array( 'files' =&gt; array( 'directories' =&gt; array( 'pattern' =&gt; '*', 'flags' =&gt; GLOB_ONLYDIR, ), 'tar' =&gt; array( 'pattern' =&gt; '*.tar.gz', ), ), );</p>
<p>To check completion results without needing to actually trigger shell completion, you can call this manually using a command like:</p>
<p>drush &ndash;early=<a class="el" href="complete_8inc.html">includes/complete.inc</a> [&ndash;complete-debug] drush [] [command]...</p>
<p>If you want to simulate the results of pressing tab after a space (i.e. and empty last word, include '' on the end of your command:</p>
<p>drush &ndash;early=<a class="el" href="complete_8inc.html">includes/complete.inc</a> [&ndash;complete-debug] drush '' </p>

<p>Definition in file <a class="el" href="complete_8inc_source.html">complete.inc</a>.</p>
</div><h2>Function Documentation</h2>
<a class="anchor" id="a5cacfdc5ec07fac0d484c64c7368c511"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">drush_complete_cache_cid </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>$type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>$command</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Generate a cache id.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">$type</td><td>The completion type. </td></tr>
    <tr><td class="paramname">$command</td><td>The command name (optional), if completions are command specific.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string Cache id. </dd></dl>

<p>Definition at line <a class="el" href="complete_8inc_source.html#l00556">556</a> of file <a class="el" href="complete_8inc_source.html">complete.inc</a>.</p>

<p>References <a class="el" href="includes_2cache_8inc_source.html#l00184">drush_get_cid()</a>, <a class="el" href="context_8inc_source.html#l00405">drush_get_option()</a>, <a class="el" href="includes_2environment_8inc_source.html#l00313">drush_locate_root()</a>, and <a class="el" href="includes_2environment_8inc_source.html#l00181">drush_site_path()</a>.</p>

<p>Referenced by <a class="el" href="drush_8inc_source.html#l01972">drush_complete_cache_clear()</a>, <a class="el" href="complete_8inc_source.html#l00530">drush_complete_cache_set()</a>, and <a class="el" href="complete_8inc_source.html#l00409">drush_complete_get()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_a5cacfdc5ec07fac0d484c64c7368c511_cgraph.png" border="0" usemap="#complete_8inc_a5cacfdc5ec07fac0d484c64c7368c511_cgraph" alt=""/></div>
<map name="complete_8inc_a5cacfdc5ec07fac0d484c64c7368c511_cgraph" id="complete_8inc_a5cacfdc5ec07fac0d484c64c7368c511_cgraph">
<area shape="rect" id="node3" href="includes_2cache_8inc.html#a70613777c5e1a0e258bd0d8e213e0156" title="drush_get_cid" alt="" coords="631,5,732,35"/><area shape="rect" id="node7" href="context_8inc.html#afe91fb3e5219ecb2208c3b036b1f0cb8" title="drush_get_option" alt="" coords="237,136,357,165"/><area shape="rect" id="node14" href="includes_2environment_8inc.html#abd11f38a3202eab6206d1bfda1e11b6f" title="drush_locate_root" alt="" coords="235,320,360,349"/><area shape="rect" id="node26" href="includes_2environment_8inc.html#a35bbe20a952598e022399912d89f97f0" title="drush_site_path" alt="" coords="240,267,355,296"/><area shape="rect" id="node5" href="context_8inc.html#ad25559f8d7d753f636fbeac347c29fc5" title="drush_get_context" alt="" coords="796,215,924,244"/><area shape="rect" id="node9" href="context_8inc.html#aee5781894bf828bfa508d9052553f809" title="_drush_get_option" alt="" coords="424,109,552,139"/><area shape="rect" id="node12" href="context_8inc.html#a9f6272c1a68141ce873c07aae3a316ac" title="drush_context_names" alt="" coords="413,163,563,192"/><area shape="rect" id="node16" href="includes_2environment_8inc.html#a6596204dc31d9f84a5fa804b305d3da1" title="_drush_shift_path_up" alt="" coords="415,320,561,349"/><area shape="rect" id="node18" href="includes_2environment_8inc.html#a339c57f584d4f3d910d8c36763d054c2" title="drush_cwd" alt="" coords="445,373,531,403"/><area shape="rect" id="node24" href="includes_2environment_8inc.html#ad6ad0af63156033b1f7fe9a9409eaa7e" title="drush_valid_drupal_root" alt="" coords="409,267,567,296"/><area shape="rect" id="node21" href="context_8inc.html#af983acfe90e7d7bbdbd67c57f93708ba" title="drush_set_context" alt="" coords="617,359,745,388"/></map>
</div>
</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_a5cacfdc5ec07fac0d484c64c7368c511_icgraph.png" border="0" usemap="#complete_8inc_a5cacfdc5ec07fac0d484c64c7368c511_icgraph" alt=""/></div>
<map name="complete_8inc_a5cacfdc5ec07fac0d484c64c7368c511_icgraph" id="complete_8inc_a5cacfdc5ec07fac0d484c64c7368c511_icgraph">
<area shape="rect" id="node3" href="drush_8inc.html#a12acbc64b339bdd1b32371725edb2dcf" title="drush_complete_cache\l_clear" alt="" coords="248,5,403,51"/><area shape="rect" id="node5" href="complete_8inc.html#a520dd6cb68367ab70b710431d76c85df" title="drush_complete_cache_set" alt="" coords="235,75,416,104"/><area shape="rect" id="node9" href="complete_8inc.html#ac5c1cad8930371b383f35f1baf65692e" title="drush_complete_get" alt="" coords="672,75,811,104"/><area shape="rect" id="node7" href="complete_8inc.html#af377cea6e3311628f37a738698e1fb4c" title="drush_complete_rebuild" alt="" coords="465,13,623,43"/><area shape="rect" id="node13" href="complete_8inc.html#a4bbb8faee318ca6f3b8d70710d0406ba" title="drush_complete_rebuild\l_arguments" alt="" coords="465,66,623,113"/><area shape="rect" id="node11" href="complete_8inc.html#adbec292adabdfe3772d4ede574ab91c9" title="drush_early_complete" alt="" coords="859,75,1008,104"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a520dd6cb68367ab70b710431d76c85df"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">drush_complete_cache_set </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>$complete</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Stores caches for completions.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">$complete</td><td>A structured array of completions, keyed by type, including a 'commands' type that contains all commands with command specific completions keyed by type. The array does not need to include all types - used by <a class="el" href="complete_8inc.html#a4bbb8faee318ca6f3b8d70710d0406ba">drush_complete_rebuild_arguments()</a>. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="complete_8inc_source.html#l00530">530</a> of file <a class="el" href="complete_8inc_source.html">complete.inc</a>.</p>

<p>References <a class="el" href="includes_2cache_8inc_source.html#l00114">drush_cache_set()</a>, <a class="el" href="includes_2cache_8inc_source.html#l00024">DRUSH_CACHE_TEMPORARY</a>, and <a class="el" href="complete_8inc_source.html#l00556">drush_complete_cache_cid()</a>.</p>

<p>Referenced by <a class="el" href="complete_8inc_source.html#l00450">drush_complete_rebuild()</a>, and <a class="el" href="complete_8inc_source.html#l00497">drush_complete_rebuild_arguments()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_a520dd6cb68367ab70b710431d76c85df_cgraph.png" border="0" usemap="#complete_8inc_a520dd6cb68367ab70b710431d76c85df_cgraph" alt=""/></div>
<map name="complete_8inc_a520dd6cb68367ab70b710431d76c85df_cgraph" id="complete_8inc_a520dd6cb68367ab70b710431d76c85df_cgraph">
<area shape="rect" id="node3" href="includes_2cache_8inc.html#a27a40af68c2a61fdf94b980b953236bf" title="drush_cache_set" alt="" coords="265,164,385,193"/><area shape="rect" id="node30" href="complete_8inc.html#a5cacfdc5ec07fac0d484c64c7368c511" title="drush_complete_cache_cid" alt="" coords="236,371,415,400"/><area shape="rect" id="node5" href="includes_2cache_8inc.html#a80d986947415d49a2b3324018a0beb1e" title="_drush_cache_get_object" alt="" coords="464,203,635,232"/><area shape="rect" id="node15" href="group__logging.html#gad820f489a93518301794ada4ff7816b6" title="drush_log" alt="" coords="724,111,801,140"/><area shape="rect" id="node21" href="group__outputfunctions.html#ga1218abcb1e27dd3bb412113d1e344d96" title="dt" alt="" coords="531,44,568,73"/><area shape="rect" id="node7" href="context_8inc.html#afe91fb3e5219ecb2208c3b036b1f0cb8" title="drush_get_option" alt="" coords="703,216,823,245"/><area shape="rect" id="node9" href="context_8inc.html#aee5781894bf828bfa508d9052553f809" title="_drush_get_option" alt="" coords="905,216,1033,245"/><area shape="rect" id="node11" href="context_8inc.html#ad25559f8d7d753f636fbeac347c29fc5" title="drush_get_context" alt="" coords="1129,293,1257,323"/><area shape="rect" id="node13" href="context_8inc.html#a9f6272c1a68141ce873c07aae3a316ac" title="drush_context_names" alt="" coords="895,163,1044,192"/><area shape="rect" id="node18" href="backend_8inc.html#a38490210d77373f3d8492caf4e9a3190" title="drush_backend_packet" alt="" coords="892,59,1047,88"/><area shape="rect" id="node23" href="includes_2drupal_8inc.html#ad2ccab77d4bc8e7355186f26cd328ac0" title="drush_drupal_major\l_version" alt="" coords="696,19,829,66"/><area shape="rect" id="node25" href="includes_2drupal_8inc.html#a203e989fd043d054d774954e2b2dff21" title="drush_drupal_version" alt="" coords="897,5,1041,35"/><area shape="rect" id="node27" href="includes_2drupal_8inc.html#aa7ac001ed15d678fa533b54d962eb5bc" title="drush_drupal_load_autoloader" alt="" coords="1096,5,1291,35"/><area shape="rect" id="node32" href="includes_2cache_8inc.html#a70613777c5e1a0e258bd0d8e213e0156" title="drush_get_cid" alt="" coords="499,503,600,532"/><area shape="rect" id="node36" href="includes_2environment_8inc.html#abd11f38a3202eab6206d1bfda1e11b6f" title="drush_locate_root" alt="" coords="487,424,612,453"/><area shape="rect" id="node48" href="includes_2environment_8inc.html#a35bbe20a952598e022399912d89f97f0" title="drush_site_path" alt="" coords="492,371,607,400"/><area shape="rect" id="node38" href="includes_2environment_8inc.html#a6596204dc31d9f84a5fa804b305d3da1" title="_drush_shift_path_up" alt="" coords="689,424,836,453"/><area shape="rect" id="node40" href="includes_2environment_8inc.html#a339c57f584d4f3d910d8c36763d054c2" title="drush_cwd" alt="" coords="720,371,805,400"/><area shape="rect" id="node46" href="includes_2environment_8inc.html#ad6ad0af63156033b1f7fe9a9409eaa7e" title="drush_valid_drupal_root" alt="" coords="684,477,841,507"/><area shape="rect" id="node43" href="context_8inc.html#af983acfe90e7d7bbdbd67c57f93708ba" title="drush_set_context" alt="" coords="905,371,1033,400"/></map>
</div>
</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_a520dd6cb68367ab70b710431d76c85df_icgraph.png" border="0" usemap="#complete_8inc_a520dd6cb68367ab70b710431d76c85df_icgraph" alt=""/></div>
<map name="complete_8inc_a520dd6cb68367ab70b710431d76c85df_icgraph" id="complete_8inc_a520dd6cb68367ab70b710431d76c85df_icgraph">
<area shape="rect" id="node3" href="complete_8inc.html#af377cea6e3311628f37a738698e1fb4c" title="drush_complete_rebuild" alt="" coords="236,5,393,35"/><area shape="rect" id="node9" href="complete_8inc.html#a4bbb8faee318ca6f3b8d70710d0406ba" title="drush_complete_rebuild\l_arguments" alt="" coords="236,58,393,105"/><area shape="rect" id="node5" href="complete_8inc.html#ac5c1cad8930371b383f35f1baf65692e" title="drush_complete_get" alt="" coords="443,36,581,65"/><area shape="rect" id="node7" href="complete_8inc.html#adbec292adabdfe3772d4ede574ab91c9" title="drush_early_complete" alt="" coords="629,36,779,65"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ac5c1cad8930371b383f35f1baf65692e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">drush_complete_get </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>$type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>$command</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Retrieves from cache, or generates a listing of completion candidates of a specific type (and optionally, command).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramtype">string</td><td class="paramname">$type</td><td>String indicating type of completions to return. See <a class="el" href="complete_8inc.html#af377cea6e3311628f37a738698e1fb4c">drush_complete_rebuild()</a> for possible keys. </td></tr>
    <tr><td class="paramtype">string</td><td class="paramname">$command</td><td>An optional command name if command specific completion is needed.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>array List of candidate completions. </dd></dl>

<p>Definition at line <a class="el" href="complete_8inc_source.html#l00409">409</a> of file <a class="el" href="complete_8inc_source.html">complete.inc</a>.</p>

<p>References <a class="el" href="includes_2cache_8inc_source.html#l00070">drush_cache_get()</a>, <a class="el" href="complete_8inc_source.html#l00556">drush_complete_cache_cid()</a>, <a class="el" href="complete_8inc_source.html#l00450">drush_complete_rebuild()</a>, and <a class="el" href="complete_8inc_source.html#l00497">drush_complete_rebuild_arguments()</a>.</p>

<p>Referenced by <a class="el" href="complete_8inc_source.html#l00101">drush_early_complete()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_ac5c1cad8930371b383f35f1baf65692e_cgraph.png" border="0" usemap="#complete_8inc_ac5c1cad8930371b383f35f1baf65692e_cgraph" alt=""/></div>
<map name="complete_8inc_ac5c1cad8930371b383f35f1baf65692e_cgraph" id="complete_8inc_ac5c1cad8930371b383f35f1baf65692e_cgraph">
<area shape="rect" id="node3" href="includes_2cache_8inc.html#adc36ac3b562c67cbf1d7aab89c029694" title="drush_cache_get" alt="" coords="1325,839,1445,868"/><area shape="rect" id="node28" href="complete_8inc.html#a5cacfdc5ec07fac0d484c64c7368c511" title="drush_complete_cache_cid" alt="" coords="841,1241,1020,1271"/><area shape="rect" id="node52" href="complete_8inc.html#af377cea6e3311628f37a738698e1fb4c" title="drush_complete_rebuild" alt="" coords="193,989,351,1019"/><area shape="rect" id="node143" href="complete_8inc.html#a4bbb8faee318ca6f3b8d70710d0406ba" title="drush_complete_rebuild\l_arguments" alt="" coords="193,826,351,873"/><area shape="rect" id="node5" href="includes_2cache_8inc.html#a80d986947415d49a2b3324018a0beb1e" title="_drush_cache_get_object" alt="" coords="1536,891,1707,920"/><area shape="rect" id="node15" href="group__logging.html#gad820f489a93518301794ada4ff7816b6" title="drush_log" alt="" coords="1819,788,1896,817"/><area shape="rect" id="node21" href="group__outputfunctions.html#ga1218abcb1e27dd3bb412113d1e344d96" title="dt" alt="" coords="1603,633,1640,663"/><area shape="rect" id="node7" href="context_8inc.html#afe91fb3e5219ecb2208c3b036b1f0cb8" title="drush_get_option" alt="" coords="1797,1311,1917,1340"/><area shape="rect" id="node9" href="context_8inc.html#aee5781894bf828bfa508d9052553f809" title="_drush_get_option" alt="" coords="2021,1257,2149,1287"/><area shape="rect" id="node11" href="context_8inc.html#ad25559f8d7d753f636fbeac347c29fc5" title="drush_get_context" alt="" coords="2223,853,2351,883"/><area shape="rect" id="node13" href="context_8inc.html#a9f6272c1a68141ce873c07aae3a316ac" title="drush_context_names" alt="" coords="2011,1311,2160,1340"/><area shape="rect" id="node18" href="backend_8inc.html#a38490210d77373f3d8492caf4e9a3190" title="drush_backend_packet" alt="" coords="2008,591,2163,620"/><area shape="rect" id="node23" href="includes_2drupal_8inc.html#ad2ccab77d4bc8e7355186f26cd328ac0" title="drush_drupal_major\l_version" alt="" coords="1791,627,1924,674"/><area shape="rect" id="node25" href="includes_2drupal_8inc.html#a203e989fd043d054d774954e2b2dff21" title="drush_drupal_version" alt="" coords="2013,644,2157,673"/><area shape="rect" id="node30" href="includes_2cache_8inc.html#a70613777c5e1a0e258bd0d8e213e0156" title="drush_get_cid" alt="" coords="1807,1232,1908,1261"/><area shape="rect" id="node34" href="includes_2environment_8inc.html#abd11f38a3202eab6206d1bfda1e11b6f" title="drush_locate_root" alt="" coords="1095,1167,1220,1196"/><area shape="rect" id="node46" href="includes_2environment_8inc.html#a35bbe20a952598e022399912d89f97f0" title="drush_site_path" alt="" coords="1100,1220,1215,1249"/><area shape="rect" id="node36" href="includes_2environment_8inc.html#a6596204dc31d9f84a5fa804b305d3da1" title="_drush_shift_path_up" alt="" coords="1312,1167,1459,1196"/><area shape="rect" id="node38" href="includes_2environment_8inc.html#a339c57f584d4f3d910d8c36763d054c2" title="drush_cwd" alt="" coords="1343,1220,1428,1249"/><area shape="rect" id="node44" href="includes_2environment_8inc.html#ad6ad0af63156033b1f7fe9a9409eaa7e" title="drush_valid_drupal_root" alt="" coords="1307,1113,1464,1143"/><area shape="rect" id="node41" href="context_8inc.html#af983acfe90e7d7bbdbd67c57f93708ba" title="drush_set_context" alt="" coords="1557,995,1685,1024"/><area shape="rect" id="node54" href="lib_2Drush_2Boot_2bootstrap_8inc.html#adb325e52092d83c685acdee827af1085" title="drush_bootstrap_max" alt="" coords="417,835,564,864"/><area shape="rect" id="node73" href="includes_2command_8inc.html#af0c377881e5c9c772f0cad80ea016452" title="drush_get_commands" alt="" coords="856,476,1005,505"/><area shape="rect" id="node111" href="sitealias_8drush_8inc.html#ab84f25812ecd477686e6fa349503ed8d" title="_drush_sitealias_all_list" alt="" coords="851,1365,1011,1395"/><area shape="rect" id="node131" href="drush_8inc.html#acb0a26e79bcbdd1152d59a6916a35aae" title="drush_get_global_options" alt="" coords="407,1071,575,1100"/><area shape="rect" id="node135" href="complete_8inc.html#a520dd6cb68367ab70b710431d76c85df" title="drush_complete_cache_set" alt="" coords="400,937,581,967"/><area shape="rect" id="node56" href="lib_2Drush_2Boot_2bootstrap_8inc.html#ab982885828936c22ba99ab9a7b2981ff" title="_drush_bootstrap_phases" alt="" coords="1072,836,1243,865"/><area shape="rect" id="node58" href="lib_2Drush_2Boot_2bootstrap_8inc.html#a7b119d89395f0ef01bd2392afa4b59af" title="drush_bootstrap_validate" alt="" coords="848,887,1013,916"/><area shape="rect" id="node63" href="lib_2Drush_2Boot_2bootstrap_8inc.html#a504cc0d2dfbfa276957c1e02c8f8c900" title="drush_bootstrap" alt="" coords="653,607,768,636"/><area shape="rect" id="node68" href="group__errorhandling.html#ga33fe8456b3dc49a0e28e7f63692a0d44" title="drush_get_error" alt="" coords="875,67,987,96"/><area shape="rect" id="node94" href="group__errorhandling.html#ga23fe9e1e8c1e5ade39256106044b6da4" title="drush_set_error" alt="" coords="1565,527,1677,556"/><area shape="rect" id="node75" href="includes_2command_8inc.html#a2ce77284c0002dda3a5d0527e583e017" title="drush_command_hook" alt="" coords="1545,268,1697,297"/><area shape="rect" id="node77" href="includes_2command_8inc.html#aa89380abcf2e406ea2d6fe05d529f2b1" title="drush_command_translate" alt="" coords="1071,580,1244,609"/><area shape="rect" id="node82" href="includes_2command_8inc.html#ad51d79509a4a134947703f3e58564444" title="drush_commandfile_list" alt="" coords="1543,215,1700,244"/><area shape="rect" id="node85" href="engines_8inc.html#a04ee0e7019029ef27bc4e8f14341b2b4" title="drush_merge_engine_data" alt="" coords="1071,399,1244,428"/><area shape="rect" id="node79" href="includes_2command_8inc.html#a643622feb3301c9b33e295e7f2bd7804" title="_drush_command_translate" alt="" coords="1295,580,1476,609"/><area shape="rect" id="node87" href="engines_8inc.html#a50374de188af3d1cb754476607b9c375" title="drush_get_engine_types_info" alt="" coords="1527,321,1716,351"/><area shape="rect" id="node91" href="engines_8inc.html#ae94a82d80d5e90cb126de1f16a7f8fe4" title="drush_get_engines" alt="" coords="1320,271,1451,300"/><area shape="rect" id="node103" href="engines_8inc.html#ac18b04b38c84979a32603cd5cef78c69" title="drush_find_engine_to_use" alt="" coords="1299,476,1472,505"/><area shape="rect" id="node89" href="includes_2command_8inc.html#a19eba9666aba673a64fbd78a2c5ef4f9" title="drush_command_invoke_all" alt="" coords="1767,321,1948,351"/><area shape="rect" id="node113" href="sitealias_8drush_8inc.html#ad809b4041656d1dc016b3fdf954ab066" title="_drush_sitealias_alias_list" alt="" coords="1999,1599,2172,1628"/><area shape="rect" id="node116" href="sitealias_8drush_8inc.html#abc87a944e5c22e954bfed08dcd874e02" title="_drush_sitealias_site_list" alt="" coords="1073,1456,1241,1485"/><area shape="rect" id="node123" href="sitealias_8inc.html#a1313cf54d1c18ec59bcc91127becc166" title="drush_sitealias_load_all" alt="" coords="1077,1063,1237,1092"/><area shape="rect" id="node119" href="group__filesystemfunctions.html#ga1c545390a8890f6ea47385f79fbe2e82" title="drush_scan_directory" alt="" coords="1312,1425,1459,1455"/><area shape="rect" id="node121" href="sitealias_8inc.html#ab58274361a02348f2d3ebf640686480b" title="drush_sitealias_uri\l_to_site_dir" alt="" coords="1320,1478,1451,1525"/><area shape="rect" id="node125" href="sitealias_8inc.html#a33aa8e8ae8df2578bbed0d893e0b8f7a" title="_drush_sitealias_find\l_and_load_all_aliases" alt="" coords="1311,891,1460,938"/><area shape="rect" id="node133" href="includes_2command_8inc.html#a74995cc76034e90a39baee51111b20be" title="drush_command_invoke\l_all_ref" alt="" coords="629,1091,792,1138"/><area shape="rect" id="node137" href="includes_2cache_8inc.html#a27a40af68c2a61fdf94b980b953236bf" title="drush_cache_set" alt="" coords="1325,785,1445,815"/></map>
</div>
</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_ac5c1cad8930371b383f35f1baf65692e_icgraph.png" border="0" usemap="#complete_8inc_ac5c1cad8930371b383f35f1baf65692e_icgraph" alt=""/></div>
<map name="complete_8inc_ac5c1cad8930371b383f35f1baf65692e_icgraph" id="complete_8inc_ac5c1cad8930371b383f35f1baf65692e_icgraph">
<area shape="rect" id="node3" href="complete_8inc.html#adbec292adabdfe3772d4ede574ab91c9" title="drush_early_complete" alt="" coords="192,5,341,35"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="abb270b35c688f2a2d842b954ab92bd51"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">drush_complete_match </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>$last_word</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>$values</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Retrieves the appropriate list of candidate completions, then filters this list using the last word that we are trying to complete.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramtype">string</td><td class="paramname">$last_word</td><td>The last word in the argument list (i.e. the subject of completion). </td></tr>
    <tr><td class="paramtype">array</td><td class="paramname">$values</td><td>Array of possible completion values to filter.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>array Array of candidate completions that start with the same characters as the last word. If the last word is empty, return all candidates. </dd></dl>

<p>Definition at line <a class="el" href="complete_8inc_source.html#l00271">271</a> of file <a class="el" href="complete_8inc_source.html">complete.inc</a>.</p>

<p>Referenced by <a class="el" href="complete_8inc_source.html#l00290">drush_complete_match_file()</a>, and <a class="el" href="complete_8inc_source.html#l00101">drush_early_complete()</a>.</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_abb270b35c688f2a2d842b954ab92bd51_icgraph.png" border="0" usemap="#complete_8inc_abb270b35c688f2a2d842b954ab92bd51_icgraph" alt=""/></div>
<map name="complete_8inc_abb270b35c688f2a2d842b954ab92bd51_icgraph" id="complete_8inc_abb270b35c688f2a2d842b954ab92bd51_icgraph">
<area shape="rect" id="node3" href="complete_8inc.html#a7d912e55f6aa1d293bcacdd6568eeaf1" title="drush_complete_match_file" alt="" coords="211,5,392,35"/><area shape="rect" id="node5" href="complete_8inc.html#adbec292adabdfe3772d4ede574ab91c9" title="drush_early_complete" alt="" coords="440,32,589,61"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a7d912e55f6aa1d293bcacdd6568eeaf1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">drush_complete_match_file </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>$last_word</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>$files</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Retrieves the appropriate list of candidate file/directory completions, filtered by the last word that we are trying to complete.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramtype">string</td><td class="paramname">$last_word</td><td>The last word in the argument list (i.e. the subject of completion). </td></tr>
    <tr><td class="paramtype">array</td><td class="paramname">$files</td><td>Array of file specs, each with a pattern and flags subarray.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>array Array of candidate file/directory completions that start with the same characters as the last word. If the last word is empty, return all candidates. </dd></dl>

<p>Definition at line <a class="el" href="complete_8inc_source.html#l00290">290</a> of file <a class="el" href="complete_8inc_source.html">complete.inc</a>.</p>

<p>References <a class="el" href="complete_8inc_source.html#l00271">drush_complete_match()</a>, <a class="el" href="exec_8inc_source.html#l00078">drush_shell_exec()</a>, and <a class="el" href="exec_8inc_source.html#l00390">drush_shell_exec_output()</a>.</p>

<p>Referenced by <a class="el" href="complete_8inc_source.html#l00101">drush_early_complete()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_a7d912e55f6aa1d293bcacdd6568eeaf1_cgraph.png" border="0" usemap="#complete_8inc_a7d912e55f6aa1d293bcacdd6568eeaf1_cgraph" alt=""/></div>
<map name="complete_8inc_a7d912e55f6aa1d293bcacdd6568eeaf1_cgraph" id="complete_8inc_a7d912e55f6aa1d293bcacdd6568eeaf1_cgraph">
<area shape="rect" id="node3" href="complete_8inc.html#abb270b35c688f2a2d842b954ab92bd51" title="drush_complete_match" alt="" coords="235,208,392,238"/><area shape="rect" id="node5" href="group__commandwrappers.html#gafd358ceac1286dbdd141ff2b8eb7d556" title="drush_shell_exec" alt="" coords="252,262,375,291"/><area shape="rect" id="node34" href="group__commandwrappers.html#gadba8c59ba260dd39f615bc22ca78e1af" title="drush_shell_exec_output" alt="" coords="441,314,607,343"/><area shape="rect" id="node7" href="group__commandwrappers.html#ga0eed47c4d6d19d386936ad57f34b10b2" title="_drush_shell_exec" alt="" coords="459,235,589,264"/><area shape="rect" id="node9" href="group__commandwrappers.html#gafc52f7e769d935b4d2462467cdf8d5ee" title="drush_escapeshellarg" alt="" coords="683,138,829,167"/><area shape="rect" id="node17" href="context_8inc.html#ad25559f8d7d753f636fbeac347c29fc5" title="drush_get_context" alt="" coords="1289,220,1417,250"/><area shape="rect" id="node19" href="group__outputfunctions.html#ga63acbb94925d6d2693e235e966bba740" title="drush_print" alt="" coords="939,274,1024,303"/><area shape="rect" id="node28" href="group__commandwrappers.html#ga3a1bb3ae751f14749ce1dbe4ec9c3288" title="drush_shell_proc_open" alt="" coords="679,222,833,251"/><area shape="rect" id="node32" href="group__commandwrappers.html#gac21dc9409bff5197d255978c3cf6e761" title="_drush_shell_exec_output_set" alt="" coords="657,326,855,355"/><area shape="rect" id="node11" href="includes_2environment_8inc.html#a88114295372bcb0ca8dbb5f10b36368e" title="drush_is_windows" alt="" coords="917,170,1045,199"/><area shape="rect" id="node13" href="group__commandwrappers.html#gac60b4740ceccf95b8e60d1896d93d2ab" title="_drush_escapeshellarg\l_windows" alt="" coords="904,30,1059,77"/><area shape="rect" id="node15" href="group__commandwrappers.html#ga561ce790cc15caa5e1f0bfebc2546529" title="_drush_escapeshellarg\l_linux" alt="" coords="904,100,1059,146"/><area shape="rect" id="node21" href="context_8inc.html#afe91fb3e5219ecb2208c3b036b1f0cb8" title="drush_get_option" alt="" coords="1108,274,1228,303"/><area shape="rect" id="node23" href="context_8inc.html#aee5781894bf828bfa508d9052553f809" title="_drush_get_option" alt="" coords="1289,274,1417,303"/><area shape="rect" id="node26" href="context_8inc.html#a9f6272c1a68141ce873c07aae3a316ac" title="drush_context_names" alt="" coords="1279,327,1428,356"/></map>
</div>
</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_a7d912e55f6aa1d293bcacdd6568eeaf1_icgraph.png" border="0" usemap="#complete_8inc_a7d912e55f6aa1d293bcacdd6568eeaf1_icgraph" alt=""/></div>
<map name="complete_8inc_a7d912e55f6aa1d293bcacdd6568eeaf1_icgraph" id="complete_8inc_a7d912e55f6aa1d293bcacdd6568eeaf1_icgraph">
<area shape="rect" id="node3" href="complete_8inc.html#adbec292adabdfe3772d4ede574ab91c9" title="drush_early_complete" alt="" coords="235,5,384,35"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a9249f2a38d16e008506147243482b39c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">drush_complete_process_argv </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function resets the raw arguments so that Drush can parse the command as if it was run directly. The shell complete command passes the full command line as an argument, and the &ndash;early and &ndash;complete-debug options have to come before that, and the "drush" bash script will add a &ndash;php option on the end, so we end up with something like this:</p>
<p>/path/to/drush.php &ndash;early=<a class="el" href="complete_8inc.html">includes/complete.inc</a> [&ndash;complete-debug] drush [] [command]... &ndash;php=/usr/bin/php</p>
<p>Note that "drush" occurs twice, and also that the second occurrence could be an alias, so we can't easily use it as to detect the start of the actual command. Hence our approach is to remove the initial "drush" and then any options directly following that - what remains is then the command we need to complete - i.e.:</p>
<p>drush [] [command]...</p>
<p>Note that if completion is initiated following a space an empty argument is added to argv. So in that case argv looks something like this: array ( '0' =&gt; '/path/to/drush.php', '1' =&gt; '&ndash;early=<a class="el" href="complete_8inc.html">includes/complete.inc</a>', '2' =&gt; 'drush', '3' =&gt; 'topic', '4' =&gt; '', '5' =&gt; '&ndash;php=/usr/bin/php', );</p>
<dl class="section return"><dt>Returns</dt><dd>$args Array of arguments (argv), excluding the initial command and options associated with the complete call. array ( '0' =&gt; 'drush', '1' =&gt; 'topic', '2' =&gt; '', ); </dd></dl>

<p>Definition at line <a class="el" href="complete_8inc_source.html#l00228">228</a> of file <a class="el" href="complete_8inc_source.html">complete.inc</a>.</p>

<p>References <a class="el" href="preflight_8inc_source.html#l00244">_drush_preflight_base_environment()</a>, <a class="el" href="context_8inc_source.html#l00328">drush_get_context()</a>, <a class="el" href="includes_2command_8inc_source.html#l00724">drush_parse_args()</a>, <a class="el" href="context_8inc_source.html#l00380">drush_set_command()</a>, <a class="el" href="context_8inc_source.html#l00293">drush_set_context()</a>, and <a class="el" href="sitealias_8inc_source.html#l00020">drush_sitealias_check_arg()</a>.</p>

<p>Referenced by <a class="el" href="complete_8inc_source.html#l00101">drush_early_complete()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_a9249f2a38d16e008506147243482b39c_cgraph.png" border="0" usemap="#complete_8inc_a9249f2a38d16e008506147243482b39c_cgraph" alt=""/></div>
<map name="complete_8inc_a9249f2a38d16e008506147243482b39c_cgraph" id="complete_8inc_a9249f2a38d16e008506147243482b39c_cgraph">
<area shape="rect" id="node3" href="preflight_8inc.html#a5e1ac7503465559379713fc92ce232dd" title="_drush_preflight_base\l_environment" alt="" coords="895,1455,1044,1502"/><area shape="rect" id="node5" href="context_8inc.html#af983acfe90e7d7bbdbd67c57f93708ba" title="drush_set_context" alt="" coords="1124,373,1252,403"/><area shape="rect" id="node7" href="context_8inc.html#ad25559f8d7d753f636fbeac347c29fc5" title="drush_get_context" alt="" coords="2024,552,2152,581"/><area shape="rect" id="node15" href="includes_2command_8inc.html#a5c7d0d064d4cb56bfe2b2311e5643e11" title="drush_parse_args" alt="" coords="692,273,817,303"/><area shape="rect" id="node102" href="context_8inc.html#af37b8df12a8fc3bf25b173d420a11203" title="drush_set_command" alt="" coords="271,431,412,460"/><area shape="rect" id="node106" href="sitealias_8inc.html#aea0a6ddf95752b4958fc14698a8db017" title="drush_sitealias_check_arg" alt="" coords="253,507,429,536"/><area shape="rect" id="node10" href="includes_2environment_8inc.html#a88114295372bcb0ca8dbb5f10b36368e" title="drush_is_windows" alt="" coords="2239,977,2367,1007"/><area shape="rect" id="node12" href="includes_2environment_8inc.html#afae6d4a5a12623e5502ca262346c799b" title="drush_server_home" alt="" coords="1120,1456,1256,1485"/><area shape="rect" id="node17" href="includes_2command_8inc.html#a59d387101622883fca350211a1c486f1" title="drush_adjust_args_if\l_shebang_script" alt="" coords="899,234,1040,281"/><area shape="rect" id="node33" href="includes_2command_8inc.html#a019118f49079e478cd35ca8eb17998c1" title="drush_process_bootstrap\l_to_first_arg" alt="" coords="885,610,1053,657"/><area shape="rect" id="node83" href="context_8inc.html#ade90fc1aa9c39a740a20c2bf1cb97c25" title="drush_set_arguments" alt="" coords="896,355,1043,384"/><area shape="rect" id="node86" href="context_8inc.html#a16a51c5b09d64e968c3bd7ec414b8846" title="drush_set_config_special\l_contexts" alt="" coords="1572,54,1740,101"/><area shape="rect" id="node100" href="sitealias_8inc.html#a146cdaffbcfaa41f0a53c27cbc7e8b19" title="drush_sitealias_valid\l_alias_format" alt="" coords="899,165,1040,211"/><area shape="rect" id="node19" href="drush_8inc.html#a8f5d18c322518e0f31f3fce0f024f2ef" title="_drush_is_drush_shebang\l_script" alt="" coords="1101,217,1275,263"/><area shape="rect" id="node23" href="includes_2environment_8inc.html#a87a6fcd104950fb9b0d90e25208bcf79" title="drush_has_bash" alt="" coords="1129,287,1247,316"/><area shape="rect" id="node29" href="context_8inc.html#aa4b55e2f6174c8b6efaa8f23a0f9e0af" title="drush_set_option" alt="" coords="1363,165,1483,195"/><area shape="rect" id="node21" href="drush_8inc.html#a997323f1acad3b9f003118bdcf3540c9" title="_drush_is_drush_shebang_line" alt="" coords="1323,219,1523,248"/><area shape="rect" id="node25" href="includes_2environment_8inc.html#acb6cf64eca1804a5f5ca34cad6e2c66b" title="drush_is_cygwin" alt="" coords="1364,272,1481,301"/><area shape="rect" id="node36" href="context_8inc.html#afe91fb3e5219ecb2208c3b036b1f0cb8" title="drush_get_option" alt="" coords="1128,619,1248,648"/><area shape="rect" id="node43" href="sitealias_8inc.html#ac2f57b80441374522c4e4cdc3b7e0c2b" title="drush_sitealias_get\l_record" alt="" coords="1121,901,1255,947"/><area shape="rect" id="node38" href="context_8inc.html#aee5781894bf828bfa508d9052553f809" title="_drush_get_option" alt="" coords="1359,580,1487,609"/><area shape="rect" id="node41" href="context_8inc.html#a9f6272c1a68141ce873c07aae3a316ac" title="drush_context_names" alt="" coords="1348,633,1497,663"/><area shape="rect" id="node45" href="sitealias_8inc.html#a448de5768a772d33e44f86cfefe070ac" title="_drush_sitealias_get\l_record" alt="" coords="1585,901,1727,947"/><area shape="rect" id="node60" href="sitealias_8inc.html#ab58274361a02348f2d3ebf640686480b" title="drush_sitealias_uri\l_to_site_dir" alt="" coords="2023,1061,2153,1107"/><area shape="rect" id="node65" href="sitealias_8inc.html#a9e6067d5c022f5ee598fd0da886931a0" title="drush_sitealias_local\l_site_path" alt="" coords="1801,1213,1943,1259"/><area shape="rect" id="node71" href="sitealias_8inc.html#a49723d857350c5f3501001cede845fa5" title="drush_sitealias_lookup\l_alias_by_path" alt="" coords="1345,1213,1500,1259"/><area shape="rect" id="node48" href="group__filesystemfunctions.html#gafa80199035259ddf98fa300d6f646aa2" title="drush_is_absolute_path" alt="" coords="2009,884,2167,913"/><area shape="rect" id="node52" href="sitealias_8inc.html#a6812218f7e86fa00ec5c011768c63f48" title="_drush_sitealias_set\l_record_element" alt="" coords="1801,901,1943,947"/><area shape="rect" id="node54" href="includes_2environment_8inc.html#ad6ad0af63156033b1f7fe9a9409eaa7e" title="drush_valid_drupal_root" alt="" coords="1793,1109,1951,1139"/><area shape="rect" id="node57" href="sitealias_8inc.html#a38645e5a6d252e6f419db90c5e7e8739" title="_drush_sitealias_find\l_record_for_local_site" alt="" coords="1797,970,1947,1017"/><area shape="rect" id="node63" href="sitealias_8inc.html#a03f4ae74a5e4854ac9ffee762cab07f3" title="drush_sitealias_add\l_to_alias_path" alt="" coords="1804,679,1940,726"/><area shape="rect" id="node68" href="sitealias_8inc.html#a1f4c706969fbd0d73d227a52d106b5f4" title="_drush_sitealias_add\l_static_defaults" alt="" coords="1800,1039,1944,1086"/><area shape="rect" id="node74" href="sitealias_8inc.html#af5e2a5f32557a495b31c2a72bab9586b" title="drush_sitealias_cache\l_alias_by_path" alt="" coords="1581,1273,1731,1319"/><area shape="rect" id="node77" href="includes_2cache_8inc.html#a70613777c5e1a0e258bd0d8e213e0156" title="drush_get_cid" alt="" coords="1821,1283,1923,1312"/><area shape="rect" id="node80" href="includes_2cache_8inc.html#a27a40af68c2a61fdf94b980b953236bf" title="drush_cache_set" alt="" coords="1812,1336,1932,1365"/><area shape="rect" id="node88" href="context_8inc.html#a2082bda0c615dc7163f69851ddd8edaf" title="drush_expand_short\l_form_options" alt="" coords="1803,34,1941,81"/><area shape="rect" id="node90" href="drush_8inc.html#acb0a26e79bcbdd1152d59a6916a35aae" title="drush_get_global_options" alt="" coords="2004,13,2172,43"/><area shape="rect" id="node96" href="includes_2command_8inc.html#ad5dd93fad069d6ba73b3546d26855071" title="drush_command_default\l_options" alt="" coords="1791,205,1953,251"/><area shape="rect" id="node92" href="includes_2command_8inc.html#a74995cc76034e90a39baee51111b20be" title="drush_command_invoke\l_all_ref" alt="" coords="2221,5,2384,51"/><area shape="rect" id="node108" href="context_8inc.html#afaf9361f1297f29d10402b075985985a" title="drush_get_arguments" alt="" coords="477,559,624,588"/><area shape="rect" id="node111" href="sitealias_8inc.html#a276a2325cb18922b6d365c13a6ed7d66" title="_drush_sitealias_set\l_context_by_name" alt="" coords="480,825,621,871"/><area shape="rect" id="node114" href="sitealias_8inc.html#a0ad20ecde503732363f4f6465e6fcc65" title="drush_sitealias_set\l_alias_context" alt="" coords="1805,1490,1939,1537"/><area shape="rect" id="node123" href="sitealias_8inc.html#aa09f66b610fd6ea9dd4f65fb66582bd2" title="_drush_sitealias_cache\l_alias" alt="" coords="1577,694,1735,741"/><area shape="rect" id="node128" href="preflight_8inc.html#a7b3a0beead72750a7172800793cd509b" title="_drush_preflight_root_uri" alt="" coords="673,804,836,833"/><area shape="rect" id="node117" href="sitealias_8inc.html#a0f662d20486f5f1bf0cd855f6a62c19d" title="drush_get_special_keys" alt="" coords="2007,1445,2169,1475"/><area shape="rect" id="node119" href="includes_2environment_8inc.html#a395834ff6c51946c9c8a0953aa8f539f" title="drush_is_local_host" alt="" coords="2020,1499,2156,1528"/><area shape="rect" id="node131" href="includes_2environment_8inc.html#abd11f38a3202eab6206d1bfda1e11b6f" title="drush_locate_root" alt="" coords="1593,1111,1719,1140"/><area shape="rect" id="node135" href="sitealias_8inc.html#a49c2ae562dfc96846a235e521c945a20" title="drush_sitealias_create\l_self_alias" alt="" coords="893,795,1045,842"/></map>
</div>
</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_a9249f2a38d16e008506147243482b39c_icgraph.png" border="0" usemap="#complete_8inc_a9249f2a38d16e008506147243482b39c_icgraph" alt=""/></div>
<map name="complete_8inc_a9249f2a38d16e008506147243482b39c_icgraph" id="complete_8inc_a9249f2a38d16e008506147243482b39c_icgraph">
<area shape="rect" id="node3" href="complete_8inc.html#adbec292adabdfe3772d4ede574ab91c9" title="drush_early_complete" alt="" coords="253,5,403,35"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="af377cea6e3311628f37a738698e1fb4c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">drush_complete_rebuild </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Rebuild and cache completions for everything except command arguments.</p>
<dl class="section return"><dt>Returns</dt><dd>array Structured array of completion types, commands and candidate completions. </dd></dl>

<p>Definition at line <a class="el" href="complete_8inc_source.html#l00450">450</a> of file <a class="el" href="complete_8inc_source.html">complete.inc</a>.</p>

<p>References <a class="el" href="sitealias_8drush_8inc_source.html#l00126">_drush_sitealias_all_list()</a>, <a class="el" href="lib_2Drush_2Boot_2bootstrap_8inc_source.html#l00076">DRUSH_BOOTSTRAP_DRUPAL_CONFIGURATION</a>, <a class="el" href="lib_2Drush_2Boot_2bootstrap_8inc_source.html#l00326">drush_bootstrap_max()</a>, <a class="el" href="complete_8inc_source.html#l00530">drush_complete_cache_set()</a>, <a class="el" href="includes_2command_8inc_source.html#l00973">drush_get_commands()</a>, <a class="el" href="context_8inc_source.html#l00328">drush_get_context()</a>, and <a class="el" href="drush_8inc_source.html#l00255">drush_get_global_options()</a>.</p>

<p>Referenced by <a class="el" href="complete_8inc_source.html#l00409">drush_complete_get()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_af377cea6e3311628f37a738698e1fb4c_cgraph.png" border="0" usemap="#complete_8inc_af377cea6e3311628f37a738698e1fb4c_cgraph" alt=""/></div>
<map name="complete_8inc_af377cea6e3311628f37a738698e1fb4c_cgraph" id="complete_8inc_af377cea6e3311628f37a738698e1fb4c_cgraph">
<area shape="rect" id="node3" href="sitealias_8drush_8inc.html#ab84f25812ecd477686e6fa349503ed8d" title="_drush_sitealias_all_list" alt="" coords="213,298,373,327"/><area shape="rect" id="node7" href="context_8inc.html#ad25559f8d7d753f636fbeac347c29fc5" title="drush_get_context" alt="" coords="1993,801,2121,830"/><area shape="rect" id="node55" href="drush_8inc.html#acb0a26e79bcbdd1152d59a6916a35aae" title="drush_get_global_options" alt="" coords="1089,881,1257,910"/><area shape="rect" id="node71" href="lib_2Drush_2Boot_2bootstrap_8inc.html#adb325e52092d83c685acdee827af1085" title="drush_bootstrap_max" alt="" coords="436,1718,583,1747"/><area shape="rect" id="node90" href="includes_2command_8inc.html#af0c377881e5c9c772f0cad80ea016452" title="drush_get_commands" alt="" coords="875,1321,1024,1350"/><area shape="rect" id="node119" href="complete_8inc.html#a520dd6cb68367ab70b710431d76c85df" title="drush_complete_cache_set" alt="" coords="1083,827,1264,857"/><area shape="rect" id="node5" href="sitealias_8drush_8inc.html#ad809b4041656d1dc016b3fdf954ab066" title="_drush_sitealias_alias_list" alt="" coords="423,270,596,299"/><area shape="rect" id="node9" href="sitealias_8drush_8inc.html#abc87a944e5c22e954bfed08dcd874e02" title="_drush_sitealias_site_list" alt="" coords="865,163,1033,193"/><area shape="rect" id="node29" href="sitealias_8inc.html#a1313cf54d1c18ec59bcc91127becc166" title="drush_sitealias_load_all" alt="" coords="429,326,589,355"/><area shape="rect" id="node12" href="group__filesystemfunctions.html#ga1c545390a8890f6ea47385f79fbe2e82" title="drush_scan_directory" alt="" coords="1100,673,1247,702"/><area shape="rect" id="node22" href="sitealias_8inc.html#ab58274361a02348f2d3ebf640686480b" title="drush_sitealias_uri\l_to_site_dir" alt="" coords="1108,96,1239,143"/><area shape="rect" id="node14" href="drush_8inc.html#a903c36790dbe5525fe9369c8476780af" title="drush_op" alt="" coords="1367,673,1441,702"/><area shape="rect" id="node16" href="group__logging.html#gad820f489a93518301794ada4ff7816b6" title="drush_log" alt="" coords="1825,774,1903,803"/><area shape="rect" id="node19" href="group__outputfunctions.html#ga1218abcb1e27dd3bb412113d1e344d96" title="dt" alt="" coords="1621,985,1659,1014"/><area shape="rect" id="node24" href="includes_2environment_8inc.html#a88114295372bcb0ca8dbb5f10b36368e" title="drush_is_windows" alt="" coords="1340,43,1468,73"/><area shape="rect" id="node26" href="includes_2environment_8inc.html#a4f1fda8a8ff6eac8e1182b54e36f4466" title="drush_site_dir_lookup\l_from_hostname" alt="" coords="1331,96,1477,143"/><area shape="rect" id="node31" href="sitealias_8inc.html#a33aa8e8ae8df2578bbed0d893e0b8f7a" title="_drush_sitealias_find\l_and_load_all_aliases" alt="" coords="656,677,805,724"/><area shape="rect" id="node46" href="sitealias_8inc.html#ab1ae22d0ad42d924ff0f85154f027885" title="_drush_sitealias_add\l_inherited_values" alt="" coords="659,277,803,324"/><area shape="rect" id="node51" href="context_8inc.html#a16a51c5b09d64e968c3bd7ec414b8846" title="drush_set_config_special\l_contexts" alt="" coords="647,359,815,405"/><area shape="rect" id="node33" href="sitealias_8inc.html#a9ccbaf4417b01e474a01db9c985fb103" title="_drush_sitealias_find\l_alias_files" alt="" coords="877,712,1021,759"/><area shape="rect" id="node36" href="context_8inc.html#af983acfe90e7d7bbdbd67c57f93708ba" title="drush_set_context" alt="" coords="1109,1565,1237,1594"/><area shape="rect" id="node41" href="sitealias_8inc.html#a432d1b4f4f62b73ecf29aa29501571a7" title="_drush_sitealias_initialize\l_alias_record" alt="" coords="864,643,1035,689"/><area shape="rect" id="node43" href="sitealias_8inc.html#aa4c589e4cb7f9ac0dad80ff526444c19" title="_sitealias_array_merge" alt="" coords="872,590,1027,619"/><area shape="rect" id="node48" href="sitealias_8inc.html#aa09f66b610fd6ea9dd4f65fb66582bd2" title="_drush_sitealias_cache\l_alias" alt="" coords="1785,267,1943,313"/><area shape="rect" id="node53" href="context_8inc.html#a2082bda0c615dc7163f69851ddd8edaf" title="drush_expand_short\l_form_options" alt="" coords="880,469,1019,516"/><area shape="rect" id="node68" href="includes_2command_8inc.html#ad5dd93fad069d6ba73b3546d26855071" title="drush_command_default\l_options" alt="" coords="1559,368,1721,415"/><area shape="rect" id="node57" href="includes_2command_8inc.html#a74995cc76034e90a39baee51111b20be" title="drush_command_invoke\l_all_ref" alt="" coords="1323,1344,1485,1391"/><area shape="rect" id="node59" href="includes_2command_8inc.html#a385cd0ff47c30105f965722a81987809" title="drush_command_implements" alt="" coords="1544,1350,1736,1379"/><area shape="rect" id="node61" href="includes_2command_8inc.html#a2ce77284c0002dda3a5d0527e583e017" title="drush_command_hook" alt="" coords="1788,1297,1940,1326"/><area shape="rect" id="node63" href="includes_2command_8inc.html#ad51d79509a4a134947703f3e58564444" title="drush_commandfile_list" alt="" coords="1785,1350,1943,1379"/><area shape="rect" id="node73" href="lib_2Drush_2Boot_2bootstrap_8inc.html#ab982885828936c22ba99ab9a7b2981ff" title="_drush_bootstrap_phases" alt="" coords="1088,1770,1259,1799"/><area shape="rect" id="node75" href="lib_2Drush_2Boot_2bootstrap_8inc.html#a7b119d89395f0ef01bd2392afa4b59af" title="drush_bootstrap_validate" alt="" coords="867,1718,1032,1747"/><area shape="rect" id="node80" href="lib_2Drush_2Boot_2bootstrap_8inc.html#a504cc0d2dfbfa276957c1e02c8f8c900" title="drush_bootstrap" alt="" coords="673,1590,788,1619"/><area shape="rect" id="node85" href="group__errorhandling.html#ga33fe8456b3dc49a0e28e7f63692a0d44" title="drush_get_error" alt="" coords="1584,1617,1696,1646"/><area shape="rect" id="node106" href="group__errorhandling.html#ga23fe9e1e8c1e5ade39256106044b6da4" title="drush_set_error" alt="" coords="1584,1063,1696,1093"/><area shape="rect" id="node93" href="includes_2command_8inc.html#aa89380abcf2e406ea2d6fe05d529f2b1" title="drush_command_translate" alt="" coords="1087,1035,1260,1065"/><area shape="rect" id="node99" href="engines_8inc.html#a04ee0e7019029ef27bc4e8f14341b2b4" title="drush_merge_engine_data" alt="" coords="1087,1266,1260,1295"/><area shape="rect" id="node95" href="includes_2command_8inc.html#a643622feb3301c9b33e295e7f2bd7804" title="_drush_command_translate" alt="" coords="1313,1033,1495,1062"/><area shape="rect" id="node101" href="engines_8inc.html#a50374de188af3d1cb754476607b9c375" title="drush_get_engine_types_info" alt="" coords="1545,1294,1735,1323"/><area shape="rect" id="node103" href="engines_8inc.html#ae94a82d80d5e90cb126de1f16a7f8fe4" title="drush_get_engines" alt="" coords="1339,1241,1469,1270"/><area shape="rect" id="node113" href="engines_8inc.html#ac18b04b38c84979a32603cd5cef78c69" title="drush_find_engine_to_use" alt="" coords="1317,1187,1491,1217"/><area shape="rect" id="node121" href="includes_2cache_8inc.html#a27a40af68c2a61fdf94b980b953236bf" title="drush_cache_set" alt="" coords="1344,827,1464,857"/><area shape="rect" id="node130" href="complete_8inc.html#a5cacfdc5ec07fac0d484c64c7368c511" title="drush_complete_cache_cid" alt="" coords="1551,931,1729,961"/><area shape="rect" id="node123" href="includes_2cache_8inc.html#a80d986947415d49a2b3324018a0beb1e" title="_drush_cache_get_object" alt="" coords="1555,878,1725,907"/><area shape="rect" id="node125" href="context_8inc.html#afe91fb3e5219ecb2208c3b036b1f0cb8" title="drush_get_option" alt="" coords="1804,827,1924,857"/><area shape="rect" id="node132" href="includes_2cache_8inc.html#a70613777c5e1a0e258bd0d8e213e0156" title="drush_get_cid" alt="" coords="1813,987,1915,1017"/><area shape="rect" id="node136" href="includes_2environment_8inc.html#abd11f38a3202eab6206d1bfda1e11b6f" title="drush_locate_root" alt="" coords="1801,881,1927,910"/><area shape="rect" id="node138" href="includes_2environment_8inc.html#a35bbe20a952598e022399912d89f97f0" title="drush_site_path" alt="" coords="1807,934,1921,963"/></map>
</div>
</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_af377cea6e3311628f37a738698e1fb4c_icgraph.png" border="0" usemap="#complete_8inc_af377cea6e3311628f37a738698e1fb4c_icgraph" alt=""/></div>
<map name="complete_8inc_af377cea6e3311628f37a738698e1fb4c_icgraph" id="complete_8inc_af377cea6e3311628f37a738698e1fb4c_icgraph">
<area shape="rect" id="node3" href="complete_8inc.html#ac5c1cad8930371b383f35f1baf65692e" title="drush_complete_get" alt="" coords="213,5,352,35"/><area shape="rect" id="node5" href="complete_8inc.html#adbec292adabdfe3772d4ede574ab91c9" title="drush_early_complete" alt="" coords="400,5,549,35"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a4bbb8faee318ca6f3b8d70710d0406ba"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">drush_complete_rebuild_arguments </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>$command</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Rebuild and cache completions for command arguments.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramtype">string</td><td class="paramname">$command</td><td>A specific command to retrieve and cache arguments for.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>array Structured array of candidate completion arguments, keyed by the command. </dd></dl>

<p>Definition at line <a class="el" href="complete_8inc_source.html#l00497">497</a> of file <a class="el" href="complete_8inc_source.html">complete.inc</a>.</p>

<p>References <a class="el" href="lib_2Drush_2Boot_2bootstrap_8inc_source.html#l00065">DRUSH_BOOTSTRAP_DRUPAL_SITE</a>, <a class="el" href="lib_2Drush_2Boot_2bootstrap_8inc_source.html#l00326">drush_bootstrap_max()</a>, <a class="el" href="includes_2command_8inc_source.html#l01251">drush_command_invoke_all()</a>, <a class="el" href="complete_8inc_source.html#l00530">drush_complete_cache_set()</a>, and <a class="el" href="includes_2command_8inc_source.html#l00973">drush_get_commands()</a>.</p>

<p>Referenced by <a class="el" href="complete_8inc_source.html#l00409">drush_complete_get()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_a4bbb8faee318ca6f3b8d70710d0406ba_cgraph.png" border="0" usemap="#complete_8inc_a4bbb8faee318ca6f3b8d70710d0406ba_cgraph" alt=""/></div>
<map name="complete_8inc_a4bbb8faee318ca6f3b8d70710d0406ba_cgraph" id="complete_8inc_a4bbb8faee318ca6f3b8d70710d0406ba_cgraph">
<area shape="rect" id="node3" href="lib_2Drush_2Boot_2bootstrap_8inc.html#adb325e52092d83c685acdee827af1085" title="drush_bootstrap_max" alt="" coords="213,258,360,288"/><area shape="rect" id="node38" href="includes_2command_8inc.html#af0c377881e5c9c772f0cad80ea016452" title="drush_get_commands" alt="" coords="580,589,729,618"/><area shape="rect" id="node54" href="includes_2command_8inc.html#a19eba9666aba673a64fbd78a2c5ef4f9" title="drush_command_invoke_all" alt="" coords="1489,516,1671,545"/><area shape="rect" id="node75" href="complete_8inc.html#a520dd6cb68367ab70b710431d76c85df" title="drush_complete_cache_set" alt="" coords="787,876,968,905"/><area shape="rect" id="node5" href="lib_2Drush_2Boot_2bootstrap_8inc.html#ab982885828936c22ba99ab9a7b2981ff" title="_drush_bootstrap_phases" alt="" coords="792,310,963,340"/><area shape="rect" id="node7" href="lib_2Drush_2Boot_2bootstrap_8inc.html#a7b119d89395f0ef01bd2392afa4b59af" title="drush_bootstrap_validate" alt="" coords="572,105,737,134"/><area shape="rect" id="node12" href="context_8inc.html#ad25559f8d7d753f636fbeac347c29fc5" title="drush_get_context" alt="" coords="1959,438,2087,468"/><area shape="rect" id="node15" href="lib_2Drush_2Boot_2bootstrap_8inc.html#a504cc0d2dfbfa276957c1e02c8f8c900" title="drush_bootstrap" alt="" coords="408,258,523,288"/><area shape="rect" id="node10" href="context_8inc.html#af983acfe90e7d7bbdbd67c57f93708ba" title="drush_set_context" alt="" coords="1735,232,1863,261"/><area shape="rect" id="node20" href="group__errorhandling.html#ga33fe8456b3dc49a0e28e7f63692a0d44" title="drush_get_error" alt="" coords="599,52,711,81"/><area shape="rect" id="node23" href="group__logging.html#gad820f489a93518301794ada4ff7816b6" title="drush_log" alt="" coords="1541,309,1619,338"/><area shape="rect" id="node29" href="group__outputfunctions.html#ga1218abcb1e27dd3bb412113d1e344d96" title="dt" alt="" coords="1325,670,1363,700"/><area shape="rect" id="node59" href="group__errorhandling.html#ga23fe9e1e8c1e5ade39256106044b6da4" title="drush_set_error" alt="" coords="1288,356,1400,385"/><area shape="rect" id="node26" href="backend_8inc.html#a38490210d77373f3d8492caf4e9a3190" title="drush_backend_packet" alt="" coords="1721,361,1876,390"/><area shape="rect" id="node31" href="includes_2drupal_8inc.html#ad2ccab77d4bc8e7355186f26cd328ac0" title="drush_drupal_major\l_version" alt="" coords="1513,667,1647,714"/><area shape="rect" id="node33" href="includes_2drupal_8inc.html#a203e989fd043d054d774954e2b2dff21" title="drush_drupal_version" alt="" coords="1727,940,1871,969"/><area shape="rect" id="node35" href="includes_2drupal_8inc.html#aa7ac001ed15d678fa533b54d962eb5bc" title="drush_drupal_load_autoloader" alt="" coords="1925,940,2120,969"/><area shape="rect" id="node40" href="includes_2command_8inc.html#a2ce77284c0002dda3a5d0527e583e017" title="drush_command_hook" alt="" coords="1268,409,1420,438"/><area shape="rect" id="node42" href="includes_2command_8inc.html#aa89380abcf2e406ea2d6fe05d529f2b1" title="drush_command_translate" alt="" coords="791,721,964,750"/><area shape="rect" id="node47" href="includes_2command_8inc.html#ad51d79509a4a134947703f3e58564444" title="drush_commandfile_list" alt="" coords="1265,462,1423,492"/><area shape="rect" id="node50" href="engines_8inc.html#a04ee0e7019029ef27bc4e8f14341b2b4" title="drush_merge_engine_data" alt="" coords="791,616,964,645"/><area shape="rect" id="node44" href="includes_2command_8inc.html#a643622feb3301c9b33e295e7f2bd7804" title="_drush_command_translate" alt="" coords="1017,772,1199,801"/><area shape="rect" id="node52" href="engines_8inc.html#a50374de188af3d1cb754476607b9c375" title="drush_get_engine_types_info" alt="" coords="1249,516,1439,545"/><area shape="rect" id="node56" href="engines_8inc.html#ae94a82d80d5e90cb126de1f16a7f8fe4" title="drush_get_engines" alt="" coords="1043,462,1173,492"/><area shape="rect" id="node68" href="engines_8inc.html#ac18b04b38c84979a32603cd5cef78c69" title="drush_find_engine_to_use" alt="" coords="1021,668,1195,697"/><area shape="rect" id="node77" href="includes_2cache_8inc.html#a27a40af68c2a61fdf94b980b953236bf" title="drush_cache_set" alt="" coords="1048,876,1168,905"/><area shape="rect" id="node90" href="complete_8inc.html#a5cacfdc5ec07fac0d484c64c7368c511" title="drush_complete_cache_cid" alt="" coords="1019,929,1197,958"/><area shape="rect" id="node79" href="includes_2cache_8inc.html#a80d986947415d49a2b3324018a0beb1e" title="_drush_cache_get_object" alt="" coords="1259,982,1429,1012"/><area shape="rect" id="node81" href="context_8inc.html#afe91fb3e5219ecb2208c3b036b1f0cb8" title="drush_get_option" alt="" coords="1520,998,1640,1028"/><area shape="rect" id="node83" href="context_8inc.html#aee5781894bf828bfa508d9052553f809" title="_drush_get_option" alt="" coords="1735,996,1863,1025"/><area shape="rect" id="node86" href="context_8inc.html#a9f6272c1a68141ce873c07aae3a316ac" title="drush_context_names" alt="" coords="1724,1049,1873,1078"/><area shape="rect" id="node92" href="includes_2cache_8inc.html#a70613777c5e1a0e258bd0d8e213e0156" title="drush_get_cid" alt="" coords="1748,701,1849,730"/><area shape="rect" id="node96" href="includes_2environment_8inc.html#abd11f38a3202eab6206d1bfda1e11b6f" title="drush_locate_root" alt="" coords="1281,929,1407,958"/><area shape="rect" id="node106" href="includes_2environment_8inc.html#a35bbe20a952598e022399912d89f97f0" title="drush_site_path" alt="" coords="1287,876,1401,905"/><area shape="rect" id="node98" href="includes_2environment_8inc.html#a6596204dc31d9f84a5fa804b305d3da1" title="_drush_shift_path_up" alt="" coords="1507,945,1653,974"/><area shape="rect" id="node100" href="includes_2environment_8inc.html#a339c57f584d4f3d910d8c36763d054c2" title="drush_cwd" alt="" coords="1537,892,1623,921"/><area shape="rect" id="node104" href="includes_2environment_8inc.html#ad6ad0af63156033b1f7fe9a9409eaa7e" title="drush_valid_drupal_root" alt="" coords="1501,838,1659,868"/></map>
</div>
</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_a4bbb8faee318ca6f3b8d70710d0406ba_icgraph.png" border="0" usemap="#complete_8inc_a4bbb8faee318ca6f3b8d70710d0406ba_icgraph" alt=""/></div>
<map name="complete_8inc_a4bbb8faee318ca6f3b8d70710d0406ba_icgraph" id="complete_8inc_a4bbb8faee318ca6f3b8d70710d0406ba_icgraph">
<area shape="rect" id="node3" href="complete_8inc.html#ac5c1cad8930371b383f35f1baf65692e" title="drush_complete_get" alt="" coords="213,13,352,43"/><area shape="rect" id="node5" href="complete_8inc.html#adbec292adabdfe3772d4ede574ab91c9" title="drush_early_complete" alt="" coords="400,13,549,43"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ac4f7cc5aff0b9d5f2fd8b956152ed424"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">drush_complete_trailing_space </td>
          <td>(</td>
          <td class="paramtype">&amp;&#160;</td>
          <td class="paramname"><em>$item</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>$key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Helper callback function that adds a trailing space to completes in an array. </p>

<p>Definition at line <a class="el" href="complete_8inc_source.html#l00482">482</a> of file <a class="el" href="complete_8inc_source.html">complete.inc</a>.</p>

</div>
</div>
<a class="anchor" id="adbec292adabdfe3772d4ede574ab91c9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">drush_early_complete </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Produce autocomplete output.</p>
<p>Determine position (is there a site-alias or command set, and are we trying to complete an option). Then produce a list of completions for the last word and output them separated by newlines. </p>

<p>Definition at line <a class="el" href="complete_8inc_source.html#l00101">101</a> of file <a class="el" href="complete_8inc_source.html">complete.inc</a>.</p>

<p>References <a class="el" href="complete_8inc_source.html#l00409">drush_complete_get()</a>, <a class="el" href="complete_8inc_source.html#l00271">drush_complete_match()</a>, <a class="el" href="complete_8inc_source.html#l00290">drush_complete_match_file()</a>, <a class="el" href="complete_8inc_source.html#l00228">drush_complete_process_argv()</a>, <a class="el" href="context_8inc_source.html#l00366">drush_get_arguments()</a>, <a class="el" href="context_8inc_source.html#l00328">drush_get_context()</a>, <a class="el" href="context_8inc_source.html#l00405">drush_get_option()</a>, <a class="el" href="complete_8inc_source.html#l00389">drush_hyphenate_options()</a>, <a class="el" href="context_8inc_source.html#l00293">drush_set_context()</a>, <a class="el" href="context_8inc_source.html#l00591">drush_set_option()</a>, and <a class="el" href="sitealias_8inc_source.html#l00176">drush_sitealias_get_record()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_adbec292adabdfe3772d4ede574ab91c9_cgraph.png" border="0" usemap="#complete_8inc_adbec292adabdfe3772d4ede574ab91c9_cgraph" alt=""/></div>
<map name="complete_8inc_adbec292adabdfe3772d4ede574ab91c9_cgraph" id="complete_8inc_adbec292adabdfe3772d4ede574ab91c9_cgraph">
<area shape="rect" id="node3" href="complete_8inc.html#ac5c1cad8930371b383f35f1baf65692e" title="drush_complete_get" alt="" coords="233,1133,372,1163"/><area shape="rect" id="node9" href="context_8inc.html#afe91fb3e5219ecb2208c3b036b1f0cb8" title="drush_get_option" alt="" coords="1172,1487,1292,1516"/><area shape="rect" id="node13" href="context_8inc.html#ad25559f8d7d753f636fbeac347c29fc5" title="drush_get_context" alt="" coords="1369,829,1497,859"/><area shape="rect" id="node55" href="complete_8inc.html#abb270b35c688f2a2d842b954ab92bd51" title="drush_complete_match" alt="" coords="460,1501,617,1531"/><area shape="rect" id="node57" href="complete_8inc.html#a7d912e55f6aa1d293bcacdd6568eeaf1" title="drush_complete_match_file" alt="" coords="212,1421,393,1451"/><area shape="rect" id="node70" href="complete_8inc.html#a9249f2a38d16e008506147243482b39c" title="drush_complete_process_argv" alt="" coords="204,213,401,243"/><area shape="rect" id="node74" href="context_8inc.html#af983acfe90e7d7bbdbd67c57f93708ba" title="drush_set_context" alt="" coords="943,313,1071,343"/><area shape="rect" id="node88" href="context_8inc.html#aa4b55e2f6174c8b6efaa8f23a0f9e0af" title="drush_set_option" alt="" coords="947,768,1067,797"/><area shape="rect" id="node96" href="sitealias_8inc.html#ac2f57b80441374522c4e4cdc3b7e0c2b" title="drush_sitealias_get\l_record" alt="" coords="940,1249,1073,1295"/><area shape="rect" id="node129" href="context_8inc.html#afaf9361f1297f29d10402b075985985a" title="drush_get_arguments" alt="" coords="693,659,840,688"/><area shape="rect" id="node137" href="complete_8inc.html#a39836b96551005ba8cf4ec0f4df3d603" title="drush_hyphenate_options" alt="" coords="217,1605,388,1635"/><area shape="rect" id="node5" href="includes_2cache_8inc.html#adc36ac3b562c67cbf1d7aab89c029694" title="drush_cache_get" alt="" coords="707,1371,827,1400"/><area shape="rect" id="node22" href="complete_8inc.html#a5cacfdc5ec07fac0d484c64c7368c511" title="drush_complete_cache_cid" alt="" coords="917,1020,1096,1049"/><area shape="rect" id="node33" href="complete_8inc.html#af377cea6e3311628f37a738698e1fb4c" title="drush_complete_rebuild" alt="" coords="460,1103,617,1132"/><area shape="rect" id="node48" href="complete_8inc.html#a4bbb8faee318ca6f3b8d70710d0406ba" title="drush_complete_rebuild\l_arguments" alt="" coords="460,1155,617,1202"/><area shape="rect" id="node7" href="includes_2cache_8inc.html#a80d986947415d49a2b3324018a0beb1e" title="_drush_cache_get_object" alt="" coords="921,1423,1092,1452"/><area shape="rect" id="node17" href="group__logging.html#gad820f489a93518301794ada4ff7816b6" title="drush_log" alt="" coords="1193,1143,1271,1172"/><area shape="rect" id="node20" href="group__outputfunctions.html#ga1218abcb1e27dd3bb412113d1e344d96" title="dt" alt="" coords="988,1369,1025,1399"/><area shape="rect" id="node11" href="context_8inc.html#aee5781894bf828bfa508d9052553f809" title="_drush_get_option" alt="" coords="1369,1461,1497,1491"/><area shape="rect" id="node15" href="context_8inc.html#a9f6272c1a68141ce873c07aae3a316ac" title="drush_context_names" alt="" coords="1359,1515,1508,1544"/><area shape="rect" id="node24" href="includes_2cache_8inc.html#a70613777c5e1a0e258bd0d8e213e0156" title="drush_get_cid" alt="" coords="1181,932,1283,961"/><area shape="rect" id="node28" href="includes_2environment_8inc.html#abd11f38a3202eab6206d1bfda1e11b6f" title="drush_locate_root" alt="" coords="1169,1039,1295,1068"/><area shape="rect" id="node30" href="includes_2environment_8inc.html#a35bbe20a952598e022399912d89f97f0" title="drush_site_path" alt="" coords="1175,985,1289,1015"/><area shape="rect" id="node35" href="sitealias_8drush_8inc.html#ab84f25812ecd477686e6fa349503ed8d" title="_drush_sitealias_all_list" alt="" coords="687,1053,847,1083"/><area shape="rect" id="node37" href="lib_2Drush_2Boot_2bootstrap_8inc.html#adb325e52092d83c685acdee827af1085" title="drush_bootstrap_max" alt="" coords="693,1160,840,1189"/><area shape="rect" id="node40" href="complete_8inc.html#a520dd6cb68367ab70b710431d76c85df" title="drush_complete_cache_set" alt="" coords="676,1107,857,1136"/><area shape="rect" id="node43" href="includes_2command_8inc.html#af0c377881e5c9c772f0cad80ea016452" title="drush_get_commands" alt="" coords="692,1213,841,1243"/><area shape="rect" id="node46" href="drush_8inc.html#acb0a26e79bcbdd1152d59a6916a35aae" title="drush_get_global_options" alt="" coords="923,821,1091,851"/><area shape="rect" id="node51" href="includes_2command_8inc.html#a19eba9666aba673a64fbd78a2c5ef4f9" title="drush_command_invoke_all" alt="" coords="676,1267,857,1296"/><area shape="rect" id="node60" href="group__commandwrappers.html#gafd358ceac1286dbdd141ff2b8eb7d556" title="drush_shell_exec" alt="" coords="477,1395,600,1424"/><area shape="rect" id="node67" href="group__commandwrappers.html#gadba8c59ba260dd39f615bc22ca78e1af" title="drush_shell_exec_output" alt="" coords="456,1448,621,1477"/><area shape="rect" id="node62" href="group__commandwrappers.html#ga0eed47c4d6d19d386936ad57f34b10b2" title="_drush_shell_exec" alt="" coords="701,1424,832,1453"/><area shape="rect" id="node65" href="group__commandwrappers.html#gac21dc9409bff5197d255978c3cf6e761" title="_drush_shell_exec_output_set" alt="" coords="908,1476,1105,1505"/><area shape="rect" id="node72" href="preflight_8inc.html#a5e1ac7503465559379713fc92ce232dd" title="_drush_preflight_base\l_environment" alt="" coords="692,93,841,139"/><area shape="rect" id="node83" href="includes_2command_8inc.html#a5c7d0d064d4cb56bfe2b2311e5643e11" title="drush_parse_args" alt="" coords="476,512,601,541"/><area shape="rect" id="node123" href="context_8inc.html#af37b8df12a8fc3bf25b173d420a11203" title="drush_set_command" alt="" coords="468,213,609,243"/><area shape="rect" id="node127" href="sitealias_8inc.html#aea0a6ddf95752b4958fc14698a8db017" title="drush_sitealias_check_arg" alt="" coords="451,341,627,371"/><area shape="rect" id="node78" href="includes_2environment_8inc.html#a88114295372bcb0ca8dbb5f10b36368e" title="drush_is_windows" alt="" coords="1737,1255,1865,1284"/><area shape="rect" id="node80" href="includes_2environment_8inc.html#afae6d4a5a12623e5502ca262346c799b" title="drush_server_home" alt="" coords="939,144,1075,173"/><area shape="rect" id="node85" href="includes_2command_8inc.html#a59d387101622883fca350211a1c486f1" title="drush_adjust_args_if\l_shebang_script" alt="" coords="696,589,837,635"/><area shape="rect" id="node92" href="includes_2command_8inc.html#a019118f49079e478cd35ca8eb17998c1" title="drush_process_bootstrap\l_to_first_arg" alt="" coords="683,933,851,979"/><area shape="rect" id="node113" href="context_8inc.html#ade90fc1aa9c39a740a20c2bf1cb97c25" title="drush_set_arguments" alt="" coords="693,365,840,395"/><area shape="rect" id="node116" href="context_8inc.html#a16a51c5b09d64e968c3bd7ec414b8846" title="drush_set_config_special\l_contexts" alt="" coords="683,711,851,758"/><area shape="rect" id="node121" href="sitealias_8inc.html#a146cdaffbcfaa41f0a53c27cbc7e8b19" title="drush_sitealias_valid\l_alias_format" alt="" coords="696,418,837,465"/><area shape="rect" id="node98" href="sitealias_8inc.html#a448de5768a772d33e44f86cfefe070ac" title="_drush_sitealias_get\l_record" alt="" coords="1161,1246,1303,1293"/><area shape="rect" id="node103" href="sitealias_8inc.html#a9e6067d5c022f5ee598fd0da886931a0" title="drush_sitealias_local\l_site_path" alt="" coords="1363,1366,1504,1413"/><area shape="rect" id="node105" href="sitealias_8inc.html#ab58274361a02348f2d3ebf640686480b" title="drush_sitealias_uri\l_to_site_dir" alt="" coords="1557,1306,1688,1353"/><area shape="rect" id="node109" href="sitealias_8inc.html#a49723d857350c5f3501001cede845fa5" title="drush_sitealias_lookup\l_alias_by_path" alt="" coords="1155,1417,1309,1463"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a39836b96551005ba8cf4ec0f4df3d603"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">drush_hyphenate_options </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>$options</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Simple helper function to ensure options are properly hyphenated before we return them to the user (we match against the non-hyphenated versions internally).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramtype">array</td><td class="paramname">$options</td><td>Array of unhyphenated option names.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>array Array of hyphenated option names. </dd></dl>

<p>Definition at line <a class="el" href="complete_8inc_source.html#l00389">389</a> of file <a class="el" href="complete_8inc_source.html">complete.inc</a>.</p>

<p>Referenced by <a class="el" href="complete_8inc_source.html#l00101">drush_early_complete()</a>.</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="complete_8inc_a39836b96551005ba8cf4ec0f4df3d603_icgraph.png" border="0" usemap="#complete_8inc_a39836b96551005ba8cf4ec0f4df3d603_icgraph" alt=""/></div>
<map name="complete_8inc_a39836b96551005ba8cf4ec0f4df3d603_icgraph" id="complete_8inc_a39836b96551005ba8cf4ec0f4df3d603_icgraph">
<area shape="rect" id="node3" href="complete_8inc.html#adbec292adabdfe3772d4ede574ab91c9" title="drush_early_complete" alt="" coords="224,5,373,35"/></map>
</div>
</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Oct 8 2014 09:04:59 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>