diff options
| author | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2008-06-08 13:52:16 +0200 |
|---|---|---|
| committer | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2008-06-08 13:52:16 +0200 |
| commit | 226843b5d3c171734426756ceecba13817294eb9 (patch) | |
| tree | b8c3a70aadca63c9db21cf10f90af626712bc728 | |
| parent | 6c78adaf82d11bb1ae074b822d76891e004f4ae3 (diff) | |
| download | tuxcmd-226843b5d3c171734426756ceecba13817294eb9.tar.xz | |
Internal viewer: detect file encoding from the first 100 lines only
| -rw-r--r-- | UCoreUtils.pas | 8 | ||||
| -rw-r--r-- | UViewer.pas | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/UCoreUtils.pas b/UCoreUtils.pas index 1781a41..f297fe0 100644 --- a/UCoreUtils.pas +++ b/UCoreUtils.pas @@ -128,6 +128,7 @@ function UTF8ToStr(s: PChar): PChar; overload; function EnsureUTF8String(s: PChar): PChar; overload; +function Min(Val1, Val2: longint): longint; // Calculate CRC32 Checksum, CRC is default $FFFFFFFF, // After calc you must inverse Result with NOT @@ -1425,6 +1426,13 @@ end; (********************************************************************************************************************************) +function Min(Val1, Val2: longint): longint; +begin + if Val1 < Val2 then Result := Val1 + else Result := Val2; +end; + +(********************************************************************************************************************************) {$IFDEF CPU64} function CRC32(CRC: LongWord; Data: Pointer; DataSize: LongWord): LongWord; begin diff --git a/UViewer.pas b/UViewer.pas index 70d3a64..4169b6a 100644 --- a/UViewer.pas +++ b/UViewer.pas @@ -392,7 +392,7 @@ begin LineBuffer.LoadFromFile(FileName); Valid := True; - for i := 0 to LineBuffer.Count - 1 do begin + for i := 0 to Min(100, LineBuffer.Count - 1) do begin Valid := Valid and g_utf8_validate(PChar(LineBuffer[i]), Length(LineBuffer[i]), nil); if not Valid then begin DebugMsg(['** TFViewer.LoadFile(', FileName, ', Line ', i + 1, ') is not UTF-8 valid.']); |
