mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-10 05:25:58 +02:00
* Length made internal
* Add array support for Length
This commit is contained in:
parent
7321b8436e
commit
db87f86f00
@ -21,7 +21,7 @@ const
|
|||||||
in_lo_long = 3;
|
in_lo_long = 3;
|
||||||
in_hi_long = 4;
|
in_hi_long = 4;
|
||||||
in_ord_x = 5;
|
in_ord_x = 5;
|
||||||
in_length_string = 6;
|
in_length_x = 6;
|
||||||
in_chr_byte = 7;
|
in_chr_byte = 7;
|
||||||
in_write_x = 14;
|
in_write_x = 14;
|
||||||
in_writeln_x = 15;
|
in_writeln_x = 15;
|
||||||
@ -102,7 +102,11 @@ const
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.2 2000-11-09 17:46:54 florian
|
Revision 1.3 2001-07-09 21:15:40 peter
|
||||||
|
* Length made internal
|
||||||
|
* Add array support for Length
|
||||||
|
|
||||||
|
Revision 1.2 2000/11/09 17:46:54 florian
|
||||||
* System.TypeInfo fixed
|
* System.TypeInfo fixed
|
||||||
+ System.Finalize implemented
|
+ System.Finalize implemented
|
||||||
+ some new keywords for interface support added
|
+ some new keywords for interface support added
|
||||||
|
@ -494,7 +494,7 @@ implementation
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
hightree:=caddnode.create(subn,geninlinenode(in_length_string,false,left.getcopy),
|
hightree:=caddnode.create(subn,geninlinenode(in_length_x,false,left.getcopy),
|
||||||
cordconstnode.create(1,s32bittype));
|
cordconstnode.create(1,s32bittype));
|
||||||
firstpass(hightree);
|
firstpass(hightree);
|
||||||
hightree:=ctypeconvnode.create(hightree,s32bittype);
|
hightree:=ctypeconvnode.create(hightree,s32bittype);
|
||||||
@ -1655,7 +1655,11 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.36 2001-07-01 20:16:15 peter
|
Revision 1.37 2001-07-09 21:15:40 peter
|
||||||
|
* Length made internal
|
||||||
|
* Add array support for Length
|
||||||
|
|
||||||
|
Revision 1.36 2001/07/01 20:16:15 peter
|
||||||
* alignmentinfo record added
|
* alignmentinfo record added
|
||||||
* -Oa argument supports more alignment settings that can be specified
|
* -Oa argument supports more alignment settings that can be specified
|
||||||
per type: PROC,LOOP,VARMIN,VARMAX,CONSTMIN,CONSTMAX,RECORDMIN
|
per type: PROC,LOOP,VARMIN,VARMAX,CONSTMIN,CONSTMAX,RECORDMIN
|
||||||
|
@ -538,46 +538,79 @@ implementation
|
|||||||
result:=hp;
|
result:=hp;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
in_length_string:
|
in_length_x:
|
||||||
begin
|
begin
|
||||||
set_varstate(left,true);
|
set_varstate(left,true);
|
||||||
|
|
||||||
{ we don't need string convertions here }
|
case left.resulttype.def.deftype of
|
||||||
if (left.nodetype=typeconvn) and
|
stringdef :
|
||||||
(ttypeconvnode(left).left.resulttype.def.deftype=stringdef) then
|
begin
|
||||||
begin
|
{ we don't need string convertions here }
|
||||||
hp:=ttypeconvnode(left).left;
|
if (left.nodetype=typeconvn) and
|
||||||
ttypeconvnode(left).left:=nil;
|
(ttypeconvnode(left).left.resulttype.def.deftype=stringdef) then
|
||||||
left.free;
|
begin
|
||||||
left:=hp;
|
hp:=ttypeconvnode(left).left;
|
||||||
end;
|
ttypeconvnode(left).left:=nil;
|
||||||
|
left.free;
|
||||||
|
left:=hp;
|
||||||
|
end;
|
||||||
|
|
||||||
{ evaluates length of constant strings direct }
|
{ evaluates length of constant strings direct }
|
||||||
if (left.nodetype=stringconstn) then
|
if (left.nodetype=stringconstn) then
|
||||||
begin
|
begin
|
||||||
hp:=cordconstnode.create(tstringconstnode(left).len,s32bittype);
|
hp:=cordconstnode.create(tstringconstnode(left).len,s32bittype);
|
||||||
resulttypepass(hp);
|
resulttypepass(hp);
|
||||||
result:=hp;
|
result:=hp;
|
||||||
goto myexit;
|
goto myexit;
|
||||||
end
|
end;
|
||||||
{ length of char is one allways }
|
end;
|
||||||
else if is_constcharnode(left) then
|
orddef :
|
||||||
begin
|
begin
|
||||||
hp:=cordconstnode.create(1,s32bittype);
|
{ length of char is one allways }
|
||||||
resulttypepass(hp);
|
if is_char(left.resulttype.def) or
|
||||||
result:=hp;
|
is_widechar(left.resulttype.def) then
|
||||||
goto myexit;
|
begin
|
||||||
end;
|
hp:=cordconstnode.create(1,s32bittype);
|
||||||
|
resulttypepass(hp);
|
||||||
|
result:=hp;
|
||||||
|
goto myexit;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
CGMessage(type_e_mismatch);
|
||||||
|
end;
|
||||||
|
arraydef :
|
||||||
|
begin
|
||||||
|
if is_open_array(left.resulttype.def) or
|
||||||
|
is_array_of_const(left.resulttype.def) then
|
||||||
|
begin
|
||||||
|
srsym:=searchsymonlyin(tloadnode(left).symtable,'high'+tvarsym(tloadnode(left).symtableentry).name);
|
||||||
|
hp:=caddnode.create(addn,cloadnode.create(tvarsym(srsym),tloadnode(left).symtable),
|
||||||
|
cordconstnode.create(1,s32bittype));
|
||||||
|
resulttypepass(hp);
|
||||||
|
result:=hp;
|
||||||
|
goto myexit;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if not is_dynamic_array(left.resulttype.def) then
|
||||||
|
begin
|
||||||
|
hp:=cordconstnode.create(tarraydef(left.resulttype.def).highrange-
|
||||||
|
tarraydef(left.resulttype.def).lowrange+1,
|
||||||
|
s32bittype);
|
||||||
|
resulttypepass(hp);
|
||||||
|
result:=hp;
|
||||||
|
goto myexit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
else
|
||||||
|
CGMessage(type_e_mismatch);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ shortstring return an 8 bit value as the length
|
||||||
|
is the first byte of the string }
|
||||||
if is_shortstring(left.resulttype.def) then
|
if is_shortstring(left.resulttype.def) then
|
||||||
resulttype:=u8bittype
|
resulttype:=u8bittype
|
||||||
else
|
else
|
||||||
resulttype:=s32bittype;
|
resulttype:=s32bittype;
|
||||||
|
|
||||||
{ check the type, must be string or char }
|
|
||||||
if (left.resulttype.def.deftype<>stringdef) and
|
|
||||||
(not is_char(left.resulttype.def)) then
|
|
||||||
CGMessage(type_e_mismatch);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
in_typeinfo_x:
|
in_typeinfo_x:
|
||||||
@ -1415,8 +1448,17 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
in_length_string:
|
in_length_x:
|
||||||
begin
|
begin
|
||||||
|
if is_shortstring(left.resulttype.def) then
|
||||||
|
location.loc:=LOC_REFERENCE
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
{ ansi/wide string }
|
||||||
|
if registers32<1 then
|
||||||
|
registers32:=1;
|
||||||
|
location.loc:=LOC_REGISTER;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
in_typeinfo_x:
|
in_typeinfo_x:
|
||||||
@ -1748,7 +1790,11 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.43 2001-07-08 21:00:15 peter
|
Revision 1.44 2001-07-09 21:15:40 peter
|
||||||
|
* Length made internal
|
||||||
|
* Add array support for Length
|
||||||
|
|
||||||
|
Revision 1.43 2001/07/08 21:00:15 peter
|
||||||
* various widestring updates, it works now mostly without charset
|
* various widestring updates, it works now mostly without charset
|
||||||
mapping supported
|
mapping supported
|
||||||
|
|
||||||
|
@ -1275,6 +1275,7 @@ begin
|
|||||||
def_symbol('HASINTF');
|
def_symbol('HASINTF');
|
||||||
def_symbol('HASVARIANT');
|
def_symbol('HASVARIANT');
|
||||||
def_symbol('INTERNSETLENGTH');
|
def_symbol('INTERNSETLENGTH');
|
||||||
|
def_symbol('INTERNLENGTH');
|
||||||
def_symbol('INT64FUNCRESOK');
|
def_symbol('INT64FUNCRESOK');
|
||||||
def_symbol('PACKENUMFIXED');
|
def_symbol('PACKENUMFIXED');
|
||||||
def_symbol('HAS_ADDR_STACK_ON_STACK');
|
def_symbol('HAS_ADDR_STACK_ON_STACK');
|
||||||
@ -1562,7 +1563,11 @@ finalization
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.48 2001-07-08 21:00:15 peter
|
Revision 1.49 2001-07-09 21:15:40 peter
|
||||||
|
* Length made internal
|
||||||
|
* Add array support for Length
|
||||||
|
|
||||||
|
Revision 1.48 2001/07/08 21:00:15 peter
|
||||||
* various widestring updates, it works now mostly without charset
|
* various widestring updates, it works now mostly without charset
|
||||||
mapping supported
|
mapping supported
|
||||||
|
|
||||||
|
@ -475,6 +475,16 @@ implementation
|
|||||||
statement_syssym := p1;
|
statement_syssym := p1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
in_length_x:
|
||||||
|
begin
|
||||||
|
consume(_LKLAMMER);
|
||||||
|
in_args:=true;
|
||||||
|
p1:=comp_expr(true);
|
||||||
|
p2:=geninlinenode(l,false,p1);
|
||||||
|
consume(_RKLAMMER);
|
||||||
|
statement_syssym:=p2;
|
||||||
|
end;
|
||||||
|
|
||||||
in_write_x,
|
in_write_x,
|
||||||
in_writeln_x :
|
in_writeln_x :
|
||||||
begin
|
begin
|
||||||
@ -2314,7 +2324,11 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.37 2001-06-29 14:16:57 jonas
|
Revision 1.38 2001-07-09 21:15:41 peter
|
||||||
|
* Length made internal
|
||||||
|
* Add array support for Length
|
||||||
|
|
||||||
|
Revision 1.37 2001/06/29 14:16:57 jonas
|
||||||
* fixed inconsistent handling of procvars in FPC mode (sometimes @ was
|
* fixed inconsistent handling of procvars in FPC mode (sometimes @ was
|
||||||
required to assign the address of a procedure to a procvar, sometimes
|
required to assign the address of a procedure to a procvar, sometimes
|
||||||
not. Now it is always required) (merged)
|
not. Now it is always required) (merged)
|
||||||
|
@ -75,6 +75,7 @@ begin
|
|||||||
p.insert(tsyssym.create('TypeInfo',in_typeinfo_x));
|
p.insert(tsyssym.create('TypeInfo',in_typeinfo_x));
|
||||||
p.insert(tsyssym.create('SetLength',in_setlength_x));
|
p.insert(tsyssym.create('SetLength',in_setlength_x));
|
||||||
p.insert(tsyssym.create('Finalize',in_finalize_x));
|
p.insert(tsyssym.create('Finalize',in_finalize_x));
|
||||||
|
p.insert(tsyssym.create('Length',in_length_x));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -265,7 +266,11 @@ end;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.16 2001-05-09 19:58:45 peter
|
Revision 1.17 2001-07-09 21:15:41 peter
|
||||||
|
* Length made internal
|
||||||
|
* Add array support for Length
|
||||||
|
|
||||||
|
Revision 1.16 2001/05/09 19:58:45 peter
|
||||||
* m68k doesn't support double (merged)
|
* m68k doesn't support double (merged)
|
||||||
|
|
||||||
Revision 1.15 2001/04/13 01:22:13 peter
|
Revision 1.15 2001/04/13 01:22:13 peter
|
||||||
|
@ -474,7 +474,8 @@ implementation
|
|||||||
Message2(type_e_incompatible_types,p.resulttype.def.typename,s32bittype.def.typename);
|
Message2(type_e_incompatible_types,p.resulttype.def.typename,s32bittype.def.typename);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
Message(cg_e_illegal_expression)
|
Message(cg_e_illegal_expression);
|
||||||
|
p.free;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
inc(l);
|
inc(l);
|
||||||
@ -599,7 +600,11 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.27 2001-07-01 20:16:16 peter
|
Revision 1.28 2001-07-09 21:15:41 peter
|
||||||
|
* Length made internal
|
||||||
|
* Add array support for Length
|
||||||
|
|
||||||
|
Revision 1.27 2001/07/01 20:16:16 peter
|
||||||
* alignmentinfo record added
|
* alignmentinfo record added
|
||||||
* -Oa argument supports more alignment settings that can be specified
|
* -Oa argument supports more alignment settings that can be specified
|
||||||
per type: PROC,LOOP,VARMIN,VARMAX,CONSTMIN,CONSTMAX,RECORDMIN
|
per type: PROC,LOOP,VARMIN,VARMAX,CONSTMIN,CONSTMAX,RECORDMIN
|
||||||
|
@ -414,6 +414,7 @@ end;
|
|||||||
Public functions, In interface.
|
Public functions, In interface.
|
||||||
*****************************************************************************}
|
*****************************************************************************}
|
||||||
|
|
||||||
|
{$ifndef INTERNLENGTH}
|
||||||
Function Length (Const S : AnsiString) : Longint;
|
Function Length (Const S : AnsiString) : Longint;
|
||||||
{
|
{
|
||||||
Returns the length of an AnsiString.
|
Returns the length of an AnsiString.
|
||||||
@ -425,6 +426,7 @@ begin
|
|||||||
else
|
else
|
||||||
Length:=PAnsiRec(Pointer(S)-FirstOff)^.Len;
|
Length:=PAnsiRec(Pointer(S)-FirstOff)^.Len;
|
||||||
end;
|
end;
|
||||||
|
{$endif INTERNLENGTH}
|
||||||
|
|
||||||
|
|
||||||
Procedure UniqueString(Var S : AnsiString); [Public,Alias : 'FPC_ANSISTR_UNIQUE'];
|
Procedure UniqueString(Var S : AnsiString); [Public,Alias : 'FPC_ANSISTR_UNIQUE'];
|
||||||
@ -705,7 +707,11 @@ end;
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.14 2001-07-09 11:41:57 florian
|
Revision 1.15 2001-07-09 21:15:41 peter
|
||||||
|
* Length made internal
|
||||||
|
* Add array support for Length
|
||||||
|
|
||||||
|
Revision 1.14 2001/07/09 11:41:57 florian
|
||||||
* another MT fix
|
* another MT fix
|
||||||
|
|
||||||
Revision 1.13 2001/07/08 21:00:18 peter
|
Revision 1.13 2001/07/08 21:00:18 peter
|
||||||
|
@ -69,8 +69,10 @@ Function hi(q : QWord) : DWord; [INTERNPROC: In_hi_qword];
|
|||||||
Function hi(i : Int64) : DWord; [INTERNPROC: In_hi_qword];
|
Function hi(i : Int64) : DWord; [INTERNPROC: In_hi_qword];
|
||||||
|
|
||||||
Function chr(b : byte) : Char; [INTERNPROC: In_chr_byte];
|
Function chr(b : byte) : Char; [INTERNPROC: In_chr_byte];
|
||||||
|
{$ifndef INTERNLENGTH}
|
||||||
Function Length(s : string) : byte; [INTERNPROC: In_Length_string];
|
Function Length(s : string) : byte; [INTERNPROC: In_Length_string];
|
||||||
Function Length(c : char) : byte; [INTERNPROC: In_Length_string];
|
Function Length(c : char) : byte; [INTERNPROC: In_Length_string];
|
||||||
|
{$endif INTERNLENGTH}
|
||||||
|
|
||||||
Procedure Reset(var f : TypedFile); [INTERNPROC: In_Reset_TypedFile];
|
Procedure Reset(var f : TypedFile); [INTERNPROC: In_Reset_TypedFile];
|
||||||
Procedure Rewrite(var f : TypedFile); [INTERNPROC: In_Rewrite_TypedFile];
|
Procedure Rewrite(var f : TypedFile); [INTERNPROC: In_Rewrite_TypedFile];
|
||||||
@ -656,7 +658,11 @@ end;
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.16 2001-07-08 21:00:18 peter
|
Revision 1.17 2001-07-09 21:15:41 peter
|
||||||
|
* Length made internal
|
||||||
|
* Add array support for Length
|
||||||
|
|
||||||
|
Revision 1.16 2001/07/08 21:00:18 peter
|
||||||
* various widestring updates, it works now mostly without charset
|
* various widestring updates, it works now mostly without charset
|
||||||
mapping supported
|
mapping supported
|
||||||
|
|
||||||
|
@ -299,7 +299,9 @@ Function Pos(const substr:shortstring;const s:shortstring):StrLenInt;
|
|||||||
Function Pos(C:Char;const s:shortstring):StrLenInt;
|
Function Pos(C:Char;const s:shortstring):StrLenInt;
|
||||||
Procedure SetString (Var S : Shortstring; Buf : PChar; Len : Longint);
|
Procedure SetString (Var S : Shortstring; Buf : PChar; Len : Longint);
|
||||||
Procedure SetString (Var S : AnsiString; Buf : PChar; Len : Longint);
|
Procedure SetString (Var S : AnsiString; Buf : PChar; Len : Longint);
|
||||||
|
{$ifndef INTERNLENGTH}
|
||||||
Function Length(s:string):byte;
|
Function Length(s:string):byte;
|
||||||
|
{$endif INTERNLENGTH}
|
||||||
Function upCase(const s:shortstring):shortstring;
|
Function upCase(const s:shortstring):shortstring;
|
||||||
Function lowerCase(const s:shortstring):shortstring;
|
Function lowerCase(const s:shortstring):shortstring;
|
||||||
Function Space(b:byte):shortstring;
|
Function Space(b:byte):shortstring;
|
||||||
@ -314,7 +316,9 @@ Function upCase(c:Char):Char;
|
|||||||
Function lowerCase(c:Char):Char;
|
Function lowerCase(c:Char):Char;
|
||||||
function copy(c:char;index : StrLenInt;count : StrLenInt): shortstring;
|
function copy(c:char;index : StrLenInt;count : StrLenInt): shortstring;
|
||||||
function pos(const substr : shortstring;c:char): StrLenInt;
|
function pos(const substr : shortstring;c:char): StrLenInt;
|
||||||
|
{$ifndef INTERNLENGTH}
|
||||||
function length(c:char):byte;
|
function length(c:char):byte;
|
||||||
|
{$endif INTERNLENGTH}
|
||||||
|
|
||||||
|
|
||||||
{****************************************************************************
|
{****************************************************************************
|
||||||
@ -325,7 +329,9 @@ function length(c:char):byte;
|
|||||||
Procedure SetLength (Var S : AnsiString; l : Longint);
|
Procedure SetLength (Var S : AnsiString; l : Longint);
|
||||||
{$endif INTERNSETLENGTH}
|
{$endif INTERNSETLENGTH}
|
||||||
Procedure UniqueString (Var S : AnsiString);
|
Procedure UniqueString (Var S : AnsiString);
|
||||||
|
{$ifndef INTERNLENGTH}
|
||||||
Function Length (Const S : AnsiString) : Longint;
|
Function Length (Const S : AnsiString) : Longint;
|
||||||
|
{$endif INTERNLENGTH}
|
||||||
Function Copy (Const S : AnsiString; Index,Size : Longint) : AnsiString;
|
Function Copy (Const S : AnsiString; Index,Size : Longint) : AnsiString;
|
||||||
Function Pos (Const Substr : AnsiString; Const Source : AnsiString) : Longint;
|
Function Pos (Const Substr : AnsiString; Const Source : AnsiString) : Longint;
|
||||||
Function Pos (c : Char; Const s : AnsiString) : Longint;
|
Function Pos (c : Char; Const s : AnsiString) : Longint;
|
||||||
@ -345,7 +351,9 @@ function lowercase(const s : ansistring) : ansistring;
|
|||||||
Procedure SetLength (Var S : WideString; l : Longint);
|
Procedure SetLength (Var S : WideString; l : Longint);
|
||||||
{$endif INTERNSETLENGTH}
|
{$endif INTERNSETLENGTH}
|
||||||
Procedure UniqueString (Var S : WideString);
|
Procedure UniqueString (Var S : WideString);
|
||||||
|
{$ifndef INTERNLENGTH}
|
||||||
Function Length (Const S : WideString) : Longint;
|
Function Length (Const S : WideString) : Longint;
|
||||||
|
{$endif INTERNLENGTH}
|
||||||
Function Copy (Const S : WideString; Index,Size : Longint) : WideString;
|
Function Copy (Const S : WideString; Index,Size : Longint) : WideString;
|
||||||
Function Pos (Const Substr : WideString; Const Source : WideString) : Longint;
|
Function Pos (Const Substr : WideString; Const Source : WideString) : Longint;
|
||||||
Function Pos (c : Char; Const s : WideString) : Longint;
|
Function Pos (c : Char; Const s : WideString) : Longint;
|
||||||
@ -504,7 +512,11 @@ const
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.25 2001-07-08 21:00:18 peter
|
Revision 1.26 2001-07-09 21:15:41 peter
|
||||||
|
* Length made internal
|
||||||
|
* Add array support for Length
|
||||||
|
|
||||||
|
Revision 1.25 2001/07/08 21:00:18 peter
|
||||||
* various widestring updates, it works now mostly without charset
|
* various widestring updates, it works now mostly without charset
|
||||||
mapping supported
|
mapping supported
|
||||||
|
|
||||||
|
@ -459,6 +459,7 @@ end;
|
|||||||
Public functions, In interface.
|
Public functions, In interface.
|
||||||
*****************************************************************************}
|
*****************************************************************************}
|
||||||
|
|
||||||
|
{$ifndef INTERNLENGTH}
|
||||||
Function Length (Const S : WideString) : Longint;
|
Function Length (Const S : WideString) : Longint;
|
||||||
{
|
{
|
||||||
Returns the length of an WideString.
|
Returns the length of an WideString.
|
||||||
@ -470,6 +471,7 @@ begin
|
|||||||
else
|
else
|
||||||
Length:=PWideRec(Pointer(S)-WideFirstOff)^.Len;
|
Length:=PWideRec(Pointer(S)-WideFirstOff)^.Len;
|
||||||
end;
|
end;
|
||||||
|
{$endif INTERNLENGTH}
|
||||||
|
|
||||||
|
|
||||||
Procedure UniqueString(Var S : WideString); [Public,Alias : 'FPC_WIDESTR_UNIQUE'];
|
Procedure UniqueString(Var S : WideString); [Public,Alias : 'FPC_WIDESTR_UNIQUE'];
|
||||||
@ -748,7 +750,11 @@ end;
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.8 2001-07-08 21:00:18 peter
|
Revision 1.9 2001-07-09 21:15:41 peter
|
||||||
|
* Length made internal
|
||||||
|
* Add array support for Length
|
||||||
|
|
||||||
|
Revision 1.8 2001/07/08 21:00:18 peter
|
||||||
* various widestring updates, it works now mostly without charset
|
* various widestring updates, it works now mostly without charset
|
||||||
mapping supported
|
mapping supported
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user