85 lines
1.5 KiB
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
|
|
|
|
/****************************************************************************/
|