+$query = @$_REQUEST['q'] ?: $Args ?: $Page;
+
+if (!trim($query, '/')) return;
+
+if (!empty($Place['suggest'])) {
+ $cmd = "git ls-files -- $path";
+ exec($cmd, $ls);
+ if (!$ls) {
+ die("fout bij zoeken van bestanden");
+ }
+
+ # order files by similarity to query
+ $ls = array_combine($ls, array_map(function ($row) use ($query) {
+ $row = preg_replace('{(?:^|/)index\.html$}', '', $row);
+ return similar_text($row, $query) - strlen($row) / 8;
+ }, $ls));
+ arsort($ls);
+ $results = array_keys($ls);
+}
+else {
+ $cmd = "git grep -li -- ".escapeshellarg($query).$path;
+ exec($cmd, $results);
+ if (count($results) > $limit) {
+ shuffle($results); // avoid alphabetical top set
+ }
+}
+
+if (isset($Place['verbose'])) {
+ printf("<p>%s gevonden voor <q>%s</q>:</p>\n",
+ $results ? count($results).' resultaten' : 'Niets',
+ htmlspecialchars($query)
+ );
+}