PostgreSQL Source Code
git master
win1251.c
Go to the documentation of this file.
1
/*
2
* make KOI8->CP1251(win-1251) and CP1251(win-1251)->KOI8 translation table
3
* from koi-win.tab.
4
*
5
* Tatsuo Ishii
6
*
7
* src/backend/utils/mb/win1251.c
8
*/
9
10
#include <stdio.h>
11
12
13
main
()
14
{
15
int
i
;
16
char
koitab[128],
17
wintab[128];
18
char
buf
[4096];
19
int
koi,
20
win;
21
22
for
(
i
= 0;
i
< 128;
i
++)
23
koitab[
i
] = wintab[
i
] = 0;
24
25
while
(fgets(
buf
,
sizeof
(
buf
), stdin) != NULL)
26
{
27
if
(*
buf
==
'#'
)
28
continue
;
29
sscanf(
buf
,
"%d %d"
, &koi, &win);
30
if
(koi < 128 || koi > 255 || win < 128 || win > 255)
31
{
32
fprintf
(stderr,
"invalid value %d\n"
, koi);
33
exit
(1);
34
}
35
koitab[koi - 128] = win;
36
wintab[win - 128] = koi;
37
}
38
39
i
= 0;
40
printf
(
"static char koi2win[] = {\n"
);
41
while
(
i
< 128)
42
{
43
int
j
= 0;
44
45
while
(
j
< 8)
46
{
47
printf
(
"0x%02x"
, koitab[
i
++]);
48
j
++;
49
if
(
i
>= 128)
50
break
;
51
printf
(
", "
);
52
}
53
printf
(
"\n"
);
54
}
55
printf
(
"};\n"
);
56
57
i
= 0;
58
printf
(
"static char win2koi[] = {\n"
);
59
while
(
i
< 128)
60
{
61
int
j
= 0;
62
63
while
(
j
< 8)
64
{
65
printf
(
"0x%02x"
, wintab[
i
++]);
66
j
++;
67
if
(
i
>= 128)
68
break
;
69
printf
(
", "
);
70
}
71
printf
(
"\n"
);
72
}
73
printf
(
"};\n"
);
74
}
j
int j
Definition:
isn.c:74
i
int i
Definition:
isn.c:73
exit
exit(1)
buf
static char * buf
Definition:
pg_test_fsync.c:73
fprintf
#define fprintf
Definition:
port.h:242
printf
#define printf(...)
Definition:
port.h:244
main
main()
Definition:
win1251.c:13
src
backend
utils
mb
win1251.c
Generated on Sat May 11 2024 06:13:22 for PostgreSQL Source Code by
1.9.1