summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraeme Geldenhuys <graemeg@gmail.com>2013-04-30 20:29:53 +0200
committerGraeme Geldenhuys <graemeg@gmail.com>2013-04-30 23:32:15 +0200
commitc27a9a98b41a0de20787f29375c63cb35029ad35 (patch)
tree69a3ec8aae22310d6b02ca3f2bb03848163a2b62
parent8a354aca4f68f063905e698ffe5081c5e1f2d71d (diff)
downloadfpGUI-c27a9a98b41a0de20787f29375c63cb35029ad35.tar.xz
Adds CP1251 to UTF8 encoding conversion
-rw-r--r--docview/src/frm_main.pas1
-rw-r--r--src/corelib/fpg_base.pas2
-rw-r--r--src/corelib/fpg_stringutils.pas266
3 files changed, 268 insertions, 1 deletions
diff --git a/docview/src/frm_main.pas b/docview/src/frm_main.pas
index 8d128e3e..c9cd355e 100644
--- a/docview/src/frm_main.pas
+++ b/docview/src/frm_main.pas
@@ -3465,6 +3465,7 @@ begin
Items.Add('CP437');
Items.Add('CP850');
Items.Add('CP866');
+ Items.Add('CP1250');
Items.Add('IBM Graph (cp437)');
FocusItem := 0;
TabOrder := 10;
diff --git a/src/corelib/fpg_base.pas b/src/corelib/fpg_base.pas
index e5bccf6d..aecd3b08 100644
--- a/src/corelib/fpg_base.pas
+++ b/src/corelib/fpg_base.pas
@@ -90,7 +90,7 @@ type
// For providing user feedback. No need to display backtrace information
EfpGUIUserFeedbackException = class(EfpGUIException);
- TfpgTextEncoding = (encUTF8, encCP437, encCP850, encCP866, encIBMGraph);
+ TfpgTextEncoding = (encUTF8, encCP437, encCP850, encCP866, encCP1250, encIBMGraph);
diff --git a/src/corelib/fpg_stringutils.pas b/src/corelib/fpg_stringutils.pas
index 5bace136..7930870b 100644
--- a/src/corelib/fpg_stringutils.pas
+++ b/src/corelib/fpg_stringutils.pas
@@ -59,6 +59,7 @@ function fpgTrimR(const AString, ATrim: TfpgString; ACaseSensitive: boolean = f
function CP437ToUTF8(const s: string): TfpgString; // DOS central europe
function CP850ToUTF8(const s: string): TfpgString; // DOS western europe
function CP866ToUTF8(const s: string): TfpgString; // DOS and Windows console's cyrillic
+function CP1250ToUTF8(const s: string): TfpgString; // central europe
function IBMGraphToUTF8(const s: string): TfpgString; // IBM PC / DOS http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/IBMGRAPH.TXT
function IPFToUTF8(const s: string): TfpgString; // minor replacements to improve DocView output
function SingleByteToUTF8(const s: string; const Table: TCharToUTF8Table): TfpgString;
@@ -1197,6 +1198,266 @@ const
);
+ ArrayCP1250ToUTF8: TCharToUTF8Table = (
+ #0, // #0
+ #1, // #1
+ #2, // #2
+ #3, // #3
+ #4, // #4
+ #5, // #5
+ #6, // #6
+ #7, // #7
+ #8, // #8
+ #9, // #9
+ #10, // #10
+ #11, // #11
+ #12, // #12
+ #13, // #13
+ #14, // #14
+ #15, // #15
+ #16, // #16
+ #17, // #17
+ #18, // #18
+ #19, // #19
+ #20, // #20
+ #21, // #21
+ #22, // #22
+ #23, // #23
+ #24, // #24
+ #25, // #25
+ #26, // #26
+ #27, // #27
+ #28, // #28
+ #29, // #29
+ #30, // #30
+ #31, // #31
+ ' ', // ' '
+ '!', // '!'
+ '"', // '"'
+ '#', // '#'
+ '$', // '$'
+ '%', // '%'
+ '&', // '&'
+ '''', // ''''
+ '(', // '('
+ ')', // ')'
+ '*', // '*'
+ '+', // '+'
+ ',', // ','
+ '-', // '-'
+ '.', // '.'
+ '/', // '/'
+ '0', // '0'
+ '1', // '1'
+ '2', // '2'
+ '3', // '3'
+ '4', // '4'
+ '5', // '5'
+ '6', // '6'
+ '7', // '7'
+ '8', // '8'
+ '9', // '9'
+ ':', // ':'
+ ';', // ';'
+ '<', // '<'
+ '=', // '='
+ '>', // '>'
+ '?', // '?'
+ '@', // '@'
+ 'A', // 'A'
+ 'B', // 'B'
+ 'C', // 'C'
+ 'D', // 'D'
+ 'E', // 'E'
+ 'F', // 'F'
+ 'G', // 'G'
+ 'H', // 'H'
+ 'I', // 'I'
+ 'J', // 'J'
+ 'K', // 'K'
+ 'L', // 'L'
+ 'M', // 'M'
+ 'N', // 'N'
+ 'O', // 'O'
+ 'P', // 'P'
+ 'Q', // 'Q'
+ 'R', // 'R'
+ 'S', // 'S'
+ 'T', // 'T'
+ 'U', // 'U'
+ 'V', // 'V'
+ 'W', // 'W'
+ 'X', // 'X'
+ 'Y', // 'Y'
+ 'Z', // 'Z'
+ '[', // '['
+ '\', // '\'
+ ']', // ']'
+ '^', // '^'
+ '_', // '_'
+ '`', // '`'
+ 'a', // 'a'
+ 'b', // 'b'
+ 'c', // 'c'
+ 'd', // 'd'
+ 'e', // 'e'
+ 'f', // 'f'
+ 'g', // 'g'
+ 'h', // 'h'
+ 'i', // 'i'
+ 'j', // 'j'
+ 'k', // 'k'
+ 'l', // 'l'
+ 'm', // 'm'
+ 'n', // 'n'
+ 'o', // 'o'
+ 'p', // 'p'
+ 'q', // 'q'
+ 'r', // 'r'
+ 's', // 's'
+ 't', // 't'
+ 'u', // 'u'
+ 'v', // 'v'
+ 'w', // 'w'
+ 'x', // 'x'
+ 'y', // 'y'
+ 'z', // 'z'
+ '{', // '{'
+ '|', // '|'
+ '}', // '}'
+ '~', // '~'
+ #127, // #127
+ #226#130#172, // #128
+ '', // #129
+ #226#128#154, // #130
+ '', // #131
+ #226#128#158, // #132
+ #226#128#166, // #133
+ #226#128#160, // #134
+ #226#128#161, // #135
+ '', // #136
+ #226#128#176, // #137
+ #197#160, // #138
+ #226#128#185, // #139
+ #197#154, // #140
+ #197#164, // #141
+ #197#189, // #142
+ #197#185, // #143
+ '', // #144
+ #226#128#152, // #145
+ #226#128#153, // #146
+ #226#128#156, // #147
+ #226#128#157, // #148
+ #226#128#162, // #149
+ #226#128#147, // #150
+ #226#128#148, // #151
+ '', // #152
+ #226#132#162, // #153
+ #197#161, // #154
+ #226#128#186, // #155
+ #197#155, // #156
+ #197#165, // #157
+ #197#190, // #158
+ #197#186, // #159
+ #194#160, // #160
+ #203#135, // #161
+ #203#152, // #162
+ #197#129, // #163
+ #194#164, // #164
+ #196#132, // #165
+ #194#166, // #166
+ #194#167, // #167
+ #194#168, // #168
+ #194#169, // #169
+ #197#158, // #170
+ #194#171, // #171
+ #194#172, // #172
+ #194#173, // #173
+ #194#174, // #174
+ #197#187, // #175
+ #194#176, // #176
+ #194#177, // #177
+ #203#155, // #178
+ #197#130, // #179
+ #194#180, // #180
+ #194#181, // #181
+ #194#182, // #182
+ #194#183, // #183
+ #194#184, // #184
+ #196#133, // #185
+ #197#159, // #186
+ #194#187, // #187
+ #196#189, // #188
+ #203#157, // #189
+ #196#190, // #190
+ #197#188, // #191
+ #197#148, // #192
+ #195#129, // #193
+ #195#130, // #194
+ #196#130, // #195
+ #195#132, // #196
+ #196#185, // #197
+ #196#134, // #198
+ #195#135, // #199
+ #196#140, // #200
+ #195#137, // #201
+ #196#152, // #202
+ #195#139, // #203
+ #196#154, // #204
+ #195#141, // #205
+ #195#142, // #206
+ #196#142, // #207
+ #196#144, // #208
+ #197#131, // #209
+ #197#135, // #210
+ #195#147, // #211
+ #195#148, // #212
+ #197#144, // #213
+ #195#150, // #214
+ #195#151, // #215
+ #197#152, // #216
+ #197#174, // #217
+ #195#154, // #218
+ #197#176, // #219
+ #195#156, // #220
+ #195#157, // #221
+ #197#162, // #222
+ #195#159, // #223
+ #197#149, // #224
+ #195#161, // #225
+ #195#162, // #226
+ #196#131, // #227
+ #195#164, // #228
+ #196#186, // #229
+ #196#135, // #230
+ #195#167, // #231
+ #196#141, // #232
+ #195#169, // #233
+ #196#153, // #234
+ #195#171, // #235
+ #196#155, // #236
+ #195#173, // #237
+ #195#174, // #238
+ #196#143, // #239
+ #196#145, // #240
+ #197#132, // #241
+ #197#136, // #242
+ #195#179, // #243
+ #195#180, // #244
+ #197#145, // #245
+ #195#182, // #246
+ #195#183, // #247
+ #197#153, // #248
+ #197#175, // #249
+ #195#186, // #250
+ #197#177, // #251
+ #195#188, // #252
+ #195#189, // #253
+ #197#163, // #254
+ #203#153 // #255
+ );
+
+
ArrayIBMGraphToUTF8: TCharToUTF8Table = (
#0, // #0
#1, // #1
@@ -1731,6 +1992,11 @@ begin
Result := SingleByteToUTF8(s, ArrayCP866ToUTF8);
end;
+function CP1250ToUTF8(const s: string): TfpgString;
+begin
+ Result := SingleByteToUTF8(s, ArrayCP1250ToUTF8);
+end;
+
function IBMGraphToUTF8(const s: string): TfpgString;
begin
Result := SingleByteToUTF8(s, ArrayIBMGraphToUTF8);