Subversion Repositories SvarDOS

Compare Revisions

Ignore whitespace Rev 1574 → Rev 1575

/sved/trunk/libc.c
8,31 → 8,7
#include "libc.h"
 
 
size_t strlen(const char *s) {
const char *ptr = s;
while (*ptr != 0) ptr++;
return(ptr - s);
}
 
void bzero(void *ptr, size_t len) {
char *p = ptr;
while (len > 0) {
*p = 0;
p++;
len--;
}
}
 
/* TODO this function does not handle overlapping strings well! */
void fmemmove(void far *dst, const void far *src, size_t len) {
while (len-- > 0) {
*(char far *)dst = *(char far *)src;
dst = (char far *)dst + 1;
src = (char far *)src + 1;
}
}
 
 
unsigned short mdr_dos_resizeblock(unsigned short siz, unsigned short segn) {
unsigned short res = 0;
 
/sved/trunk/libc.h
2,11 → 2,6
#ifndef LIBC_H
#define LIBC_H
 
#include <stddef.h>
 
size_t strlen(const char *s);
void bzero(void *ptr, size_t len);
void fmemmove(void far *dst, const void far *src, size_t len);
unsigned short mdr_dos_resizeblock(unsigned short siz, unsigned short segn);
unsigned short mdr_dos_write(unsigned short handle, const void far *buf, unsigned short count, unsigned short *bytes);
 
/sved/trunk/sved.c
146,6 → 146,34
* functions *
*****************************************************************************/
 
 
static size_t strlen(const char *s) {
const char *ptr = s;
while (*ptr != 0) ptr++;
return(ptr - s);
}
 
 
static void bzero(void *ptr, size_t len) {
char *p = ptr;
while (len > 0) {
*p = 0;
p++;
len--;
}
}
 
 
/* TODO this function does not handle overlapping strings well! */
static void fmemmove(void far *dst, const void far *src, size_t len) {
while (len-- > 0) {
*(char far *)dst = *(char far *)src;
dst = (char far *)dst + 1;
src = (char far *)src + 1;
}
}
 
 
static struct line far *line_calloc(unsigned short siz) {
struct line far *res;
unsigned short seg;