bidi_push_embedding_level (struct bidi_it *bidi_it,
int level, bidi_dir_t override, bool isolate_status)
{
- struct bidi_stack st;
+ struct bidi_stack *st;
bidi_it->stack_idx++;
eassert (bidi_it->stack_idx < BIDI_MAXDEPTH+2+1);
- st = bidi_it->level_stack[bidi_it->stack_idx];
- st.level = level;
- st.override = override;
- st.isolate_status = isolate_status;
+ st = &bidi_it->level_stack[bidi_it->stack_idx];
+ st->level = level;
+ st->override = override;
+ st->isolate_status = isolate_status;
if (isolate_status)
{
- st.prev = bidi_it->prev;
- st.last_strong = bidi_it->last_strong;
- st.prev_for_neutral = bidi_it->prev_for_neutral;
- st.next_for_neutral = bidi_it->next_for_neutral;
- st.next_for_ws = bidi_it->next_for_ws;
- st.sos = bidi_it->sos;
+ st->prev = bidi_it->prev;
+ st->last_strong = bidi_it->last_strong;
+ st->prev_for_neutral = bidi_it->prev_for_neutral;
+ st->next_for_neutral = bidi_it->next_for_neutral;
+ st->next_for_ws = bidi_it->next_for_ws;
+ st->sos = bidi_it->sos;
}
}
{
ptrdiff_t pos1;
bidi_type_t type;
- const unsigned char *s;
int ch;
if (stop_at_pdi)
}
else if (dir == NEUTRAL_DIR) /* P2 */
{
- int ch;
ptrdiff_t ch_len, nchars;
ptrdiff_t pos, disp_pos = -1;
int disp_prop = 0;
/* The following loop is run more than once only if NO_DEFAULT_P,
and only if we are iterating on a buffer. */
do {
- ptrdiff_t pos1;
-
bytepos = pstartbyte;
if (!string_p)
pos = BYTE_TO_CHAR (bytepos);
goto fsi_as_lri;
}
else
- type == RLI;
+ type = RLI;
/* FALLTHROUGH */
case RLI: /* X5a */
if (override == NEUTRAL_DIR)