From 0dd03b91eae1046bc84997fab5998bf89ee0f806 Mon Sep 17 00:00:00 2001 From: "Fr. Samuel Springuel" Date: Thu, 26 Mar 2026 13:12:59 -0400 Subject: [PATCH 1/2] Fix and clarify messages related to selection of vowel rules --- src/characters.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/characters.c b/src/characters.c index 4ed1adbf..1ac96fa2 100644 --- a/src/characters.c +++ b/src/characters.c @@ -58,6 +58,12 @@ static bool read_vowel_rules(char *const lang) { gregorio_kpse_find_or_else(filenames, VOWEL_FILE, return false); gregorio_vowel_tables_init(); + /* first check to see if the language is Latin */ + bool is_latin = (strcasecmp(language, "latin") == 0 || + strcasecmp(language, "la") == 0 || + strcasecmp(language, "lat") == 0) ; + /* To allow for users to use customize their own Latin rules, we always + * look for the requested language in the vowel files */ /* only need to try twice; if it's not resolved by then, there is an alias * loop */ for (tries = 0; tries < 2; ++tries) { @@ -85,8 +91,12 @@ static bool read_vowel_rules(char *const lang) { break; } } - if ((strcmp(language, "Latin") == 0 || strcmp(language, "latin") == 0 || strcmp(language, "la") == 0 || strcmp(language, "lat") == 0) && status == RFPS_NOT_FOUND) { - gregorio_messagef("read_rules", VERBOSITY_INFO, 0, "Falling back on internal Latin vowel rules"); + if (status == RFPS_NOT_FOUND) { + const char *msg = is_latin + ? "Using default Latin vowel rules" + : "Falling back on internal Latin vowel rules"; + + gregorio_messagef("read_rules", VERBOSITY_INFO, 0, msg); } if (status == RFPS_ALIASED) { gregorio_messagef("read_rules", VERBOSITY_WARNING, 0, From 92052e9f38cc0df939f4773bd0d0e39b09fa299c Mon Sep 17 00:00:00 2001 From: "Fr. Samuel Springuel" Date: Sun, 19 Apr 2026 13:53:38 -0400 Subject: [PATCH 2/2] Split message cases Ignoring user input really should be a Warning, so we split the messages about using internal latin rules based on why we're using them. --- src/characters.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/characters.c b/src/characters.c index e688567b..d239cff7 100644 --- a/src/characters.c +++ b/src/characters.c @@ -92,11 +92,22 @@ static bool read_vowel_rules(char *const lang) { } } if (status == RFPS_NOT_FOUND) { - const char *msg = is_latin - ? "Using default Latin vowel rules" - : "Falling back on internal Latin vowel rules"; - - gregorio_messagef("read_rules", VERBOSITY_INFO, 0, msg); + if (is_latin) { + gregorio_messagef( + "read_rules", + VERBOSITY_INFO, + 0, + "Using default Latin vowel rules" + ); + } else { + gregorio_messagef( + "read_rules", + VERBOSITY_WARNING, + 0, + "Selecting Latin instead of %s", + language + ); + } } if (status == RFPS_ALIASED) { gregorio_messagef("read_rules", VERBOSITY_WARNING, 0, @@ -118,7 +129,9 @@ static bool read_vowel_rules(char *const lang) { void gregorio_set_centering_language(char *const language) { if (!read_vowel_rules(language)) { - if (strcmp(language, "Latin") != 0 && strcmp(language, "latin") != 0 && strcmp(language, "la") != 0 && strcmp(language, "lat") != 0) { + if ((strcasecmp(language, "latin") != 0 || + strcasecmp(language, "la") != 0 || + strcasecmp(language, "lat") != 0) { gregorio_messagef("gregorio_set_centering_language", VERBOSITY_WARNING, 0, _("unable to read vowel files for " "%s; defaulting to Latin vowel rules"), language);