This is strfunc.c in view mode; [Download] [Up]
#include <stdio.h>
#include <string.h>
#include <libc.h>
#include "strfunc.h"
char *str_dup(const char *src)
{
char *dst;
dst = (char *)malloc(strlen(src) + 1);
strcpy(dst, src);
return dst;
}
int dircopy(char *dst, const char *src, int slash)
/* copy directory part of file path */
{
int i, n;
for (i = 0, n = -1; src[i]; i++) {
dst[i] = src[i];
if (src[i] == '/') n = i;
}
if (n >= 0) {
if (slash) ++n;
dst[n] = 0;
}
return n;
}
int getExtension(char const *fn)
{
int i, j;
for (i = 0, j = -1; fn[i]; i++) {
if (fn[i] == '.') j = i;
else if (fn[i] == '/') j = -1;
}
if (j <= 0 || fn[j - 1] == '/')
return 0; /* No Extension */
return j + 1;
}
void str_lcat(char *p, const char *comm, int max)
{
int i, limit;
if (comm == NULL)
return;
limit = max - 1;
for (i = 0; i < limit && *p; i++, p++) ;
while(*comm && i < limit)
*p++ = *comm++;
*p = 0;
}
const char *begin_comm(const char *comm, BOOL cont)
/* Get begining of comment (... : comment) */
{
if (comm == NULL)
return NULL;
while (*comm && *comm != ':')
comm++;
if (*comm == ':' && cont)
while (*++comm == ' ') ;
if (*comm == 0)
return NULL;
return comm;
}
void comment_copy(char *p, const char *comm)
{
const char *q;
if ((q = begin_comm(comm, NO)) == NULL)
return;
str_lcat(p, q, MAX_COMMENT);
}
const char *key_comm(const commonInfo *cinf)
{
const char *pp = begin_comm(cinf->memo, NO);
if (pp == NULL)
return ": by ToyViewer";
return pp;
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.