Lichen

Annotated lib/native/iconv.py

858:8f8361de472a
2018-07-21 Paul Boddie Invocations in parameter lists may require temporary storage for contexts and accessors, but the storage locations must be different. Otherwise, the code will generate a sequence-point warning. Here, distinct ranges for parameters in lists are introduced, and accessors are now also stored in arrays, permitting distinct storage.
paul@380 1
#!/usr/bin/env python
paul@380 2
paul@380 3
"""
paul@380 4
Native library functions for character set conversion.
paul@380 5
paul@380 6
None of these are actually defined here. Instead, native implementations are
paul@380 7
substituted when each program is built. It is, however, important to declare
paul@380 8
non-core exceptions used by the native functions because they need to be
paul@380 9
identified as being needed by the program.
paul@380 10
paul@380 11
Copyright (C) 2016 Paul Boddie <paul@boddie.org.uk>
paul@380 12
paul@380 13
This program is free software; you can redistribute it and/or modify it under
paul@380 14
the terms of the GNU General Public License as published by the Free Software
paul@380 15
Foundation; either version 3 of the License, or (at your option) any later
paul@380 16
version.
paul@380 17
paul@380 18
This program is distributed in the hope that it will be useful, but WITHOUT
paul@380 19
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
paul@380 20
FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
paul@380 21
details.
paul@380 22
paul@380 23
You should have received a copy of the GNU General Public License along with
paul@380 24
this program.  If not, see <http://www.gnu.org/licenses/>.
paul@380 25
"""
paul@380 26
paul@453 27
from posix.iconv import IncompleteSequenceError, InvalidSequenceError
paul@453 28
paul@386 29
def iconv(cd, state):
paul@453 30
    IncompleteSequenceError
paul@453 31
    InvalidSequenceError
paul@380 32
    OSError
paul@380 33
paul@380 34
def iconv_close(cd):
paul@380 35
    OSError
paul@380 36
paul@386 37
def iconv_open(tocode, fromcode):
paul@380 38
    OSError
paul@380 39
paul@386 40
def iconv_reset(cd): pass
paul@386 41
paul@380 42
# vim: tabstop=4 expandtab shiftwidth=4