<!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>
<title>File Source for svn_lib.inc.php</title>
<link rel="stylesheet" type="text/css" href="../media/style.css" />
<meta name="keywords" content="sTEFANs" />
<meta name="robots" content="all" />
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
</head>
<body>
<table border="0" cellspacing="0" cellpadding="0" height="48" width="100%">
<tr class="header">
<td class="header-top-left"><a href="http://www.ebc.bz" target="_blank"><img src="../media/logo.png" border="0" alt="sTEFANs" /></a></td>
<td class="header-top-right">Subversion Web Contol (SWC)<br /><div class="header-top-right-subpackage"></div></td>
</tr>
<tr><td colspan="2" class="header-line"><img src="../media/empty.png" width="1" height="2" border="0" alt="" /></td></tr>
<tr>
<td colspan="2" class="header-menu">
[ <a href="../classtrees_Swc.html" class="menu">class tree: Swc</a> ]
[ <a href="../elementindex_Swc.html" class="menu">index: Swc</a> ]
[ <a href="../elementindex.html" class="menu">all elements</a> ]
</td>
</tr>
<tr><td colspan="2" class="header-line"><img src="../media/empty.png" width="0" height="2" border="0" alt="" /></td></tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="195" class="menu">
<div class="package-title">Swc</div>
<div class="package">
<div id="ric">
<p><a href="../index.html">Introduction</a><br />
<a href="../../changes.html">Change History</a></p>
</div>
</div>
<b>Packages:</b><br />
<div class="package">
<a href="../li_Swc.html">Swc</a><br />
</div>
<br />
<br />
</td>
<td>
<table cellpadding="10" cellspacing="0" width="100%" border="0"><tr><td valign="top">
<h1 align="center">Source for file svn_lib.inc.php</h1>
<p>Documentation is available at <a href="../Swc/_swc---inc---svn_lib.inc.php.html">svn_lib.inc.php</a></p>
<div class="src-code"><span class="php">
<div class="listing"><pre><ol><li><div class="src-line"><a name="a1"></a><?<span class="src-id">php</span></div></li>
<li><div class="src-line"><a name="a2"></a><span class="src-comm">/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</span></div></li>
<li><div class="src-line"><a name="a3"></a><span class="src-comm">SVN Web Control</span></div></li>
<li><div class="src-line"><a name="a4"></a><span class="src-comm">Copyright ©2006 by sTEFANs</span></div></li>
<li><div class="src-line"><a name="a5"></a><span class="src-comm">Created on 20.02.2006</span></div></li>
<li><div class="src-line"><a name="a6"></a><span class="src-comm">~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</span></div></li>
<li><div class="src-line"><a name="a7"></a><span class="src-comm">This program is free software; you can redistribute it and/or modify</span></div></li>
<li><div class="src-line"><a name="a8"></a><span class="src-comm">it under the terms of the GNU General Public License as published by</span></div></li>
<li><div class="src-line"><a name="a9"></a><span class="src-comm">the Free Software Foundation; either version 2 of the License, or</span></div></li>
<li><div class="src-line"><a name="a10"></a><span class="src-comm">(at your option) any later version.</span></div></li>
<li><div class="src-line"><a name="a11"></a> </div></li>
<li><div class="src-line"><a name="a12"></a><span class="src-comm">This program is distributed in the hope that it will be useful,</span></div></li>
<li><div class="src-line"><a name="a13"></a><span class="src-comm">but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div></li>
<li><div class="src-line"><a name="a14"></a><span class="src-comm">MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div></li>
<li><div class="src-line"><a name="a15"></a><span class="src-comm">GNU General Public License for more details.</span></div></li>
<li><div class="src-line"><a name="a16"></a> </div></li>
<li><div class="src-line"><a name="a17"></a><span class="src-comm">You should have received a copy of the GNU General Public License</span></div></li>
<li><div class="src-line"><a name="a18"></a><span class="src-comm">along with this program; if not, write to the Free Software</span></div></li>
<li><div class="src-line"><a name="a19"></a><span class="src-comm">Foundation, Inc., 59 Temple Place - Suite 330,</span></div></li>
<li><div class="src-line"><a name="a20"></a><span class="src-comm">Boston, MA 02111-1307, USA.</span></div></li>
<li><div class="src-line"><a name="a21"></a><span class="src-comm">~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</span></div></li>
<li><div class="src-line"><a name="a22"></a><span class="src-comm">*/</span></div></li>
<li><div class="src-line"><a name="a23"></a> </div></li>
<li><div class="src-line"><a name="a24"></a>/**</div></li>
<li><div class="src-line"><a name="a25"></a> * A collection of functions that encapsulates SVN commands.</div></li>
<li><div class="src-line"><a name="a26"></a> * </div></li>
<li><div class="src-line"><a name="a27"></a> * @package Swc</div></li>
<li><div class="src-line"><a name="a28"></a> * @subpackage Inc</div></li>
<li><div class="src-line"><a name="a29"></a> * @author Stefan Schraml</div></li>
<li><div class="src-line"><a name="a30"></a> * @copyright Copyright ©2006 by sTEFANs</div></li>
<li><div class="src-line"><a name="a31"></a> * @license http://opensource.org/licenses/gpl-license.php GNU General Public License</div></li>
<li><div class="src-line"><a name="a32"></a> * @version v1.0.1</div></li>
<li><div class="src-line"><a name="a33"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a34"></a> */</div></li>
<li><div class="src-line"><a name="a35"></a> </div></li>
<li><div class="src-line"><a name="a36"></a>/** Common defines */</div></li>
<li><div class="src-line"><a name="a37"></a><span class="src-inc">require_once</span><span class="src-sym">(</span><span class="src-str">'var.inc.php'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a38"></a>/** Project configuration interface */</div></li>
<li><div class="src-line"><a name="a39"></a><span class="src-inc">require_once </span><span class="src-sym">(</span><span class="src-str">'config.inc.php'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a40"></a> </div></li>
<li><div class="src-line"><a name="a41"></a> /** </div></li>
<li><div class="src-line"><a name="a42"></a> * Returns the help output of <i>svn</i>.</div></li>
<li><div class="src-line"><a name="a43"></a> * @return array <i>svn help</i> output in </div></li>
<li><div class="src-line"><a name="a44"></a> * form of a result array as produced</div></li>
<li><div class="src-line"><a name="a45"></a> * by <b>ExecSvnCmd</b>.</div></li>
<li><div class="src-line"><a name="a46"></a> * @see ExecSvnCmd</div></li>
<li><div class="src-line"><a name="a47"></a> * </div></li>
<li><div class="src-line"><a name="a48"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a49"></a> */</div></li>
<li><div class="src-line"><a name="a50"></a> <span class="src-key">function </span><span class="src-id">GetSvnHelp</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a51"></a> <span class="src-var">$command </span>= <span class="src-str">'svn'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a52"></a> <span class="src-var">$switches </span>= <span class="src-str">'--help'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a53"></a> <span class="src-var">$result </span>= <span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$command</span><span class="src-sym">, </span><span class="src-str">''</span><span class="src-sym">, </span><span class="src-var">$switches</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a54"></a> <span class="src-key">return </span><span class="src-var">$result</span><span class="src-sym">; </span></div></li>
<li><div class="src-line"><a name="a55"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a56"></a> </div></li>
<li><div class="src-line"><a name="a57"></a> /** </div></li>
<li><div class="src-line"><a name="a58"></a> * Returns the help output of <i>svnlook</i>.</div></li>
<li><div class="src-line"><a name="a59"></a> * @return array <i>svnlook help</i> output in </div></li>
<li><div class="src-line"><a name="a60"></a> * form of a result array as produced</div></li>
<li><div class="src-line"><a name="a61"></a> * by <b>ExecSvnCmd</b>.</div></li>
<li><div class="src-line"><a name="a62"></a> * @see ExecSvnCmd</div></li>
<li><div class="src-line"><a name="a63"></a> * </div></li>
<li><div class="src-line"><a name="a64"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a65"></a> */</div></li>
<li><div class="src-line"><a name="a66"></a> <span class="src-key">function </span><span class="src-id">GetSvnLookHelp</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a67"></a> <span class="src-var">$command </span>= <span class="src-str">'svnlook'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a68"></a> <span class="src-var">$switches </span>= <span class="src-str">'--help'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a69"></a> <span class="src-var">$result </span>= <span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$command</span><span class="src-sym">, </span><span class="src-str">''</span><span class="src-sym">, </span><span class="src-var">$switches</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a70"></a> <span class="src-key">return </span><span class="src-var">$result</span><span class="src-sym">; </span></div></li>
<li><div class="src-line"><a name="a71"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a72"></a> </div></li>
<li><div class="src-line"><a name="a73"></a> /** </div></li>
<li><div class="src-line"><a name="a74"></a> * Returns the help output of <i>svnadmin</i>.</div></li>
<li><div class="src-line"><a name="a75"></a> * @return array <i>svnadmin</i> help output in </div></li>
<li><div class="src-line"><a name="a76"></a> * form of a result array as produced</div></li>
<li><div class="src-line"><a name="a77"></a> * by <b>ExecSvnCmd</b>.</div></li>
<li><div class="src-line"><a name="a78"></a> * @see ExecSvnCmd</div></li>
<li><div class="src-line"><a name="a79"></a> * </div></li>
<li><div class="src-line"><a name="a80"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a81"></a> */</div></li>
<li><div class="src-line"><a name="a82"></a> <span class="src-key">function </span><span class="src-id">GetSvnAdminHelp</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a83"></a> <span class="src-var">$command </span>= <span class="src-str">'svnadmin'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a84"></a> <span class="src-var">$switches </span>= <span class="src-str">'--help'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a85"></a> <span class="src-var">$result </span>= <span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$command</span><span class="src-sym">, </span><span class="src-str">''</span><span class="src-sym">, </span><span class="src-var">$switches</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a86"></a> <span class="src-key">return </span><span class="src-var">$result</span><span class="src-sym">; </span></div></li>
<li><div class="src-line"><a name="a87"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a88"></a> </div></li>
<li><div class="src-line"><a name="a89"></a> /** </div></li>
<li><div class="src-line"><a name="a90"></a> * Returns the help output of <i>svnversion</i>.</div></li>
<li><div class="src-line"><a name="a91"></a> * @return array <i>svnversion</i> help output in </div></li>
<li><div class="src-line"><a name="a92"></a> * form of a result array as produced</div></li>
<li><div class="src-line"><a name="a93"></a> * by <b>ExecSvnCmd</b>.</div></li>
<li><div class="src-line"><a name="a94"></a> * @see ExecSvnCmd</div></li>
<li><div class="src-line"><a name="a95"></a> * </div></li>
<li><div class="src-line"><a name="a96"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a97"></a> */</div></li>
<li><div class="src-line"><a name="a98"></a> <span class="src-key">function </span><span class="src-id">GetSvnVersionHelp</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a99"></a> <span class="src-var">$command </span>= <span class="src-str">'svnversion'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a100"></a> <span class="src-var">$switches </span>= <span class="src-str">'--help'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a101"></a> <span class="src-var">$result </span>= <span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$command</span><span class="src-sym">, </span><span class="src-str">''</span><span class="src-sym">, </span><span class="src-var">$switches</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a102"></a> <span class="src-key">return </span><span class="src-var">$result</span><span class="src-sym">; </span></div></li>
<li><div class="src-line"><a name="a103"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a104"></a> </div></li>
<li><div class="src-line"><a name="a105"></a> /** </div></li>
<li><div class="src-line"><a name="a106"></a> * Returns the version of SVN.</div></li>
<li><div class="src-line"><a name="a107"></a> * @return string Version of Subversion</div></li>
<li><div class="src-line"><a name="a108"></a> * </div></li>
<li><div class="src-line"><a name="a109"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a110"></a> */</div></li>
<li><div class="src-line"><a name="a111"></a> <span class="src-key">function </span><span class="src-id">GetSvnVersion</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a112"></a> <span class="src-var">$command </span>= <span class="src-str">'svn'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a113"></a> <span class="src-var">$switches </span>= <span class="src-str">'--version'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a114"></a> <span class="src-key">static </span><span class="src-var">$version </span>= <span class="src-id">NULL</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a115"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$version </span>== <span class="src-id">NULL</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a116"></a> <span class="src-var">$result </span>= <span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$command</span><span class="src-sym">, </span><span class="src-str">''</span><span class="src-sym">, </span><span class="src-var">$switches</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a117"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_CMD_RC</span><span class="src-sym">] </span>== <span class="src-num">0</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a118"></a> <span class="src-var">$version </span>= <span class="src-id">ParseArray</span><span class="src-sym">(</span><span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_STDOUT</span><span class="src-sym">]</span><span class="src-sym">, </span><span class="src-str">'version '</span><span class="src-sym">, </span><span class="src-str">' (r'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a119"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a120"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a121"></a> <span class="src-key">return </span><span class="src-var">$version</span><span class="src-sym">; </span></div></li>
<li><div class="src-line"><a name="a122"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a123"></a> </div></li>
<li><div class="src-line"><a name="a124"></a> /** </div></li>
<li><div class="src-line"><a name="a125"></a> * Returns the number of the youngest SVN revision (HEAD)</div></li>
<li><div class="src-line"><a name="a126"></a> * available in the repository.</div></li>
<li><div class="src-line"><a name="a127"></a> * @return int Number of HEAD revision</div></li>
<li><div class="src-line"><a name="a128"></a> * </div></li>
<li><div class="src-line"><a name="a129"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a130"></a> * */</div></li>
<li><div class="src-line"><a name="a131"></a> <span class="src-key">function </span><span class="src-id">GetHeadRevision</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a132"></a> <span class="src-var">$command </span>= <span class="src-str">'svnlook youngest'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a133"></a> <span class="src-var">$arg </span>= <span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetRepositoryRootDir</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a134"></a> <span class="src-key">static </span><span class="src-var">$head </span>= <span class="src-id">NULL</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a135"></a> <span class="src-key">static </span><span class="src-var">$error </span>= <span class="src-key">array</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a136"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$head </span>== <span class="src-id">NULL</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a137"></a> <span class="src-var">$result </span>= <span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$command</span><span class="src-sym">, </span><span class="src-var">$arg</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a138"></a> <span class="src-var">$output </span>= <span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_STDOUT</span><span class="src-sym">]</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a139"></a> <span class="src-var">$error </span>= <span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_ERROUT</span><span class="src-sym">]</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a140"></a> <span class="src-var">$head </span>= <span class="src-var">$output</span><span class="src-sym">[</span><span class="src-num">0</span><span class="src-sym">]</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a141"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a142"></a> <span class="src-key">return </span><span class="src-var">$head</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a143"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a144"></a> </div></li>
<li><div class="src-line"><a name="a145"></a> /** </div></li>
<li><div class="src-line"><a name="a146"></a> * Returns the formated date of the latest changes </div></li>
<li><div class="src-line"><a name="a147"></a> * within the repository.</div></li>
<li><div class="src-line"><a name="a148"></a> * @return string Date of HEAD revision.</div></li>
<li><div class="src-line"><a name="a149"></a> * </div></li>
<li><div class="src-line"><a name="a150"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a151"></a> */</div></li>
<li><div class="src-line"><a name="a152"></a> <span class="src-key">function </span><span class="src-id">GetHeadDate</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a153"></a> <span class="src-var">$command </span>= <span class="src-str">'svnlook date'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a154"></a> <span class="src-var">$arg </span>= <span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetRepositoryRootDir</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a155"></a> <span class="src-var">$error </span>= <span class="src-key">array</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a156"></a> <span class="src-var">$result </span>= <span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$command</span><span class="src-sym">, </span><span class="src-var">$arg</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a157"></a> <span class="src-var">$output </span>= <span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_STDOUT</span><span class="src-sym">]</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a158"></a> <span class="src-var">$error </span>= <span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_ERROUT</span><span class="src-sym">]</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a159"></a> <span class="src-var">$timestamp </span>= <span class="src-var">$output</span><span class="src-sym">[</span><span class="src-num">0</span><span class="src-sym">]</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a160"></a> <span class="src-var">$timestamp </span>= <span class="src-id">strtotime</span><span class="src-sym">(</span><span class="src-var">$timestamp</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a161"></a> <span class="src-key">return </span><span class="src-id">GetLocalizedTimestamp</span><span class="src-sym">(</span><span class="src-var">$timestamp</span><span class="src-sym">)</span><span class="src-sym">; </span></div></li>
<li><div class="src-line"><a name="a162"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a163"></a> </div></li>
<li><div class="src-line"><a name="a164"></a> /** </div></li>
<li><div class="src-line"><a name="a165"></a> * Returns the output of <i>snv info</i></div></li>
<li><div class="src-line"><a name="a166"></a> * contained in a result array as produced</div></li>
<li><div class="src-line"><a name="a167"></a> * by <b>ExecSvnCmd</b>.</div></li>
<li><div class="src-line"><a name="a168"></a> * @return array Output line by line.</div></li>
<li><div class="src-line"><a name="a169"></a> * @see ExecSvnCmd</div></li>
<li><div class="src-line"><a name="a170"></a> * </div></li>
<li><div class="src-line"><a name="a171"></a> * @since v1.0.0 </div></li>
<li><div class="src-line"><a name="a172"></a> */</div></li>
<li><div class="src-line"><a name="a173"></a> <span class="src-key">function </span><span class="src-sym">&</span><span class="src-id">GetWebspaceInfo</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a174"></a> <span class="src-var">$command </span>= <span class="src-str">'svn info'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a175"></a> <span class="src-var">$arg </span>= <span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetWebspaceRootDir</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a176"></a> <span class="src-key">static </span><span class="src-var">$result </span>= <span class="src-id">NULL</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a177"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-key">empty</span><span class="src-sym">(</span><span class="src-var">$result</span><span class="src-sym">))</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a178"></a> <span class="src-var">$result </span>= <span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$command</span><span class="src-sym">, </span><span class="src-var">$arg</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a179"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a180"></a> <span class="src-key">return </span><span class="src-var">$result</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a181"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a182"></a> </div></li>
<li><div class="src-line"><a name="a183"></a> /** </div></li>
<li><div class="src-line"><a name="a184"></a> * Returns the number of the SVN revision </div></li>
<li><div class="src-line"><a name="a185"></a> * of the webspace.</div></li>
<li><div class="src-line"><a name="a186"></a> * @return int Webspace revision.</div></li>
<li><div class="src-line"><a name="a187"></a> * </div></li>
<li><div class="src-line"><a name="a188"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a189"></a> */</div></li>
<li><div class="src-line"><a name="a190"></a> <span class="src-key">function </span><span class="src-id">GetWebspaceRevision</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a191"></a> <span class="src-var">$info </span>= <span class="src-id">GetWebspaceInfo</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a192"></a> <span class="src-key">return </span><span class="src-id">ParseArray</span><span class="src-sym">(</span><span class="src-var">$info</span><span class="src-sym">[</span><span class="src-id">IDX_STDOUT</span><span class="src-sym">]</span><span class="src-sym">, </span><span class="src-str">'Revision: '</span><span class="src-sym">)</span><span class="src-sym">; </span></div></li>
<li><div class="src-line"><a name="a193"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a194"></a> </div></li>
<li><div class="src-line"><a name="a195"></a> /** </div></li>
<li><div class="src-line"><a name="a196"></a> * Returns the path of the repository</div></li>
<li><div class="src-line"><a name="a197"></a> * where the webspace referes to with</div></li>
<li><div class="src-line"><a name="a198"></a> * repository root directory. </div></li>
<li><div class="src-line"><a name="a199"></a> * @return string Repository path the webspace points to.</div></li>
<li><div class="src-line"><a name="a200"></a> * </div></li>
<li><div class="src-line"><a name="a201"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a202"></a> */</div></li>
<li><div class="src-line"><a name="a203"></a> <span class="src-key">function </span><span class="src-id">GetWebspaceSourcePath</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a204"></a> <span class="src-var">$info </span>= <span class="src-id">GetWebspaceInfo</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a205"></a> <span class="src-var">$url </span>= <span class="src-str">'URL: file://'</span>.<span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetRepositoryRootDir</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a206"></a> <span class="src-key">return </span><span class="src-id">ParseArray</span><span class="src-sym">(</span><span class="src-var">$info</span><span class="src-sym">[</span><span class="src-id">IDX_STDOUT</span><span class="src-sym">]</span><span class="src-sym">, </span><span class="src-var">$url</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a207"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a208"></a> </div></li>
<li><div class="src-line"><a name="a209"></a> /** </div></li>
<li><div class="src-line"><a name="a210"></a> * Returns the formated date of the </div></li>
<li><div class="src-line"><a name="a211"></a> * revision of the workspace.</div></li>
<li><div class="src-line"><a name="a212"></a> * @return string Date of webspace revision.</div></li>
<li><div class="src-line"><a name="a213"></a> * </div></li>
<li><div class="src-line"><a name="a214"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a215"></a> */</div></li>
<li><div class="src-line"><a name="a216"></a> <span class="src-key">function </span><span class="src-id">GetWebspaceRevisionDate</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a217"></a> <span class="src-var">$info </span>= <span class="src-id">GetWebspaceInfo</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a218"></a> <span class="src-var">$timestamp </span>= <span class="src-id">ParseArray</span><span class="src-sym">(</span><span class="src-var">$info</span><span class="src-sym">[</span><span class="src-id">IDX_STDOUT</span><span class="src-sym">]</span><span class="src-sym">, </span><span class="src-str">'Last Changed Date: '</span><span class="src-sym">, </span><span class="src-str">'('</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a219"></a> <span class="src-var">$timestamp </span>= <span class="src-id">strtotime</span><span class="src-sym">(</span><span class="src-var">$timestamp</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a220"></a> <span class="src-key">return </span><span class="src-id">GetLocalizedTimestamp</span><span class="src-sym">(</span><span class="src-var">$timestamp</span><span class="src-sym">)</span><span class="src-sym">; </span></div></li>
<li><div class="src-line"><a name="a221"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a222"></a> </div></li>
<li><div class="src-line"><a name="a223"></a> /** </div></li>
<li><div class="src-line"><a name="a224"></a> * Returns the output of <i>svn status</i> </div></li>
<li><div class="src-line"><a name="a225"></a> * contained in a result array as produced</div></li>
<li><div class="src-line"><a name="a226"></a> * by <b>ExecSvnCmd</b>.</div></li>
<li><div class="src-line"><a name="a227"></a> * @return array Result of <i>svn status</i> execution.</div></li>
<li><div class="src-line"><a name="a228"></a> * @see ExecSvnCmd</div></li>
<li><div class="src-line"><a name="a229"></a> * </div></li>
<li><div class="src-line"><a name="a230"></a> * @since v1.0.0 </div></li>
<li><div class="src-line"><a name="a231"></a> */</div></li>
<li><div class="src-line"><a name="a232"></a> <span class="src-key">function </span><span class="src-sym">&</span><span class="src-id">GetWebspaceStatus</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a233"></a> <span class="src-var">$command </span>= <span class="src-str">'svn status'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a234"></a> <span class="src-var">$switches </span>= <span class="src-str">'--verbose --show-updates --non-interactive'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a235"></a> <span class="src-var">$switches </span>.= <span class="src-id">GetSvnUsr</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a236"></a> <span class="src-var">$switches </span>.= <span class="src-id">GetSvnPw</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a237"></a> <span class="src-var">$arg </span>= <span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetWebspaceRootDir</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a238"></a> <span class="src-key">static </span><span class="src-var">$result </span>= <span class="src-id">NULL</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a239"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$result </span>== <span class="src-id">NULL</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a240"></a> <span class="src-var">$result </span>= <span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$command</span><span class="src-sym">, </span><span class="src-var">$arg</span><span class="src-sym">, </span><span class="src-var">$switches</span><span class="src-sym">)</span><span class="src-sym">; </span></div></li>
<li><div class="src-line"><a name="a241"></a> <span class="src-key">for </span><span class="src-sym">(</span><span class="src-var">$i </span>= <span class="src-id">count</span><span class="src-sym">(</span><span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_STDOUT</span><span class="src-sym">]</span><span class="src-sym">)</span><span class="src-sym">; </span><span class="src-var">$i </span>> <span class="src-num">0</span><span class="src-sym">; </span><span class="src-var">$i</span>--<span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a242"></a> <span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_STDOUT</span><span class="src-sym">]</span><span class="src-sym">[</span><span class="src-var">$i</span><span class="src-sym">] </span>= <span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_STDOUT</span><span class="src-sym">]</span><span class="src-sym">[</span><span class="src-var">$i</span>-<span class="src-num">1</span><span class="src-sym">]</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a243"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a244"></a> <span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_STDOUT</span><span class="src-sym">]</span><span class="src-sym">[</span><span class="src-num">0</span><span class="src-sym">] </span>= <span class="src-id">T</span><span class="src-sym">(</span><span class="src-id">TK_WEBSPACE_STATUS_LIST_HEADER</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a245"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a246"></a> <span class="src-key">return </span><span class="src-var">$result</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a247"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a248"></a> </div></li>
<li><div class="src-line"><a name="a249"></a> /** </div></li>
<li><div class="src-line"><a name="a250"></a> * Returns the output of <i>svn log</i> </div></li>
<li><div class="src-line"><a name="a251"></a> * contained in a result array as produced</div></li>
<li><div class="src-line"><a name="a252"></a> * by <b>ExecSvnCmd</b>.</div></li>
<li><div class="src-line"><a name="a253"></a> * @return array Result of <i>svn log</i> execution.</div></li>
<li><div class="src-line"><a name="a254"></a> * @see ExecSvnCmd</div></li>
<li><div class="src-line"><a name="a255"></a> * </div></li>
<li><div class="src-line"><a name="a256"></a> * @since v1.0.0 </div></li>
<li><div class="src-line"><a name="a257"></a> */ </div></li>
<li><div class="src-line"><a name="a258"></a> <span class="src-key">function </span><span class="src-sym">&</span><span class="src-id">GetWebspaceLog</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a259"></a> <span class="src-var">$command </span>= <span class="src-str">'svn log'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a260"></a> <span class="src-var">$switches </span>= <span class="src-str">'--verbose --non-interactive'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a261"></a> <span class="src-var">$switches </span>.= <span class="src-id">GetSvnUsr</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a262"></a> <span class="src-var">$switches </span>.= <span class="src-id">GetSvnPw</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a263"></a> <span class="src-var">$arg </span>= <span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetWebspaceRootDir</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a264"></a> <span class="src-var">$result </span>= <span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$command</span><span class="src-sym">, </span><span class="src-var">$arg</span><span class="src-sym">, </span><span class="src-var">$switches</span><span class="src-sym">)</span><span class="src-sym">; </span></div></li>
<li><div class="src-line"><a name="a265"></a> <span class="src-key">return </span><span class="src-var">$result</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a266"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a267"></a> </div></li>
<li><div class="src-line"><a name="a268"></a> /** </div></li>
<li><div class="src-line"><a name="a269"></a> * Returns the array of tags available</div></li>
<li><div class="src-line"><a name="a270"></a> * in the repository.</div></li>
<li><div class="src-line"><a name="a271"></a> * @return array Version tags.</div></li>
<li><div class="src-line"><a name="a272"></a> * </div></li>
<li><div class="src-line"><a name="a273"></a> * @since v1.0.0 </div></li>
<li><div class="src-line"><a name="a274"></a> */ </div></li>
<li><div class="src-line"><a name="a275"></a> <span class="src-key">function </span><span class="src-sym">&</span><span class="src-id">GetTags</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a276"></a> <span class="src-var">$tag_dirs </span>= <span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetTagDirs</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a277"></a> <span class="src-var">$depth </span>= <span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetMaxTagDirDepth</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a278"></a> <span class="src-var">$paths </span>= <span class="src-id">GetRepositoryPaths</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">, </span><span class="src-var">$tag_dirs</span><span class="src-sym">, </span><span class="src-var">$depth</span><span class="src-sym">)</span><span class="src-sym">; </span></div></li>
<li><div class="src-line"><a name="a279"></a> <span class="src-key">return </span><span class="src-var">$paths</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a280"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a281"></a> </div></li>
<li><div class="src-line"><a name="a282"></a> /** </div></li>
<li><div class="src-line"><a name="a283"></a> * Returns the array of branches available</div></li>
<li><div class="src-line"><a name="a284"></a> * in the repository.</div></li>
<li><div class="src-line"><a name="a285"></a> * @return array Version branches.</div></li>
<li><div class="src-line"><a name="a286"></a> * </div></li>
<li><div class="src-line"><a name="a287"></a> * @since v1.0.0 </div></li>
<li><div class="src-line"><a name="a288"></a> */</div></li>
<li><div class="src-line"><a name="a289"></a> <span class="src-key">function </span><span class="src-sym">&</span><span class="src-id">GetBranches</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a290"></a> <span class="src-var">$branch_dirs </span>= <span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetBranchDirs</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a291"></a> <span class="src-var">$depth </span>= <span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetMaxBranchDirDepth</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a292"></a> <span class="src-var">$paths </span>= <span class="src-id">GetRepositoryPaths</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">, </span><span class="src-var">$branch_dirs</span><span class="src-sym">, </span><span class="src-var">$depth</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a293"></a> <span class="src-key">return </span><span class="src-var">$paths</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a294"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a295"></a> </div></li>
<li><div class="src-line"><a name="a296"></a> /** </div></li>
<li><div class="src-line"><a name="a297"></a> * Returns an array of repository paths starting</div></li>
<li><div class="src-line"><a name="a298"></a> * at $root with maximum directory count given in $level.</div></li>
<li><div class="src-line"><a name="a299"></a> * @param string or array $roots (Array of) repository directories to start from</div></li>
<li><div class="src-line"><a name="a300"></a> * @param int $depth Maximum directory depth.</div></li>
<li><div class="src-line"><a name="a301"></a> * @return array Array of paths of repository.</div></li>
<li><div class="src-line"><a name="a302"></a> * </div></li>
<li><div class="src-line"><a name="a303"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a304"></a> */ </div></li>
<li><div class="src-line"><a name="a305"></a> <span class="src-key">function </span><span class="src-id">GetRepositoryPaths</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">, </span><span class="src-var">$roots</span><span class="src-sym">, </span><span class="src-var">$depth</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a306"></a> <span class="src-var">$rep_root </span>= <span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetRepositoryRootDir</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a307"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-id">is_array</span><span class="src-sym">(</span><span class="src-var">$roots</span><span class="src-sym">))</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a308"></a> <span class="src-var">$root_dirs</span><span class="src-sym">[</span><span class="src-sym">] </span>= <span class="src-var">$roots</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a309"></a> <span class="src-sym">} </span><span class="src-key">else </span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a310"></a> <span class="src-var">$root_dirs </span>= <span class="src-var">$roots</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a311"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a312"></a> <span class="src-var">$command </span>= <span class="src-str">'svnlook tree'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a313"></a> <span class="src-var">$tags </span>= <span class="src-key">array</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a314"></a> <span class="src-key">foreach</span><span class="src-sym">(</span><span class="src-var">$root_dirs </span><span class="src-key">as </span><span class="src-var">$dir</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a315"></a> <span class="src-var">$arg </span>= <span class="src-var">$rep_root</span>.<span class="src-str">' '</span>.<span class="src-var">$dir</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a316"></a> <span class="src-var">$res </span>= <span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$command</span><span class="src-sym">, </span><span class="src-var">$arg</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a317"></a> <span class="src-var">$parent_dir </span>= <span class="src-var">$dir</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a318"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$res</span><span class="src-sym">[</span><span class="src-id">IDX_CMD_RC</span><span class="src-sym">] </span>== <span class="src-num">0</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a319"></a> <span class="src-var">$tags </span>= <span class="src-id">BuildSvnDirTree</span><span class="src-sym">(</span><span class="src-var">$tags</span><span class="src-sym">, </span><span class="src-var">$res</span><span class="src-sym">[</span><span class="src-id">IDX_STDOUT</span><span class="src-sym">]</span><span class="src-sym">, </span><span class="src-var">$depth</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a320"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a321"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a322"></a> <span class="src-key">return </span><span class="src-var">$tags</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a323"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a324"></a> </div></li>
<li><div class="src-line"><a name="a325"></a> /** </div></li>
<li><div class="src-line"><a name="a326"></a> * Recursive function to build SVN directory tree. </div></li>
<li><div class="src-line"><a name="a327"></a> * @param array $paths Reference to SVN path array</div></li>
<li><div class="src-line"><a name="a328"></a> * @param array $tree Reference to 'svnlook tree' stdout that</div></li>
<li><div class="src-line"><a name="a329"></a> * should be transformed into SVN paths.</div></li>
<li><div class="src-line"><a name="a330"></a> * @param int $max_level Mamimum level for paths.</div></li>
<li><div class="src-line"><a name="a331"></a> * @param int $idx Index within tree where to start from.</div></li>
<li><div class="src-line"><a name="a332"></a> * @param string $parent_dir Parent directory in path.</div></li>
<li><div class="src-line"><a name="a333"></a> * @param int $level Current directory path level.</div></li>
<li><div class="src-line"><a name="a334"></a> * @return array Paths already found.</div></li>
<li><div class="src-line"><a name="a335"></a> * </div></li>
<li><div class="src-line"><a name="a336"></a> * @since v1.0.0 </div></li>
<li><div class="src-line"><a name="a337"></a> */</div></li>
<li><div class="src-line"><a name="a338"></a> <span class="src-key">function </span><span class="src-sym">&</span><span class="src-id">BuildSvnDirTree</span><span class="src-sym">(</span><span class="src-sym">&</span><span class="src-var">$paths</span><span class="src-sym">, </span><span class="src-sym">&</span><span class="src-var">$tree</span><span class="src-sym">, </span><span class="src-var">$max_level</span><span class="src-sym">, </span><span class="src-sym">&</span><span class="src-var">$idx </span>= <span class="src-num">0</span><span class="src-sym">, </span><span class="src-var">$parent_dir </span>= <span class="src-str">''</span><span class="src-sym">, </span><span class="src-var">$level </span>= <span class="src-num">0</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a339"></a><span class="src-comm">//echo "BuildSvnDirTree start: ML: $max_level, IDX: $idx, PAR: $parent_dir, LEV: $level<br/>";</span></div></li>
<li><div class="src-line"><a name="a340"></a><span class="src-comm">//PrintDebugArray($paths, 'Paths');</span></div></li>
<li><div class="src-line"><a name="a341"></a><span class="src-comm">//PrintDebugArray($tree, 'Tree');</span></div></li>
<li><div class="src-line"><a name="a342"></a> </div></li>
<li><div class="src-line"><a name="a343"></a> <span class="src-var">$cnt </span>= <span class="src-id">count</span><span class="src-sym">(</span><span class="src-var">$tree</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a344"></a> <span class="src-var">$cur_level </span>= <span class="src-var">$level</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a345"></a> <span class="src-key">while</span><span class="src-sym">(</span><span class="src-var">$idx </span>< <span class="src-var">$cnt</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a346"></a> <span class="src-var">$line </span>= <span class="src-var">$tree</span><span class="src-sym">[</span><span class="src-var">$idx</span><span class="src-sym">]</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a347"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-id">strpos</span><span class="src-sym">(</span><span class="src-var">$line</span><span class="src-sym">, </span><span class="src-str">'/'</span><span class="src-sym">) </span>> <span class="src-num">1</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a348"></a> <span class="src-comm">// directory found</span></div></li>
<li><div class="src-line"><a name="a349"></a> <span class="src-var">$tmp </span>= <span class="src-id">substr</span><span class="src-sym">(</span><span class="src-var">$line</span><span class="src-sym">, </span><span class="src-num">0</span><span class="src-sym">, </span><span class="src-sym">(</span><span class="src-var">$max_level</span>+<span class="src-num">1</span><span class="src-sym">))</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a350"></a> <span class="src-var">$cur_level </span>= <span class="src-id">substr_count</span><span class="src-sym">(</span><span class="src-var">$tmp</span><span class="src-sym">, </span><span class="src-str">' '</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a351"></a> <span class="src-var">$dir </span>= <span class="src-id">trim</span><span class="src-sym">(</span><span class="src-var">$line</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a352"></a><span class="src-comm">//echo "BuildSvnDirTree DO: DIR: $dir, IDX: $idx, TMP: &lt;$tmp&gt;, PAR: $parent_dir, LEV: $level, CUR: $cur_level<br/>";</span></div></li>
<li><div class="src-line"><a name="a353"></a><span class="src-comm">//PrintDebugArray($paths, 'Paths');</span></div></li>
<li><div class="src-line"><a name="a354"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$cur_level </span>== <span class="src-var">$level</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a355"></a> <span class="src-var">$paths</span><span class="src-sym">[</span><span class="src-sym">] </span>= <span class="src-var">$parent_dir</span>.<span class="src-var">$dir</span><span class="src-sym">; </span></div></li>
<li><div class="src-line"><a name="a356"></a> <span class="src-var">$idx</span>++<span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a357"></a> <span class="src-sym">} </span><span class="src-key">else </span><span class="src-key">if </span><span class="src-sym">((</span><span class="src-var">$cur_level </span>> <span class="src-var">$level</span><span class="src-sym">) </span>&& <span class="src-sym">(</span><span class="src-var">$cur_level </span><= <span class="src-var">$max_level</span><span class="src-sym">))</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a358"></a> <span class="src-id">BuildSvnDirTree</span><span class="src-sym">(</span><span class="src-var">$paths</span><span class="src-sym">, </span><span class="src-var">$tree</span><span class="src-sym">, </span><span class="src-var">$max_level</span><span class="src-sym">, </span><span class="src-var">$idx</span><span class="src-sym">, </span><span class="src-var">$paths</span><span class="src-sym">[</span><span class="src-id">count</span><span class="src-sym">(</span><span class="src-var">$paths</span><span class="src-sym">)</span>-<span class="src-num">1</span><span class="src-sym">]</span><span class="src-sym">, </span><span class="src-sym">(</span><span class="src-var">$level</span>+<span class="src-num">1</span><span class="src-sym">))</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a359"></a> <span class="src-sym">} </span><span class="src-key">else </span><span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$cur_level </span>> <span class="src-var">$max_level</span><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a360"></a> <span class="src-var">$idx</span>++<span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a361"></a> <span class="src-sym">} </span><span class="src-key">else </span><span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$cur_level </span>< <span class="src-var">$level</span><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a362"></a> <span class="src-key">return </span><span class="src-var">$paths</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a363"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a364"></a> <span class="src-sym">} </span><span class="src-key">else </span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a365"></a> <span class="src-var">$idx</span>++<span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a366"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a367"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a368"></a> <span class="src-key">return </span><span class="src-var">$paths</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a369"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a370"></a> </div></li>
<li><div class="src-line"><a name="a371"></a> /** </div></li>
<li><div class="src-line"><a name="a372"></a> * Performs webspace update to head revision</div></li>
<li><div class="src-line"><a name="a373"></a> * and returns the output of 'svn update' </div></li>
<li><div class="src-line"><a name="a374"></a> * contained in a result array as produced</div></li>
<li><div class="src-line"><a name="a375"></a> * by <b>ExecSvnCmd</b>.</div></li>
<li><div class="src-line"><a name="a376"></a> * @return array Result of <i>svn update</i> execution.</div></li>
<li><div class="src-line"><a name="a377"></a> * @see ExecSvnCmd</div></li>
<li><div class="src-line"><a name="a378"></a> * </div></li>
<li><div class="src-line"><a name="a379"></a> * @since v1.0.0 </div></li>
<li><div class="src-line"><a name="a380"></a> */</div></li>
<li><div class="src-line"><a name="a381"></a> <span class="src-key">function </span><span class="src-id">UpdateWebspace</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a382"></a> <span class="src-var">$command </span>= <span class="src-str">'svn update'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a383"></a> <span class="src-var">$switches </span>= <span class="src-str">'--non-interactive'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a384"></a> <span class="src-var">$switches </span>.= <span class="src-id">GetSvnUsr</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a385"></a> <span class="src-var">$switches </span>.= <span class="src-id">GetSvnPw</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a386"></a> <span class="src-var">$arg </span>= <span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetWebspaceRootDir</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a387"></a> <span class="src-key">static </span><span class="src-var">$result </span>= <span class="src-id">NULL</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a388"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$result </span>== <span class="src-id">NULL</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a389"></a> <span class="src-var">$result </span>= <span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$command</span><span class="src-sym">, </span><span class="src-var">$arg</span><span class="src-sym">, </span><span class="src-var">$switches</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a390"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a391"></a> <span class="src-key">return </span><span class="src-var">$result</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a392"></a> </div></li>
<li><div class="src-line"><a name="a393"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a394"></a> </div></li>
<li><div class="src-line"><a name="a395"></a> /** </div></li>
<li><div class="src-line"><a name="a396"></a> * Performs workspace (webspace) checkout</div></li>
<li><div class="src-line"><a name="a397"></a> * and returns the output of 'svn checkout' </div></li>
<li><div class="src-line"><a name="a398"></a> * contained in a result array as produced</div></li>
<li><div class="src-line"><a name="a399"></a> * by <b>ExecSvnCmd</b>.</div></li>
<li><div class="src-line"><a name="a400"></a> * @return array Result of <i>svn checkout</i> execution.</div></li>
<li><div class="src-line"><a name="a401"></a> * @see ExecSvnCmd</div></li>
<li><div class="src-line"><a name="a402"></a> * </div></li>
<li><div class="src-line"><a name="a403"></a> * @since v1.0.0 </div></li>
<li><div class="src-line"><a name="a404"></a> */</div></li>
<li><div class="src-line"><a name="a405"></a> <span class="src-key">function </span><span class="src-id">CheckoutWebspace</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a406"></a> <span class="src-var">$command </span>= <span class="src-str">'svn checkout'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a407"></a> <span class="src-var">$switches </span>= <span class="src-str">'--revision HEAD --non-interactive'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a408"></a> <span class="src-var">$switches </span>.= <span class="src-id">GetSvnUsr</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a409"></a> <span class="src-var">$switches </span>.= <span class="src-id">GetSvnPw</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a410"></a> <span class="src-var">$arg </span>= <span class="src-str">'file://'</span>.<span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetRepositoryRootDir</span><span class="src-sym">(</span><span class="src-sym">)</span>.<span class="src-str">'/trunk'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a411"></a> <span class="src-var">$arg </span>= <span class="src-var">$arg</span>.<span class="src-str">' '</span>.<span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetWebspaceRootDir</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a412"></a> <span class="src-key">return </span><span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$command</span><span class="src-sym">, </span><span class="src-var">$arg</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a413"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a414"></a> </div></li>
<li><div class="src-line"><a name="a415"></a> /** </div></li>
<li><div class="src-line"><a name="a416"></a> * Performs webspace cleanup</div></li>
<li><div class="src-line"><a name="a417"></a> * and returns the output of <i>svn cleanup</i> </div></li>
<li><div class="src-line"><a name="a418"></a> * contained in a result array as produced</div></li>
<li><div class="src-line"><a name="a419"></a> * by <b>ExecSvnCmd</b>.</div></li>
<li><div class="src-line"><a name="a420"></a> * @return array Result of <i>svn cleanup</i> execution.</div></li>
<li><div class="src-line"><a name="a421"></a> * @see ExecSvnCmd</div></li>
<li><div class="src-line"><a name="a422"></a> * </div></li>
<li><div class="src-line"><a name="a423"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a424"></a> */ </div></li>
<li><div class="src-line"><a name="a425"></a> <span class="src-key">function </span><span class="src-sym">&</span><span class="src-id">CleanupWebspace</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a426"></a> <span class="src-var">$command </span>= <span class="src-str">'svn cleanup'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a427"></a> <span class="src-var">$switches </span>= <span class="src-str">'--non-interactive'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a428"></a> <span class="src-var">$switches </span>.= <span class="src-id">GetSvnUsr</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a429"></a> <span class="src-var">$switches </span>.= <span class="src-id">GetSvnPw</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a430"></a> <span class="src-var">$arg </span>= <span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetWebspaceRootDir</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a431"></a> <span class="src-var">$result </span>= <span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$command</span><span class="src-sym">, </span><span class="src-var">$arg</span><span class="src-sym">)</span><span class="src-sym">; </span></div></li>
<li><div class="src-line"><a name="a432"></a> <span class="src-key">return </span><span class="src-var">$result</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a433"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a434"></a> </div></li>
<li><div class="src-line"><a name="a435"></a> /** </div></li>
<li><div class="src-line"><a name="a436"></a> * Switches webspace to given repository path</div></li>
<li><div class="src-line"><a name="a437"></a> * @param string $path Repository path to switch to</div></li>
<li><div class="src-line"><a name="a438"></a> * A path without repository root should be applied.</div></li>
<li><div class="src-line"><a name="a439"></a> * @return array Result of <i>svn switch</i> execution.</div></li>
<li><div class="src-line"><a name="a440"></a> * @see ExecSvnCmd</div></li>
<li><div class="src-line"><a name="a441"></a> * </div></li>
<li><div class="src-line"><a name="a442"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a443"></a> */</div></li>
<li><div class="src-line"><a name="a444"></a> <span class="src-key">function </span><span class="src-id">SwitchWebspace</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">, </span><span class="src-var">$path</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a445"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$path </span>== <span class="src-id">NULL</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a446"></a> <span class="src-var">$path </span>= <span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetTrunkDir</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a447"></a> <span class="src-sym">} </span></div></li>
<li><div class="src-line"><a name="a448"></a> <span class="src-var">$command </span>= <span class="src-str">'svn switch'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a449"></a> <span class="src-var">$switches </span>= <span class="src-str">'--non-interactive'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a450"></a> <span class="src-var">$switches </span>.= <span class="src-id">GetSvnUsr</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a451"></a> <span class="src-var">$switches </span>.= <span class="src-id">GetSvnPw</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a452"></a> <span class="src-var">$arg </span>= <span class="src-str">'file://'</span>.<span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetRepositoryRootDir</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a453"></a> <span class="src-var">$arg </span>.= <span class="src-str">'/'</span>.<span class="src-var">$path</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a454"></a> <span class="src-var">$arg </span>.= <span class="src-str">' '</span>.<span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetWebspaceRootDir</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">; </span></div></li>
<li><div class="src-line"><a name="a455"></a> <span class="src-key">return </span><span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$command</span><span class="src-sym">, </span><span class="src-var">$arg</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a456"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a457"></a> </div></li>
<li><div class="src-line"><a name="a458"></a> /** </div></li>
<li><div class="src-line"><a name="a459"></a> * Returns the SVN User switch for the given config. </div></li>
<li><div class="src-line"><a name="a460"></a> * @param SwcConfig $config Config for retrieving user.</div></li>
<li><div class="src-line"><a name="a461"></a> * @return string svn switch for user (empty string if no user</div></li>
<li><div class="src-line"><a name="a462"></a> * is applied.</div></li>
<li><div class="src-line"><a name="a463"></a> * </div></li>
<li><div class="src-line"><a name="a464"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a465"></a> */</div></li>
<li><div class="src-line"><a name="a466"></a> <span class="src-key">function </span><span class="src-id">GetSvnUsr</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a467"></a> <span class="src-var">$user </span>= <span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetSvnUser</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a468"></a> <span class="src-var">$switch </span>= <span class="src-str">''</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a469"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$user </span>!= <span class="src-id">NULL </span>&& <span class="src-var">$user </span>!= <span class="src-str">''</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a470"></a> <span class="src-var">$switch </span>= <span class="src-str">' --username '</span>.<span class="src-var">$user</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a471"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a472"></a> <span class="src-key">return </span><span class="src-var">$switch</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a473"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a474"></a> </div></li>
<li><div class="src-line"><a name="a475"></a> /** </div></li>
<li><div class="src-line"><a name="a476"></a> * Returns the SVN password switch for the given config. </div></li>
<li><div class="src-line"><a name="a477"></a> * @param SwcConfig $config Config for retrieving user.</div></li>
<li><div class="src-line"><a name="a478"></a> * @return string svn switch for password (empty string if no password</div></li>
<li><div class="src-line"><a name="a479"></a> * is applied.</div></li>
<li><div class="src-line"><a name="a480"></a> * </div></li>
<li><div class="src-line"><a name="a481"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a482"></a> */</div></li>
<li><div class="src-line"><a name="a483"></a> <span class="src-key">function </span><span class="src-id">GetSvnPw</span><span class="src-sym">(</span><span class="src-var">$config</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a484"></a> <span class="src-var">$pw </span>= <span class="src-var">$config</span><span class="src-sym">-></span><span class="src-id">GetSvnPassword</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a485"></a> <span class="src-var">$switch </span>= <span class="src-str">''</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a486"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$pw </span>!= <span class="src-id">NULL </span>&& <span class="src-var">$pw </span>!= <span class="src-str">''</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a487"></a> <span class="src-var">$switch </span>= <span class="src-str">' --password '</span>.<span class="src-var">$pw</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a488"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a489"></a> <span class="src-key">return </span><span class="src-var">$switch</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a490"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a491"></a> </div></li>
<li><div class="src-line"><a name="a492"></a> /** </div></li>
<li><div class="src-line"><a name="a493"></a> * Executes an SVN command.</div></li>
<li><div class="src-line"><a name="a494"></a> * @param string $cmd Command to execute</div></li>
<li><div class="src-line"><a name="a495"></a> * @param string $switch Switches to be applied for the given command</div></li>
<li><div class="src-line"><a name="a496"></a> * @param string $arg Arguments of the command</div></li>
<li><div class="src-line"><a name="a497"></a> * @return array Result array containing commandline (idx = IDX_CMDLINE),</div></li>
<li><div class="src-line"><a name="a498"></a> * standard out array (idx = IDX_STDOUT), error array (idx = IDX_ERROUT),</div></li>
<li><div class="src-line"><a name="a499"></a> * and return code of the command (idx = IDX_CMD_RC). </div></li>
<li><div class="src-line"><a name="a500"></a> * </div></li>
<li><div class="src-line"><a name="a501"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a502"></a> */</div></li>
<li><div class="src-line"><a name="a503"></a> <span class="src-key">function </span><span class="src-sym">&</span><span class="src-id">ExecSvnCmd</span><span class="src-sym">(</span><span class="src-var">$cmd</span><span class="src-sym">, </span><span class="src-var">$arg </span>= <span class="src-str">''</span><span class="src-sym">, </span><span class="src-var">$switches </span>= <span class="src-str">''</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a504"></a> <span class="src-var">$descriptorspec </span>= <span class="src-key">array</span><span class="src-sym">(</span></div></li>
<li><div class="src-line"><a name="a505"></a> <span class="src-num">0 </span>=> <span class="src-key">array</span><span class="src-sym">(</span><span class="src-str">"pipe"</span><span class="src-sym">, </span><span class="src-str">"r"</span><span class="src-sym">)</span><span class="src-sym">, </span><span class="src-comm">// stdin is a pipe that the child will read from</span></div></li>
<li><div class="src-line"><a name="a506"></a> <span class="src-num">1 </span>=> <span class="src-key">array</span><span class="src-sym">(</span><span class="src-str">"pipe"</span><span class="src-sym">, </span><span class="src-str">"w"</span><span class="src-sym">)</span><span class="src-sym">, </span><span class="src-comm">// stdout is a pipe that the child will write to</span></div></li>
<li><div class="src-line"><a name="a507"></a> <span class="src-num">2 </span>=> <span class="src-key">array</span><span class="src-sym">(</span><span class="src-str">"pipe"</span><span class="src-sym">, </span><span class="src-str">"w"</span><span class="src-sym">) </span><span class="src-comm">// stderr is a pipe to write to</span></div></li>
<li><div class="src-line"><a name="a508"></a> <span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a509"></a> </div></li>
<li><div class="src-line"><a name="a510"></a> <span class="src-var">$cwd </span>= <span class="src-id">NULL</span><span class="src-sym">; </span><span class="src-comm">//'/tmp';</span></div></li>
<li><div class="src-line"><a name="a511"></a> <span class="src-var">$pipes </span>= <span class="src-id">NULL</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a512"></a> </div></li>
<li><div class="src-line"><a name="a513"></a> <span class="src-var">$cmdline </span>= <span class="src-var">$cmd</span>.<span class="src-str">" "</span>.<span class="src-var">$switches</span>.<span class="src-str">" "</span>.<span class="src-var">$arg</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a514"></a> <span class="src-var">$process </span>= <span class="src-id">proc_open</span><span class="src-sym">(</span><span class="src-var">$cmdline</span><span class="src-sym">, </span><span class="src-var">$descriptorspec</span><span class="src-sym">, </span><span class="src-var">$pipes</span><span class="src-sym">, </span><span class="src-var">$cwd</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a515"></a> </div></li>
<li><div class="src-line"><a name="a516"></a> <span class="src-var">$result </span>= <span class="src-key">array</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a517"></a> <span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_CMDLINE</span><span class="src-sym">] </span>= <span class="src-var">$cmdline</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a518"></a> <span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_STDOUT</span><span class="src-sym">] </span>= <span class="src-key">array</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a519"></a> <span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_ERROUT</span><span class="src-sym">] </span>= <span class="src-key">array</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a520"></a> <span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_CMD_RC</span><span class="src-sym">] </span>= -<span class="src-num">1</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a521"></a> </div></li>
<li><div class="src-line"><a name="a522"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-id">is_resource</span><span class="src-sym">(</span><span class="src-var">$process</span><span class="src-sym">)) </span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a523"></a> <span class="src-comm">// $pipes now looks like this:</span></div></li>
<li><div class="src-line"><a name="a524"></a> <span class="src-comm">// 0 => writeable handle connected to child stdin</span></div></li>
<li><div class="src-line"><a name="a525"></a> <span class="src-comm">// 1 => readable handle connected to child stdout</span></div></li>
<li><div class="src-line"><a name="a526"></a> <span class="src-comm">// 1 => readable handle connected to child errout</span></div></li>
<li><div class="src-line"><a name="a527"></a> </div></li>
<li><div class="src-line"><a name="a528"></a> <span class="src-var">$result </span>= <span class="src-key">array</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a529"></a> <span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_CMDLINE</span><span class="src-sym">] </span>= <span class="src-var">$cmdline</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a530"></a> <span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_STDOUT</span><span class="src-sym">] </span>= <span class="src-id">GetLineArray</span><span class="src-sym">(</span><span class="src-var">$pipes</span><span class="src-sym">[</span><span class="src-num">1</span><span class="src-sym">]</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a531"></a> <span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_ERROUT</span><span class="src-sym">] </span>= <span class="src-id">GetLineArray</span><span class="src-sym">(</span><span class="src-var">$pipes</span><span class="src-sym">[</span><span class="src-num">2</span><span class="src-sym">]</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a532"></a> </div></li>
<li><div class="src-line"><a name="a533"></a> <span class="src-id">fclose</span><span class="src-sym">(</span><span class="src-var">$pipes</span><span class="src-sym">[</span><span class="src-num">0</span><span class="src-sym">]</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a534"></a> <span class="src-id">fclose</span><span class="src-sym">(</span><span class="src-var">$pipes</span><span class="src-sym">[</span><span class="src-num">1</span><span class="src-sym">]</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a535"></a> <span class="src-id">fclose</span><span class="src-sym">(</span><span class="src-var">$pipes</span><span class="src-sym">[</span><span class="src-num">2</span><span class="src-sym">]</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a536"></a> </div></li>
<li><div class="src-line"><a name="a537"></a> <span class="src-comm">// It is important that you close any pipes before calling</span></div></li>
<li><div class="src-line"><a name="a538"></a> <span class="src-comm">// proc_close in order to avoid a deadlock</span></div></li>
<li><div class="src-line"><a name="a539"></a> <span class="src-var">$result</span><span class="src-sym">[</span><span class="src-id">IDX_CMD_RC</span><span class="src-sym">] </span>= <span class="src-id">proc_close</span><span class="src-sym">(</span><span class="src-var">$process</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a540"></a> </div></li>
<li><div class="src-line"><a name="a541"></a><span class="src-comm">// echo "CMD: $cmdline<br/>";</span></div></li>
<li><div class="src-line"><a name="a542"></a><span class="src-comm">// PrintDebugArray($result, "Result");</span></div></li>
<li><div class="src-line"><a name="a543"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a544"></a> <span class="src-key">return </span><span class="src-var">$result</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a545"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a546"></a> </div></li>
<li><div class="src-line"><a name="a547"></a> /** </div></li>
<li><div class="src-line"><a name="a548"></a> * Reads data from a resource (e.g. pipe) and </div></li>
<li><div class="src-line"><a name="a549"></a> * returns an array that contains each line for a </div></li>
<li><div class="src-line"><a name="a550"></a> * separate index.</div></li>
<li><div class="src-line"><a name="a551"></a> * @param resource $handle Resource handle</div></li>
<li><div class="src-line"><a name="a552"></a> * @param int $length Maximum line length used if a line is not delimited.</div></li>
<li><div class="src-line"><a name="a553"></a> * @return array Array containing a delimited line per index.</div></li>
<li><div class="src-line"><a name="a554"></a> * </div></li>
<li><div class="src-line"><a name="a555"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a556"></a> */</div></li>
<li><div class="src-line"><a name="a557"></a> <span class="src-key">function </span><span class="src-sym">&</span><span class="src-id">GetLineArray</span><span class="src-sym">(</span><span class="src-var">$handle</span><span class="src-sym">, </span><span class="src-var">$length </span>= <span class="src-num">4096</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a558"></a> <span class="src-var">$content </span>= <span class="src-key">array</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a559"></a> <span class="src-var">$line </span>= <span class="src-id">fgets</span><span class="src-sym">(</span><span class="src-var">$handle</span><span class="src-sym">, </span><span class="src-var">$length</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a560"></a> <span class="src-key">while </span><span class="src-sym">(</span><span class="src-var">$line </span>!== <span class="src-id">false</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a561"></a> <span class="src-var">$content</span><span class="src-sym">[</span><span class="src-sym">] </span>= <span class="src-var">$line</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a562"></a> <span class="src-var">$line </span>= <span class="src-id">fgets</span><span class="src-sym">(</span><span class="src-var">$handle</span><span class="src-sym">, </span><span class="src-var">$length</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a563"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a564"></a> <span class="src-key">return </span><span class="src-var">$content</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a565"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a566"></a> </div></li>
<li><div class="src-line"><a name="a567"></a> /** </div></li>
<li><div class="src-line"><a name="a568"></a> * Returns a string of the given array that is </div></li>
<li><div class="src-line"><a name="a569"></a> * encapsulated within $startstr and $endstr.</div></li>
<li><div class="src-line"><a name="a570"></a> * @param array $array Line array as provided by 'GetLineArray' to</div></li>
<li><div class="src-line"><a name="a571"></a> * search the string within.</div></li>
<li><div class="src-line"><a name="a572"></a> * @param string $startstr String to search.</div></li>
<li><div class="src-line"><a name="a573"></a> * @param string $endstr String to delimit search. If NULL, the returned string </div></li>
<li><div class="src-line"><a name="a574"></a> * is not delimited.</div></li>
<li><div class="src-line"><a name="a575"></a> * @return string String within a 'line' of $array that starts with '$startstr'</div></li>
<li><div class="src-line"><a name="a576"></a> * and ends with '$endstr'. If $startstr is not found, '?' is returned. $startstr</div></li>
<li><div class="src-line"><a name="a577"></a> * is not returned.</div></li>
<li><div class="src-line"><a name="a578"></a> * </div></li>
<li><div class="src-line"><a name="a579"></a> * @since v1.0.0</div></li>
<li><div class="src-line"><a name="a580"></a> */</div></li>
<li><div class="src-line"><a name="a581"></a> <span class="src-key">function </span><span class="src-id">ParseArray </span><span class="src-sym">(</span><span class="src-sym">&</span><span class="src-var">$array</span><span class="src-sym">, </span><span class="src-var">$startstr</span><span class="src-sym">, </span><span class="src-var">$endstr </span>= <span class="src-id">NULL</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a582"></a> <span class="src-var">$idx </span>= <span class="src-num">0</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a583"></a> <span class="src-key">while </span><span class="src-sym">(</span><span class="src-var">$idx </span>< <span class="src-id">count</span><span class="src-sym">(</span><span class="src-var">$array</span><span class="src-sym">) </span>&& <span class="src-id">strpos</span><span class="src-sym">(</span><span class="src-var">$array</span><span class="src-sym">[</span><span class="src-var">$idx</span><span class="src-sym">]</span><span class="src-sym">, </span><span class="src-var">$startstr</span><span class="src-sym">) </span>=== <span class="src-id">false</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a584"></a> <span class="src-var">$idx</span>++<span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a585"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a586"></a> <span class="src-var">$val </span>= <span class="src-str">'?'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a587"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$idx </span>< <span class="src-id">count</span><span class="src-sym">(</span><span class="src-var">$array</span><span class="src-sym">))</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a588"></a> <span class="src-var">$start </span>= <span class="src-id">strpos</span><span class="src-sym">(</span><span class="src-var">$array</span><span class="src-sym">[</span><span class="src-var">$idx</span><span class="src-sym">]</span><span class="src-sym">, </span><span class="src-var">$startstr</span><span class="src-sym">) </span>+ <span class="src-id">strlen</span><span class="src-sym">(</span><span class="src-var">$startstr</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a589"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$endstr </span>!= <span class="src-id">NULL</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a590"></a> <span class="src-var">$len </span>= <span class="src-id">strpos</span><span class="src-sym">(</span><span class="src-var">$array</span><span class="src-sym">[</span><span class="src-var">$idx</span><span class="src-sym">]</span><span class="src-sym">, </span><span class="src-var">$endstr</span><span class="src-sym">) </span>- <span class="src-var">$start</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a591"></a> <span class="src-var">$val </span>= <span class="src-id">substr</span><span class="src-sym">(</span><span class="src-var">$array</span><span class="src-sym">[</span><span class="src-var">$idx</span><span class="src-sym">]</span><span class="src-sym">, </span><span class="src-var">$start</span><span class="src-sym">, </span><span class="src-var">$len</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a592"></a> <span class="src-sym">} </span><span class="src-key">else </span><span class="src-sym">{ </span></div></li>
<li><div class="src-line"><a name="a593"></a> <span class="src-var">$val </span>= <span class="src-id">substr</span><span class="src-sym">(</span><span class="src-var">$array</span><span class="src-sym">[</span><span class="src-var">$idx</span><span class="src-sym">]</span><span class="src-sym">, </span><span class="src-var">$start</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a594"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a595"></a> <span class="src-var">$val </span>= <span class="src-id">trim</span><span class="src-sym">(</span><span class="src-var">$val</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a596"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a597"></a> <span class="src-key">return </span><span class="src-var">$val</span><span class="src-sym">; </span></div></li>
<li><div class="src-line"><a name="a598"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a599"></a> </div></li>
<li><div class="src-line"><a name="a600"></a> /** </div></li>
<li><div class="src-line"><a name="a601"></a> * HTML and user friendly output of an array.</div></li>
<li><div class="src-line"><a name="a602"></a> * @param array $array Array to print</div></li>
<li><div class="src-line"><a name="a603"></a> * @param string $name Name of the array, also printed.</div></li>
<li><div class="src-line"><a name="a604"></a> * </div></li>
<li><div class="src-line"><a name="a605"></a> * @since v1.0.0 </div></li>
<li><div class="src-line"><a name="a606"></a> */</div></li>
<li><div class="src-line"><a name="a607"></a> <span class="src-key">function </span><span class="src-id">PrintArray</span><span class="src-sym">(</span><span class="src-var">$array</span><span class="src-sym">, </span><span class="src-var">$name </span>= <span class="src-str">''</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a608"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-id">is_array</span><span class="src-sym">(</span><span class="src-var">$array</span><span class="src-sym">))</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a609"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-id">strlen</span><span class="src-sym">(</span><span class="src-var">$name</span><span class="src-sym">) </span>> <span class="src-num">0</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a610"></a> echo <span class="src-str">'<span class="text_low_bold">'</span>.<span class="src-var">$name</span>.<span class="src-str">'</span><br/>'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a611"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a612"></a> echo <span class="src-str">'<pre>'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a613"></a> <span class="src-key">foreach</span><span class="src-sym">(</span><span class="src-var">$array </span><span class="src-key">as </span><span class="src-var">$line</span><span class="src-sym">)</span><span class="src-sym">{</span></div></li>
<li><div class="src-line"><a name="a614"></a> echo <span class="src-var">$line</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a615"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a616"></a> echo <span class="src-str">'</pre>'</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><a name="a617"></a> <span class="src-sym">}</span></div></li>
<li><div class="src-line"><a name="a618"></a> <span class="src-sym">} </span></div></li>
<li><div class="src-line"><a name="a619"></a> </div></li>
<li><div class="src-line"><a name="a620"></a><span class="src-php">?></span></div></li>
</ol></pre></div>
</span></div>
<div class="credit">
<hr class="separator" />
Documentation generated on Sat, 24 Jun 2006 00:17:58 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.3.0RC6</a><br>
for <img src="../media/sTEFANs-sig-small.jpg" alt="sTEFANs" /> POWERED BY <a href="http://www.ebc.bz" target="_blank"><img src="../media/eBC.bz-logo-small.jpg" alt="eBC.bz" /></a>
</div>
</td></tr></table>
</td>
</tr>
</table>
</body>
</html>