Make HB_DIRECTION_INVALID be zero
This changes all the HB_DIRECTION_* enum member values, but is nicer, in preparation for making hb_segment_properties_t public.
This commit is contained in:
parent
d01402da9c
commit
4bf90f6483
|
@ -80,7 +80,7 @@ hb_direction_from_string (const char *str, int len)
|
||||||
char c = TOLOWER (str[0]);
|
char c = TOLOWER (str[0]);
|
||||||
for (unsigned int i = 0; i < ARRAY_LENGTH (direction_strings); i++)
|
for (unsigned int i = 0; i < ARRAY_LENGTH (direction_strings); i++)
|
||||||
if (c == direction_strings[i][0])
|
if (c == direction_strings[i][0])
|
||||||
return (hb_direction_t) i;
|
return (hb_direction_t) (HB_DIRECTION_LTR + i);
|
||||||
|
|
||||||
return HB_DIRECTION_INVALID;
|
return HB_DIRECTION_INVALID;
|
||||||
}
|
}
|
||||||
|
@ -88,8 +88,9 @@ hb_direction_from_string (const char *str, int len)
|
||||||
const char *
|
const char *
|
||||||
hb_direction_to_string (hb_direction_t direction)
|
hb_direction_to_string (hb_direction_t direction)
|
||||||
{
|
{
|
||||||
if (likely ((unsigned int) direction < ARRAY_LENGTH (direction_strings)))
|
if (likely ((unsigned int) (direction - HB_DIRECTION_LTR)
|
||||||
return direction_strings[direction];
|
< ARRAY_LENGTH (direction_strings)))
|
||||||
|
return direction_strings[direction - HB_DIRECTION_LTR];
|
||||||
|
|
||||||
return "invalid";
|
return "invalid";
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,31 +93,31 @@ typedef uint32_t hb_tag_t;
|
||||||
|
|
||||||
#define HB_TAG_NONE HB_TAG(0,0,0,0)
|
#define HB_TAG_NONE HB_TAG(0,0,0,0)
|
||||||
|
|
||||||
/* len=-1 means s is NUL-terminated */
|
/* len=-1 means str is NUL-terminated */
|
||||||
hb_tag_t hb_tag_from_string (const char *s, int len);
|
hb_tag_t hb_tag_from_string (const char *str, int len);
|
||||||
|
|
||||||
|
|
||||||
/* hb_direction_t */
|
/* hb_direction_t */
|
||||||
|
|
||||||
typedef enum _hb_direction_t {
|
typedef enum _hb_direction_t {
|
||||||
HB_DIRECTION_INVALID = -1,
|
HB_DIRECTION_INVALID = 0,
|
||||||
HB_DIRECTION_LTR = 0,
|
HB_DIRECTION_LTR = 4,
|
||||||
HB_DIRECTION_RTL,
|
HB_DIRECTION_RTL,
|
||||||
HB_DIRECTION_TTB,
|
HB_DIRECTION_TTB,
|
||||||
HB_DIRECTION_BTT
|
HB_DIRECTION_BTT
|
||||||
} hb_direction_t;
|
} hb_direction_t;
|
||||||
|
|
||||||
/* len=-1 means s is NUL-terminated */
|
/* len=-1 means str is NUL-terminated */
|
||||||
hb_direction_t
|
hb_direction_t
|
||||||
hb_direction_from_string (const char *str, int len);
|
hb_direction_from_string (const char *str, int len);
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
hb_direction_to_string (hb_direction_t direction);
|
hb_direction_to_string (hb_direction_t direction);
|
||||||
|
|
||||||
#define HB_DIRECTION_IS_HORIZONTAL(dir) ((((unsigned int) (dir)) & ~1U) == 0)
|
#define HB_DIRECTION_IS_HORIZONTAL(dir) ((((unsigned int) (dir)) & ~1U) == 4)
|
||||||
#define HB_DIRECTION_IS_VERTICAL(dir) ((((unsigned int) (dir)) & ~1U) == 2)
|
#define HB_DIRECTION_IS_VERTICAL(dir) ((((unsigned int) (dir)) & ~1U) == 6)
|
||||||
#define HB_DIRECTION_IS_FORWARD(dir) ((((unsigned int) (dir)) & ~2U) == 0)
|
#define HB_DIRECTION_IS_FORWARD(dir) ((((unsigned int) (dir)) & ~2U) == 4)
|
||||||
#define HB_DIRECTION_IS_BACKWARD(dir) ((((unsigned int) (dir)) & ~2U) == 1)
|
#define HB_DIRECTION_IS_BACKWARD(dir) ((((unsigned int) (dir)) & ~2U) == 5)
|
||||||
#define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)) ^ 1))
|
#define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)) ^ 1))
|
||||||
|
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ hb_direction_to_string (hb_direction_t direction);
|
||||||
|
|
||||||
typedef struct _hb_language_t *hb_language_t;
|
typedef struct _hb_language_t *hb_language_t;
|
||||||
|
|
||||||
/* len=-1 means s is NUL-terminated */
|
/* len=-1 means str is NUL-terminated */
|
||||||
hb_language_t
|
hb_language_t
|
||||||
hb_language_from_string (const char *str, int len);
|
hb_language_from_string (const char *str, int len);
|
||||||
|
|
||||||
|
|
|
@ -51,33 +51,38 @@ test_types_int (void)
|
||||||
static void
|
static void
|
||||||
test_types_direction (void)
|
test_types_direction (void)
|
||||||
{
|
{
|
||||||
g_assert_cmpint ((signed) HB_DIRECTION_INVALID, ==, -1);
|
g_assert_cmpint ((signed) HB_DIRECTION_INVALID, ==, 0);
|
||||||
g_assert_cmpint (HB_DIRECTION_LTR, ==, 0);
|
g_assert_cmpint (HB_DIRECTION_LTR, !=, 0);
|
||||||
|
|
||||||
g_assert (HB_DIRECTION_IS_HORIZONTAL (HB_DIRECTION_LTR));
|
g_assert (HB_DIRECTION_IS_HORIZONTAL (HB_DIRECTION_LTR));
|
||||||
g_assert (HB_DIRECTION_IS_HORIZONTAL (HB_DIRECTION_RTL));
|
g_assert (HB_DIRECTION_IS_HORIZONTAL (HB_DIRECTION_RTL));
|
||||||
g_assert (!HB_DIRECTION_IS_HORIZONTAL (HB_DIRECTION_TTB));
|
g_assert (!HB_DIRECTION_IS_HORIZONTAL (HB_DIRECTION_TTB));
|
||||||
g_assert (!HB_DIRECTION_IS_HORIZONTAL (HB_DIRECTION_BTT));
|
g_assert (!HB_DIRECTION_IS_HORIZONTAL (HB_DIRECTION_BTT));
|
||||||
|
g_assert (!HB_DIRECTION_IS_HORIZONTAL (HB_DIRECTION_INVALID));
|
||||||
|
|
||||||
g_assert (!HB_DIRECTION_IS_VERTICAL (HB_DIRECTION_LTR));
|
g_assert (!HB_DIRECTION_IS_VERTICAL (HB_DIRECTION_LTR));
|
||||||
g_assert (!HB_DIRECTION_IS_VERTICAL (HB_DIRECTION_RTL));
|
g_assert (!HB_DIRECTION_IS_VERTICAL (HB_DIRECTION_RTL));
|
||||||
g_assert (HB_DIRECTION_IS_VERTICAL (HB_DIRECTION_TTB));
|
g_assert (HB_DIRECTION_IS_VERTICAL (HB_DIRECTION_TTB));
|
||||||
g_assert (HB_DIRECTION_IS_VERTICAL (HB_DIRECTION_BTT));
|
g_assert (HB_DIRECTION_IS_VERTICAL (HB_DIRECTION_BTT));
|
||||||
|
g_assert (!HB_DIRECTION_IS_VERTICAL (HB_DIRECTION_INVALID));
|
||||||
|
|
||||||
g_assert (HB_DIRECTION_IS_FORWARD (HB_DIRECTION_LTR));
|
g_assert (HB_DIRECTION_IS_FORWARD (HB_DIRECTION_LTR));
|
||||||
g_assert (HB_DIRECTION_IS_FORWARD (HB_DIRECTION_TTB));
|
g_assert (HB_DIRECTION_IS_FORWARD (HB_DIRECTION_TTB));
|
||||||
g_assert (!HB_DIRECTION_IS_FORWARD (HB_DIRECTION_RTL));
|
g_assert (!HB_DIRECTION_IS_FORWARD (HB_DIRECTION_RTL));
|
||||||
g_assert (!HB_DIRECTION_IS_FORWARD (HB_DIRECTION_BTT));
|
g_assert (!HB_DIRECTION_IS_FORWARD (HB_DIRECTION_BTT));
|
||||||
|
g_assert (!HB_DIRECTION_IS_FORWARD (HB_DIRECTION_INVALID));
|
||||||
|
|
||||||
g_assert (!HB_DIRECTION_IS_BACKWARD (HB_DIRECTION_LTR));
|
g_assert (!HB_DIRECTION_IS_BACKWARD (HB_DIRECTION_LTR));
|
||||||
g_assert (!HB_DIRECTION_IS_BACKWARD (HB_DIRECTION_TTB));
|
g_assert (!HB_DIRECTION_IS_BACKWARD (HB_DIRECTION_TTB));
|
||||||
g_assert (HB_DIRECTION_IS_BACKWARD (HB_DIRECTION_RTL));
|
g_assert (HB_DIRECTION_IS_BACKWARD (HB_DIRECTION_RTL));
|
||||||
g_assert (HB_DIRECTION_IS_BACKWARD (HB_DIRECTION_BTT));
|
g_assert (HB_DIRECTION_IS_BACKWARD (HB_DIRECTION_BTT));
|
||||||
|
g_assert (!HB_DIRECTION_IS_BACKWARD (HB_DIRECTION_INVALID));
|
||||||
|
|
||||||
g_assert_cmpint (HB_DIRECTION_REVERSE (HB_DIRECTION_LTR), ==, HB_DIRECTION_RTL);
|
g_assert_cmpint (HB_DIRECTION_REVERSE (HB_DIRECTION_LTR), ==, HB_DIRECTION_RTL);
|
||||||
g_assert_cmpint (HB_DIRECTION_REVERSE (HB_DIRECTION_RTL), ==, HB_DIRECTION_LTR);
|
g_assert_cmpint (HB_DIRECTION_REVERSE (HB_DIRECTION_RTL), ==, HB_DIRECTION_LTR);
|
||||||
g_assert_cmpint (HB_DIRECTION_REVERSE (HB_DIRECTION_TTB), ==, HB_DIRECTION_BTT);
|
g_assert_cmpint (HB_DIRECTION_REVERSE (HB_DIRECTION_TTB), ==, HB_DIRECTION_BTT);
|
||||||
g_assert_cmpint (HB_DIRECTION_REVERSE (HB_DIRECTION_BTT), ==, HB_DIRECTION_TTB);
|
g_assert_cmpint (HB_DIRECTION_REVERSE (HB_DIRECTION_BTT), ==, HB_DIRECTION_TTB);
|
||||||
|
//g_assert_cmpint (HB_DIRECTION_REVERSE (HB_DIRECTION_INVALID), ==, HB_DIRECTION_INVALID);
|
||||||
|
|
||||||
g_assert_cmpint (HB_DIRECTION_INVALID, ==, hb_direction_from_string (NULL, -1));
|
g_assert_cmpint (HB_DIRECTION_INVALID, ==, hb_direction_from_string (NULL, -1));
|
||||||
g_assert_cmpint (HB_DIRECTION_INVALID, ==, hb_direction_from_string ("", -1));
|
g_assert_cmpint (HB_DIRECTION_INVALID, ==, hb_direction_from_string ("", -1));
|
||||||
|
|
Loading…
Reference in New Issue