Commit 27f4f67b authored by Michael Widenius's avatar Michael Widenius

Fixed link problem when compiling without uca

cmd-line-utils/readline/config_readline.h:
  Add back defines needed for linux to get rid of compiler warnings, but hide them for now until we have a solution for compile failure on MacOSX
strings/ctype-uca.c:
  Always define UCA contraction functions used by ctype-mb.c
parent 55d0b6cc
......@@ -7,6 +7,13 @@
# include <config.h>
#endif
#ifdef NOT_YET /* causes problem on MacOSX */
/* to get wcwidth() defined */
#define _XOPEN_SOURCE 600
#define _XOPEN_SOURCE_EXTENDED
#define _XOPEN_
#endif
/*
Ultrix botches type-ahead when switching from canonical to
non-canonical mode, at least through version 4.3
......
......@@ -36,6 +36,12 @@
#include "m_string.h"
#include "m_ctype.h"
#define MY_UCA_CNT_FLAG_SIZE 4096
#define MY_UCA_CNT_FLAG_MASK 4095
#define MY_UCA_CNT_HEAD 1
#define MY_UCA_CNT_TAIL 2
#ifdef HAVE_UCA_COLLATIONS
#define MY_UCA_NPAGES 256
......@@ -6756,16 +6762,6 @@ typedef struct my_uca_scanner_handler_st
static uint16 nochar[]= {0,0};
#define MY_UCA_CNT_FLAG_SIZE 4096
#define MY_UCA_CNT_FLAG_MASK 4095
#define MY_UCA_CNT_HEAD 1
#define MY_UCA_CNT_TAIL 2
/********** Helper functions to handle contraction ************/
......@@ -6836,85 +6832,6 @@ my_uca_alloc_contractions(CHARSET_INFO *cs, void *(*alloc)(size_t), size_t n)
return 0;
}
/**
Check if UCA data has contractions (public version)
@cs Pointer to CHARSET_INFO data
@retval 0 - no contraction, 1 - have contractions.
*/
my_bool
my_uca_have_contractions(CHARSET_INFO *cs)
{
return cs->contractions != NULL;
}
/**
Check if a character can be contraction head
@cs Pointer to CHARSET_INFO data
@wc Code point
@retval 0 - cannot be contraction head
@retval 1 - can be contraction head
*/
my_bool
my_uca_can_be_contraction_head(CHARSET_INFO *cs, my_wc_t wc)
{
return cs->contractions->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_CNT_HEAD;
}
/**
Check if a character can be contraction tail
@cs Pointer to CHARSET_INFO data
@wc Code point
@retval 0 - cannot be contraction tail
@retval 1 - can be contraction tail
*/
my_bool
my_uca_can_be_contraction_tail(CHARSET_INFO *cs, my_wc_t wc)
{
return cs->contractions->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_CNT_TAIL;
}
/**
Find a contraction and return its weight array
@cs Pointer to CHARSET data
@wc1 First character
@wc2 Second character
@return Weight array
@retval NULL - no contraction found
@retval ptr - contraction weight array
*/
uint16 *
my_uca_contraction2_weight(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2)
{
MY_CONTRACTIONS *list= cs->contractions;
MY_CONTRACTION *c, *last;
for (c= list->item, last= &list->item[list->nitems]; c < last; c++)
{
if (c->ch[0] == wc1 && c->ch[1] == wc2)
{
return c->weight;
}
}
return NULL;
}
#ifdef HAVE_CHARSET_ucs2
/*
Initialize collation weight scanner
......@@ -9607,3 +9524,78 @@ CHARSET_INFO my_charset_utf8_croatian_uca_ci=
#endif /* HAVE_CHARSET_utf8 */
#endif /* HAVE_UCA_COLLATIONS */
/**
Check if UCA data has contractions (public version)
@cs Pointer to CHARSET_INFO data
@retval 0 - no contraction, 1 - have contractions.
*/
my_bool
my_uca_have_contractions(CHARSET_INFO *cs)
{
return cs->contractions != NULL;
}
/**
Check if a character can be contraction head
@cs Pointer to CHARSET_INFO data
@wc Code point
@retval 0 - cannot be contraction head
@retval 1 - can be contraction head
*/
my_bool
my_uca_can_be_contraction_head(CHARSET_INFO *cs, my_wc_t wc)
{
return cs->contractions->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_CNT_HEAD;
}
/**
Check if a character can be contraction tail
@cs Pointer to CHARSET_INFO data
@wc Code point
@retval 0 - cannot be contraction tail
@retval 1 - can be contraction tail
*/
my_bool
my_uca_can_be_contraction_tail(CHARSET_INFO *cs, my_wc_t wc)
{
return cs->contractions->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_CNT_TAIL;
}
/**
Find a contraction and return its weight array
@cs Pointer to CHARSET data
@wc1 First character
@wc2 Second character
@return Weight array
@retval NULL - no contraction found
@retval ptr - contraction weight array
*/
uint16 *
my_uca_contraction2_weight(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2)
{
MY_CONTRACTIONS *list= cs->contractions;
MY_CONTRACTION *c, *last;
for (c= list->item, last= &list->item[list->nitems]; c < last; c++)
{
if (c->ch[0] == wc1 && c->ch[1] == wc2)
{
return c->weight;
}
}
return NULL;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment