summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/tbs/tb0478.pp
blob: 230e0ed69581a62024dfdee17ef0be714ff7dccb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
type
 integer = longint;

const
  {** @abstract(Character encoding value: UTF-8 storage format)}
  CHAR_ENCODING_UTF8 = 0;
  {** @abstract(Character encoding value: unknown format)}
  CHAR_ENCODING_UNKNOWN = -1;
  {** @abstract(Character encoding value: UTF-32 Big endian)}
  CHAR_ENCODING_UTF32BE = 1;
  {** @abstract(Character encoding value: UTF-32 Little endian)}
  CHAR_ENCODING_UTF32LE = 2;
  {** @abstract(Character encoding value: UTF-16 Little endian)}
  CHAR_ENCODING_UTF16LE = 3;
  {** @abstract(Character encoding value: UTF-16 Big endian)}
  CHAR_ENCODING_UTF16BE = 4;
  {** @abstract(Character encoding value: One byte per character storage
format)}
  CHAR_ENCODING_BYTE = 5;
  {** @abstract(Character encoding value: UTF-16 unknown endian
(determined by BOM))}
  CHAR_ENCODING_UTF16 = 6;
  {** @abstract(Character encoding value: UTF-32 unknown endian
(determined by BOM))}
  CHAR_ENCODING_UTF32 = 7;


function GetCharEncoding(alias: string; var _name: string): integer;
var
 encoding: integer;
 newencoding: integer;
begin
  _name:='';
  if length(alias) = 0 then
    Runerror(255);             { FAILED! }
  newencoding:=CHAR_ENCODING_UTF8;
  encoding:=CHAR_ENCODING_BYTE;
           case newencoding of
           { currently unsupported }
           CHAR_ENCODING_UNKNOWN:
              Begin
              end;
           { verify if we are using the correct encoding }
           CHAR_ENCODING_UTF16:
              begin
                if (encoding <> CHAR_ENCODING_UTF16BE) and
                   (encoding <> CHAR_ENCODING_UTF16LE) then
                      encoding:=255;
              end;
           { verify if we are using the correct encoding }
           CHAR_ENCODING_UTF32:
              begin
                if (encoding <> CHAR_ENCODING_UTF32BE) and
                   (encoding <> CHAR_ENCODING_UTF32LE) then
                      encoding:=255;
              end;
           CHAR_ENCODING_UTF16BE,
           CHAR_ENCODING_UTF16LE,
           CHAR_ENCODING_UTF32LE,
           CHAR_ENCODING_UTF32BE:
              begin
              end;
           else
              begin
                 encoding:=newencoding;
              end;
           end;
  if encoding <> CHAR_ENCODING_UTF8 then
    RunError(255);
end;


var
 _encoding: string;
Begin
 _encoding:='UTF-8';
 GetCharencoding(_encoding,_encoding);
end.