+ free(av);
+
+ if (numMatches == 1)
+ {
+ *match = 1;
+ std::string result = list[0] + " ";
+ return strdup(result.c_str() + strlen(token));
+ }
+
+ std::string lcp = longest_common_prefix(token, list);
+
+ if (lcp.size() > strlen(token))
+ {
+ *match = 1;
+ return strdup(lcp.c_str() + strlen(token));
+ }
+
+ return nullptr;