# HG changeset patch # User unc0rr # Date 1353661730 -14400 # Node ID ee21b816394f58d864e94ffe17a75c451b61f18c # Parent 09c38cdf380d1a70359a4b653304ab1e06cfd363 Bring ansistrings back diff -r 09c38cdf380d -r ee21b816394f hedgewars/uLocale.pas --- a/hedgewars/uLocale.pas Fri Nov 23 10:43:15 2012 +0100 +++ b/hedgewars/uLocale.pas Fri Nov 23 13:08:50 2012 +0400 @@ -40,7 +40,7 @@ trevt_n: array[TEventId] of integer; procedure LoadLocale(FileName: shortstring); -var s: shortstring; +var s: ansistring; f: pfsFile; a, b, c: LongInt; first: array[TEventId] of boolean; @@ -58,7 +58,7 @@ begin while not pfsEof(f) do begin - pfsReadLn(f, s); + pfsReadLnA(f, s); if Length(s) = 0 then continue; if (s[1] < '0') or (s[1] > '9') then diff -r 09c38cdf380d -r ee21b816394f hedgewars/uPhysFSLayer.pas --- a/hedgewars/uPhysFSLayer.pas Fri Nov 23 10:43:15 2012 +0100 +++ b/hedgewars/uPhysFSLayer.pas Fri Nov 23 13:08:50 2012 +0400 @@ -30,6 +30,7 @@ function pfsClose(f: PFSFile): boolean; procedure pfsReadLn(f: PFSFile; var s: shortstring); +procedure pfsReadLnA(f: PFSFile; var s: ansistring); function pfsBlockRead(f: PFSFile; buf: pointer; size: Int64): Int64; function pfsEOF(f: PFSFile): boolean; @@ -99,6 +100,28 @@ end end; +procedure pfsReadLnA(f: PFSFile; var s: ansistring); +var c: char; + b: shortstring; +begin +s:= ''; +b[0]:= #0; + +while (PHYSFS_readBytes(f, @c, 1) = 1) and (c <> #10) do + if (c <> #13) then + begin + inc(b[0]); + b[byte(b[0])]:= c; + if b[0] = #255 then + begin + s:= s + b; + b[0]:= #0 + end + end; + +s:= s + b +end; + function pfsBlockRead(f: PFSFile; buf: pointer; size: Int64): Int64; var r: Int64; begin