This file is indexed.

/usr/share/yaz/z39.50/charneg-3.asn is in libyaz4-dev 4.2.30-4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
NegotiationRecordDefinition-charSetandLanguageNegotiation-3
{Z39-50-negotiationRecordDefinition CharSetandLanguageNegotiation-3 (3)}
DEFINITIONS ::= BEGIN
IMPORTS LanguageCode FROM RecordSyntax-explain;

CharSetandLanguageNegotiation ::= CHOICE{
   proposal [1]   IMPLICIT OriginProposal,
   response [2]   IMPLICIT TargetResponse}
--
-- For character sets:
--  Origin proposes one, two, or all three of the following, in order of
--  preference:
--       (a) 2022 character sets.
--       (b) 10646 character set.
--       (c) Private character set.
--
--    The target responds with one of (a), (b), or (c), indicating the
--    character set(s) to be supported for all name and message strings.
--
--    If the origin includes (a),
--     the origin proposes:
--        (1)  A proposed environment: 7-bit, 8-bit, or no-preference.
--        (2)  A set of iso 2022 registration numbers.
--        (3)  One or more proposed initial sets of registration numbers,
--             for c0, c1, g0, g1, g2 and g3. These must come from (2).
--        (4)  The proposed encoding level.
--      And if the target selects (a), it responds with:
--        (1)  A selected environment: 7-bit or 8-bit.
--        (2)  A subset of the set of iso 2022 registration numbers proposed
--             by the origin.
--        (3)  The initial set of registrations, which must come from (2)
--             but need not be from the set of initial registrations proposed
--             by the origin.
--        (4)  The encoding level; less than or equal to that proposed.
--
--    If the origin includes (b),
--     The origin proposes:
--        (1)  (optionally) A list of collections (i.e. subsets of characters from the
--             complete 10646 definition).
--        (2)  An implementation level.
--        (3) Syntax/form: e.g. ucs-2, ucs-4, utf-8, utf-16.
--    And if the target selects (b), it responds by choosing a subset of the
--    collections proposed by the origin in (1) and an implementation level less
--    than or equal to that proposed by the origin in (2).
--
--    If the origin includes (c), the origin proposes one of the following:
--        (1)  A list of private character sets, by one or more object
--             identifiers.
--        (2)  A list of private character sets, by an EXTERNAL.
--        (3)  An indication to use a private, previously agreed upon
--             character set.
--    And if the target selects (c):
--    -  If the origin proposed (1), the target should respond with (1), and
--       the list of object identifiers should be a subset of the list that
--       the origin included.
--    -  If the origin proposed (2), the target should respond with (2), using
--       the same EXTERNAL definition (but not necessarily the same content)
--       used by the origin.
--    -  If the origin proposed (3), the target should respond with (3).
--
--    For Languages:
--     The origin optionally proposes one or more language codes. The target
--     response may include a single language code, which indicates the
--     language to be used for all message strings. The target may include or
--     omit this, whether or not the origin included a proposed set, and the
--     language code indicated need not be from among those proposed.
--
--

OriginProposal ::= SEQUENCE {
  proposedCharSets           [1] IMPLICIT SEQUENCE OF CHOICE{
               -- Each should occur at most once, and in order of preference
               -- (the "order of preference" is the reason why this is
               -- "SEQUENCE OF CHOICE" rather than just "SEQUENCE")
                                iso2022        [1] Iso2022,
                                iso10646       [2] IMPLICIT Iso10646,
                                private        [3] PrivateCharacterSet} OPTIONAL,
                                   -- proposedCharSets must be omitted
                                   -- if origin proposes version 2
  proposedlanguages          [2] IMPLICIT SEQUENCE OF LanguageCode OPTIONAL,
  recordsInSelectedCharSets  [3] IMPLICIT BOOLEAN OPTIONAL
                       -- default 'false'. See rule 6 above.
                       }

TargetResponse ::= SEQUENCE{
  selectedCharSets           [1] CHOICE{
                                   iso2022        [1] Iso2022,
                                   iso10646       [2] IMPLICIT Iso10646,
                                   private        [3] PrivateCharacterSet,
                                   none           [4] IMPLICIT NULL
                                            -- If selected, no negotiation
                                            -- is assumed to be in force
                                            -- for character sets.
                                                     } OPTIONAL,
                                   -- Omitted if and only if proposedCharSets
                                   -- was Omitted in the request.
  selectedLanguage           [2] IMPLICIT LanguageCode OPTIONAL,
  recordsInSelectedCharSets  [3] IMPLICIT BOOLEAN OPTIONAL
                  -- Omitted if and only if 'recordsInSelectedCharSets' was omitted
                  -- in the request.  See rule 6 above.
                       }


