//string.h Copyright (C) 1989-95 I.Pedley (CTPP) Thu 20-Mar-1997 at 20:50:35 #define NULL 0L VD memcpy (VD* dst,VD* src, UL bytes); //ANSI C 7.11.2.1 VD memmove(VD* dst,VD* src,UL bytes); //ANSI C 7.11.2.2 CH* strcpy (CH* str1,CH* str2); //ANSI C 7.11.2.3 CH* strncpy(CH* str1,CH* str2,UL bytes); //ANSI C 7.11.2.4 CH* strcat(CH* str1,CH* str2); //ANSI C 7.11.3.1 CH* strncat(CH* str1,CH* str2,UL maxbytes); //ANSI C 7.11.3.2 SL memcmp (VD* s1,VD* s2,UL bytes); //ANSI C 7.11.4.1 SL strcmp (CH* s1,CH* s2); //ANSI C 7.11.4.2 SL strncmp(CH* s1,CH* s2,UL maxbytes); //ANSI C 7.11.4.4 VD* memchr (VD* s,SL c,UL bytes); //ANSI C 7.11.5.1 CH* strchr (CH* s,SL c); //ANSI C 7.11.5.2 SL strcspn(CH* s1,CH* s2); //ANSI C 7.11.5.3 CH* strpbrk(CH* s1,CH* s2); //ANSI C 7.11.5.4 CH* strrchr(CH* s, SL c); //ANSI C 7.11.5.5 VD memset(VD* ptr,UL value,UL count); //ANSI C 7.11.6.1 SL strlen(CH* str); //ANSI C 7.11.6.3 SL astrlen(CH* str); //CTPP SL memicmp(CH* s1,CH* s2,UL len); //non-ANSI SL stricmp(CH* s1,CH* s2); //non-ANSI SL strnicmp(CH* s1,CH* s2,UL bytes); //non-ANSI CH* strdup(CH* str); //non-ANSI VD zeroterminate(CH* str,UL len); //CTPP VD toupper (CH* str,UL len); VD strupr (CH* str); VD strlwr (CH* str); VD nullstospaces(CH* str,UL len); VD spacestonulls(CH* str,UL len); UL trailingspacestonulls(CH* str,UL len); CH* blanks (CH* str); SL pstrcmp(CH* pstr1,CH* pstr2); //CTPP SL pstricmp(CH* pstr1,CH* pstr2); CH* inpstr(CH* instr,CH* str); CH* instr (CH* instr,CH* str); CH* blkstr(CH* instr,CH* blk,UL blklen); VD memset24(VD* ptr, UL value,UL count); //CTPP VD memcpy24(VD* ptr1,VD* ptr2 ,UL count); //CTPP VD memset16(VD* ptr, UI value,UL count); //CTPP VD memset32(VD* ptr, UL value,UL count); //CTPP SL memcmpd(VD* s1,VD* s2,UL dwords); //CTPP //pascal-style name table support in ntb.ctp UL ntblen (CH* ntb); UL ntbcount(CH* ntb); CH* ntbfind(CH* ntb,UL idx); UL ntbadd (CH* ntb,CH* name); UL ntbmatch(CH* ntb,CH* name); CH* ntbaddc (CH* ntb,CH* name); CH* ntbmatchc(CH* ntb,CH* name); CH* ntbaddcx (CH* ntb,CH* name,UL* nameidx); CH* ntbmatchcx(CH* ntb,CH* name,UL* nameidx); //functions where CH* ntbaddcxnp (CH* ntb,CH* name,UL* nameidx); //name is non-pascal string CH* ntbmatchcxnp(CH* ntb,CH* name,UL* nameidx); //i.e. asciiz VD ntbcat (CH* ntb,CH* dst,UL nameidx); //a handy place to declare our version of printf SL clidisplay(CH* format,...); //and some fast cga text output routines in gen.ctp VD outstr(CH* str,UL row,UL col);