static Filerange object_function(Text *txt, size_t pos) { size_t start_prev = text_function_start_prev(txt, pos); size_t end_next = text_function_end_next(txt, pos); size_t start = text_function_start_next(txt, start_prev); size_t end = text_function_end_prev(txt, end_next); if (start == pos) start_prev = pos; if (end == pos) end_next = pos; if (text_function_end_next(txt, start_prev) == end_next && text_function_start_prev(txt, end_next) == start_prev) { return text_range_new(start_prev, end_next); } return text_range_empty(); }
Filerange text_object_function(Text *txt, size_t pos) { size_t a = text_function_start_prev(txt, pos); size_t b = text_function_end_next(txt, pos); if (text_function_end_next(txt, a) == b) { Filerange r = text_range_new(a, b+1); return text_range_linewise(txt, &r); } return text_range_empty(); }