//
// aegis - project change supervisor
// Copyright (C) 2004-2006, 2008 Peter Miller
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see
// .
//
#include
void
directory_list_constructor(directory_list_ty *dlp)
{
dlp->length = 0;
dlp->maximum = 0;
dlp->item = 0;
}
void
directory_list_destructor(directory_list_ty *dlp)
{
size_t j;
for (j = 0; j < dlp->length; ++j)
directory_destructor(dlp->item+ j);
delete [] dlp->item;
dlp->length = 0;
dlp->maximum = 0;
dlp->item = 0;
}
void
directory_list_rewind(directory_list_ty *dlp)
{
size_t j;
for (j = 0; j < dlp->length; ++j)
directory_destructor(dlp->item + j);
dlp->length = 0;
}
void
directory_list_append(directory_list_ty *dlp, string_ty *client_side,
string_ty *server_side)
{
directory_ty *dp;
if (dlp->length >= dlp->maximum)
{
dlp->maximum = dlp->maximum * 2 + 4;
directory_ty *new_item = new directory_ty [dlp->maximum];
for (size_t j = 0; j < dlp->length; ++j)
new_item[j] = dlp->item[j];
delete [] dlp->item;
dlp->item = new_item;
}
dp = dlp->item + dlp->length++;
directory_constructor(dp, client_side, server_side);
}