| 225 | enumerate(docidents, docident, i, inames.add(i.name)); |
| 226 | inames.sort(stringsort); |
| 227 | loopvj(inames) |
| 228 | { |
| 229 | docident &i = *docidents.access(inames[j]); |
| 230 | vector<char *> srch; |
| 231 | srch.add(i.name); // 0 |
| 232 | srch.add(i.desc); // 1 |
| 233 | loopvk(i.remarks) srch.add(i.remarks[k]); |
| 234 | |
| 235 | char *r; |
| 236 | int rline; |
| 237 | if((r = cvecstr(srch, search, &rline))) |
| 238 | { |
| 239 | cvecprintf(res, "%s %d\n", escapestring(i.name, false), rline); |
| 240 | if(!rline) r = srch[(rline = 1)]; |
| 241 | if(!*silent) |
| 242 | { |
| 243 | const int showchars = 100; |
| 244 | string match; |
| 245 | int pos = r - srch[rline]; |
| 246 | copystring(match, srch[rline] + (pos < showchars - 10 ? 0 : pos - 10), showchars); |
| 247 | conoutf("%-20s%s", i.name, match); |
| 248 | } |
| 249 | } |
| 250 | } |
| 251 | resultcharvector(res, -1); |
| 252 | } |
| 253 | COMMAND(docfind, "si"); |
no test coverage detected