| Search the documentation on XMLSoft.org";
    }
    if ($scope == NULL)
        $scope = "any";
    $scope = ltrim ($scope);
    if ($scope == "")
        $scope = "any";
    $querystr = htmlspecialchars($query, ENT_QUOTES, 'UTF-8');
?>  The search service indexes the libxml2 and libxslt APIs and documentation as well as the xml@gnome.org and xslt@gnome.org mailing-list archives. To use it simply provide a set of keywords:
 
$rb) ? -1 : 1;
    }
    if (($query) && (strlen($query) <= 50)) {
	$link = mysql_connect ("localhost", "nobody");
	if (!$link) {
	    echo "  Could not connect to the database: ", mysql_error();
	} else {
	    mysql_select_db("xmlsoft", $link);
	    $list = explode (" ", $query);
	    $results = array();
	    $number = 0;
	    for ($number = 0;$number < count($list);$number++) {
		$word = $list[$number];
		if (($scope == 'any') || ($scope == 'XML') ||
		    ($scope == 'API') || ($scope == 'XMLAPI')) {
		    list($result, $j) = queryWord($word);
		    if ($j > 0) {
			for ($i = 0; $i < $j; $i++) {
			    $relevance = mysql_result($result, $i, 0);
			    $name = mysql_result($result, $i, 1);
			    $type = mysql_result($result, $i, 2);
			    $module = mysql_result($result, $i, 3);
			    $desc = mysql_result($result, $i, 4);
			    if (array_key_exists($name, $results)) {
				list($r,$t,$m,$d,$w,$u) = $results[$name];
				$results[$name] = array(($r + $relevance) * 2,
							$t,$m,$d,$w,$u);
			    } else {
				$id = $name;
				$m = strtolower($module);
				$url = "html/libxml-$module.html#$id";
				$results[$name] = array($relevance,$type,
						$module, $desc, $name, $url);
			    }
			}
			mysql_free_result($result);
		    }
		}
		if (($scope == 'any') || ($scope == 'XSLT') ||
		    ($scope == 'API') || ($scope == 'XSLTAPI')) {
		    list($result, $j) = XSLTqueryWord($word);
		    if ($j > 0) {
			for ($i = 0; $i < $j; $i++) {
			    $relevance = mysql_result($result, $i, 0);
			    $name = mysql_result($result, $i, 1);
			    $type = mysql_result($result, $i, 2);
			    $module = mysql_result($result, $i, 3);
			    $desc = mysql_result($result, $i, 4);
			    if (array_key_exists($name, $results)) {
				list($r,$t,$m,$d,$w,$u) = $results[$name];
				$results[$name] = array(($r + $relevance) * 2,
							$t,$m,$d,$w,$u);
			    } else {
				$id = $name;
				$m = strtolower($module);
				$url = "XSLT/html/libxslt-$module.html#$id";
				$results[$name] = array($relevance,$type,
						$module, $desc, $name, $url);
			    }
			}
			mysql_free_result($result);
		    }
		}
		if (($scope == 'any') || ($scope == 'XML') ||
		    ($scope == 'DOCS') || ($scope == 'XMLDOC')) {
		    list($result, $k) = queryHTMLWord($word);
		    if ($k > 0) {
			for ($i = 0; $i < $k; $i++) {
			    $relevance = mysql_result($result, $i, 0);
			    $name = mysql_result($result, $i, 1);
			    $id = mysql_result($result, $i, 2);
			    $module = mysql_result($result, $i, 3);
			    $desc = mysql_result($result, $i, 4);
			    if (strncmp($module, "libxml-", 7) == 0)
			        $url = "html/$module";
			    if ($id != "") {
				$url = $url + "#$id";
			    }
			    $results["$name _html_ $number _ $i"] =
					  array($relevance, "XML docs",
						$module, $desc, $name, $url);
			}
			mysql_free_result($result);
		    }
		}
		if (($scope == 'any') || ($scope == 'XSLT') ||
		    ($scope == 'DOCS') || ($scope == 'XSLTDOC')) {
		    list($result, $k) = XSLTqueryHTMLWord($word);
		    if ($k > 0) {
			for ($i = 0; $i < $k; $i++) {
			    $relevance = mysql_result($result, $i, 0);
			    $name = mysql_result($result, $i, 1);
			    $id = mysql_result($result, $i, 2);
			    $module = mysql_result($result, $i, 3);
			    $desc = mysql_result($result, $i, 4);
			    $url = "XSLT/$module";
			    if ($id != "") {
				$url = $url + "#$id";
			    }
			    $results["$name xslthtml $number _ $i "] =
					  array($relevance, "XSLT docs",
						$module, $desc, $name, $url);
			}
			mysql_free_result($result);
		    }
		}
		if (($scope == 'any') || ($scope == 'XML') ||
		    ($scope == 'LISTS') || ($scope == 'XMLLIST')) {
		    list($result, $j) = queryArchiveWord($word);
		    if ($j > 0) {
			for ($i = 0; $i < $j; $i++) {
			    $relevance = mysql_result($result, $i, 0);
			    $name = mysql_result($result, $i, 1);
			    $type = mysql_result($result, $i, 2);
			    $url = mysql_result($result, $i, 3);
			    $desc = mysql_result($result, $i, 4);
			    if (array_key_exists($url, $results)) {
				list($r,$t,$m,$d,$w,$u) = $results[$url];
				$results[$name] = array(($r + $relevance) * 2,
							$t,$m,$d,$w,$u);
			    } else {
				$id = $name;
				$m = strtolower($module);
				$u = str_replace(
			"http://mail.gnome.org/archives/xml/", "", $url);
				$results[$url] = array($relevance,$type,
						$u, $desc, $name, $url);
			    }
			}
			mysql_free_result($result);
		    }
		}
		if (($scope == 'any') || ($scope == 'XSLT') ||
		    ($scope == 'LISTS') || ($scope == 'XSLTLIST')) {
		    list($result, $j) = XSLTqueryArchiveWord($word);
		    if ($j > 0) {
			for ($i = 0; $i < $j; $i++) {
			    $relevance = mysql_result($result, $i, 0);
			    $name = mysql_result($result, $i, 1);
			    $type = mysql_result($result, $i, 2);
			    $url = mysql_result($result, $i, 3);
			    $desc = mysql_result($result, $i, 4);
			    if (array_key_exists($url, $results)) {
				list($r,$t,$m,$d,$w,$u) = $results[$url];
				$results[$name] = array(($r + $relevance) * 2,
							$t,$m,$d,$w,$u);
			    } else {
				$id = $name;
				$m = strtolower($module);
				$u = str_replace(
			"http://mail.gnome.org/archives/xslt/", "", $url);
				$results[$url] = array($relevance,$type,
						$u, $desc, $name, $url);
			    }
			}
			mysql_free_result($result);
		    }
		}
	    }
	    if ((count($results) == 0) && (count($list) == 1)) {
		$word = $list[0];
		if (($scope == 'any') || ($scope == 'XML') ||
		    ($scope == 'API') || ($scope == 'XMLAPI')) {
		    list($result, $j) = queryWord("xml$word");
		    if ($j > 0) {
			for ($i = 0; $i < $j; $i++) {
			    $relevance = mysql_result($result, $i, 0);
			    $name = mysql_result($result, $i, 1);
			    $type = mysql_result($result, $i, 2);
			    $module = mysql_result($result, $i, 3);
			    $desc = mysql_result($result, $i, 4);
			    if (array_key_exists($name, $results)) {
				list($r,$t,$m,$d,$w,$u) = $results[$name];
				$results[$name] = array(($r + $relevance) * 2,
							$t,$m,$d,$w,$u);
			    } else {
				$id = $name;
				$m = strtolower($module);
				$url = "html/libxml-$module.html#$id";
				$results[$name] = array($relevance,$type,
						$module, $desc, $name, $url);
			    }
			}
			mysql_free_result($result);
		    }
		}
		if (($scope == 'any') || ($scope == 'XSLT') ||
		    ($scope == 'API') || ($scope == 'XSLTAPI')) {
		    list($result, $j) = XSLTqueryWord("xslt$word");
		    if ($j > 0) {
			for ($i = 0; $i < $j; $i++) {
			    $relevance = mysql_result($result, $i, 0);
			    $name = mysql_result($result, $i, 1);
			    $type = mysql_result($result, $i, 2);
			    $module = mysql_result($result, $i, 3);
			    $desc = mysql_result($result, $i, 4);
			    if (array_key_exists($name, $results)) {
				list($r,$t,$m,$d,$w,$u) = $results[$name];
				$results[$name] = array(($r + $relevance) * 2,
							$t,$m,$d,$w,$u);
			    } else {
				$id = $name;
				$m = strtolower($module);
				$url = "XSLT/html/libxslt-$module.html#$id";
				$results[$name] = array($relevance,$type,
						$module, $desc, $name, $url);
			    }
			}
			mysql_free_result($result);
		    }
		}
	    }
	    mysql_close($link);
	    $nb = count($results);
	    echo " Found $nb results for query $querystr\n";
	    usort($results, "resSort");
            if ($nb > 0) {
		printf("\n");
		printf("\n");
	    }
	}
    }
?>\n");
		$i = 0;
		while (list ($name, $val) = each ($results)) {
		    list($r,$t,$m,$d,$s,$u) = $val;
		    $m = str_replace("<", "<", $m);
		    $s = str_replace("<", "<", $s);
		    $d = str_replace("<", "<", $d);
		    echo "| Quality | Symbol | Type | module | Description |  ";
		    $i = $i + 1;
		    if ($i > 75)
		        break;
		}
		printf("| $r | $s | $t | $m | $d |  |