[gtksourceview] languagemanager: allow setting path to default RNG schema
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview] languagemanager: allow setting path to default RNG schema
- Date: Mon, 5 Sep 2022 21:37:20 +0000 (UTC)
commit ec688f54d7fdfa8012c09d761661bc4d6ec61a9f
Author: Christian Hergert <chergert redhat com>
Date: Mon Sep 5 14:33:32 2022 -0700
languagemanager: allow setting path to default RNG schema
This is useful so that we can use a particular path when running tests out
of tree (which ensures we are testing changes) versus when running
installed tests using the installation prefix (even if that is not in the
search path).
gtksourceview/gtksourcelanguagemanager-private.h | 2 +-
gtksourceview/gtksourcelanguagemanager.c | 29 +++++++++++++++++++++---
2 files changed, 27 insertions(+), 4 deletions(-)
---
diff --git a/gtksourceview/gtksourcelanguagemanager-private.h
b/gtksourceview/gtksourcelanguagemanager-private.h
index c9ea600c..40cf620d 100644
--- a/gtksourceview/gtksourcelanguagemanager-private.h
+++ b/gtksourceview/gtksourcelanguagemanager-private.h
@@ -23,7 +23,7 @@
G_BEGIN_DECLS
-G_GNUC_INTERNAL
GtkSourceLanguageManager *_gtk_source_language_manager_peek_default (void);
+void _gtk_source_language_manager_set_rng_file (const char *rng_file);
G_END_DECLS
diff --git a/gtksourceview/gtksourcelanguagemanager.c b/gtksourceview/gtksourcelanguagemanager.c
index 89921f77..e406bb64 100644
--- a/gtksourceview/gtksourcelanguagemanager.c
+++ b/gtksourceview/gtksourcelanguagemanager.c
@@ -42,9 +42,10 @@
* given file name and content type.
*/
-#define RNG_SCHEMA_FILE "language2.rng"
-#define LANGUAGE_DIR "language-specs"
-#define LANG_FILE_SUFFIX ".lang"
+#define RNG_SCHEMA_FILE "language2.rng"
+#define LANGUAGE_DIR "language-specs"
+#define LANG_FILE_SUFFIX ".lang"
+#define FALLBACK_RNG_SCHEMA_FILE PACKAGE_DATADIR "/language-specs/" RNG_SCHEMA_FILE
enum {
PROP_0,
@@ -67,6 +68,7 @@ struct _GtkSourceLanguageManager
static GtkSourceLanguageManager *default_instance;
static GParamSpec *properties[N_PROPS];
+static const char *default_rng_file = FALLBACK_RNG_SCHEMA_FILE;
G_DEFINE_TYPE (GtkSourceLanguageManager, gtk_source_language_manager, G_TYPE_OBJECT)
@@ -369,6 +371,19 @@ gtk_source_language_manager_get_search_path (GtkSourceLanguageManager *lm)
return (const gchar * const *)lm->lang_dirs;
}
+void
+_gtk_source_language_manager_set_rng_file (const char *rng_file)
+{
+ if (rng_file == NULL)
+ {
+ default_rng_file = FALLBACK_RNG_SCHEMA_FILE;
+ }
+ else
+ {
+ default_rng_file = g_intern_string (rng_file);
+ }
+}
+
/**
* _gtk_source_language_manager_get_rng_file:
* @lm: a #GtkSourceLanguageManager.
@@ -401,6 +416,14 @@ _gtk_source_language_manager_get_rng_file (GtkSourceLanguageManager *lm)
g_free (file);
}
+
+ if (lm->rng_file == NULL)
+ {
+ if (g_file_test (default_rng_file, G_FILE_TEST_EXISTS))
+ {
+ lm->rng_file = g_strdup (default_rng_file);
+ }
+ }
}
return lm->rng_file;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]