diff options
author | paul <paul@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2012-04-26 02:33:57 +0000 |
---|---|---|
committer | paul <paul@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2012-04-26 02:33:57 +0000 |
commit | b400e9040d316bd92c1840bffa6ade7164ad188b (patch) | |
tree | 9f7a2a4d8fdbf834ba96400c883209fbcee9fdcb /compiler/ncon.pas | |
parent | fec0162a900502f03a10bca471130140a22e1173 (diff) | |
download | fpc-b400e9040d316bd92c1840bffa6ade7164ad188b.tar.gz |
compiler: change ShortString->(Some)String and AnsiString->(Some)String overload precedence both for variables and string constants, change unicode constant type from widestring to unicodestring (Delphi compatibility)
new ShortString->(Some)String precedence: ShortString, UTF8String, AnsiString, AnsiString(CodePage) and RawByteString, UnicodeString, WideString and other string types
new AnsiString->(Some)String precedence: RawByteString, UTF8String, AnsiString, AnsiString(CodePage), UnicodeString, WideString, ShortString and other string types
The new logic makes UTF8String more preferrable than other AnsiString types, AnsiString more preferrable than other AnsiStrings(codepage) and also makes UnicodeString more preferrable than WideString.
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@21057 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/ncon.pas')
-rw-r--r-- | compiler/ncon.pas | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/compiler/ncon.pas b/compiler/ncon.pas index e25b9ff445..a33829269a 100644 --- a/compiler/ncon.pas +++ b/compiler/ncon.pas @@ -124,7 +124,7 @@ interface cst_type : tconststringtype; constructor createstr(const s : string);virtual; constructor createpchar(s : pchar;l : longint);virtual; - constructor createwstr(w : pcompilerwidestring);virtual; + constructor createunistr(w : pcompilerwidestring);virtual; constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override; procedure ppuwrite(ppufile:tcompilerppufile);override; procedure buildderefimpl;override; @@ -254,7 +254,7 @@ implementation begin initwidestring(pWideStringVal); concatwidestringchar(pWideStringVal, tcompilerwidechar(tordconstnode(p).value.uvalue)); - result:=cstringconstnode.createwstr(pWideStringVal); + result:=cstringconstnode.createunistr(pWideStringVal); end else if is_conststringnode(p) then result:=tstringconstnode(p.getcopy) @@ -311,7 +311,7 @@ implementation p1:=cstringconstnode.createpchar(pc,len); end; constwstring : - p1:=cstringconstnode.createwstr(pcompilerwidestring(p.value.valueptr)); + p1:=cstringconstnode.createunistr(pcompilerwidestring(p.value.valueptr)); constreal : p1:=crealconstnode.create(pbestreal(p.value.valueptr)^,p.constdef); constset : @@ -794,14 +794,14 @@ implementation end; - constructor tstringconstnode.createwstr(w : pcompilerwidestring); + constructor tstringconstnode.createunistr(w : pcompilerwidestring); begin inherited create(stringconstn); len:=getlengthwidestring(w); initwidestring(pcompilerwidestring(value_str)); copywidestring(w,pcompilerwidestring(value_str)); lab_str:=nil; - cst_type:=cst_widestring; + cst_type:=cst_unicodestring; end; |