MCPcopy Create free account
hub / github.com/KebsCS/KBotExt / is_word_boundary_from_left

Function is_word_boundary_from_left

KBotExt/imgui/imgui_widgets.cpp:3727–3737  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3725 return ((prev_white || prev_separ) && !(curr_separ || curr_white)) || (curr_separ && !prev_separ);
3726 }
3727 static int is_word_boundary_from_left(ImGuiInputTextState* obj, int idx)
3728 {
3729 if ((obj->Flags & ImGuiInputTextFlags_Password) || idx <= 0)
3730 return 0;
3731
3732 bool prev_white = ImCharIsBlankW(obj->TextW[idx]);
3733 bool prev_separ = is_separator(obj->TextW[idx]);
3734 bool curr_white = ImCharIsBlankW(obj->TextW[idx - 1]);
3735 bool curr_separ = is_separator(obj->TextW[idx - 1]);
3736 return ((prev_white) && !(curr_separ || curr_white)) || (curr_separ && !prev_separ);
3737 }
3738 static int STB_TEXTEDIT_MOVEWORDLEFT_IMPL(ImGuiInputTextState* obj, int idx) { idx--; while (idx >= 0 && !is_word_boundary_from_right(obj, idx)) idx--; return idx < 0 ? 0 : idx; }
3739 static int STB_TEXTEDIT_MOVEWORDRIGHT_MAC(ImGuiInputTextState* obj, int idx) { idx++; int len = obj->CurLenW; while (idx < len && !is_word_boundary_from_left(obj, idx)) idx++; return idx > len ? len : idx; }
3740 static int STB_TEXTEDIT_MOVEWORDRIGHT_WIN(ImGuiInputTextState* obj, int idx) { idx++; int len = obj->CurLenW; while (idx < len && !is_word_boundary_from_right(obj, idx)) idx++; return idx > len ? len : idx; }

Callers 1

Calls 2

ImCharIsBlankWFunction · 0.85
is_separatorFunction · 0.85

Tested by

no test coverage detected