PrivateCharacterSet ::= CHOICE{
   viaOid                 [1] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER,
   externallySpecified    [2] IMPLICIT EXTERNAL,
   previouslyAgreedUpon   [3] IMPLICIT NULL}

-- IMPORTED
-- LanguageCode ::= GeneralString -- from ANSI Z39.53-1994

-- Definition of ISO2022
-- For ISO 2022, the following is negotiated:
--   1)   The environment: 7-bit or 8-bit;
--   2)   a set of registration numbers (from the ISO Register of coded
--        character sets) for graphical and  control character sets;
--   3)   g0, g1, g2, g3, c0, c1, the registration numbers of the graphical and
--        control character sets that are  initially designated to g0, g1, etc.
--       The origin submits one or more sequences of values for
--        g0, g1, g2, g3, c0, c1 (for each sequence: at least one of
--        g0 and g1 must be included; g2 and g3 are optional and
--         may be included only if g1 is included;
--        c0 should be included; and c1 is optional); the target
--        selects one of the proposed sequences.
--   4)   gleft: which of g0, g1, g2 or g3, initially has GL shift status in
--        an 8-bit environment or has shift status in a 7-bit environment; and
--   5)   gright: which of g1, g2 or g3 initially has GR shift status in an
--        8-bit environment.

Iso2022 ::= CHOICE{
 originProposal   [1] IMPLICIT SEQUENCE{
            proposedEnvironment    [0] Environment OPTIONAL,
                                         -- omitted means no preference
            proposedSets           [1] IMPLICIT SEQUENCE OF INTEGER,
            proposedInitialSets    [2] IMPLICIT SEQUENCE OF
                                             InitialSet,
            proposedLeftAndRight   [3] IMPLICIT LeftAndRight},
 targetResponse   [2] IMPLICIT SEQUENCE{
            selectedEnvironment    [0] Environment,
            selectedSets           [1] IMPLICIT SEQUENCE OF INTEGER,
            selectedinitialSet     [2] IMPLICIT InitialSet,
            selectedLeftAndRight   [3] IMPLICIT LeftAndRight}}

Environment ::= CHOICE{
   sevenBit    [1] IMPLICIT NULL,
   eightBit    [2] IMPLICIT NULL}

InitialSet::= SEQUENCE{
      g0    [0] IMPLICIT INTEGER OPTIONAL,
      g1    [1] IMPLICIT INTEGER OPTIONAL,
                           -- one of g0 and g1 must be included
      g2    [2] IMPLICIT INTEGER OPTIONAL,
      g3    [3] IMPLICIT INTEGER OPTIONAL,
                           --g2 and/or g3 may be included
                           -- only if g1 was included
      c0    [4] IMPLICIT INTEGER,
      c1    [5] IMPLICIT INTEGER OPTIONAL}

LeftAndRight ::= SEQUENCE{
            gLeft         [3] IMPLICIT INTEGER{
                                   g0 (0),
                                   g1 (1),
                                   g2 (2),
                                   g3 (3)},
            gRight        [4] IMPLICIT INTEGER{
                                   g1 (1),
                                   g2 (2),
                                   g3 (3)} OPTIONAL}

-- Definition of Iso10646
--
-- The 10646 object identifier looks like:
--        1.0.10646.1.implementationLevel.repertoireSubset.arc1.arc2. ....
--
-- (The second '1' is for "part 1" of 10646.)
--
-- ImplementationLevel is 1-3
--
-- repertoireSubset is 0 or 1, for 'all' or 'collections'.
-- The arcs are present only if repertoireSubset is 'collections',
-- in which case  arc1, arc2, etc., are the
-- identifiers of collections of character repertoires.
--
-- There is a second 10646 oid, for specifying syntax/form:
--        1.0.10646.1.0.form
--
-- (The second '0' represents "transfer syntax".)
--
--  where values of form include:
--  2: ucs-2
--  4: ucs-4
--  5: utf-16
--  8: utf-8

Iso10646 ::= SEQUENCE{
   collections    [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL,
                       --oid of form 1.0.10646.1.implementationLevel
                       -- .repertoireSubset.arc1.arc2. ....
                       -- Target to choose a subset of the collections
                       -- proposed by the origin, and an implementation level
                       -- less than or equal to that proposed.
                       --
                       -- when 'collections' is omitted,
                       -- 'implementationLevel' defaults to 3.
                       --
   encodingLevel  [2] IMPLICIT OBJECT IDENTIFIER
                       -- oid of form 1.0.10646.1.0.form
                    -- where value of 'form' is 2, 4, 5, or 8
                      -- for ucs-2, ucs-4, utf-16, utf-8
                                   }
END