src/compat.c File Reference

#include "copyright.h"
#include "config.h"

Include dependency graph for compat.c:

Go to the source code of this file.

Functions

size_t strnlen (const char *s, size_t maxlen)
char * strndup (const char *s, size_t n)
size_t strlcpy (char *dst, const char *src, size_t len)
size_t strlcat (char *dst, const char *src, size_t len)


Function Documentation

size_t strlcat ( char *  dst,
const char *  src,
size_t  len 
)

Definition at line 250 of file compat.c.

00250                                                        {
00251     int iter = len - 1;
00252 
00253     if(len == 0) return strlen(src);
00254 
00255     while(iter && *dst) {
00256         iter--; dst++;
00257     }
00258 
00259     if(!iter)
00260         return len+strlen(src);
00261 
00262     while(iter--) {
00263         if((*dst++ = *src++) == 0)
00264             break;
00265     }
00266     if(iter < 1) *dst = 0;
00267 
00268     return (len - iter);
00269 }

size_t strlcpy ( char *  dst,
const char *  src,
size_t  len 
)

Definition at line 236 of file compat.c.

Referenced by init_version().

00236                                                        {
00237     int iter = len - 1;
00238 
00239     if(len == 0) return strlen(src);
00240 
00241     while(iter--) {
00242         if((*dst++ = *src++) == 0)
00243             break;
00244     }
00245     if(iter < 1) *dst = 0;
00246     return (len - iter);
00247 }

char* strndup ( const char *  s,
size_t  n 
)

Definition at line 221 of file compat.c.

References strnlen().

Referenced by auto_get_command_arg(), auto_read_command_node(), first_parseattribute(), proper_explodearguments(), and proper_parseattributes().

00222 {
00223         int length;
00224         char *buf;
00225 
00226         length = strnlen(s, n);
00227         buf = malloc(length + 1);
00228         memset(buf, '\0', length + 1);
00229         strncpy(buf, s, length);
00230 
00231         return buf;
00232 }

size_t strnlen ( const char *  s,
size_t  maxlen 
)

Definition at line 205 of file compat.c.

Referenced by do_think(), process_cmdent(), process_command(), raw_broadcast(), and strndup().

00206 {
00207 
00208         int count;
00209 
00210         for(count = 0; count < maxlen && s[count] != '\x0'; count++);
00211 
00212         return count;
00213 
00214 }


Generated on Mon May 28 04:25:27 2007 for BattletechMUX by  doxygen 1.4.7