From c0b29298e237495f96f7c5ba2a0656cd94e1adc9 Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Tue, 5 Jan 2021 19:27:41 +0100 Subject: [PATCH] LKT: Case incensitive for types/languages/categories and update CHANGELOG --- CHANGELOG | 1 + src/main/lkt.c | 51 +++++++++----------------------------------------- 2 files changed, 10 insertions(+), 42 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 6ac76493..dbde75d1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,6 +4,7 @@ - Add json-c to the download dependency script (add cmake as a requirement for that) - Choose between static or shared library for liblektor - Download the bakabase with obfuscation or not +- Implicit types for queries with lkt # v2.1 (df74b85f) diff --git a/src/main/lkt.c b/src/main/lkt.c index 9a3eba1d..2bfe27ff 100644 --- a/src/main/lkt.c +++ b/src/main/lkt.c @@ -55,26 +55,6 @@ static const char *LKT_QUEUE_DEFAULT[] = { "10" }; /* Communication functions and fonction that interact with lektor stuff. */ -static inline int -__string_is_lower(const char *str) -{ - while (*str != '\0') { - if (!islower(*str)) - return 1; - } - return 0; -} - -static inline int -__string_is_upper(const char *str) -{ - while (*str != '\0') { - if (!isupper(*str)) - return 1; - } - return 0; -} - static inline void __concat_strings(char *const res, size_t len, const char **tab, size_t count) { @@ -105,39 +85,26 @@ lkt_get_query_type(struct cmd_args *args, char *const regex, size_t regex_len) return 0; } - /* Type ?== type */ - else if (__string_is_upper(args->argv[0])) { -#define kara_category(unused) -#define kara_language(unused) -#define kara_type(tp) \ -if (STR_MATCH(tp, args->argv[0])) { \ - safe_snprintf(regex, regex_len, "type://%s", args->argv[0]); \ - return 0; \ + /* Type ?== type OR Type ?== category OR Type ?== lang */ +#define kara_type(tp) \ +if (STR_MATCH(tp, args->argv[0])) { \ + safe_snprintf(regex, regex_len, "type://%s", args->argv[0]); \ + return 0; \ } -#include <lektor/database.def> -#undef kara_category -#undef kara_language -#undef kara_type - } - - /* Type ?== category OR Type ?== lang */ - else if (__string_is_lower(args->argv[0])) { -#define kara_type(unused) #define kara_category(ct) \ if (STR_MATCH(ct, args->argv[0])) { \ safe_snprintf(regex, regex_len, "category://%s", args->argv[0]); \ return 0; \ } -#define kara_language(lg) \ -if (STR_MATCH(lg, args->argv[0])) { \ - safe_snprintf(regex, regex_len, "lang://%s", args->argv[0]); \ - return 0; \ +#define kara_language(lg) \ +if (STR_MATCH(lg, args->argv[0])) { \ + safe_snprintf(regex, regex_len, "lang://%s", args->argv[0]); \ + return 0; \ } #include <lektor/database.def> #undef kara_category #undef kara_language #undef kara_type - } } memset(regex, 0, regex_len * sizeof(char)); -- GitLab