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:
parent
9c2a5c976e
commit
94d7b621ec
BIN
lib/isr44.ppu
Normal file
BIN
lib/isr44.ppu
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
lib/libpsystem.a
BIN
lib/libpsystem.a
Binary file not shown.
BIN
lib/terminal.ppu
Normal file
BIN
lib/terminal.ppu
Normal file
Binary file not shown.
92
src/strings.pas
Normal file
92
src/strings.pas
Normal 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.
|
Loading…
x
Reference in New Issue
Block a user