aboutsummaryrefslogtreecommitdiff
path: root/src/Routes/Search.c
diff options
context:
space:
mode:
authorfrosty <gabriel@bwaaa.monster>2026-08-12 20:21:12 -0400
committerfrosty <gabriel@bwaaa.monster>2026-08-12 20:21:12 -0400
commita20a9e8878ab6708bd3e3ecb4b1cee8728436dd0 (patch)
treec007b81d99b2dc3be92ae625e34881b0f7cf6943 /src/Routes/Search.c
parent10d44e7ff547a806e4bf109e7aadd48488ddc9f0 (diff)
downloadomnisearch-a20a9e8878ab6708bd3e3ecb4b1cee8728436dd0.tar.gz
feat: add default search engine option
Diffstat (limited to 'src/Routes/Search.c')
-rw-r--r--src/Routes/Search.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/Routes/Search.c b/src/Routes/Search.c
index a245f6b..e7703be 100644
--- a/src/Routes/Search.c
+++ b/src/Routes/Search.c
@@ -417,7 +417,11 @@ int results_handler(UrlParams *params) {
extern Config global_config;
TemplateContext ctx = new_context();
char *raw_query = "";
- const char *selected_engine_id = "all";
+ char selected_engine_id[32];
+ char *default_engine = get_default_search_engine();
+ snprintf(selected_engine_id, sizeof(selected_engine_id), "%s",
+ default_engine);
+ free(default_engine);
int page = 1;
int btnI = 0;
@@ -435,7 +439,8 @@ int results_handler(UrlParams *params) {
if (parsed > 1)
page = parsed;
} else if (strcmp(params->params[i].key, "engine") == 0) {
- selected_engine_id = params->params[i].value;
+ snprintf(selected_engine_id, sizeof(selected_engine_id), "%s",
+ params->params[i].value);
} else if (strcmp(params->params[i].key, "btnI") == 0) {
btnI = atoi(params->params[i].value);
}
@@ -481,8 +486,17 @@ int results_handler(UrlParams *params) {
}
const SearchEngine *selected_engine = find_enabled_engine(selected_engine_id);
- if (!selected_engine)
- selected_engine_id = "all";
+ if (selected_engine &&
+ !engine_allowed_for_user(selected_engine, user_engines,
+ user_engine_count, has_user_pref)) {
+ selected_engine = NULL;
+ }
+ if (selected_engine) {
+ snprintf(selected_engine_id, sizeof(selected_engine_id), "%s",
+ selected_engine->id);
+ } else {
+ snprintf(selected_engine_id, sizeof(selected_engine_id), "all");
+ }
context_set(&ctx, "selected_engine", selected_engine_id);
char *search_href = build_search_href(raw_query, selected_engine_id, 1);