123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- {
- This file is part of the Free Pascal run time library.
- Copyright (c) 1999-2000 by Carl-Eric Codere,
- member of the Free Pascal development team.
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************}
- { we have to call the libc routines, because simply declaring our routines }
- { as cdecl and external in libc cause problems because the calling }
- { convention the interface is different }
- {$ifndef FPC_UNIT_HAS_STREND}
- {$define FPC_UNIT_HAS_STREND}
- function StrEnd(P: PChar): PChar;{$ifdef SYSTEMINLINE}inline;{$endif}
- begin
- strend := p+strlen(p);
- end;
- {$endif FPC_UNIT_HAS_STREND}
- {$ifndef FPC_UNIT_HAS_STRCOPY}
- {$define FPC_UNIT_HAS_STRCOPY}
- function libc_strcpy(dest: pchar; const src: pchar): pchar; cdecl; external 'c' name 'strcpy';
- Function StrCopy(Dest, Source:PChar): PChar;{$ifdef SYSTEMINLINE}inline;{$endif}
- Begin
- StrCopy := libc_strcpy(dest,source);
- end;
- {$endif FPC_UNIT_HAS_STRCOPY}
- {$ifndef FPC_UNIT_HAS_STRSCAN}
- {$define FPC_UNIT_HAS_STRSCAN}
- function libc_strchr(const p: pchar; c: longint): pchar; cdecl; external 'c' name 'strchr';
- function StrScan(P: PChar; C: Char): PChar;{$ifdef SYSTEMINLINE}inline;{$endif}
- Begin
- StrScan := libc_strchr(p,longint(c));
- end;
- {$endif FPC_UNIT_HAS_STRSCAN}
- {$ifndef FPC_UNIT_HAS_STRRSCAN}
- {$define FPC_UNIT_HAS_STRRSCAN}
- function libc_strrchr(const p: pchar; c: longint): pchar; cdecl; external 'c' name 'strrchr';
- function StrRScan(P: PChar; C: Char): PChar;{$ifdef SYSTEMINLINE}inline;{$endif}
- Begin
- StrRScan := libc_strrchr(p,longint(c));
- end;
- {$endif FPC_UNIT_HAS_STRRSCAN}
- (*
- {$ifndef FPC_UNIT_HAS_STRECOPY}
- {$define FPC_UNIT_HAS_STRECOPY}
- function libc_stpcpy(dest: pchar; const src: pchar): pchar; cdecl; external 'c' name 'stpcpy';
- Function StrECopy(Dest, Source: PChar): PChar;{$ifdef SYSTEMINLINE}inline;{$endif}
- Begin
- StrECopy := libc_stpcpy(dest,source);
- end;
- {$endif FPC_UNIT_HAS_STRECOPY}
- *)
- (*
- {$ifndef FPC_UNIT_HAS_STRLCOPY}
- {$define FPC_UNIT_HAS_STRLCOPY}
- function libc_strlcpy(dest: pchar; const src: pchar; maxlen: SizeInt): SizeInt; cdecl; external 'c' name 'strlcpy';
- Function StrLCopy(Dest,Source: PChar; MaxLen: SizeInt): PChar;{$ifdef SYSTEMINLINE}inline;{$endif}
- Begin
- libc_strlcpy(dest,source,maxlen);
- StrLCopy := Dest;
- end;
- {$endif FPC_UNIT_HAS_STRLCOPY}
- *)
- {$ifndef FPC_UNIT_HAS_STRCOMP}
- {$define FPC_UNIT_HAS_STRCOMP}
- function libc_strcmp(const str1,str2: pchar): longint; cdecl; external 'c' name 'strcmp';
- function StrComp(Str1, Str2 : PChar): SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
- Begin
- strcomp := libc_strcmp(str1,str2);
- end;
- {$endif FPC_UNIT_HAS_STRCOMP}
- {$ifndef FPC_UNIT_HAS_STRICOMP}
- {$define FPC_UNIT_HAS_STRICOMP}
- function libc_strcasecmp(const str1,str2: pchar): longint; cdecl; external 'c' name 'strcasecmp';
- function StrIComp(Str1, Str2 : PChar): SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
- Begin
- stricomp := libc_strcasecmp(str1,str2);
- end;
- {$endif FPC_UNIT_HAS_STRICOMP}
- {$ifndef FPC_UNIT_HAS_STRLCOMP}
- {$define FPC_UNIT_HAS_STRLCOMP}
- function libc_strncmp(const str1,str2: pchar; l: Cardinal): longint; cdecl; external 'c' name 'strncmp';
- function StrLComp(Str1, Str2 : PChar; L: SizeInt): SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
- Begin
- strlcomp := libc_strncmp(str1,str2,l);
- end;
- {$endif FPC_UNIT_HAS_STRLCOMP}
- {$ifndef FPC_UNIT_HAS_STRLICOMP}
- {$define FPC_UNIT_HAS_STRLICOMP}
- function libc_strncasecmp(const str1,str2: pchar; l: Cardinal): longint; cdecl; external 'c' name 'strncasecmp';
- function StrLIComp(Str1, Str2 : PChar; L: SizeInt): SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
- Begin
- strlicomp := libc_strncasecmp(str1,str2,l);
- end;
- {$endif FPC_UNIT_HAS_STRLICOMP}
|