From 236b94b0e44f154ab844cddbbd86ea9698812bb9 Mon Sep 17 00:00:00 2001
From: Ben Hutchings <ben@decadent.org.uk>
Date: Tue, 6 Oct 2009 05:00:30 +0100
Subject: [PATCH] Add support for XULRunner 1.9.1

This requires that we match versions down to the micro-version,
because nsIDocShell changed its ABI (including UUID) between 1.9 and
1.9.1.
---
 ChangeLog          | 9 +++++++++
 Makefile           | 4 +++-
 browser_widget.cpp | 7 +++++++
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index bd76af1..dffaad7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+videolink (1.2.9) unstable; urgency=low
+
+  * Add support for XULRunner 1.9.1, requiring a version match down to
+    the micro-version, i.e. you can either:
+    - Build and run using XULRunner 1.9, or
+    - Build and run using XULRunner 1.9.1
+
+ -- Ben Hutchings <ben@decadent.org.uk>  Tue, 06 Oct 2009 05:00:13 +0100
+
 videolink (1.2.8) unstable; urgency=low
 
   * Set the XULRunner version requirement to exclude 1.9.1 since it
diff --git a/Makefile b/Makefile
index ddfa5aa..b9b794e 100644
--- a/Makefile
+++ b/Makefile
@@ -33,6 +33,7 @@ moz_lib_dir := $(moz_prefix)/lib/$(moz_name)
 moz_version := $(shell pkg-config --modversion $(moz_pc))
 moz_version_major := $(word 1,$(subst ., ,$(moz_version)))
 moz_version_minor := $(word 2,$(subst ., ,$(moz_version)))
+moz_version_micro := $(word 3,$(subst ., ,$(moz_version)))
 
 CFLAGS := -ansi -Wall -Wunused -Wno-unused-parameter
 CPPFLAGS := -D_REENTRANT
@@ -108,7 +109,8 @@ $(sources_using_moz:%.cpp=.objs/%.o) : CXXFLAGS += -Wno-non-virtual-dtor
 $(sources_using_moz_unstable:%.cpp=.objs/%.o)                          \
     : CPPFLAGS += $(moz_unstable_cppflags_extra)                       \
                   -DMOZ_VERSION_MAJOR=$(moz_version_major)             \
-                  -DMOZ_VERSION_MINOR=$(moz_version_minor)
+                  -DMOZ_VERSION_MINOR=$(moz_version_minor)             \
+                  -DMOZ_VERSION_MICRO=$(moz_version_micro)
 
 .objs/%.o : %.cpp .objs/.created
 	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $@ -MD -MF .objs/$*.d -c $<
diff --git a/browser_widget.cpp b/browser_widget.cpp
index f32240b..01ce4cb 100644
--- a/browser_widget.cpp
+++ b/browser_widget.cpp
@@ -532,8 +532,15 @@ browser_widget::initialiser::initialiser()
 {
 #if MOZ_VERSION_MAJOR == 1 && MOZ_VERSION_MINOR == 9
     static const GREVersionRange gre_versions = {
+#if MOZ_VERSION_MICRO == 0
 	"1.9a", PR_TRUE,
 	"1.9.1", PR_FALSE
+#elif MOZ_VERSION_MICRO == 1
+	"1.9.1", PR_TRUE,
+	"1.9.2", PR_FALSE
+#else
+#error "version is unsupported, but you could try continuing the pattern above"
+#endif
     };
     char path[PATH_MAX];
     check(GRE_GetGREPathWithProperties(&gre_versions, 1, 0, 0,
-- 
2.39.5