---
builder/Makefile.am | 6 +++++-
builder/languages.ml | 13 ++++++-------
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/builder/Makefile.am b/builder/Makefile.am
index e64c8991f..1b51376be 100644
--- a/builder/Makefile.am
+++ b/builder/Makefile.am
@@ -126,6 +126,7 @@ OCAMLPACKAGES = \
-I $(top_builddir)/ocaml \
-I $(top_builddir)/common/mlstdutils \
-I $(top_builddir)/common/mlutils \
+ -I $(top_builddir)/common/mlpcre \
-I $(top_builddir)/mllib \
-I $(top_builddir)/customize
OCAMLPACKAGES_TESTS =
@@ -156,6 +157,7 @@ OBJECTS = $(XOBJECTS)
endif
OCAMLLINKFLAGS = \
+ mlpcre.$(MLARCHIVE) \
mlstdutils.$(MLARCHIVE) \
mlguestfs.$(MLARCHIVE) \
mlcutils.$(MLARCHIVE) \
@@ -165,6 +167,7 @@ OCAMLLINKFLAGS = \
virt_builder_DEPENDENCIES = \
$(OBJECTS) \
+ ../common/mlpcre/mlpcre.$(MLARCHIVE) \
../common/mlstdutils/mlstdutils.$(MLARCHIVE) \
../common/mlutils/mlcutils.$(MLARCHIVE) \
../mllib/mllib.$(MLARCHIVE) \
@@ -238,6 +241,7 @@ endif
yajl_tests_DEPENDENCIES = \
$(yajl_tests_THEOBJECTS) \
+ ../common/mlpcre/mlpcre.$(MLARCHIVE) \
../common/mlstdutils/mlstdutils.$(MLARCHIVE) \
../common/mlutils/mlcutils.$(MLARCHIVE) \
../mllib/mllib.$(MLARCHIVE) \
@@ -311,7 +315,7 @@ depend: .depend
.depend: $(wildcard $(abs_srcdir)/*.mli) $(wildcard $(abs_srcdir)/*.ml)
rm -f $@ $@-t
- $(OCAMLFIND) ocamldep -I ../ocaml -I $(abs_srcdir) -I
$(abs_top_builddir)/common/mlstdutils -I $(abs_top_builddir)/common/mlutils -I
$(abs_top_builddir)/mllib -I $(abs_top_builddir)/customize $^ | \
+ $(OCAMLFIND) ocamldep -I ../ocaml -I $(abs_srcdir) -I
$(abs_top_builddir)/common/mlstdutils -I $(abs_top_builddir)/common/mlutils -I
$(abs_top_builddir)/common/mlpcre -I $(abs_top_builddir)/mllib -I
$(abs_top_builddir)/customize $^ | \
$(SED) 's/ *$$//' | \
$(SED) -e :a -e '/ *\\$$/N; s/ *\\\n */ /; ta' | \
$(SED) -e 's,$(abs_srcdir)/,$(builddir)/,g' | \
diff --git a/builder/languages.ml b/builder/languages.ml
index d94f97c5c..89d173999 100644
--- a/builder/languages.ml
+++ b/builder/languages.ml
@@ -19,15 +19,14 @@
open Std_utils
open Common_utils
+let re_locale =
+ PCRE.compile
"^([A-Za-z]+)(_([A-Za-z]+))?(\\.([A-Za-z0-9-]+))?(@([A-Za-z]+))?$"
+
let split_locale loc =
- let regex = Str.regexp
"^\\([A-Za-z]+\\)\\(_\\([A-Za-z]+\\)\\)?\\(\\.\\([A-Za-z0-9-]+\\)\\)?\\(@\\([A-Za-z]+\\)\\)?$"
in
let l = ref [] in
- if Str.string_match regex loc 0 then (
- let match_or_empty n =
- try Str.matched_group n loc with
- | Not_found -> ""
- in
- let lang = Str.matched_group 1 loc in
+ if PCRE.matches re_locale loc then (
+ let match_or_empty n = try PCRE.sub n with Not_found -> "" in
+ let lang = PCRE.sub 1 in
let territory = match_or_empty 3 in
(match territory with
| "" -> ()
--
2.13.2