~ubuntu-transition-trackers/ubuntu-transition-tracker/ben

« back to all changes in this revision

Viewing changes to lib/stml_base.ml

  • Committer: Stephane Glondu
  • Date: 2009-07-28 15:00:25 UTC
  • Revision ID: git-v1:798d1465aec923703fdc8dfb656099cb57d2de15
Stm_monitor: add configuration file facilities

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
 
25
25
module Fields = Set.Make(String)
26
26
 
27
 
let choose_escape str =
 
27
let choose_escape str xs =
28
28
  let rec loop = function
29
29
    | c::cs -> if String.contains str c then loop cs else c
30
30
    | _ -> Pervasives.raise Not_found
31
 
  in loop ['/'; '@'; ','; '%']
 
31
  in loop xs
32
32
 
33
33
let string_of_regexp (regexp, _) =
34
 
  let escape = choose_escape regexp in
 
34
  let escape = choose_escape regexp ['/'; '@'; ','; '%'] in
35
35
  if escape = '/' then
36
36
    sprintf "/%s/" regexp
37
37
  else
38
38
    sprintf "@%c%s%c" escape regexp escape
39
39
 
 
40
let string_of_string string =
 
41
  let escape = choose_escape string ['"'; '\''] in
 
42
  sprintf "%c%s%c" escape string escape
 
43
 
40
44
let core_fields =
41
45
  List.fold_right Fields.add
42
46
    ["package"; "source"; "binary"; "provides"; "version"; "architecture"; "build-depends"]