X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Flib%2Falist.c;h=7b53dfe8bc0a0c5b206c787ca4f6c2538a2b58c8;hb=2df589363f0c60f94ca9d5e856dfaf7cc5fcb178;hp=ea60835b0d771411ef0217d03a8a1b3ed424dcb4;hpb=a0d5069bf741f628cd6752fc8c3ded4429dd19d8;p=bacula%2Fbacula diff --git a/bacula/src/lib/alist.c b/bacula/src/lib/alist.c index ea60835b0d..7b53dfe8bc 100644 --- a/bacula/src/lib/alist.c +++ b/bacula/src/lib/alist.c @@ -1,46 +1,54 @@ /* - * Bacula array list routines + Bacula® - The Network Backup Solution + + Copyright (C) 2003-2008 Free Software Foundation Europe e.V. + + The main author of Bacula is Kern Sibbald, with contributions from + many others, a complete list can be found in the file AUTHORS. + This program is Free Software; you can redistribute it and/or + modify it under the terms of version two of the GNU General Public + License as published by the Free Software Foundation and included + in the file LICENSE. + + 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, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. + + Bacula® is a registered trademark of Kern Sibbald. + The licensor of Bacula is the Free Software Foundation Europe + (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, + Switzerland, email:ftf@fsfeurope.org. +*/ +/* + * Bacula array list routines * * alist is a simple malloc'ed array of pointers. For the moment, - * it simply malloc's a bigger array controlled by num_grow. - * Default is to realloc the pointer array for each new member. + * it simply malloc's a bigger array controlled by num_grow. + * Default is to realloc the pointer array for each new member. * * Kern Sibbald, June MMIII * * Version $Id$ * */ -/* - Copyright (C) 2000-2003 Kern Sibbald and John Walker - - 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 2 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, write to the Free - Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - MA 02111-1307, USA. - - */ #include "bacula.h" /* - * Private grow list function. Used to insure that + * Private grow list function. Used to insure that * at least one more "slot" is available. */ void alist::grow_list() { - if (num_items == 0) { + if (items == NULL) { if (num_grow == 0) { - num_grow = 1; /* default if not initialized */ + num_grow = 1; /* default if not initialized */ } items = (void **)malloc(num_grow * sizeof(void *)); max_items = num_grow; @@ -65,7 +73,7 @@ void *alist::last() if (num_items == 0) { return NULL; } else { - cur_item = num_items; + cur_item = num_items; return items[num_items-1]; } } @@ -89,7 +97,7 @@ void *alist::prev() } /* - * prepend an item to the list + * prepend an item to the list -- i.e. add to beginning */ void alist::prepend(void *item) { grow_list(); @@ -143,11 +151,13 @@ void alist::destroy() { if (items) { if (own_items) { - for (int i=0; imylist.init(); printf("Manual allocation/destruction of list:\n"); - + for (int i=0; i<20; i++) { sprintf(buf, "This is item %d", i); fileset->mylist.append(bstrdup(buf)); - } + } for (int i=0; i< fileset->mylist.size(); i++) { - printf("Item %d = %s\n", i, (char *)fileset->mylist[i]); + printf("Item %d = %s\n", i, (char *)fileset->mylist[i]); } fileset->mylist.destroy(); free(fileset); @@ -186,15 +196,15 @@ int main() for (int i=0; i<20; i++) { sprintf(buf, "This is item %d", i); mlist->append(bstrdup(buf)); - } + } for (int i=0; i< mlist->size(); i++) { - printf("Item %d = %s\n", i, (char *)mlist->get(i)); + printf("Item %d = %s\n", i, (char *)mlist->get(i)); } delete mlist; - sm_dump(False); + sm_dump(false); } #endif