/*
 * Copyright 1993, 1995 Christopher Seiwald.
 *
 * This file is part of Jam - see jam.c for Copyright information.
 */

/*
 * newstr.h - string manipulation routines
 */

char * copystr ( char * );
void   freestr ( char * );
char * newstr  ( char * );
void   str_done();
