69 lines
1.2 KiB
C
69 lines
1.2 KiB
C
#include "epplet.h"
|
|
#include "utils.h"
|
|
|
|
/* Sorry about these next two functions...
|
|
* I kind of needed them to do a quick port...
|
|
* I'll fix this up later :)
|
|
*/
|
|
|
|
char *
|
|
_Strdup (char *s)
|
|
{
|
|
char *ss;
|
|
int len;
|
|
|
|
if (!s)
|
|
return NULL;
|
|
len = strlen (s);
|
|
ss = malloc (len + 1);
|
|
if (!ss)
|
|
return NULL;
|
|
memcpy (ss, s, len + 1);
|
|
return ss;
|
|
}
|
|
|
|
char *
|
|
_Strjoin (const char *separator, ...)
|
|
{
|
|
char *string, *s;
|
|
va_list args;
|
|
int len;
|
|
int separator_len;
|
|
|
|
if (separator == NULL)
|
|
separator = "";
|
|
|
|
separator_len = strlen (separator);
|
|
va_start (args, separator);
|
|
s = va_arg (args, char *);
|
|
|
|
if (s)
|
|
{
|
|
len = strlen (s);
|
|
s = va_arg (args, char *);
|
|
while (s)
|
|
{
|
|
len += separator_len + strlen (s);
|
|
s = va_arg (args, char *);
|
|
}
|
|
va_end (args);
|
|
string = malloc (sizeof (char) * (len + 1));
|
|
*string = 0;
|
|
va_start (args, separator);
|
|
s = va_arg (args, char *);
|
|
strcat (string, s);
|
|
s = va_arg (args, char *);
|
|
while (s)
|
|
{
|
|
strcat (string, separator);
|
|
strcat (string, s);
|
|
s = va_arg (args, char *);
|
|
}
|
|
}
|
|
else
|
|
string = _Strdup ("");
|
|
va_end (args);
|
|
|
|
return string;
|
|
}
|