amiga-whois/wasprint.c

85 lines
1.5 KiB
C

/*
* Written by Carsten Larsen.
* Public domain.
*/
#include "config.h"
void cpy1(char **dest, const char *src)
{
char *nbuf;
int len = strlen(src);
if ((nbuf = malloc(len + 1)) == NULL)
err0(1, "malloc");
memcpy(nbuf, src, len);
nbuf[len] = '\0';
*dest = nbuf;
}
void cpy2(char **dest, const char *src1, const char *src2)
{
char *nbuf;
int len = strlen(src1) + strlen(src2);
if ((nbuf = malloc(len + 1)) == NULL)
err0(1, "malloc");
memcpy(nbuf, src1, len);
nbuf[len] = '\0';
strcat(nbuf, src2); // TODO: Change to fast copy
*dest = nbuf;
}
void cpy1pad(char **dest, int minlen, const char *src)
{
char *nbuf;
int alloclen, pad;
int len = strlen(src);
if (len < minlen) {
alloclen = minlen;
pad = minlen - len;
} else {
alloclen = len;
pad = 0;
}
if ((nbuf = malloc(alloclen + 1)) == NULL)
err0(1, "malloc");
while (pad-- > 0) {
*nbuf++ = ' ';
}
memcpy(nbuf, src, len);
nbuf[len] = '\0';
*dest = nbuf;
}
/****************************************************************************/
#ifdef __AMIGA__
int isblank(int c)
{
return c == '\t' || c == ' ' ;
}
int isspace(int c)
{
return c == '\t' ||
c == '\r' ||
c == '\n' ||
c == '\v' ||
c == '\f' ||
c == ' ';
}
#endif
/****************************************************************************/