#include <stdio.h>
#ifdef _BSDI
#include <stdlib.h>
#else
#include <malloc.h>
#endif
#include <memory.h>
#include <string.h>

char *stralloc(size)
unsigned size;
{	char *p;

	if (!size) size=1;
	if ((p=(char*)malloc(size))) {
		memset(p,0,size);
		}
	else {	fprintf(stderr,"\nFehler bei malloc %d\n", size);
		exit(0);
		}
	return(p);
	}

char *strdupcat(char *p,char *q)
{	char *s;

	if (p && *p && q && *q) {
		s = stralloc(strlen(p)+strlen(q)+1);
		strcpy(s,p); strcat(s,q);
		}
	else
	if (p && *p)
		s=strdup(p);
	else
	if (q && *q)
		s=strdup(q);
	else {	s=stralloc(1); *s=0; }

	return(s);
	}

char *strrepcat(char *p,char *q)
{	char *s;

	s = strdupcat(p,q);
	if (p) free(p);
	return(s);
	}

int is_empty(char *p)
{	while ((*p=='\t') || (*p==' ')) p++;
	return(!*p);
	}
