| 7872 | |
| 7873 | const char *close = strstr(raw + st->emit_pos, "</think>"); |
| 7874 | const char *tool = r->has_tools ? |
| 7875 | find_any_tool_start(raw + st->emit_pos) : NULL; |
| 7876 | const bool tool_before_close = tool && (!close || tool < close); |
| 7877 | const bool complete_tool = |
| 7878 | tool_before_close && find_any_tool_end(tool) != NULL; |
| 7879 | size_t limit; |
| 7880 | if (tool_before_close) { |
| 7881 | limit = trim_tool_separator_ws(raw, st->emit_pos, |
| 7882 | (size_t)(tool - raw)); |
| 7883 | } else if (close) { |
no test coverage detected