YAZ  5.34.0
Data Structures | Macros | Functions | Variables
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.

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().

◆ init_danmarc()

static 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().

◆ read_danmarc()

static 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()

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

◆ read_useq()

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

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_iconv_decoder_t yaz_danmarc_decoder ( const char *  fromcode,
yaz_iconv_decoder_t  d 
)

◆ 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()

static 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().