PostgreSQL Source Code git master
unicode_case.h File Reference
#include "mb/pg_wchar.h"
Include dependency graph for unicode_case.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef size_t(* WordBoundaryNext) (void *wbstate)
 

Functions

pg_wchar unicode_lowercase_simple (pg_wchar code)
 
pg_wchar unicode_titlecase_simple (pg_wchar code)
 
pg_wchar unicode_uppercase_simple (pg_wchar code)
 
pg_wchar unicode_casefold_simple (pg_wchar code)
 
size_t unicode_strlower (char *dst, size_t dstsize, const char *src, ssize_t srclen, bool full)
 
size_t unicode_strtitle (char *dst, size_t dstsize, const char *src, ssize_t srclen, bool full, WordBoundaryNext wbnext, void *wbstate)
 
size_t unicode_strupper (char *dst, size_t dstsize, const char *src, ssize_t srclen, bool full)
 
size_t unicode_strfold (char *dst, size_t dstsize, const char *src, ssize_t srclen, bool full)
 

Typedef Documentation

◆ WordBoundaryNext

typedef size_t(* WordBoundaryNext) (void *wbstate)

Definition at line 19 of file unicode_case.h.

Function Documentation

◆ unicode_casefold_simple()

pg_wchar unicode_casefold_simple ( pg_wchar  code)

Definition at line 55 of file unicode_case.c.

56{
57 const pg_case_map *map = find_case_map(code);
58
59 return map ? map->simplemap[CaseFold] : code;
60}
pg_wchar simplemap[NCaseKind]
static const pg_case_map * find_case_map(pg_wchar ucs)
Definition: unicode_case.c:370
@ CaseFold

References CaseFold, find_case_map(), and pg_case_map::simplemap.

◆ unicode_lowercase_simple()

pg_wchar unicode_lowercase_simple ( pg_wchar  code)

Definition at line 31 of file unicode_case.c.

32{
33 const pg_case_map *map = find_case_map(code);
34
35 return map ? map->simplemap[CaseLower] : code;
36}
@ CaseLower

References CaseLower, find_case_map(), and pg_case_map::simplemap.

Referenced by pg_wc_tolower().

◆ unicode_strfold()

size_t unicode_strfold ( char *  dst,
size_t  dstsize,
const char *  src,
ssize_t  srclen,
bool  full 
)

Definition at line 170 of file unicode_case.c.

172{
173 return convert_case(dst, dstsize, src, srclen, CaseFold, full, NULL,
174 NULL);
175}
static size_t convert_case(char *dst, size_t dstsize, const char *src, ssize_t srclen, CaseKind str_casekind, bool full, WordBoundaryNext wbnext, void *wbstate)
Definition: unicode_case.c:194

References CaseFold, and convert_case().

Referenced by strfold_builtin(), and tfunc_fold().

◆ unicode_strlower()

size_t unicode_strlower ( char *  dst,
size_t  dstsize,
const char *  src,
ssize_t  srclen,
bool  full 
)

Definition at line 82 of file unicode_case.c.

84{
85 return convert_case(dst, dstsize, src, srclen, CaseLower, full, NULL,
86 NULL);
87}

References CaseLower, and convert_case().

Referenced by strlower_builtin(), and tfunc_lower().

◆ unicode_strtitle()

size_t unicode_strtitle ( char *  dst,
size_t  dstsize,
const char *  src,
ssize_t  srclen,
bool  full,
WordBoundaryNext  wbnext,
void *  wbstate 
)

Definition at line 119 of file unicode_case.c.

121{
122 return convert_case(dst, dstsize, src, srclen, CaseTitle, full, wbnext,
123 wbstate);
124}
@ CaseTitle

References CaseTitle, and convert_case().

Referenced by strtitle_builtin(), and tfunc_title().

◆ unicode_strupper()

size_t unicode_strupper ( char *  dst,
size_t  dstsize,
const char *  src,
ssize_t  srclen,
bool  full 
)

Definition at line 146 of file unicode_case.c.

148{
149 return convert_case(dst, dstsize, src, srclen, CaseUpper, full, NULL,
150 NULL);
151}
@ CaseUpper

References CaseUpper, and convert_case().

Referenced by strupper_builtin(), and tfunc_upper().

◆ unicode_titlecase_simple()

pg_wchar unicode_titlecase_simple ( pg_wchar  code)

Definition at line 39 of file unicode_case.c.

40{
41 const pg_case_map *map = find_case_map(code);
42
43 return map ? map->simplemap[CaseTitle] : code;
44}

References CaseTitle, find_case_map(), and pg_case_map::simplemap.

◆ unicode_uppercase_simple()

pg_wchar unicode_uppercase_simple ( pg_wchar  code)

Definition at line 47 of file unicode_case.c.

48{
49 const pg_case_map *map = find_case_map(code);
50
51 return map ? map->simplemap[CaseUpper] : code;
52}

References CaseUpper, find_case_map(), and pg_case_map::simplemap.

Referenced by pg_wc_toupper().