DragonNest/Common/SVNLib/doc/svn__opt_8h-source.html
2024-12-19 09:48:26 +08:00

739 lines
81 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Subversion: svn_opt.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<form action="search.php" method="get">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
<td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
</tr>
</table>
</form>
</li>
</ul>
</div>
<h1>svn_opt.h</h1><a href="svn__opt_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/**</span>
<a name="l00002"></a>00002 <span class="comment"> * @copyright</span>
<a name="l00003"></a>00003 <span class="comment"> * ====================================================================</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (c) 2000-2007 CollabNet. All rights reserved.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This software is licensed as described in the file COPYING, which</span>
<a name="l00007"></a>00007 <span class="comment"> * you should have received as part of this distribution. The terms</span>
<a name="l00008"></a>00008 <span class="comment"> * are also available at http://subversion.tigris.org/license-1.html.</span>
<a name="l00009"></a>00009 <span class="comment"> * If newer versions of this license are posted there, you may use a</span>
<a name="l00010"></a>00010 <span class="comment"> * newer version instead, at your option.</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * This software consists of voluntary contributions made by many</span>
<a name="l00013"></a>00013 <span class="comment"> * individuals. For exact contribution history, see the revision</span>
<a name="l00014"></a>00014 <span class="comment"> * history and logs, available at http://subversion.tigris.org/.</span>
<a name="l00015"></a>00015 <span class="comment"> * ====================================================================</span>
<a name="l00016"></a>00016 <span class="comment"> * @endcopyright</span>
<a name="l00017"></a>00017 <span class="comment"> *</span>
<a name="l00018"></a>00018 <span class="comment"> * @file svn_opt.h</span>
<a name="l00019"></a>00019 <span class="comment"> * @brief Option and argument parsing for Subversion command lines</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00022"></a>00022 <span class="preprocessor">#ifndef SVN_OPTS_H</span>
<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#define SVN_OPTS_H</span>
<a name="l00024"></a>00024 <span class="preprocessor"></span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;apr.h&gt;</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;apr_pools.h&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;apr_getopt.h&gt;</span>
<a name="l00028"></a>00028
<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="svn__types_8h.html" title="Subversion&amp;#39;s data types.">svn_types.h</a>"</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="svn__error_8h.html" title="Common exception handling for Subversion.">svn_error.h</a>"</span>
<a name="l00031"></a>00031
<a name="l00032"></a>00032 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
<a name="l00034"></a>00034 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
<a name="l00035"></a>00035
<a name="l00036"></a>00036
<a name="l00037"></a>00037 <span class="comment"></span>
<a name="l00038"></a>00038 <span class="comment">/**</span>
<a name="l00039"></a>00039 <span class="comment"> * All subcommand procedures in Subversion conform to this prototype.</span>
<a name="l00040"></a>00040 <span class="comment"> *</span>
<a name="l00041"></a>00041 <span class="comment"> * @a os is the apr option state after getopt processing has been run; in</span>
<a name="l00042"></a>00042 <span class="comment"> * other words, it still contains the non-option arguments following</span>
<a name="l00043"></a>00043 <span class="comment"> * the subcommand. See @a os-&gt;argv and @a os-&gt;ind.</span>
<a name="l00044"></a>00044 <span class="comment"> *</span>
<a name="l00045"></a>00045 <span class="comment"> * @a baton is anything you need it to be.</span>
<a name="l00046"></a>00046 <span class="comment"> *</span>
<a name="l00047"></a>00047 <span class="comment"> * @a pool is used for allocating errors, and for any other allocation</span>
<a name="l00048"></a>00048 <span class="comment"> * unless the instance is explicitly documented to allocate from a</span>
<a name="l00049"></a>00049 <span class="comment"> * pool in @a baton.</span>
<a name="l00050"></a>00050 <span class="comment"> */</span>
<a name="l00051"></a>00051 <span class="keyword">typedef</span> <a class="code" href="structsvn__error__t.html" title="Subversion error object.">svn_error_t</a> *(<a class="code" href="svn__opt_8h.html#f694c6f5359cbd8868555d170037f132" title="All subcommand procedures in Subversion conform to this prototype.">svn_opt_subcommand_t</a>)
<a name="l00052"></a><a class="code" href="svn__opt_8h.html#f694c6f5359cbd8868555d170037f132">00052</a> (apr_getopt_t *os, <span class="keywordtype">void</span> *baton, apr_pool_t *pool);
<a name="l00053"></a>00053
<a name="l00054"></a>00054 <span class="comment"></span>
<a name="l00055"></a>00055 <span class="comment">/** The maximum number of aliases a subcommand can have. */</span>
<a name="l00056"></a>00056 <span class="preprocessor">#define SVN_OPT_MAX_ALIASES 3</span>
<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00058"></a>00058 <span class="comment">/** The maximum number of options that can be accepted by a subcommand. */</span>
<a name="l00059"></a>00059 <span class="preprocessor">#define SVN_OPT_MAX_OPTIONS 50</span>
<a name="l00060"></a>00060 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00061"></a>00061 <span class="comment">/** Options that have no short option char should use an identifying</span>
<a name="l00062"></a>00062 <span class="comment"> * integer equal to or greater than this.</span>
<a name="l00063"></a>00063 <span class="comment"> */</span>
<a name="l00064"></a>00064 <span class="preprocessor">#define SVN_OPT_FIRST_LONGOPT_ID 256</span>
<a name="l00065"></a>00065 <span class="preprocessor"></span>
<a name="l00066"></a>00066 <span class="comment"></span>
<a name="l00067"></a>00067 <span class="comment">/** One element of a subcommand dispatch table.</span>
<a name="l00068"></a>00068 <span class="comment"> *</span>
<a name="l00069"></a>00069 <span class="comment"> * @since New in 1.4.</span>
<a name="l00070"></a>00070 <span class="comment"> */</span>
<a name="l00071"></a><a class="code" href="structsvn__opt__subcommand__desc2__t.html">00071</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structsvn__opt__subcommand__desc2__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc2_t</a>
<a name="l00072"></a>00072 {<span class="comment"></span>
<a name="l00073"></a>00073 <span class="comment"> /** The full name of this command. */</span>
<a name="l00074"></a><a class="code" href="structsvn__opt__subcommand__desc2__t.html#9c9be615e9e1a237909b754a2aa5a61e">00074</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structsvn__opt__subcommand__desc2__t.html#9c9be615e9e1a237909b754a2aa5a61e" title="The full name of this command.">name</a>;
<a name="l00075"></a>00075 <span class="comment"></span>
<a name="l00076"></a>00076 <span class="comment"> /** The function this command invokes. */</span>
<a name="l00077"></a><a class="code" href="structsvn__opt__subcommand__desc2__t.html#905e532c0e297de7dfb4d62a1069618a">00077</a> <a class="code" href="svn__opt_8h.html#f694c6f5359cbd8868555d170037f132" title="All subcommand procedures in Subversion conform to this prototype.">svn_opt_subcommand_t</a> *<a class="code" href="structsvn__opt__subcommand__desc2__t.html#905e532c0e297de7dfb4d62a1069618a" title="The function this command invokes.">cmd_func</a>;
<a name="l00078"></a>00078 <span class="comment"></span>
<a name="l00079"></a>00079 <span class="comment"> /** A list of alias names for this command (e.g., 'up' for 'update'). */</span>
<a name="l00080"></a><a class="code" href="structsvn__opt__subcommand__desc2__t.html#1f6b8cef303b6105dcf5f0618f62fa14">00080</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structsvn__opt__subcommand__desc2__t.html#1f6b8cef303b6105dcf5f0618f62fa14" title="A list of alias names for this command (e.g., &amp;#39;up&amp;#39; for &amp;#39;update&amp;#39;)...">aliases</a>[SVN_OPT_MAX_ALIASES];
<a name="l00081"></a>00081 <span class="comment"></span>
<a name="l00082"></a>00082 <span class="comment"> /** A brief string describing this command, for usage messages. */</span>
<a name="l00083"></a><a class="code" href="structsvn__opt__subcommand__desc2__t.html#266800a041c3a4ffb852ca1a1b59bc78">00083</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structsvn__opt__subcommand__desc2__t.html#266800a041c3a4ffb852ca1a1b59bc78" title="A brief string describing this command, for usage messages.">help</a>;
<a name="l00084"></a>00084 <span class="comment"></span>
<a name="l00085"></a>00085 <span class="comment"> /** A list of options accepted by this command. Each value in the</span>
<a name="l00086"></a>00086 <span class="comment"> * array is a unique enum (the 2nd field in apr_getopt_option_t)</span>
<a name="l00087"></a>00087 <span class="comment"> */</span>
<a name="l00088"></a><a class="code" href="structsvn__opt__subcommand__desc2__t.html#bb13e502fa3646012b04999d40a8ef37">00088</a> <span class="keywordtype">int</span> <a class="code" href="structsvn__opt__subcommand__desc2__t.html#bb13e502fa3646012b04999d40a8ef37" title="A list of options accepted by this command.">valid_options</a>[SVN_OPT_MAX_OPTIONS];
<a name="l00089"></a>00089 <span class="comment"></span>
<a name="l00090"></a>00090 <span class="comment"> /** A list of option help descriptions, keyed by the option unique enum</span>
<a name="l00091"></a>00091 <span class="comment"> * (the 2nd field in apr_getopt_option_t), which override the generic</span>
<a name="l00092"></a>00092 <span class="comment"> * descriptions given in an apr_getopt_option_t on a per-subcommand basis.</span>
<a name="l00093"></a>00093 <span class="comment"> */</span>
<a name="l00094"></a>00094 <span class="keyword">struct </span>{ <span class="keywordtype">int</span> optch; <span class="keyword">const</span> <span class="keywordtype">char</span> *desc; } <a class="code" href="structsvn__opt__subcommand__desc2__t.html#42735eb26f31a659373023455f7c3621" title="A list of option help descriptions, keyed by the option unique enum (the 2nd field...">desc_overrides</a>[SVN_OPT_MAX_OPTIONS];
<a name="l00095"></a>00095 } <a class="code" href="structsvn__opt__subcommand__desc2__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc2_t</a>;
<a name="l00096"></a>00096
<a name="l00097"></a>00097 <span class="comment"></span>
<a name="l00098"></a>00098 <span class="comment">/** One element of a subcommand dispatch table.</span>
<a name="l00099"></a>00099 <span class="comment"> *</span>
<a name="l00100"></a>00100 <span class="comment"> * @deprecated Provided for backward compatibility with the 1.3 API.</span>
<a name="l00101"></a>00101 <span class="comment"> *</span>
<a name="l00102"></a>00102 <span class="comment"> * Like #svn_opt_subcommand_desc2_t but lacking the @c desc_overrides</span>
<a name="l00103"></a>00103 <span class="comment"> * member.</span>
<a name="l00104"></a>00104 <span class="comment"> */</span>
<a name="l00105"></a><a class="code" href="structsvn__opt__subcommand__desc__t.html">00105</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structsvn__opt__subcommand__desc__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc_t</a>
<a name="l00106"></a>00106 {<span class="comment"></span>
<a name="l00107"></a>00107 <span class="comment"> /** The full name of this command. */</span>
<a name="l00108"></a><a class="code" href="structsvn__opt__subcommand__desc__t.html#f9f958cba232e3df8b800969e3ba9bbf">00108</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structsvn__opt__subcommand__desc__t.html#f9f958cba232e3df8b800969e3ba9bbf" title="The full name of this command.">name</a>;
<a name="l00109"></a>00109 <span class="comment"></span>
<a name="l00110"></a>00110 <span class="comment"> /** The function this command invokes. */</span>
<a name="l00111"></a><a class="code" href="structsvn__opt__subcommand__desc__t.html#3f5f0967e8d326b7b4c0ce6ef4a10a2e">00111</a> <a class="code" href="svn__opt_8h.html#f694c6f5359cbd8868555d170037f132" title="All subcommand procedures in Subversion conform to this prototype.">svn_opt_subcommand_t</a> *<a class="code" href="structsvn__opt__subcommand__desc__t.html#3f5f0967e8d326b7b4c0ce6ef4a10a2e" title="The function this command invokes.">cmd_func</a>;
<a name="l00112"></a>00112 <span class="comment"></span>
<a name="l00113"></a>00113 <span class="comment"> /** A list of alias names for this command (e.g., 'up' for 'update'). */</span>
<a name="l00114"></a><a class="code" href="structsvn__opt__subcommand__desc__t.html#e85e0603ad1701d4f84d4f80dbabd35f">00114</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structsvn__opt__subcommand__desc__t.html#e85e0603ad1701d4f84d4f80dbabd35f" title="A list of alias names for this command (e.g., &amp;#39;up&amp;#39; for &amp;#39;update&amp;#39;)...">aliases</a>[SVN_OPT_MAX_ALIASES];
<a name="l00115"></a>00115 <span class="comment"></span>
<a name="l00116"></a>00116 <span class="comment"> /** A brief string describing this command, for usage messages. */</span>
<a name="l00117"></a><a class="code" href="structsvn__opt__subcommand__desc__t.html#e245fde9d60c9809d2b03cc4ef5d65c2">00117</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structsvn__opt__subcommand__desc__t.html#e245fde9d60c9809d2b03cc4ef5d65c2" title="A brief string describing this command, for usage messages.">help</a>;
<a name="l00118"></a>00118 <span class="comment"></span>
<a name="l00119"></a>00119 <span class="comment"> /** A list of options accepted by this command. Each value in the</span>
<a name="l00120"></a>00120 <span class="comment"> * array is a unique enum (the 2nd field in apr_getopt_option_t)</span>
<a name="l00121"></a>00121 <span class="comment"> */</span>
<a name="l00122"></a><a class="code" href="structsvn__opt__subcommand__desc__t.html#62d72f71f432b6489975a3284c985e7b">00122</a> <span class="keywordtype">int</span> <a class="code" href="structsvn__opt__subcommand__desc__t.html#62d72f71f432b6489975a3284c985e7b" title="A list of options accepted by this command.">valid_options</a>[SVN_OPT_MAX_OPTIONS];
<a name="l00123"></a>00123
<a name="l00124"></a>00124 } <a class="code" href="structsvn__opt__subcommand__desc__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc_t</a>;
<a name="l00125"></a>00125
<a name="l00126"></a>00126 <span class="comment"></span>
<a name="l00127"></a>00127 <span class="comment">/**</span>
<a name="l00128"></a>00128 <span class="comment"> * Return the entry in @a table whose name matches @a cmd_name, or @c NULL if</span>
<a name="l00129"></a>00129 <span class="comment"> * none. @a cmd_name may be an alias.</span>
<a name="l00130"></a>00130 <span class="comment"> *</span>
<a name="l00131"></a>00131 <span class="comment"> * @since New in 1.4.</span>
<a name="l00132"></a>00132 <span class="comment"> */</span>
<a name="l00133"></a>00133 <span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc2__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc2_t</a> *
<a name="l00134"></a>00134 <a class="code" href="svn__opt_8h.html#2ac261274ce65e402f6985fa659b98c2" title="Return the entry in table whose name matches cmd_name, or NULL if none.">svn_opt_get_canonical_subcommand2</a>(<span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc2__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc2_t</a> *table,
<a name="l00135"></a>00135 <span class="keyword">const</span> <span class="keywordtype">char</span> *cmd_name);
<a name="l00136"></a>00136
<a name="l00137"></a>00137 <span class="comment"></span>
<a name="l00138"></a>00138 <span class="comment">/**</span>
<a name="l00139"></a>00139 <span class="comment"> * Return the entry in @a table whose name matches @a cmd_name, or @c NULL if</span>
<a name="l00140"></a>00140 <span class="comment"> * none. @a cmd_name may be an alias.</span>
<a name="l00141"></a>00141 <span class="comment"> *</span>
<a name="l00142"></a>00142 <span class="comment"> * Same as svn_opt_get_canonical_subcommand2(), but acts on</span>
<a name="l00143"></a>00143 <span class="comment"> * #svn_opt_subcommand_desc_t.</span>
<a name="l00144"></a>00144 <span class="comment"> *</span>
<a name="l00145"></a>00145 <span class="comment"> * @deprecated Provided for backward compatibility with the 1.3 API.</span>
<a name="l00146"></a>00146 <span class="comment"> */</span>
<a name="l00147"></a>00147 <span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc_t</a> *
<a name="l00148"></a>00148 <a class="code" href="svn__opt_8h.html#8b64499e64e2eb29e6df1a395d77997c" title="Return the entry in table whose name matches cmd_name, or NULL if none.">svn_opt_get_canonical_subcommand</a>(<span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc_t</a> *table,
<a name="l00149"></a>00149 <span class="keyword">const</span> <span class="keywordtype">char</span> *cmd_name);
<a name="l00150"></a>00150
<a name="l00151"></a>00151 <span class="comment"></span>
<a name="l00152"></a>00152 <span class="comment">/**</span>
<a name="l00153"></a>00153 <span class="comment"> * Return pointer to an @c apr_getopt_option_t for the option whose</span>
<a name="l00154"></a>00154 <span class="comment"> * option code is @a code, or @c NULL if no match. @a option_table must end</span>
<a name="l00155"></a>00155 <span class="comment"> * with an element whose every field is zero. If @c command is non-NULL,</span>
<a name="l00156"></a>00156 <span class="comment"> * then return the subcommand-specific option description instead of the</span>
<a name="l00157"></a>00157 <span class="comment"> * generic one, if a specific description is defined.</span>
<a name="l00158"></a>00158 <span class="comment"> *</span>
<a name="l00159"></a>00159 <span class="comment"> * The returned value may be statically allocated, or allocated in @a pool.</span>
<a name="l00160"></a>00160 <span class="comment"> *</span>
<a name="l00161"></a>00161 <span class="comment"> * @since New in 1.4.</span>
<a name="l00162"></a>00162 <span class="comment"> */</span>
<a name="l00163"></a>00163 <span class="keyword">const</span> apr_getopt_option_t *
<a name="l00164"></a>00164 <a class="code" href="svn__opt_8h.html#356fc8e80415fe41740264b6b294608b" title="Return pointer to an apr_getopt_option_t for the option whose option code is code...">svn_opt_get_option_from_code2</a>(<span class="keywordtype">int</span> code,
<a name="l00165"></a>00165 <span class="keyword">const</span> apr_getopt_option_t *option_table,
<a name="l00166"></a>00166 <span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc2__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc2_t</a> *command,
<a name="l00167"></a>00167 apr_pool_t *pool);
<a name="l00168"></a>00168
<a name="l00169"></a>00169 <span class="comment"></span>
<a name="l00170"></a>00170 <span class="comment">/**</span>
<a name="l00171"></a>00171 <span class="comment"> * Return the first entry from @a option_table whose option code is @a code,</span>
<a name="l00172"></a>00172 <span class="comment"> * or @c NULL if no match. @a option_table must end with an element whose</span>
<a name="l00173"></a>00173 <span class="comment"> * every field is zero.</span>
<a name="l00174"></a>00174 <span class="comment"> *</span>
<a name="l00175"></a>00175 <span class="comment"> * @deprecated Provided for backward compatibility with the 1.3 API.</span>
<a name="l00176"></a>00176 <span class="comment"> */</span>
<a name="l00177"></a>00177 <span class="keyword">const</span> apr_getopt_option_t *
<a name="l00178"></a>00178 <a class="code" href="svn__opt_8h.html#41891d204fc55d7a1af5a6959a19a21d" title="Return the first entry from option_table whose option code is code, or NULL if no...">svn_opt_get_option_from_code</a>(<span class="keywordtype">int</span> code,
<a name="l00179"></a>00179 <span class="keyword">const</span> apr_getopt_option_t *option_table);
<a name="l00180"></a>00180
<a name="l00181"></a>00181 <span class="comment"></span>
<a name="l00182"></a>00182 <span class="comment">/**</span>
<a name="l00183"></a>00183 <span class="comment"> * Return @c TRUE iff subcommand @a command supports option @a</span>
<a name="l00184"></a>00184 <span class="comment"> * option_code, else return @c FALSE. If @a global_options is</span>
<a name="l00185"></a>00185 <span class="comment"> * non-NULL, it is a zero-terminated array, and all subcommands take</span>
<a name="l00186"></a>00186 <span class="comment"> * the options listed in it.</span>
<a name="l00187"></a>00187 <span class="comment"> *</span>
<a name="l00188"></a>00188 <span class="comment"> * @since New in 1.5.</span>
<a name="l00189"></a>00189 <span class="comment"> */</span>
<a name="l00190"></a>00190 <a class="code" href="svn__types_8h.html#22b35baddc4213c688d1bb12feea1024" title="YABT: Yet Another Boolean Type.">svn_boolean_t</a>
<a name="l00191"></a>00191 <a class="code" href="svn__opt_8h.html#b58e51858ea41797edac6f83ca4a75cf" title="Return TRUE iff subcommand command supports option option_code, else return FALSE...">svn_opt_subcommand_takes_option3</a>(<span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc2__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc2_t</a> *command,
<a name="l00192"></a>00192 <span class="keywordtype">int</span> option_code,
<a name="l00193"></a>00193 <span class="keyword">const</span> <span class="keywordtype">int</span> *global_options);
<a name="l00194"></a>00194 <span class="comment"></span>
<a name="l00195"></a>00195 <span class="comment">/**</span>
<a name="l00196"></a>00196 <span class="comment"> * Same as svn_opt_subcommand_takes_option3(), but with @c NULL for @a</span>
<a name="l00197"></a>00197 <span class="comment"> * global_options.</span>
<a name="l00198"></a>00198 <span class="comment"> *</span>
<a name="l00199"></a>00199 <span class="comment"> * @deprecated Provided for backward compatibility with the 1.4 API.</span>
<a name="l00200"></a>00200 <span class="comment"> */</span>
<a name="l00201"></a>00201 <a class="code" href="svn__types_8h.html#22b35baddc4213c688d1bb12feea1024" title="YABT: Yet Another Boolean Type.">svn_boolean_t</a>
<a name="l00202"></a>00202 <a class="code" href="svn__opt_8h.html#956407835962c0db49ae1ee45d2b6903" title="Same as svn_opt_subcommand_takes_option3(), but with NULL for global_options.">svn_opt_subcommand_takes_option2</a>(<span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc2__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc2_t</a> *command,
<a name="l00203"></a>00203 <span class="keywordtype">int</span> option_code);
<a name="l00204"></a>00204
<a name="l00205"></a>00205 <span class="comment"></span>
<a name="l00206"></a>00206 <span class="comment">/**</span>
<a name="l00207"></a>00207 <span class="comment"> * Return @c TRUE iff subcommand @a command supports option @a option_code,</span>
<a name="l00208"></a>00208 <span class="comment"> * else return @c FALSE.</span>
<a name="l00209"></a>00209 <span class="comment"> *</span>
<a name="l00210"></a>00210 <span class="comment"> * Same as svn_opt_subcommand_takes_option2(), but acts on</span>
<a name="l00211"></a>00211 <span class="comment"> * #svn_opt_subcommand_desc_t.</span>
<a name="l00212"></a>00212 <span class="comment"> *</span>
<a name="l00213"></a>00213 <span class="comment"> * @deprecated Provided for backward compatibility with the 1.3 API.</span>
<a name="l00214"></a>00214 <span class="comment"> */</span>
<a name="l00215"></a>00215 <a class="code" href="svn__types_8h.html#22b35baddc4213c688d1bb12feea1024" title="YABT: Yet Another Boolean Type.">svn_boolean_t</a>
<a name="l00216"></a>00216 <a class="code" href="svn__opt_8h.html#9720ee1df62ba897dffaeba470510d92" title="Return TRUE iff subcommand command supports option option_code, else return FALSE...">svn_opt_subcommand_takes_option</a>(<span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc_t</a> *command,
<a name="l00217"></a>00217 <span class="keywordtype">int</span> option_code);
<a name="l00218"></a>00218
<a name="l00219"></a>00219 <span class="comment"></span>
<a name="l00220"></a>00220 <span class="comment">/**</span>
<a name="l00221"></a>00221 <span class="comment"> * Print a generic (not command-specific) usage message to @a stream.</span>
<a name="l00222"></a>00222 <span class="comment"> *</span>
<a name="l00223"></a>00223 <span class="comment"> * ### @todo Why is @a stream a stdio file instead of an svn stream?</span>
<a name="l00224"></a>00224 <span class="comment"> *</span>
<a name="l00225"></a>00225 <span class="comment"> * If @a header is non-NULL, print @a header followed by a newline. Then</span>
<a name="l00226"></a>00226 <span class="comment"> * loop over @a cmd_table printing the usage for each command (getting</span>
<a name="l00227"></a>00227 <span class="comment"> * option usages from @a opt_table). Then if @a footer is non-NULL, print</span>
<a name="l00228"></a>00228 <span class="comment"> * @a footer followed by a newline.</span>
<a name="l00229"></a>00229 <span class="comment"> *</span>
<a name="l00230"></a>00230 <span class="comment"> * Use @a pool for temporary allocation.</span>
<a name="l00231"></a>00231 <span class="comment"> *</span>
<a name="l00232"></a>00232 <span class="comment"> * @since New in 1.4.</span>
<a name="l00233"></a>00233 <span class="comment"> */</span>
<a name="l00234"></a>00234 <span class="keywordtype">void</span>
<a name="l00235"></a>00235 <a class="code" href="svn__opt_8h.html#73e9bfbaa1683068e7287cd8d2a26d73" title="Print a generic (not command-specific) usage message to stream.">svn_opt_print_generic_help2</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *header,
<a name="l00236"></a>00236 <span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc2__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc2_t</a> *cmd_table,
<a name="l00237"></a>00237 <span class="keyword">const</span> apr_getopt_option_t *opt_table,
<a name="l00238"></a>00238 <span class="keyword">const</span> <span class="keywordtype">char</span> *footer,
<a name="l00239"></a>00239 apr_pool_t *pool,
<a name="l00240"></a>00240 FILE *stream);
<a name="l00241"></a>00241
<a name="l00242"></a>00242 <span class="comment"></span>
<a name="l00243"></a>00243 <span class="comment">/**</span>
<a name="l00244"></a>00244 <span class="comment"> * Same as svn_opt_print_generic_help2(), but acts on</span>
<a name="l00245"></a>00245 <span class="comment"> * #svn_opt_subcommand_desc_t.</span>
<a name="l00246"></a>00246 <span class="comment"> *</span>
<a name="l00247"></a>00247 <span class="comment"> * @deprecated Provided for backward compatibility with the 1.3 API.</span>
<a name="l00248"></a>00248 <span class="comment"> */</span>
<a name="l00249"></a>00249 <span class="keywordtype">void</span>
<a name="l00250"></a>00250 <a class="code" href="svn__opt_8h.html#d258bb2626cce6d0ca70ebd8f1997092" title="Same as svn_opt_print_generic_help2(), but acts on svn_opt_subcommand_desc_t.">svn_opt_print_generic_help</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *header,
<a name="l00251"></a>00251 <span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc_t</a> *cmd_table,
<a name="l00252"></a>00252 <span class="keyword">const</span> apr_getopt_option_t *opt_table,
<a name="l00253"></a>00253 <span class="keyword">const</span> <span class="keywordtype">char</span> *footer,
<a name="l00254"></a>00254 apr_pool_t *pool,
<a name="l00255"></a>00255 FILE *stream);
<a name="l00256"></a>00256
<a name="l00257"></a>00257 <span class="comment"></span>
<a name="l00258"></a>00258 <span class="comment">/**</span>
<a name="l00259"></a>00259 <span class="comment"> * Print an option @a opt nicely into a @a string allocated in @a pool.</span>
<a name="l00260"></a>00260 <span class="comment"> * If @a doc is set, include the generic documentation string of @a opt,</span>
<a name="l00261"></a>00261 <span class="comment"> * localized to the current locale if a translation is available.</span>
<a name="l00262"></a>00262 <span class="comment"> */</span>
<a name="l00263"></a>00263 <span class="keywordtype">void</span>
<a name="l00264"></a>00264 <a class="code" href="svn__opt_8h.html#b0517c626581be1a86820564cb46c11e" title="Print an option opt nicely into a string allocated in pool.">svn_opt_format_option</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> **<span class="keywordtype">string</span>,
<a name="l00265"></a>00265 <span class="keyword">const</span> apr_getopt_option_t *opt,
<a name="l00266"></a>00266 <a class="code" href="svn__types_8h.html#22b35baddc4213c688d1bb12feea1024" title="YABT: Yet Another Boolean Type.">svn_boolean_t</a> doc,
<a name="l00267"></a>00267 apr_pool_t *pool);
<a name="l00268"></a>00268
<a name="l00269"></a>00269
<a name="l00270"></a>00270 <span class="comment"></span>
<a name="l00271"></a>00271 <span class="comment">/**</span>
<a name="l00272"></a>00272 <span class="comment"> * Get @a subcommand's usage from @a table, and print it to @c stdout.</span>
<a name="l00273"></a>00273 <span class="comment"> * Obtain option usage from @a options_table. If not @c NULL, @a</span>
<a name="l00274"></a>00274 <span class="comment"> * global_options is a zero-terminated list of global options. Use @a</span>
<a name="l00275"></a>00275 <span class="comment"> * pool for temporary allocation. @a subcommand may be a canonical</span>
<a name="l00276"></a>00276 <span class="comment"> * command name or an alias. ### @todo Why does this only print to</span>
<a name="l00277"></a>00277 <span class="comment"> * @c stdout, whereas svn_opt_print_generic_help() gives us a choice?</span>
<a name="l00278"></a>00278 <span class="comment"> *</span>
<a name="l00279"></a>00279 <span class="comment"> * @since New in 1.5.</span>
<a name="l00280"></a>00280 <span class="comment"> */</span>
<a name="l00281"></a>00281 <span class="keywordtype">void</span>
<a name="l00282"></a>00282 <a class="code" href="svn__opt_8h.html#0564915268011cfde52e281c832aea1d" title="Get subcommand&amp;#39;s usage from table, and print it to stdout.">svn_opt_subcommand_help3</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *subcommand,
<a name="l00283"></a>00283 <span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc2__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc2_t</a> *table,
<a name="l00284"></a>00284 <span class="keyword">const</span> apr_getopt_option_t *options_table,
<a name="l00285"></a>00285 <span class="keyword">const</span> <span class="keywordtype">int</span> *global_options,
<a name="l00286"></a>00286 apr_pool_t *pool);
<a name="l00287"></a>00287 <span class="comment"></span>
<a name="l00288"></a>00288 <span class="comment">/**</span>
<a name="l00289"></a>00289 <span class="comment"> * Same as svn_opt_subcommand_help3(), but with @a global_options</span>
<a name="l00290"></a>00290 <span class="comment"> * always NULL.</span>
<a name="l00291"></a>00291 <span class="comment"> *</span>
<a name="l00292"></a>00292 <span class="comment"> * @deprecated Provided for backward compatibility with the 1.4 API.</span>
<a name="l00293"></a>00293 <span class="comment"> */</span>
<a name="l00294"></a>00294 <span class="keywordtype">void</span>
<a name="l00295"></a>00295 <a class="code" href="svn__opt_8h.html#ce87e8aa4fe04e21d51bf4c3b747aff2" title="Same as svn_opt_subcommand_help3(), but with global_options always NULL.">svn_opt_subcommand_help2</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *subcommand,
<a name="l00296"></a>00296 <span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc2__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc2_t</a> *table,
<a name="l00297"></a>00297 <span class="keyword">const</span> apr_getopt_option_t *options_table,
<a name="l00298"></a>00298 apr_pool_t *pool);
<a name="l00299"></a>00299
<a name="l00300"></a>00300 <span class="comment"></span>
<a name="l00301"></a>00301 <span class="comment">/**</span>
<a name="l00302"></a>00302 <span class="comment"> * Same as svn_opt_subcommand_help2(), but acts on</span>
<a name="l00303"></a>00303 <span class="comment"> * #svn_opt_subcommand_desc_t.</span>
<a name="l00304"></a>00304 <span class="comment"> *</span>
<a name="l00305"></a>00305 <span class="comment"> * @deprecated Provided for backward compatibility with the 1.3 API.</span>
<a name="l00306"></a>00306 <span class="comment"> */</span>
<a name="l00307"></a>00307 <span class="keywordtype">void</span>
<a name="l00308"></a>00308 <a class="code" href="svn__opt_8h.html#db60e52860036327fd3e1d69eb2150e7" title="Same as svn_opt_subcommand_help2(), but acts on svn_opt_subcommand_desc_t.">svn_opt_subcommand_help</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *subcommand,
<a name="l00309"></a>00309 <span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc_t</a> *table,
<a name="l00310"></a>00310 <span class="keyword">const</span> apr_getopt_option_t *options_table,
<a name="l00311"></a>00311 apr_pool_t *pool);
<a name="l00312"></a>00312
<a name="l00313"></a>00313
<a name="l00314"></a>00314
<a name="l00315"></a>00315 <span class="comment">/* Parsing revision and date options. */</span>
<a name="l00316"></a>00316 <span class="comment"></span>
<a name="l00317"></a>00317 <span class="comment">/**</span>
<a name="l00318"></a>00318 <span class="comment"> * Various ways of specifying revisions.</span>
<a name="l00319"></a>00319 <span class="comment"> *</span>
<a name="l00320"></a>00320 <span class="comment"> * @note</span>
<a name="l00321"></a>00321 <span class="comment"> * In contexts where local mods are relevant, the `working' kind</span>
<a name="l00322"></a>00322 <span class="comment"> * refers to the uncommitted "working" revision, which may be modified</span>
<a name="l00323"></a>00323 <span class="comment"> * with respect to its base revision. In other contexts, `working'</span>
<a name="l00324"></a>00324 <span class="comment"> * should behave the same as `committed' or `current'.</span>
<a name="l00325"></a>00325 <span class="comment"> */</span>
<a name="l00326"></a><a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd1">00326</a> <span class="keyword">enum</span> <a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd1" title="Various ways of specifying revisions.">svn_opt_revision_kind</a> {<span class="comment"></span>
<a name="l00327"></a>00327 <span class="comment"> /** No revision information given. */</span>
<a name="l00328"></a><a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd1dc78e9d487fb33d93cccea4884e4e954">00328</a> <a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd1dc78e9d487fb33d93cccea4884e4e954" title="No revision information given.">svn_opt_revision_unspecified</a>,
<a name="l00329"></a>00329 <span class="comment"></span>
<a name="l00330"></a>00330 <span class="comment"> /** revision given as number */</span>
<a name="l00331"></a><a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd1ad50c8a326ef95613ef04a92ffc2070f">00331</a> <a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd1ad50c8a326ef95613ef04a92ffc2070f" title="revision given as number">svn_opt_revision_number</a>,
<a name="l00332"></a>00332 <span class="comment"></span>
<a name="l00333"></a>00333 <span class="comment"> /** revision given as date */</span>
<a name="l00334"></a><a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd1b3cbac56942388b0a3eaf7ca159f46f3">00334</a> <a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd1b3cbac56942388b0a3eaf7ca159f46f3" title="revision given as date">svn_opt_revision_date</a>,
<a name="l00335"></a>00335 <span class="comment"></span>
<a name="l00336"></a>00336 <span class="comment"> /** rev of most recent change */</span>
<a name="l00337"></a><a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd1f388440cb2708f16275890e758753d75">00337</a> <a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd1f388440cb2708f16275890e758753d75" title="rev of most recent change">svn_opt_revision_committed</a>,
<a name="l00338"></a>00338 <span class="comment"></span>
<a name="l00339"></a>00339 <span class="comment"> /** (rev of most recent change) - 1 */</span>
<a name="l00340"></a><a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd1f5a46c1fd33fa9770f93f136534c256a">00340</a> <a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd1f5a46c1fd33fa9770f93f136534c256a" title="(rev of most recent change) - 1">svn_opt_revision_previous</a>,
<a name="l00341"></a>00341 <span class="comment"></span>
<a name="l00342"></a>00342 <span class="comment"> /** .svn/entries current revision */</span>
<a name="l00343"></a><a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd1f9a94791ce20935d59c9728afab81c90">00343</a> <a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd1f9a94791ce20935d59c9728afab81c90" title=".svn/entries current revision">svn_opt_revision_base</a>,
<a name="l00344"></a>00344 <span class="comment"></span>
<a name="l00345"></a>00345 <span class="comment"> /** current, plus local mods */</span>
<a name="l00346"></a><a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd156ea9de293c88d10020b3a66b63ecdb3">00346</a> <a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd156ea9de293c88d10020b3a66b63ecdb3" title="current, plus local mods">svn_opt_revision_working</a>,
<a name="l00347"></a>00347 <span class="comment"></span>
<a name="l00348"></a>00348 <span class="comment"> /** repository youngest */</span>
<a name="l00349"></a><a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd138099b179ac6fbf511821d1d1554bf7c">00349</a> <a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd138099b179ac6fbf511821d1d1554bf7c" title="repository youngest">svn_opt_revision_head</a>
<a name="l00350"></a>00350 };
<a name="l00351"></a>00351 <span class="comment"></span>
<a name="l00352"></a>00352 <span class="comment">/**</span>
<a name="l00353"></a>00353 <span class="comment"> * A revision value, which can be specified as a number or a date.</span>
<a name="l00354"></a>00354 <span class="comment"> *</span>
<a name="l00355"></a>00355 <span class="comment"> * @note This union was formerly an anonymous inline type in</span>
<a name="l00356"></a>00356 <span class="comment"> * @c svn_opt_revision_t, and was converted to a named type just to</span>
<a name="l00357"></a>00357 <span class="comment"> * make things easier for SWIG.</span>
<a name="l00358"></a>00358 <span class="comment"> *</span>
<a name="l00359"></a>00359 <span class="comment"> * @since New in 1.3.</span>
<a name="l00360"></a>00360 <span class="comment"> */</span>
<a name="l00361"></a><a class="code" href="unionsvn__opt__revision__value__t.html">00361</a> <span class="keyword">typedef</span> <span class="keyword">union </span><a class="code" href="unionsvn__opt__revision__value__t.html" title="A revision value, which can be specified as a number or a date.">svn_opt_revision_value_t</a>
<a name="l00362"></a>00362 {<span class="comment"></span>
<a name="l00363"></a>00363 <span class="comment"> /** The revision number */</span>
<a name="l00364"></a><a class="code" href="unionsvn__opt__revision__value__t.html#46ff2154edcb58c38dfce6248252fb06">00364</a> <a class="code" href="svn__types_8h.html#f16427ed53d30f27da225c56552d2a89" title="About Special Files in Subversion.">svn_revnum_t</a> <a class="code" href="unionsvn__opt__revision__value__t.html#46ff2154edcb58c38dfce6248252fb06" title="The revision number.">number</a>;
<a name="l00365"></a>00365 <span class="comment"></span>
<a name="l00366"></a>00366 <span class="comment"> /** the date of the revision */</span>
<a name="l00367"></a><a class="code" href="unionsvn__opt__revision__value__t.html#e8fe48ddb018f57f6c5dcba186234168">00367</a> apr_time_t <a class="code" href="unionsvn__opt__revision__value__t.html#e8fe48ddb018f57f6c5dcba186234168" title="the date of the revision">date</a>;
<a name="l00368"></a>00368 } <a class="code" href="unionsvn__opt__revision__value__t.html" title="A revision value, which can be specified as a number or a date.">svn_opt_revision_value_t</a>;
<a name="l00369"></a>00369 <span class="comment"></span>
<a name="l00370"></a>00370 <span class="comment">/** A revision, specified in one of @c svn_opt_revision_kind ways. */</span>
<a name="l00371"></a><a class="code" href="structsvn__opt__revision__t.html">00371</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structsvn__opt__revision__t.html" title="A revision, specified in one of svn_opt_revision_kind ways.">svn_opt_revision_t</a>
<a name="l00372"></a>00372 {
<a name="l00373"></a><a class="code" href="structsvn__opt__revision__t.html#56d5d4cb2097c28605e77355c9e1b6e4">00373</a> <span class="keyword">enum</span> <a class="code" href="svn__opt_8h.html#36acb9e17f98a88e71d4834d0dcebbd1" title="Various ways of specifying revisions.">svn_opt_revision_kind</a> <a class="code" href="structsvn__opt__revision__t.html#56d5d4cb2097c28605e77355c9e1b6e4" title="See svn_opt_revision_kind.">kind</a>; <span class="comment">/**&lt; See svn_opt_revision_kind */</span>
<a name="l00374"></a><a class="code" href="structsvn__opt__revision__t.html#3fd7428fac9e204434428c0e4376d98f">00374</a> <a class="code" href="unionsvn__opt__revision__value__t.html" title="A revision value, which can be specified as a number or a date.">svn_opt_revision_value_t</a> <a class="code" href="structsvn__opt__revision__t.html#3fd7428fac9e204434428c0e4376d98f" title="Extra data qualifying the kind.">value</a>; <span class="comment">/**&lt; Extra data qualifying the @c kind */</span>
<a name="l00375"></a>00375 } <a class="code" href="structsvn__opt__revision__t.html" title="A revision, specified in one of svn_opt_revision_kind ways.">svn_opt_revision_t</a>;
<a name="l00376"></a>00376 <span class="comment"></span>
<a name="l00377"></a>00377 <span class="comment">/** A revision range, specified in one of @c svn_opt_revision_kind ways. */</span>
<a name="l00378"></a><a class="code" href="structsvn__opt__revision__range__t.html">00378</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structsvn__opt__revision__range__t.html" title="A revision range, specified in one of svn_opt_revision_kind ways.">svn_opt_revision_range_t</a>
<a name="l00379"></a>00379 {<span class="comment"></span>
<a name="l00380"></a>00380 <span class="comment"> /** The first revision in the range */</span>
<a name="l00381"></a><a class="code" href="structsvn__opt__revision__range__t.html#aafc367525beec4080c2fc2fe8f21067">00381</a> <a class="code" href="structsvn__opt__revision__t.html" title="A revision, specified in one of svn_opt_revision_kind ways.">svn_opt_revision_t</a> <a class="code" href="structsvn__opt__revision__range__t.html#aafc367525beec4080c2fc2fe8f21067" title="The first revision in the range.">start</a>;
<a name="l00382"></a>00382 <span class="comment"></span>
<a name="l00383"></a>00383 <span class="comment"> /** The last revision in the range */</span>
<a name="l00384"></a><a class="code" href="structsvn__opt__revision__range__t.html#e077d5d06906e87435ddaeec3a6ac14c">00384</a> <a class="code" href="structsvn__opt__revision__t.html" title="A revision, specified in one of svn_opt_revision_kind ways.">svn_opt_revision_t</a> <a class="code" href="structsvn__opt__revision__range__t.html#e077d5d06906e87435ddaeec3a6ac14c" title="The last revision in the range.">end</a>;
<a name="l00385"></a>00385 } <a class="code" href="structsvn__opt__revision__range__t.html" title="A revision range, specified in one of svn_opt_revision_kind ways.">svn_opt_revision_range_t</a>;
<a name="l00386"></a>00386 <span class="comment"></span>
<a name="l00387"></a>00387 <span class="comment">/**</span>
<a name="l00388"></a>00388 <span class="comment"> * Set @a *start_revision and/or @a *end_revision according to @a arg,</span>
<a name="l00389"></a>00389 <span class="comment"> * where @a arg is "N" or "N:M", like so:</span>
<a name="l00390"></a>00390 <span class="comment"> *</span>
<a name="l00391"></a>00391 <span class="comment"> * - If @a arg is "N", set @a *start_revision to represent N, and</span>
<a name="l00392"></a>00392 <span class="comment"> * leave @a *end_revision untouched.</span>
<a name="l00393"></a>00393 <span class="comment"> *</span>
<a name="l00394"></a>00394 <span class="comment"> * - If @a arg is "N:M", set @a *start_revision and @a *end_revision</span>
<a name="l00395"></a>00395 <span class="comment"> * to represent N and M respectively.</span>
<a name="l00396"></a>00396 <span class="comment"> *</span>
<a name="l00397"></a>00397 <span class="comment"> * N and/or M may be one of the special revision descriptors</span>
<a name="l00398"></a>00398 <span class="comment"> * recognized by revision_from_word(), or a date in curly braces.</span>
<a name="l00399"></a>00399 <span class="comment"> *</span>
<a name="l00400"></a>00400 <span class="comment"> * If @a arg is invalid, return -1; else return 0.</span>
<a name="l00401"></a>00401 <span class="comment"> * It is invalid to omit a revision (as in, ":", "N:" or ":M").</span>
<a name="l00402"></a>00402 <span class="comment"> *</span>
<a name="l00403"></a>00403 <span class="comment"> * @note It is typical, though not required, for @a *start_revision and</span>
<a name="l00404"></a>00404 <span class="comment"> * @a *end_revision to be @c svn_opt_revision_unspecified kind on entry.</span>
<a name="l00405"></a>00405 <span class="comment"> *</span>
<a name="l00406"></a>00406 <span class="comment"> * Use @a pool for temporary allocations.</span>
<a name="l00407"></a>00407 <span class="comment"> */</span>
<a name="l00408"></a>00408 <span class="keywordtype">int</span> <a class="code" href="svn__opt_8h.html#4a88fae2960288f66370e6acb4c5888a" title="Set *start_revision and/or *end_revision according to arg, where arg is &amp;quot;N&amp;quot;...">svn_opt_parse_revision</a>(<a class="code" href="structsvn__opt__revision__t.html" title="A revision, specified in one of svn_opt_revision_kind ways.">svn_opt_revision_t</a> *start_revision,
<a name="l00409"></a>00409 <a class="code" href="structsvn__opt__revision__t.html" title="A revision, specified in one of svn_opt_revision_kind ways.">svn_opt_revision_t</a> *end_revision,
<a name="l00410"></a>00410 <span class="keyword">const</span> <span class="keywordtype">char</span> *arg,
<a name="l00411"></a>00411 apr_pool_t *pool);
<a name="l00412"></a>00412 <span class="comment"></span>
<a name="l00413"></a>00413 <span class="comment">/**</span>
<a name="l00414"></a>00414 <span class="comment"> * Parse @a arg, where @a arg is "N" or "N:M", into a</span>
<a name="l00415"></a>00415 <span class="comment"> * @c svn_opt_revision_range_t and push that onto @a opt_ranges.</span>
<a name="l00416"></a>00416 <span class="comment"> *</span>
<a name="l00417"></a>00417 <span class="comment"> * - If @a arg is "N", set the @c start field of the</span>
<a name="l00418"></a>00418 <span class="comment"> * @c svn_opt_revision_range_t to represent N and the @c end field</span>
<a name="l00419"></a>00419 <span class="comment"> * to @c svn_opt_revision_unspecified.</span>
<a name="l00420"></a>00420 <span class="comment"> *</span>
<a name="l00421"></a>00421 <span class="comment"> * - If @a arg is "N:M", set the @c start field of the</span>
<a name="l00422"></a>00422 <span class="comment"> * @c svn_opt_revision_range_t to represent N and the @c end field</span>
<a name="l00423"></a>00423 <span class="comment"> * to represent M.</span>
<a name="l00424"></a>00424 <span class="comment"> *</span>
<a name="l00425"></a>00425 <span class="comment"> * If @a arg is invalid, return -1; else return 0. It is invalid to omit</span>
<a name="l00426"></a>00426 <span class="comment"> * a revision (as in, ":", "N:" or ":M").</span>
<a name="l00427"></a>00427 <span class="comment"> *</span>
<a name="l00428"></a>00428 <span class="comment"> * Use @a pool to allocate @c svn_opt_revision_range_t pushed to the array.</span>
<a name="l00429"></a>00429 <span class="comment"> *</span>
<a name="l00430"></a>00430 <span class="comment"> * @since New in 1.5.</span>
<a name="l00431"></a>00431 <span class="comment"> */</span>
<a name="l00432"></a>00432 <span class="keywordtype">int</span>
<a name="l00433"></a>00433 <a class="code" href="svn__opt_8h.html#041d5de0d677542cc820ac61124c0f0c" title="Parse arg, where arg is &amp;quot;N&amp;quot; or &amp;quot;N:M&amp;quot;, into a svn_opt_revision_range_t...">svn_opt_parse_revision_to_range</a>(apr_array_header_t *opt_ranges,
<a name="l00434"></a>00434 <span class="keyword">const</span> <span class="keywordtype">char</span> *arg,
<a name="l00435"></a>00435 apr_pool_t *pool);
<a name="l00436"></a>00436 <span class="comment"></span>
<a name="l00437"></a>00437 <span class="comment">/**</span>
<a name="l00438"></a>00438 <span class="comment"> * Resolve peg revisions and operational revisions in the following way:</span>
<a name="l00439"></a>00439 <span class="comment"> *</span>
<a name="l00440"></a>00440 <span class="comment"> * - If @a is_url is set and @a peg_rev-&gt;kind is</span>
<a name="l00441"></a>00441 <span class="comment"> * @c svn_opt_revision_unspecified, @a peg_rev-&gt;kind defaults to</span>
<a name="l00442"></a>00442 <span class="comment"> * @c svn_opt_revision_head.</span>
<a name="l00443"></a>00443 <span class="comment"> *</span>
<a name="l00444"></a>00444 <span class="comment"> * - If @a is_url is not set, and @a peg_rev-&gt;kind is</span>
<a name="l00445"></a>00445 <span class="comment"> * @c svn_opt_revision_unspecified, @a peg_rev-&gt;kind defaults to</span>
<a name="l00446"></a>00446 <span class="comment"> * @c svn_opt_revision_base.</span>
<a name="l00447"></a>00447 <span class="comment"> *</span>
<a name="l00448"></a>00448 <span class="comment"> * - If @a op_rev-&gt;kind is @c svn_opt_revision_unspecified, @a op_rev</span>
<a name="l00449"></a>00449 <span class="comment"> * defaults to @a peg_rev.</span>
<a name="l00450"></a>00450 <span class="comment"> *</span>
<a name="l00451"></a>00451 <span class="comment"> * Both @a peg_rev and @a op_rev may be modified as a result of this</span>
<a name="l00452"></a>00452 <span class="comment"> * function. @a is_url should be set if the path the revisions refer to is</span>
<a name="l00453"></a>00453 <span class="comment"> * a url, and unset otherwise.</span>
<a name="l00454"></a>00454 <span class="comment"> *</span>
<a name="l00455"></a>00455 <span class="comment"> * If @a notice_local_mods is set, @c svn_opt_revision_working is used,</span>
<a name="l00456"></a>00456 <span class="comment"> * instead of @c svn_opt_revision_base.</span>
<a name="l00457"></a>00457 <span class="comment"> *</span>
<a name="l00458"></a>00458 <span class="comment"> * Use @a pool for allocations.</span>
<a name="l00459"></a>00459 <span class="comment"> *</span>
<a name="l00460"></a>00460 <span class="comment"> * @since New in 1.5.</span>
<a name="l00461"></a>00461 <span class="comment"> */</span>
<a name="l00462"></a>00462 <a class="code" href="structsvn__error__t.html" title="Subversion error object.">svn_error_t</a> *
<a name="l00463"></a>00463 <a class="code" href="svn__opt_8h.html#7889133dfce6e8a0e2eab7b2ab24c0ad" title="Resolve peg revisions and operational revisions in the following way:.">svn_opt_resolve_revisions</a>(<a class="code" href="structsvn__opt__revision__t.html" title="A revision, specified in one of svn_opt_revision_kind ways.">svn_opt_revision_t</a> *peg_rev,
<a name="l00464"></a>00464 <a class="code" href="structsvn__opt__revision__t.html" title="A revision, specified in one of svn_opt_revision_kind ways.">svn_opt_revision_t</a> *op_rev,
<a name="l00465"></a>00465 <a class="code" href="svn__types_8h.html#22b35baddc4213c688d1bb12feea1024" title="YABT: Yet Another Boolean Type.">svn_boolean_t</a> is_url,
<a name="l00466"></a>00466 <a class="code" href="svn__types_8h.html#22b35baddc4213c688d1bb12feea1024" title="YABT: Yet Another Boolean Type.">svn_boolean_t</a> notice_local_mods,
<a name="l00467"></a>00467 apr_pool_t *pool);
<a name="l00468"></a>00468
<a name="l00469"></a>00469
<a name="l00470"></a>00470 <span class="comment">/* Parsing arguments. */</span>
<a name="l00471"></a>00471 <span class="comment"></span>
<a name="l00472"></a>00472 <span class="comment">/**</span>
<a name="l00473"></a>00473 <span class="comment"> * Pull remaining target arguments from @a os into @a *targets_p,</span>
<a name="l00474"></a>00474 <span class="comment"> * converting them to UTF-8, followed by targets from @a known_targets</span>
<a name="l00475"></a>00475 <span class="comment"> * (which might come from, for example, the "--targets" command line</span>
<a name="l00476"></a>00476 <span class="comment"> * option), which are already in UTF-8.</span>
<a name="l00477"></a>00477 <span class="comment"> *</span>
<a name="l00478"></a>00478 <span class="comment"> * On each URL target, do some IRI-to-URI encoding and some</span>
<a name="l00479"></a>00479 <span class="comment"> * auto-escaping. On each local path, canonicalize case and path</span>
<a name="l00480"></a>00480 <span class="comment"> * separators.</span>
<a name="l00481"></a>00481 <span class="comment"> *</span>
<a name="l00482"></a>00482 <span class="comment"> * Allocate @a *targets_p and its elements in @a pool.</span>
<a name="l00483"></a>00483 <span class="comment"> *</span>
<a name="l00484"></a>00484 <span class="comment"> * If a path has the same name as a Subversion working copy</span>
<a name="l00485"></a>00485 <span class="comment"> * administrative directory, return SVN_ERR_RESERVED_FILENAME_SPECIFIED;</span>
<a name="l00486"></a>00486 <span class="comment"> * if multiple reserved paths are encountered, return a chain of</span>
<a name="l00487"></a>00487 <span class="comment"> * errors, all of which are SVN_ERR_RESERVED_FILENAME_SPECIFIED. Do</span>
<a name="l00488"></a>00488 <span class="comment"> * not return this type of error in a chain with any other type of</span>
<a name="l00489"></a>00489 <span class="comment"> * error, and if this is the only type of error encountered, complete</span>
<a name="l00490"></a>00490 <span class="comment"> * the operation before returning the error(s).</span>
<a name="l00491"></a>00491 <span class="comment"> *</span>
<a name="l00492"></a>00492 <span class="comment"> * @since New in 1.5.</span>
<a name="l00493"></a>00493 <span class="comment"> */</span>
<a name="l00494"></a>00494 <a class="code" href="structsvn__error__t.html" title="Subversion error object.">svn_error_t</a> *
<a name="l00495"></a>00495 <a class="code" href="svn__opt_8h.html#a80f0886ac909f56de8de4478545b9fc" title="Pull remaining target arguments from os into *targets_p, converting them to UTF-8...">svn_opt_args_to_target_array3</a>(apr_array_header_t **targets_p,
<a name="l00496"></a>00496 apr_getopt_t *os,
<a name="l00497"></a>00497 apr_array_header_t *known_targets,
<a name="l00498"></a>00498 apr_pool_t *pool);
<a name="l00499"></a>00499 <span class="comment"></span>
<a name="l00500"></a>00500 <span class="comment">/**</span>
<a name="l00501"></a>00501 <span class="comment"> * This is the same as svn_opt_args_to_target_array3() except that it</span>
<a name="l00502"></a>00502 <span class="comment"> * silently ignores paths that have the same name as a working copy</span>
<a name="l00503"></a>00503 <span class="comment"> * administrative directory.</span>
<a name="l00504"></a>00504 <span class="comment"> *</span>
<a name="l00505"></a>00505 <span class="comment"> * @since New in 1.2.</span>
<a name="l00506"></a>00506 <span class="comment"> *</span>
<a name="l00507"></a>00507 <span class="comment"> * @deprecated Provided for backward compatibility with the 1.4 API.</span>
<a name="l00508"></a>00508 <span class="comment"> */</span>
<a name="l00509"></a>00509 <a class="code" href="structsvn__error__t.html" title="Subversion error object.">svn_error_t</a> *
<a name="l00510"></a>00510 <a class="code" href="svn__opt_8h.html#f0580dea6692e0c75b4b0c1bf4180643" title="This is the same as svn_opt_args_to_target_array3() except that it silently ignores...">svn_opt_args_to_target_array2</a>(apr_array_header_t **targets_p,
<a name="l00511"></a>00511 apr_getopt_t *os,
<a name="l00512"></a>00512 apr_array_header_t *known_targets,
<a name="l00513"></a>00513 apr_pool_t *pool);
<a name="l00514"></a>00514
<a name="l00515"></a>00515 <span class="comment"></span>
<a name="l00516"></a>00516 <span class="comment">/**</span>
<a name="l00517"></a>00517 <span class="comment"> * The same as svn_opt_args_to_target_array2() except that, in</span>
<a name="l00518"></a>00518 <span class="comment"> * addition, if @a extract_revisions is set, then look for trailing</span>
<a name="l00519"></a>00519 <span class="comment"> * "@rev" syntax on the first two paths. If the first target in @a</span>
<a name="l00520"></a>00520 <span class="comment"> * *targets_p ends in "@rev", replace it with a canonicalized version of</span>
<a name="l00521"></a>00521 <span class="comment"> * the part before "@rev" and replace @a *start_revision with the value</span>
<a name="l00522"></a>00522 <span class="comment"> * of "rev". If the second target in @a *targets_p ends in "@rev",</span>
<a name="l00523"></a>00523 <span class="comment"> * replace it with a canonicalized version of the part before "@rev"</span>
<a name="l00524"></a>00524 <span class="comment"> * and replace @a *end_revision with the value of "rev". Ignore</span>
<a name="l00525"></a>00525 <span class="comment"> * revision specifiers on any further paths. "rev" can be any form of</span>
<a name="l00526"></a>00526 <span class="comment"> * single revision specifier, as accepted by svn_opt_parse_revision().</span>
<a name="l00527"></a>00527 <span class="comment"> *</span>
<a name="l00528"></a>00528 <span class="comment"> * @deprecated Provided for backward compatibility with the 1.1 API.</span>
<a name="l00529"></a>00529 <span class="comment"> */</span>
<a name="l00530"></a>00530 <a class="code" href="structsvn__error__t.html" title="Subversion error object.">svn_error_t</a> *
<a name="l00531"></a>00531 <a class="code" href="svn__opt_8h.html#5b12e31cc240107510555f3be8889f9b" title="The same as svn_opt_args_to_target_array2() except that, in addition, if extract_revisions...">svn_opt_args_to_target_array</a>(apr_array_header_t **targets_p,
<a name="l00532"></a>00532 apr_getopt_t *os,
<a name="l00533"></a>00533 apr_array_header_t *known_targets,
<a name="l00534"></a>00534 <a class="code" href="structsvn__opt__revision__t.html" title="A revision, specified in one of svn_opt_revision_kind ways.">svn_opt_revision_t</a> *start_revision,
<a name="l00535"></a>00535 <a class="code" href="structsvn__opt__revision__t.html" title="A revision, specified in one of svn_opt_revision_kind ways.">svn_opt_revision_t</a> *end_revision,
<a name="l00536"></a>00536 <a class="code" href="svn__types_8h.html#22b35baddc4213c688d1bb12feea1024" title="YABT: Yet Another Boolean Type.">svn_boolean_t</a> extract_revisions,
<a name="l00537"></a>00537 apr_pool_t *pool);
<a name="l00538"></a>00538
<a name="l00539"></a>00539 <span class="comment"></span>
<a name="l00540"></a>00540 <span class="comment">/**</span>
<a name="l00541"></a>00541 <span class="comment"> * If no targets exist in @a *targets, add `.' as the lone target.</span>
<a name="l00542"></a>00542 <span class="comment"> *</span>
<a name="l00543"></a>00543 <span class="comment"> * (Some commands take an implicit "." string argument when invoked</span>
<a name="l00544"></a>00544 <span class="comment"> * with no arguments. Those commands make use of this function to</span>
<a name="l00545"></a>00545 <span class="comment"> * add "." to the target array if the user passes no args.)</span>
<a name="l00546"></a>00546 <span class="comment"> */</span>
<a name="l00547"></a>00547 <span class="keywordtype">void</span> <a class="code" href="svn__opt_8h.html#f7efcc4fa51d91a900041119c5fa4554" title="If no targets exist in *targets, add `.">svn_opt_push_implicit_dot_target</a>(apr_array_header_t *targets,
<a name="l00548"></a>00548 apr_pool_t *pool);
<a name="l00549"></a>00549
<a name="l00550"></a>00550 <span class="comment"></span>
<a name="l00551"></a>00551 <span class="comment">/**</span>
<a name="l00552"></a>00552 <span class="comment"> * Parse @a num_args non-target arguments from the list of arguments in</span>
<a name="l00553"></a>00553 <span class="comment"> * @a os-&gt;argv, return them as &lt;tt&gt;const char *&lt;/tt&gt; in @a *args_p, without</span>
<a name="l00554"></a>00554 <span class="comment"> * doing any UTF-8 conversion. Allocate @a *args_p and its values in @a pool.</span>
<a name="l00555"></a>00555 <span class="comment"> */</span>
<a name="l00556"></a>00556 <a class="code" href="structsvn__error__t.html" title="Subversion error object.">svn_error_t</a> *
<a name="l00557"></a>00557 <a class="code" href="svn__opt_8h.html#387726d1e21db4f9ba2ef27466ff8c16" title="Parse num_args non-target arguments from the list of arguments in os-&amp;gt;argv, return...">svn_opt_parse_num_args</a>(apr_array_header_t **args_p,
<a name="l00558"></a>00558 apr_getopt_t *os,
<a name="l00559"></a>00559 <span class="keywordtype">int</span> num_args,
<a name="l00560"></a>00560 apr_pool_t *pool);
<a name="l00561"></a>00561
<a name="l00562"></a>00562 <span class="comment"></span>
<a name="l00563"></a>00563 <span class="comment">/**</span>
<a name="l00564"></a>00564 <span class="comment"> * Parse all remaining arguments from @a os-&gt;argv, return them as</span>
<a name="l00565"></a>00565 <span class="comment"> * &lt;tt&gt;const char *&lt;/tt&gt; in @a *args_p, without doing any UTF-8 conversion.</span>
<a name="l00566"></a>00566 <span class="comment"> * Allocate @a *args_p and its values in @a pool.</span>
<a name="l00567"></a>00567 <span class="comment"> */</span>
<a name="l00568"></a>00568 <a class="code" href="structsvn__error__t.html" title="Subversion error object.">svn_error_t</a> *
<a name="l00569"></a>00569 <a class="code" href="svn__opt_8h.html#873adca7cdbb75c083d9bbfe27b1e7c3" title="Parse all remaining arguments from os-&amp;gt;argv, return them as const char * in *args_p...">svn_opt_parse_all_args</a>(apr_array_header_t **args_p,
<a name="l00570"></a>00570 apr_getopt_t *os,
<a name="l00571"></a>00571 apr_pool_t *pool);
<a name="l00572"></a>00572 <span class="comment"></span>
<a name="l00573"></a>00573 <span class="comment">/**</span>
<a name="l00574"></a>00574 <span class="comment"> * Parse a working-copy or URL in @a path, extracting any trailing</span>
<a name="l00575"></a>00575 <span class="comment"> * revision specifier of the form "@rev" from the last component of</span>
<a name="l00576"></a>00576 <span class="comment"> * the path.</span>
<a name="l00577"></a>00577 <span class="comment"> *</span>
<a name="l00578"></a>00578 <span class="comment"> * Some examples would be:</span>
<a name="l00579"></a>00579 <span class="comment"> *</span>
<a name="l00580"></a>00580 <span class="comment"> * "foo/bar" -&gt; "foo/bar", (unspecified)</span>
<a name="l00581"></a>00581 <span class="comment"> * "foo/bar@13" -&gt; "foo/bar", (number, 13)</span>
<a name="l00582"></a>00582 <span class="comment"> * "foo/bar@HEAD" -&gt; "foo/bar", (head)</span>
<a name="l00583"></a>00583 <span class="comment"> * "foo/bar@{1999-12-31}" -&gt; "foo/bar", (date, 1999-12-31)</span>
<a name="l00584"></a>00584 <span class="comment"> * "http://a/b@27" -&gt; "http://a/b", (number, 27)</span>
<a name="l00585"></a>00585 <span class="comment"> * "http://a/b@COMMITTED" -&gt; "http://a/b", (committed) [*]</span>
<a name="l00586"></a>00586 <span class="comment"> * "http://a/b@{1999-12-31} -&gt; "http://a/b", (date, 1999-12-31)</span>
<a name="l00587"></a>00587 <span class="comment"> * "http://a/b@%7B1999-12-31%7D -&gt; "http://a/b", (date, 1999-12-31)</span>
<a name="l00588"></a>00588 <span class="comment"> * "foo/bar@1:2" -&gt; error</span>
<a name="l00589"></a>00589 <span class="comment"> * "foo/bar@baz" -&gt; error</span>
<a name="l00590"></a>00590 <span class="comment"> * "foo/bar@" -&gt; "foo/bar", (base)</span>
<a name="l00591"></a>00591 <span class="comment"> * "foo/bar/@13" -&gt; "foo/bar/", (number, 13)</span>
<a name="l00592"></a>00592 <span class="comment"> * "foo/bar@@13" -&gt; "foo/bar@", (number, 13)</span>
<a name="l00593"></a>00593 <span class="comment"> * "foo/@bar@HEAD" -&gt; "foo/@bar", (head)</span>
<a name="l00594"></a>00594 <span class="comment"> * "foo@/bar" -&gt; "foo@/bar", (unspecified)</span>
<a name="l00595"></a>00595 <span class="comment"> * "foo@HEAD/bar" -&gt; "foo@HEAD/bar", (unspecified)</span>
<a name="l00596"></a>00596 <span class="comment"> *</span>
<a name="l00597"></a>00597 <span class="comment"> * [*] Syntactically valid but probably not semantically useful.</span>
<a name="l00598"></a>00598 <span class="comment"> *</span>
<a name="l00599"></a>00599 <span class="comment"> * If a trailing revision specifier is found, parse it into @a *rev and</span>
<a name="l00600"></a>00600 <span class="comment"> * put the rest of the path into @a *truepath, allocating from @a pool;</span>
<a name="l00601"></a>00601 <span class="comment"> * or return an @c SVN_ERR_CL_ARG_PARSING_ERROR if the revision</span>
<a name="l00602"></a>00602 <span class="comment"> * specifier is invalid. If no trailing revision specifier is found,</span>
<a name="l00603"></a>00603 <span class="comment"> * set @a *truepath to @a path and @a rev-&gt;kind to @c</span>
<a name="l00604"></a>00604 <span class="comment"> * svn_opt_revision_unspecified.</span>
<a name="l00605"></a>00605 <span class="comment"> *</span>
<a name="l00606"></a>00606 <span class="comment"> * This function does not require that @a path be in canonical form.</span>
<a name="l00607"></a>00607 <span class="comment"> * No canonicalization is done and @a *truepath will only be in</span>
<a name="l00608"></a>00608 <span class="comment"> * canonical form if @a path is in canonical form.</span>
<a name="l00609"></a>00609 <span class="comment"> *</span>
<a name="l00610"></a>00610 <span class="comment"> * @since New in 1.1.</span>
<a name="l00611"></a>00611 <span class="comment"> */</span>
<a name="l00612"></a>00612 <a class="code" href="structsvn__error__t.html" title="Subversion error object.">svn_error_t</a> *
<a name="l00613"></a>00613 <a class="code" href="svn__opt_8h.html#f6c1d543303cd114701f320ad0d3d5f9" title="Parse a working-copy or URL in path, extracting any trailing revision specifier of...">svn_opt_parse_path</a>(<a class="code" href="structsvn__opt__revision__t.html" title="A revision, specified in one of svn_opt_revision_kind ways.">svn_opt_revision_t</a> *rev,
<a name="l00614"></a>00614 <span class="keyword">const</span> <span class="keywordtype">char</span> **truepath,
<a name="l00615"></a>00615 <span class="keyword">const</span> <span class="keywordtype">char</span> *path,
<a name="l00616"></a>00616 apr_pool_t *pool);
<a name="l00617"></a>00617 <span class="comment"></span>
<a name="l00618"></a>00618 <span class="comment">/**</span>
<a name="l00619"></a>00619 <span class="comment"> * Central dispatcher function for various kinds of help message.</span>
<a name="l00620"></a>00620 <span class="comment"> * Prints one of:</span>
<a name="l00621"></a>00621 <span class="comment"> * * subcommand-specific help (svn_opt_subcommand_help)</span>
<a name="l00622"></a>00622 <span class="comment"> * * generic help (svn_opt_print_generic_help)</span>
<a name="l00623"></a>00623 <span class="comment"> * * version info</span>
<a name="l00624"></a>00624 <span class="comment"> * * simple usage complaint: "Type '@a pgm_name help' for usage."</span>
<a name="l00625"></a>00625 <span class="comment"> *</span>
<a name="l00626"></a>00626 <span class="comment"> * If @a os is not @c NULL and it contains arguments, then try</span>
<a name="l00627"></a>00627 <span class="comment"> * printing help for them as though they are subcommands, using @a</span>
<a name="l00628"></a>00628 <span class="comment"> * cmd_table and @a option_table for option information. If not @c</span>
<a name="l00629"></a>00629 <span class="comment"> * NULL, @a global_options is a zero-terminated array of options taken</span>
<a name="l00630"></a>00630 <span class="comment"> * by all subcommands.</span>
<a name="l00631"></a>00631 <span class="comment"> *</span>
<a name="l00632"></a>00632 <span class="comment"> * Else, if @a print_version is TRUE, then print version info, in</span>
<a name="l00633"></a>00633 <span class="comment"> * brief form if @a quiet is also TRUE; if @a quiet is FALSE, then if</span>
<a name="l00634"></a>00634 <span class="comment"> * @a version_footer is non-NULL, print it following the version</span>
<a name="l00635"></a>00635 <span class="comment"> * information.</span>
<a name="l00636"></a>00636 <span class="comment"> *</span>
<a name="l00637"></a>00637 <span class="comment"> * Else, if @a os is not @c NULL and does not contain arguments, print</span>
<a name="l00638"></a>00638 <span class="comment"> * generic help, via svn_opt_print_generic_help2() with the @a header,</span>
<a name="l00639"></a>00639 <span class="comment"> * @a cmd_table, @a option_table, and @a footer arguments.</span>
<a name="l00640"></a>00640 <span class="comment"> *</span>
<a name="l00641"></a>00641 <span class="comment"> * Else, when @a os is @c NULL, print the simple usage complaint.</span>
<a name="l00642"></a>00642 <span class="comment"> *</span>
<a name="l00643"></a>00643 <span class="comment"> * Use @a pool for temporary allocations.</span>
<a name="l00644"></a>00644 <span class="comment"> *</span>
<a name="l00645"></a>00645 <span class="comment"> * Notes: The reason this function handles both version printing and</span>
<a name="l00646"></a>00646 <span class="comment"> * general usage help is that a confused user might put both the</span>
<a name="l00647"></a>00647 <span class="comment"> * --version flag *and* subcommand arguments on a help command line.</span>
<a name="l00648"></a>00648 <span class="comment"> * The logic for handling such a situation should be in one place.</span>
<a name="l00649"></a>00649 <span class="comment"> *</span>
<a name="l00650"></a>00650 <span class="comment"> * @since New in 1.5.</span>
<a name="l00651"></a>00651 <span class="comment"> */</span>
<a name="l00652"></a>00652 <a class="code" href="structsvn__error__t.html" title="Subversion error object.">svn_error_t</a> *
<a name="l00653"></a>00653 <a class="code" href="svn__opt_8h.html#fe67d5efea9439cbbd9b6fa4c7362e7d" title="Central dispatcher function for various kinds of help message.">svn_opt_print_help3</a>(apr_getopt_t *os,
<a name="l00654"></a>00654 <span class="keyword">const</span> <span class="keywordtype">char</span> *pgm_name,
<a name="l00655"></a>00655 <a class="code" href="svn__types_8h.html#22b35baddc4213c688d1bb12feea1024" title="YABT: Yet Another Boolean Type.">svn_boolean_t</a> print_version,
<a name="l00656"></a>00656 <a class="code" href="svn__types_8h.html#22b35baddc4213c688d1bb12feea1024" title="YABT: Yet Another Boolean Type.">svn_boolean_t</a> quiet,
<a name="l00657"></a>00657 <span class="keyword">const</span> <span class="keywordtype">char</span> *version_footer,
<a name="l00658"></a>00658 <span class="keyword">const</span> <span class="keywordtype">char</span> *header,
<a name="l00659"></a>00659 <span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc2__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc2_t</a> *cmd_table,
<a name="l00660"></a>00660 <span class="keyword">const</span> apr_getopt_option_t *option_table,
<a name="l00661"></a>00661 <span class="keyword">const</span> <span class="keywordtype">int</span> *global_options,
<a name="l00662"></a>00662 <span class="keyword">const</span> <span class="keywordtype">char</span> *footer,
<a name="l00663"></a>00663 apr_pool_t *pool);
<a name="l00664"></a>00664 <span class="comment"></span>
<a name="l00665"></a>00665 <span class="comment">/**</span>
<a name="l00666"></a>00666 <span class="comment"> * Same as svn_opt_print_help3(), but with @a global_options always @c</span>
<a name="l00667"></a>00667 <span class="comment"> * NULL.</span>
<a name="l00668"></a>00668 <span class="comment"> *</span>
<a name="l00669"></a>00669 <span class="comment"> * @deprecated Provided for backward compatibility with the 1.4 API.</span>
<a name="l00670"></a>00670 <span class="comment"> */</span>
<a name="l00671"></a>00671
<a name="l00672"></a>00672 <a class="code" href="structsvn__error__t.html" title="Subversion error object.">svn_error_t</a> *
<a name="l00673"></a>00673 <a class="code" href="svn__opt_8h.html#0267a3708e15338f1c32233aee8252fd" title="Same as svn_opt_print_help3(), but with global_options always NULL.">svn_opt_print_help2</a>(apr_getopt_t *os,
<a name="l00674"></a>00674 <span class="keyword">const</span> <span class="keywordtype">char</span> *pgm_name,
<a name="l00675"></a>00675 <a class="code" href="svn__types_8h.html#22b35baddc4213c688d1bb12feea1024" title="YABT: Yet Another Boolean Type.">svn_boolean_t</a> print_version,
<a name="l00676"></a>00676 <a class="code" href="svn__types_8h.html#22b35baddc4213c688d1bb12feea1024" title="YABT: Yet Another Boolean Type.">svn_boolean_t</a> quiet,
<a name="l00677"></a>00677 <span class="keyword">const</span> <span class="keywordtype">char</span> *version_footer,
<a name="l00678"></a>00678 <span class="keyword">const</span> <span class="keywordtype">char</span> *header,
<a name="l00679"></a>00679 <span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc2__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc2_t</a> *cmd_table,
<a name="l00680"></a>00680 <span class="keyword">const</span> apr_getopt_option_t *option_table,
<a name="l00681"></a>00681 <span class="keyword">const</span> <span class="keywordtype">char</span> *footer,
<a name="l00682"></a>00682 apr_pool_t *pool);
<a name="l00683"></a>00683
<a name="l00684"></a>00684 <span class="comment"></span>
<a name="l00685"></a>00685 <span class="comment">/**</span>
<a name="l00686"></a>00686 <span class="comment"> * Same as svn_opt_print_help2(), but acts on #svn_opt_subcommand_desc_t.</span>
<a name="l00687"></a>00687 <span class="comment"> *</span>
<a name="l00688"></a>00688 <span class="comment"> * @deprecated Provided for backward compatibility with the 1.3 API.</span>
<a name="l00689"></a>00689 <span class="comment"> */</span>
<a name="l00690"></a>00690 <a class="code" href="structsvn__error__t.html" title="Subversion error object.">svn_error_t</a> *
<a name="l00691"></a>00691 <a class="code" href="svn__opt_8h.html#8e15cc9ba0ad6786e6ec59fde6d765ed" title="Same as svn_opt_print_help2(), but acts on svn_opt_subcommand_desc_t.">svn_opt_print_help</a>(apr_getopt_t *os,
<a name="l00692"></a>00692 <span class="keyword">const</span> <span class="keywordtype">char</span> *pgm_name,
<a name="l00693"></a>00693 <a class="code" href="svn__types_8h.html#22b35baddc4213c688d1bb12feea1024" title="YABT: Yet Another Boolean Type.">svn_boolean_t</a> print_version,
<a name="l00694"></a>00694 <a class="code" href="svn__types_8h.html#22b35baddc4213c688d1bb12feea1024" title="YABT: Yet Another Boolean Type.">svn_boolean_t</a> quiet,
<a name="l00695"></a>00695 <span class="keyword">const</span> <span class="keywordtype">char</span> *version_footer,
<a name="l00696"></a>00696 <span class="keyword">const</span> <span class="keywordtype">char</span> *header,
<a name="l00697"></a>00697 <span class="keyword">const</span> <a class="code" href="structsvn__opt__subcommand__desc__t.html" title="One element of a subcommand dispatch table.">svn_opt_subcommand_desc_t</a> *cmd_table,
<a name="l00698"></a>00698 <span class="keyword">const</span> apr_getopt_option_t *option_table,
<a name="l00699"></a>00699 <span class="keyword">const</span> <span class="keywordtype">char</span> *footer,
<a name="l00700"></a>00700 apr_pool_t *pool);
<a name="l00701"></a>00701
<a name="l00702"></a>00702 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00703"></a>00703 <span class="preprocessor"></span>}
<a name="l00704"></a>00704 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
<a name="l00705"></a>00705
<a name="l00706"></a>00706 <span class="preprocessor">#endif </span><span class="comment">/* SVN_OPTS_H */</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Oct 24 16:18:25 2008 for Subversion by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>