/* -*-c-*-
*
- * $Id: dstr.c,v 1.14 2000/06/17 10:37:39 mdw Exp $
+ * $Id: dstr.c,v 1.16 2004/04/08 01:36:11 mdw Exp $
*
* Handle dynamically growing strings
*
* (c) 1998 Straylight/Edgeware
*/
-/*----- Licensing notice --------------------------------------------------*
+/*----- Licensing notice --------------------------------------------------*
*
* This file is part of the mLib utilities library.
*
* it under the terms of the GNU Library General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
- *
+ *
* mLib 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 Library General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Library General Public
* License along with mLib; if not, write to the Free
* Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
* MA 02111-1307, USA.
*/
-/*----- Revision history --------------------------------------------------*
- *
- * $Log: dstr.c,v $
- * Revision 1.14 2000/06/17 10:37:39 mdw
- * Add support for arena management.
- *
- * Revision 1.13 1999/12/22 15:39:28 mdw
- * Fix overflow in dstr_putline.
- *
- * Revision 1.12 1999/12/10 23:42:04 mdw
- * Change header file guard names.
- *
- * Revision 1.11 1999/10/28 22:05:29 mdw
- * Modify and debug allocation routines.
- *
- * Revision 1.10 1999/10/04 21:44:47 mdw
- * Move `dstr_putf' and `dstr_vputf' into a separate source file.
- *
- * Revision 1.9 1999/07/06 19:16:06 mdw
- * Simplify buffer-growing algorithm. Just double it each time.
- *
- * Revision 1.8 1999/06/01 09:47:52 mdw
- * Fix nasty bugs in `dstr_vputf'.
- *
- * Revision 1.7 1999/05/21 22:14:30 mdw
- * Take advantage of the new dynamic string macros.
- *
- * Revision 1.6 1999/05/21 08:38:33 mdw
- * Implement some more functions in terms of macros.
- *
- * Revision 1.5 1999/05/13 22:47:57 mdw
- * Misc documentation fixes. Change `-ise' to `-ize' throughout.
- *
- * Revision 1.4 1999/05/06 19:51:35 mdw
- * Reformatted the LGPL notice a little bit.
- *
- * Revision 1.3 1999/05/05 18:50:31 mdw
- * Change licensing conditions to LGPL.
- *
- * Revision 1.2 1998/12/15 23:53:22 mdw
- * New functions `dstr_putf' and `dstr_vputf' which do `printf'-style
- * formatting in a safe way.
- *
- * Revision 1.1.1.1 1998/06/17 23:44:42 mdw
- * Initial version of mLib
- *
- */
-
/*----- Header files ------------------------------------------------------*/
#include <stdio.h>
do nsz <<= 1; while (nsz < rq);
if (d->buf)
- d->buf = x_realloc(d->a, d->buf, nsz);
+ d->buf = x_realloc(d->a, d->buf, nsz, d->sz);
else
d->buf = x_alloc(d->a, nsz);
d->sz = nsz;
void dstr_tidy(dstr *d)
{
- d->buf = x_realloc(d->a, d->buf, d->len + 1);
+ d->buf = x_realloc(d->a, d->buf, d->len + 1, d->sz);
d->buf[d->len] = 0;
d->sz = d->len + 1;
}