Started work on string utilities (strings.pas)

git-svn-id: https://spexeah.com:8443/svn/Asuro@233 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
kieron 2017-10-23 18:59:57 +00:00
parent 9c2a5c976e
commit 94d7b621ec
7 changed files with 92 additions and 0 deletions

BIN
Asuro.iso

Binary file not shown.

BIN
lib/isr44.ppu Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
lib/terminal.ppu Normal file

Binary file not shown.

92
src/strings.pas Normal file
View File

@ -0,0 +1,92 @@
unit strings;
interface
uses
system,
util;
function stringToUpper(str : pchar) : pchar;
function stringToLower(str : pchar) : pchar;
function stringEquals(str1, str2 : pchar) : boolean;
function stringCopy(str : pchar) : pchar;
function stringNew(size : uint32) : pchar;
function stringSize(str : pchar) : uint32;
function stringConcat(str1, str2 : pchar) : pchar;
function stringContains(str : pchar; sub : pchar) : boolean;
implementation
function stringToUpper(str : pchar) : pchar;
begin
end;
function stringToLower(str : pchar) : pchar;
begin
end;
function stringEquals(str1, str2 : pchar) : boolean;
var
i : uint32;
begin
stringEquals:= true;
if stringSize(str1) <> stringSize(str2) then begin
stringEquals:= false;
exit;
end else begin
for i:=0 to stringSize(str1)-1 do begin
if str1[i] <> str2[i] then begin
stringEquals:= false;
exit;
end;
end;
end;
end;
function stringCopy(str : pchar) : pchar;
var
result : pchar;
size : uint32;
begin
size:= stringSize(str);
result:= stringNew(size);
memcpy(str, result, size);
end;
function stringNew(size : uint32) : pchar;
var
result : pchar;
begin
result:= pchar(kalloc(size + 1));
memset(uint32(result), 0, size + 1);
stringNew:= result;
end;
function stringSize(str : pchar) : uint32;
var
i : uint32;
begin
i:=0;
while byte(str[i]) <> 0 do begin
inc(i);
end;
stringSize:=i;
end;
function stringConcat(str1, str2 : pchar) : pchar;
begin
end;
function stringContains(str : pchar; sub : pchar) : boolean;
begin
end;
end.