Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Partially revert case insensitivity fixes. Apparently REG_ICASE has quite a severe performance impact. Therefore make the compiled-in default case sensitive again. Only apply the run-time default setting from CASE_SENSITIVE_MATCH to the verbs that offer options to set the matching type -- ie.
Matthew Seaman committed 12 years ago
commit d8585bf6ea97cf318558fa072d7fb8f5ea4fee98
parent 19b16de
14 files changed +63 -8
modified libpkg/pkg_config.c
@@ -902,11 +902,6 @@ pkg_init(const char *path, const char *reposdir)
	if (nsname != NULL)
		set_nameserver(ucl_object_tostring_forced(o));

-
	/* Set default case sensitivity for searching */
-
	pkgdb_set_case_sensitivity(
-
		pkg_object_bool(pkg_config_get("CASE_SENSITIVE_MATCH"))
-
		);
-

	return (EPKG_OK);
}

modified libpkg/pkgdb.c
@@ -1444,12 +1444,12 @@ pkgdb_it_free(struct pkgdb_it *it)
	free(it);
}

-
/* By default, MATCH_EXACT and MATCH_REGEX are case insensitive.  This
-
 * is modified in pkg_init() according to the value of
+
/* By default, MATCH_EXACT and MATCH_REGEX are case sensitive.  This
+
 * is modified in many actions according to the value of
 * CASE_SENSITIVE_MATCH in pkg.conf and then possbily reset again in
 * pkg search et al according to command line flags */

-
static bool _case_sensitive_flag = false;
+
static bool _case_sensitive_flag = true;

void
pkgdb_set_case_sensitivity(bool case_sensitive)
modified src/annotate.c
@@ -204,6 +204,11 @@ exec_annotate(int argc, char **argv)

	yes = pkg_object_bool(pkg_config_get("ASSUME_ALWAYS_YES"));

+
        /* Set default case sensitivity for searching */
+
        pkgdb_set_case_sensitivity(
+
                pkg_object_bool(pkg_config_get("CASE_SENSITIVE_MATCH"))
+
                );
