let update_tagline_from_tags ds =
  let tagline = ds.ds_tagline in
  let tags = ds.ds_last_tags in
  let rec loop i = function
    | [] ->
        for j = i to String.length tagline - 1 do
          tagline.[j] <- '-'
        done
    | (tag, c) :: rest ->
        if Tags.mem tag tags then
          tagline.[i] <- Char.uppercase c
        else
          if Tags.mem tag ds.ds_seen_tags then
            tagline.[i] <- Char.lowercase c
          else
            tagline.[i] <- '-';
        loop (i + 1) rest
  in
  loop 0 ds.ds_tld;