PostgreSQL Source Code  git master
latin_and_mic.c File Reference
#include "postgres.h"
#include "fmgr.h"
#include "mb/pg_wchar.h"
Include dependency graph for latin_and_mic.c:

Go to the source code of this file.

Functions

 PG_FUNCTION_INFO_V1 (latin1_to_mic)
 
 PG_FUNCTION_INFO_V1 (mic_to_latin1)
 
 PG_FUNCTION_INFO_V1 (latin3_to_mic)
 
 PG_FUNCTION_INFO_V1 (mic_to_latin3)
 
 PG_FUNCTION_INFO_V1 (latin4_to_mic)
 
 PG_FUNCTION_INFO_V1 (mic_to_latin4)
 
Datum latin1_to_mic (PG_FUNCTION_ARGS)
 
Datum mic_to_latin1 (PG_FUNCTION_ARGS)
 
Datum latin3_to_mic (PG_FUNCTION_ARGS)
 
Datum mic_to_latin3 (PG_FUNCTION_ARGS)
 
Datum latin4_to_mic (PG_FUNCTION_ARGS)
 
Datum mic_to_latin4 (PG_FUNCTION_ARGS)
 

Variables

 PG_MODULE_MAGIC
 

Function Documentation

◆ latin1_to_mic()

Datum latin1_to_mic ( PG_FUNCTION_ARGS  )

Definition at line 43 of file latin_and_mic.c.

44 {
45  unsigned char *src = (unsigned char *) PG_GETARG_CSTRING(2);
46  unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3);
47  int len = PG_GETARG_INT32(4);
48  bool noError = PG_GETARG_BOOL(5);
49  int converted;
50 
52 
53  converted = latin2mic(src, dest, len, LC_ISO8859_1, PG_LATIN1, noError);
54 
55  PG_RETURN_INT32(converted);
56 }
int latin2mic(const unsigned char *l, unsigned char *p, int len, int lc, int encoding, bool noError)
Definition: conv.c:89
#define PG_GETARG_CSTRING(n)
Definition: fmgr.h:277
#define PG_RETURN_INT32(x)
Definition: fmgr.h:354
#define PG_GETARG_INT32(n)
Definition: fmgr.h:269
#define PG_GETARG_BOOL(n)
Definition: fmgr.h:274
const void size_t len
@ PG_MULE_INTERNAL
Definition: pg_wchar.h:233
@ PG_LATIN1
Definition: pg_wchar.h:234
#define CHECK_ENCODING_CONVERSION_ARGS(srcencoding, destencoding)
Definition: pg_wchar.h:507
#define LC_ISO8859_1
Definition: pg_wchar.h:105

References CHECK_ENCODING_CONVERSION_ARGS, generate_unaccent_rules::dest, latin2mic(), LC_ISO8859_1, len, PG_GETARG_BOOL, PG_GETARG_CSTRING, PG_GETARG_INT32, PG_LATIN1, PG_MULE_INTERNAL, and PG_RETURN_INT32.

◆ latin3_to_mic()

Datum latin3_to_mic ( PG_FUNCTION_ARGS  )

Definition at line 75 of file latin_and_mic.c.

76 {
77  unsigned char *src = (unsigned char *) PG_GETARG_CSTRING(2);
78  unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3);
79  int len = PG_GETARG_INT32(4);
80  bool noError = PG_GETARG_BOOL(5);
81  int converted;
82 
84 
85  converted = latin2mic(src, dest, len, LC_ISO8859_3, PG_LATIN3, noError);
86 
87  PG_RETURN_INT32(converted);
88 }
@ PG_LATIN3
Definition: pg_wchar.h:236
#define LC_ISO8859_3
Definition: pg_wchar.h:107

References CHECK_ENCODING_CONVERSION_ARGS, generate_unaccent_rules::dest, latin2mic(), LC_ISO8859_3, len, PG_GETARG_BOOL, PG_GETARG_CSTRING, PG_GETARG_INT32, PG_LATIN3, PG_MULE_INTERNAL, and PG_RETURN_INT32.

◆ latin4_to_mic()

Datum latin4_to_mic ( PG_FUNCTION_ARGS  )

Definition at line 107 of file latin_and_mic.c.

108 {
109  unsigned char *src = (unsigned char *) PG_GETARG_CSTRING(2);
110  unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3);
111  int len = PG_GETARG_INT32(4);
112  bool noError = PG_GETARG_BOOL(5);
113  int converted;
114 
116 
117  converted = latin2mic(src, dest, len, LC_ISO8859_4, PG_LATIN4, noError);
118 
119  PG_RETURN_INT32(converted);
120 }
@ PG_LATIN4
Definition: pg_wchar.h:237
#define LC_ISO8859_4
Definition: pg_wchar.h:108

