YAZ 5.37.0
iconv_decode_danmarc.c File Reference

Danmarc2 character set decoding. More...

#include <assert.h>
#include <errno.h>
#include <string.h>
#include <stdio.h>
#include <yaz/log.h>
#include <yaz/xmalloc.h>
#include "iconv-p.h"

Go to the source code of this file.

Data Structures

struct  decoder_data

Macros

#define MAX_COMP   4

Functions

static unsigned long read_useq (yaz_iconv_t cd, yaz_iconv_decoder_t d, unsigned char *inp, size_t inbytesleft, size_t *no_read)
static unsigned long read_danmarc (yaz_iconv_t cd, yaz_iconv_decoder_t d, unsigned char *inp, size_t inbytesleft, size_t *no_read)
unsigned long yaz_danmarc_swap_to_danmarc (unsigned long x)
static unsigned long yaz_danmarc_swap_to_utf8 (unsigned long x)
static unsigned long read_danmarc_comb (yaz_iconv_t cd, yaz_iconv_decoder_t d, unsigned char *inp, size_t inbytesleft, size_t *no_read)
static size_t init_danmarc (yaz_iconv_t cd, yaz_iconv_decoder_t d, unsigned char *inp, size_t inbytesleft, size_t *no_read)
void destroy_danmarc (yaz_iconv_decoder_t d)
yaz_iconv_decoder_t yaz_danmarc_decoder (const char *fromcode, yaz_iconv_decoder_t d)
int yaz_danmarc_is_combining (unsigned long x)

Variables

static unsigned long swap_seq []

Detailed Description

Danmarc2 character set decoding.

Definition in file iconv_decode_danmarc.c.

Macro Definition Documentation

◆ MAX_COMP

#define MAX_COMP   4

Definition at line 23 of file iconv_decode_danmarc.c.

Referenced by read_danmarc_comb(), and write_danmarc().

Function Documentation

◆ destroy_danmarc()

void destroy_danmarc ( yaz_iconv_decoder_t d)

Definition at line 203 of file iconv_decode_danmarc.c.

References yaz_iconv_decoder_s::data, and xfree.

Referenced by yaz_danmarc_decoder(), and yaz_danmarc_encoder().

◆ init_danmarc()

size_t init_danmarc ( yaz_iconv_t cd,
yaz_iconv_decoder_t d,
unsigned char * inp,
size_t inbytesleft,
size_t * no_read )
static

Definition at line 194 of file iconv_decode_danmarc.c.

References yaz_iconv_decoder_s::data, and decoder_data::sz.

Referenced by yaz_danmarc_decoder(), and yaz_danmarc_encoder().

◆ read_danmarc()

unsigned long read_danmarc ( yaz_iconv_t cd,
yaz_iconv_decoder_t d,
unsigned char * inp,
size_t inbytesleft,
size_t * no_read )
static

Definition at line 74 of file iconv_decode_danmarc.c.

References read_useq(), YAZ_ICONV_EINVAL, and yaz_iconv_set_errno().

Referenced by read_danmarc_comb().

◆ read_danmarc_comb()

unsigned long read_danmarc_comb ( yaz_iconv_t cd,
yaz_iconv_decoder_t d,
unsigned char * inp,
size_t inbytesleft,
size_t * no_read )
static

◆ read_useq()

unsigned long read_useq ( yaz_iconv_t cd,
yaz_iconv_decoder_t d,
unsigned char * inp,
size_t inbytesleft,
size_t * no_read )
static

Definition at line 31 of file iconv_decode_danmarc.c.

References YAZ_ICONV_EINVAL, and yaz_iconv_set_errno().

Referenced by read_danmarc().

◆ yaz_danmarc_decoder()

◆ yaz_danmarc_is_combining()

int yaz_danmarc_is_combining ( unsigned long x)

Definition at line 227 of file iconv_decode_danmarc.c.

Referenced by read_danmarc_comb(), and write_danmarc().

◆ yaz_danmarc_swap_to_danmarc()

unsigned long yaz_danmarc_swap_to_danmarc ( unsigned long x)

Definition at line 146 of file iconv_decode_danmarc.c.

References swap_seq.

Referenced by flush_danmarc().

◆ yaz_danmarc_swap_to_utf8()

unsigned long yaz_danmarc_swap_to_utf8 ( unsigned long x)
static

Definition at line 155 of file iconv_decode_danmarc.c.

References swap_seq.

Referenced by read_danmarc_comb().

Variable Documentation

◆ swap_seq

unsigned long swap_seq[]
static
Initial value:
= {
0x5e, 0x302,
0x5f, 0x332,
0x60, 0x300,
0xa8, 0x308,
0xaf, 0x304,
0xb4, 0x301,
0xb8, 0x327,
0x02c7, 0x30c,
0x02d8, 0x306,
0x02da, 0x30a,
0x02db, 0x328,
0x02dd, 0x30b,
0
}

Definition at line 130 of file iconv_decode_danmarc.c.

Referenced by yaz_danmarc_swap_to_danmarc(), and yaz_danmarc_swap_to_utf8().