@@ -548,18 +548,34 @@ let () =
548
548
let pgsql_libdir = A (" -L" ^ input_line ic) in
549
549
let major, minor =
550
550
let line = input_line ic in
551
- let major_start = String. index line ' ' + 1 in
552
- let major_dot = String. index_from line major_start '.' in
553
- let major =
554
- String. sub line major_start (major_dot - major_start)
555
- in
556
- let minor_start = major_dot + 1 in
557
- let minor_dot = String. index_from line minor_start '.' in
558
- let minor =
559
- String. sub line minor_start (minor_dot - minor_start)
560
- in
561
- A (" -DPG_OCAML_MAJOR_VERSION=" ^ major),
562
- A (" -DPG_OCAML_MINOR_VERSION=" ^ minor)
551
+ let search_version s =
552
+ let version = ref " " in
553
+ let stop = ref false in
554
+ let check_car c =
555
+ let ascii = Char. code c in
556
+ if (ascii > = 48 && ascii < = 57 && not ! stop) then
557
+ version := ! version ^ (String. make 1 c)
558
+ else
559
+ stop := true
560
+ in
561
+ let () = String. iter check_car s in
562
+ ! version
563
+ in
564
+ try
565
+ let first_space = String. index line ' ' in
566
+ let first_dot = String. index line '.' in
567
+ let first_part = String. sub line (first_space + 1 ) (first_dot - first_space - 1 ) in
568
+ let second_part = String. sub line (first_dot + 1 ) (String. length line - first_dot - 1 ) in
569
+ let major = search_version first_part in
570
+ let minor = search_version second_part in
571
+ if (major <> " " && minor <> " " ) then (
572
+ A (" -DPG_OCAML_MAJOR_VERSION=" ^ major),
573
+ A (" -DPG_OCAML_MINOR_VERSION=" ^ minor)
574
+ ) else (
575
+ failwith (" Unable to find versions from line '" ^ line ^ " ' (cmd: '" ^ cmd ^ " '" )
576
+ )
577
+ with
578
+ _ -> failwith (" Unable to find versions from line '" ^ line ^ " ' (cmd: '" ^ cmd ^ " '" )
563
579
in
564
580
close_in ic;
565
581
let pgsql_lib = A " -lpq" in
0 commit comments