References CHECK_ENCODING_CONVERSION_ARGS, generate_unaccent_rules::dest, latin2mic(), LC_ISO8859_4, len, PG_GETARG_BOOL, PG_GETARG_CSTRING, PG_GETARG_INT32, PG_LATIN4, PG_MULE_INTERNAL, and PG_RETURN_INT32.

◆ mic_to_latin1()

Datum mic_to_latin1 ( PG_FUNCTION_ARGS  )

Definition at line 59 of file latin_and_mic.c.

60 {
61  unsigned char *src = (unsigned char *) PG_GETARG_CSTRING(2);
62  unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3);
63  int len = PG_GETARG_INT32(4);
64  bool noError = PG_GETARG_BOOL(5);
65  int converted;
66 
68 
69  converted = mic2latin(src, dest, len, LC_ISO8859_1, PG_LATIN1, noError);
70 
71  PG_RETURN_INT32(converted);
72 }
int mic2latin(const unsigned char *mic, unsigned char *p, int len, int lc, int encoding, bool noError)
Definition: conv.c:127

References CHECK_ENCODING_CONVERSION_ARGS, generate_unaccent_rules::dest, LC_ISO8859_1, len, mic2latin(), PG_GETARG_BOOL, PG_GETARG_CSTRING, PG_GETARG_INT32, PG_LATIN1, PG_MULE_INTERNAL, and PG_RETURN_INT32.

◆ mic_to_latin3()

Datum mic_to_latin3 ( PG_FUNCTION_ARGS  )

Definition at line 91 of file latin_and_mic.c.

92 {
93  unsigned char *src = (unsigned char *) PG_GETARG_CSTRING(2);
94  unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3);
95  int len = PG_GETARG_INT32(4);
96  bool noError = PG_GETARG_BOOL(5);
97  int converted;
98 
100 
101  converted = mic2latin(src, dest, len, LC_ISO8859_3, PG_LATIN3, noError);
102 
103  PG_RETURN_INT32(converted);
104 }

References CHECK_ENCODING_CONVERSION_ARGS, generate_unaccent_rules::dest, LC_ISO8859_3, len, mic2latin(), PG_GETARG_BOOL, PG_GETARG_CSTRING, PG_GETARG_INT32, PG_LATIN3, PG_MULE_INTERNAL, and PG_RETURN_INT32.

◆ mic_to_latin4()

Datum mic_to_latin4 ( PG_FUNCTION_ARGS  )

Definition at line 123 of file latin_and_mic.c.

124 {
125  unsigned char *src = (unsigned char *) PG_GETARG_CSTRING(2);
126  unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3);
127  int len = PG_GETARG_INT32(4);
128  bool noError = PG_GETARG_BOOL(5);
129  int converted;
130 
132 
133  converted = mic2latin(src, dest, len, LC_ISO8859_4, PG_LATIN4, noError);
134 
135  PG_RETURN_INT32(converted);
136 }

References CHECK_ENCODING_CONVERSION_ARGS, generate_unaccent_rules::dest, LC_ISO8859_4, len, mic2latin(), PG_GETARG_BOOL, PG_GETARG_CSTRING, PG_GETARG_INT32, PG_LATIN4, PG_MULE_INTERNAL, and PG_RETURN_INT32.

◆ PG_FUNCTION_INFO_V1() [1/6]

PG_FUNCTION_INFO_V1 ( latin1_to_mic  )

◆ PG_FUNCTION_INFO_V1() [2/6]

PG_FUNCTION_INFO_V1 ( latin3_to_mic  )

◆ PG_FUNCTION_INFO_V1() [3/6]

PG_FUNCTION_INFO_V1 ( latin4_to_mic  )

◆ PG_FUNCTION_INFO_V1() [4/6]

PG_FUNCTION_INFO_V1 ( mic_to_latin1  )

◆ PG_FUNCTION_INFO_V1() [5/6]

PG_FUNCTION_INFO_V1 ( mic_to_latin3  )

◆ PG_FUNCTION_INFO_V1() [6/6]

PG_FUNCTION_INFO_V1 ( mic_to_latin4  )

Variable Documentation

◆ PG_MODULE_MAGIC

PG_MODULE_MAGIC

Definition at line 18 of file latin_and_mic.c.