Example #1
0
static void TestStr() 
{
	CommentLine("Test String");
	EQ (1, 1);
	NEQ(1, 232);
	char * testphrase = "Hello world.";
	char * str = NewStr(testphrase);
	NEQ(strlen(str), 0 );
	NEQ(LenStr(str), 0 );
	EQ (strlen(str), LenStr(str));
	EQ (strcmp(testphrase, str), 0);
	NEQ(str, NULL);
	DelStr(str);
	char * tmp = (char *)malloc(sizeof(char) * strlen(str)); 
	sprintf(tmp, "%s", testphrase);
	String buf = NewStr(tmp);
	EQ (strcmp(buf, testphrase), 0);
	String sub = SubStr(tmp, 0, 4);
	printf ("%s:%d %s:%d\n", buf, LenStr(buf), sub, LenStr(sub));
	DelStr(buf);
	DelStr(sub);

}
Example #2
0
File: util.c Project: cosmos72/twin
     
     do {
	 Len--;
	 Value |= (uldat)HexDigitToNum(StringHex[Len], &Error) << (Len << 2);
     }	while (!Error && Len>(byte)0);
    
    return Error ? (uldat)0 : Value;
}
*/

/* adapted from similar code in bdflush */
uldat ComputeUsableLenArgv(byte *CONST *argv) {
    byte *ptr;
    uldat count;
    
    ptr = argv[0] + LenStr(argv[0]);
    for (count = 1; argv[count]; count++) {
	if (argv[count] == ptr + 1)
	    ptr += LenStr(ptr + 1) + 1;
    }
    return ptr - argv[0];
}

void SetArgv0(byte *CONST *argv, uldat argv_usable_len, CONST byte *src) {
    uldat len = strlen(src);
    
    if (len + 1 < argv_usable_len) {
	CopyMem(src, argv[0], len);
	WriteMem(argv[0] + len, '\0', argv_usable_len - len);
    } else
	CopyMem(src, argv[0], argv_usable_len);