YAZ
5.34.0
src
diag_map.c
Go to the documentation of this file.
1
/* This file is part of the YAZ toolkit.
2
* Copyright (C) Index Data
3
* See the file LICENSE for details.
4
*/
9
#if HAVE_CONFIG_H
10
#include <
config.h
>
11
#endif
12
13
#include <stdlib.h>
14
#include <assert.h>
15
#include <
yaz/srw.h
>
16
17
/* bib1:srw */
18
static
int
bib1_srw_map
[] = {
19
1, 1,
20
2, 2,
21
3, 48,
22
4, 35,
23
5, 12,
24
6, 38,
25
7, 30,
26
8, 32,
27
9, 29,
28
10, 10,
29
11, 12,
30
11, 23,
31
12, 60,
32
13, 61,
33
13, 62,
34
14, 63,
35
14, 64,
36
14, 65,
37
15, 68,
38
15, 69,
39
16, 70,
40
17, 70,
41
18, 50,
42
19, 55,
43
20, 56,
44
21, 52,
45
22, 50,
46
23, 3,
47
24, 66,
48
25, 66,
49
26, 66,
50
27, 51,
51
28, 52,
52
29, 52,
53
30, 51,
54
31, 57,
55
32, 58,
56
33, 59,
57
100, 1,
/* bad map */
58
101, 3,
59
102, 3,
60
103, 3,
61
104, 3,
62
105, 3,
63
106, 66,
64
107, 11,
65
108, 10,
66
108, 13,
67
108, 14,
68
108, 25,
69
108, 26,
70
108, 27,
71
108, 45,
72
73
109, 235,
74
110, 37,
75
111, 1,
76
112, 58,
77
113, 10,
78
114, 16,
79
115, 16,
80
116, 16,
81
117, 19,
82
117, 20,
83
118, 22,
84
119, 32,
85
119, 31,
86
120, 28,
87
121, 15,
88
122, 32,
89
123, 22,
90
123, 17,
91
123, 18,
92
124, 24,
93
125, 36,
94
126, 36,
95
127, 36,
96
128, 51,
97
129, 39,
98
130, 43,
99
131, 40,
100
132, 42,
101
201, 44,
102
201, 33,
103
201, 34,
104
202, 41,
105
203, 43,
106
205, 1,
/* bad map */
107
206, 1,
/* bad map */
108
207, 89,
109
208, 1,
/* bad map */
110
209, 80,
111
210, 80,
112
210, 81,
113
211, 84,
114
212, 85,
115
213, 92,
116
214, 90,
117
215, 91,
118
216, 92,
119
217, 63,
120
218, 1,
/* bad map */
121
219, 1,
/* bad map */
122
220, 1,
/* bad map */
123
221, 1,
/* bad map */
124
222, 3,
125
223, 1,
/* bad map */
126
224, 1,
/* bad map */
127
225, 1,
/* bad map */
128
226, 1,
/* bad map */
129
227, 66,
130
228, 1,
/* bad map */
131
229, 36,
132
230, 83,
133
231, 89,
134
232, 1,
135
233, 1,
/* bad map */
136
234, 1,
/* bad map */
137
235, 235,
138
236, 236,
139
237, 82,
140
238, 67,
141
239, 66,
142
240, 1,
/* bad map */
143
241, 1,
/* bad map */
144
242, 70,
145
243, 1,
/* bad map */
146
244, 66,
147
245, 10,
148
246, 10,
149
247, 10,
150
1001, 1,
/* bad map */
151
1002, 1,
/* bad map */
152
1003, 1,
/* bad map */
153
1004, 1,
/* bad map */
154
1005, 1,
/* bad map */
155
1006, 1,
/* bad map */
156
1007, 100,
157
1008, 1,
158
1009, 1,
159
1010, 3,
160
1011, 3,
161
1012, 3,
162
1013, 3,
163
1014, 3,
164
1015, 1015,
165
1015, 3,
166
1016, 3,
167
1017, 3,
168
1018, 2,
169
1019, 2,
170
1020, 2,
171
1021, 3,
172
1022, 3,
173
1023, 3,
174
1024, 16,
175
1025, 3,
176
1026, 64,
177
1027, 1,
178
1028, 65,
179
1029, 1,
180
1040, 1,
181
/* 1041-1065 */
182
1066, 66,
183
1066, 67,
184
1073, 16,
185
1074, 1074,
186
0
187
};
188
189
/*
190
* This array contains overrides for when the first occurrence of a
191
* particular SRW error in the array above does not correspond with
192
* the best back-translation of that SRW error.
193
*/
194
static
int
srw_bib1_map
[] = {
195
10, 108,
196
66, 238,
197
235, 235,
198
/* No doubt there are many more */
199
0
200
};
201
202
203
int
yaz_diag_bib1_to_srw
(
int
code)
204
{
205
const
int
*p =
bib1_srw_map
;
206
while
(*p)
207
{
208
if
(code == p[0])
209
return
p[1];
210
p += 2;
211
}
212
return
1;
213
}
214
215
int
yaz_diag_srw_to_bib1
(
int
code)
216
{
217
/* Check explicit reverse-map first */
218
const
int
*p =
srw_bib1_map
;
219
while
(*p)
220
{
221
if
(code == p[0])
222
return
p[1];
223
p += 2;
224
}
225
226
/* Fall back on reverse lookup in main map */
227
p =
bib1_srw_map
;
228
while
(*p)
229
{
230
if
(code == p[1])
231
return
p[0];
232
p += 2;
233
}
234
return
1;
235
}
236
237
/*
238
* Local variables:
239
* c-basic-offset: 4
240
* c-file-style: "Stroustrup"
241
* indent-tabs-mode: nil
242
* End:
243
* vim: shiftwidth=4 tabstop=8 expandtab
244
*/
245
config.h
srw_bib1_map
static int srw_bib1_map[]
Definition:
diag_map.c:194
yaz_diag_bib1_to_srw
int yaz_diag_bib1_to_srw(int code)
Definition:
diag_map.c:203
bib1_srw_map
static int bib1_srw_map[]
Definition:
diag_map.c:18
yaz_diag_srw_to_bib1
int yaz_diag_srw_to_bib1(int code)
Definition:
diag_map.c:215
srw.h
Header for SRW/SRU.
Generated by
1.9.1