PostgreSQL Source Code  git master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
utf8_and_ascii.c File Reference
#include "postgres.h"
#include "fmgr.h"
#include "mb/pg_wchar.h"
Include dependency graph for utf8_and_ascii.c:

Go to the source code of this file.

Functions

 PG_FUNCTION_INFO_V1 (ascii_to_utf8)
 
 PG_FUNCTION_INFO_V1 (utf8_to_ascii)
 
Datum ascii_to_utf8 (PG_FUNCTION_ARGS)
 
Datum utf8_to_ascii (PG_FUNCTION_ARGS)
 

Variables

 PG_MODULE_MAGIC
 

Function Documentation

Datum ascii_to_utf8 ( PG_FUNCTION_ARGS  )

Definition at line 35 of file utf8_and_ascii.c.

References CHECK_ENCODING_CONVERSION_ARGS, pg_ascii2mic(), PG_GETARG_CSTRING, PG_GETARG_INT32, PG_RETURN_VOID, PG_SQL_ASCII, and PG_UTF8.

36 {
37  unsigned char *src = (unsigned char *) PG_GETARG_CSTRING(2);
38  unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3);
39  int len = PG_GETARG_INT32(4);
40 
42 
43  /* this looks wrong, but basically we're just rejecting high-bit-set */
44  pg_ascii2mic(src, dest, len);
45 
47 }
#define PG_GETARG_INT32(n)
Definition: fmgr.h:234
void pg_ascii2mic(const unsigned char *l, unsigned char *p, int len)
Definition: conv.c:143
#define PG_RETURN_VOID()
Definition: fmgr.h:309
#define CHECK_ENCODING_CONVERSION_ARGS(srcencoding, destencoding)
Definition: pg_wchar.h:492
#define PG_GETARG_CSTRING(n)
Definition: fmgr.h:242
PG_FUNCTION_INFO_V1 ( ascii_to_utf8  )
PG_FUNCTION_INFO_V1 ( utf8_to_ascii  )
Datum utf8_to_ascii ( PG_FUNCTION_ARGS  )

Definition at line 50 of file utf8_and_ascii.c.

References CHECK_ENCODING_CONVERSION_ARGS, PG_GETARG_CSTRING, PG_GETARG_INT32, pg_mic2ascii(), PG_RETURN_VOID, PG_SQL_ASCII, and PG_UTF8.

51 {
52  unsigned char *src = (unsigned char *) PG_GETARG_CSTRING(2);
53  unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3);
54  int len = PG_GETARG_INT32(4);
55 
57 
58  /* this looks wrong, but basically we're just rejecting high-bit-set */
59  pg_mic2ascii(src, dest, len);
60 
62 }
#define PG_GETARG_INT32(n)
Definition: fmgr.h:234
#define PG_RETURN_VOID()
Definition: fmgr.h:309
#define CHECK_ENCODING_CONVERSION_ARGS(srcencoding, destencoding)
Definition: pg_wchar.h:492
void pg_mic2ascii(const unsigned char *mic, unsigned char *p, int len)
Definition: conv.c:163
#define PG_GETARG_CSTRING(n)
Definition: fmgr.h:242

Variable Documentation

PG_MODULE_MAGIC

Definition at line 18 of file utf8_and_ascii.c.