+

	while ((ch = getopt(argc, argv, "aACDgiMqxy")) != -1) {
		switch (ch) {
		case 'a':
modified src/check.c
@@ -268,6 +268,11 @@ exec_check(int argc, char **argv)

	yes = pkg_object_bool(pkg_config_get("ASSUME_ALWAYS_YES"));

+
        /* Set default case sensitivity for searching */
+
        pkgdb_set_case_sensitivity(
+
                pkg_object_bool(pkg_config_get("CASE_SENSITIVE_MATCH"))
+
                );
+

	struct deps_head dh = STAILQ_HEAD_INITIALIZER(dh);

	while ((ch = getopt(argc, argv, "aBCdginrsvxy")) != -1) {
modified src/delete.c
@@ -63,6 +63,11 @@ exec_delete(int argc, char **argv)

	yes = pkg_object_bool(pkg_config_get("ASSUME_ALWAYS_YES"));

+
        /* Set default case sensitivity for searching */
+
        pkgdb_set_case_sensitivity(
+
                pkg_object_bool(pkg_config_get("CASE_SENSITIVE_MATCH"))
+
                );
+

	while ((ch = getopt(argc, argv, "aCDfginqRxy")) != -1) {
		switch (ch) {
		case 'a':
modified src/fetch.c
@@ -67,6 +67,11 @@ exec_fetch(int argc, char **argv)
	auto_update = pkg_object_bool(pkg_config_get("REPO_AUTOUPDATE"));
	yes = pkg_object_bool(pkg_config_get("ASSUME_ALWAYS_YES"));

+
        /* Set default case sensitivity for searching */
+
        pkgdb_set_case_sensitivity(
+
                pkg_object_bool(pkg_config_get("CASE_SENSITIVE_MATCH"))
+
                );
+

	while ((ch = getopt(argc, argv, "aCdgiqr:Uuxy")) != -1) {
		switch (ch) {
		case 'a':
modified src/info.c
@@ -99,6 +99,11 @@ exec_info(int argc, char **argv)
	cap_rights_t rights;
#endif

+
        /* Set default case sensitivity for searching */
+
        pkgdb_set_case_sensitivity(
+
                pkg_object_bool(pkg_config_get("CASE_SENSITIVE_MATCH"))
+
                );
+

	/* TODO: exclusive opts ? */
	while ((ch = getopt(argc, argv, "aACDegixEIdrklbBsqopOfF:R")) != -1) {
		switch (ch) {
modified src/install.c
@@ -72,6 +72,11 @@ exec_install(int argc, char **argv)
	yes_arg = pkg_object_bool(pkg_config_get("ASSUME_ALWAYS_YES"));
	auto_update = pkg_object_bool(pkg_config_get("REPO_AUTOUPDATE"));

+
        /* Set default case sensitivity for searching */
+
        pkgdb_set_case_sensitivity(
+
                pkg_object_bool(pkg_config_get("CASE_SENSITIVE_MATCH"))
+
                );
+

	yes = yes_arg;

	if (strcmp(argv[0], "add") == 0) {
modified src/lock.c
@@ -120,6 +120,11 @@ exec_lock_unlock(int argc, char **argv, enum action action)

	yes = pkg_object_bool(pkg_config_get("ASSUME_ALWAYS_YES"));

+
        /* Set default case sensitivity for searching */
+
        pkgdb_set_case_sensitivity(
+
                pkg_object_bool(pkg_config_get("CASE_SENSITIVE_MATCH"))
+
                );
+

	while ((ch = getopt(argc, argv, "aCgiqxy")) != -1) {
		switch (ch) {
		case 'a':
modified src/query.c
@@ -849,6 +849,11 @@ exec_query(int argc, char **argv)
	struct sbuf *sqlcond = NULL;
	const unsigned int q_flags_len = (sizeof(accepted_query_flags)/sizeof(accepted_query_flags[0]));

+
        /* Set default case sensitivity for searching */
+
        pkgdb_set_case_sensitivity(
+
                pkg_object_bool(pkg_config_get("CASE_SENSITIVE_MATCH"))
+
                );
+

	while ((ch = getopt(argc, argv, "aCgixF:e:")) != -1) {
		switch (ch) {
		case 'a':
modified src/rquery.c
@@ -120,6 +120,11 @@ exec_rquery(int argc, char **argv)

	auto_update = pkg_object_bool(pkg_config_get("REPO_AUTOUPDATE"));

+
        /* Set default case sensitivity for searching */
+
        pkgdb_set_case_sensitivity(
+
                pkg_object_bool(pkg_config_get("CASE_SENSITIVE_MATCH"))
+
                );
+

	while ((ch = getopt(argc, argv, "aCgiIxe:r:U")) != -1) {
		switch (ch) {
		case 'a':
modified src/search.c
@@ -258,6 +258,11 @@ exec_search(int argc, char **argv)

	auto_update = pkg_object_bool(pkg_config_get("REPO_AUTOUPDATE"));

+
        /* Set default case sensitivity for searching */
+
        pkgdb_set_case_sensitivity(
+
                pkg_object_bool(pkg_config_get("CASE_SENSITIVE_MATCH"))
+
                );
+

	while ((ch = getopt(argc, argv, "CcDdefgiL:opqQ:r:RS:sUx")) != -1) {
		switch (ch) {
		case 'C':
modified src/set.c
@@ -67,6 +67,11 @@ exec_set(int argc, char **argv)

	yes = pkg_object_bool(pkg_config_get("ASSUME_ALWAYS_YES"));

+
        /* Set default case sensitivity for searching */
+
        pkgdb_set_case_sensitivity(
+
                pkg_object_bool(pkg_config_get("CASE_SENSITIVE_MATCH"))
+
                );
+

	while ((ch = getopt(argc, argv, "A:aCgio:xy")) != -1) {
		switch (ch) {
		case 'A':
modified src/version.c
@@ -652,6 +652,11 @@ exec_version(int argc, char **argv)

	auto_update = pkg_object_bool(pkg_config_get("REPO_AUTOUPDATE"));

+
        /* Set default case sensitivity for searching */
+
        pkgdb_set_case_sensitivity(
+
                pkg_object_bool(pkg_config_get("CASE_SENSITIVE_MATCH"))
+
                );
+

	while ((ch = getopt(argc, argv, "Ce:g:hIiL:l:O:oPqRr:TtUvx:")) != -1) {
		switch (ch) {
		case 'C':