This file is indexed.

/usr/lib/ocaml/gettext/gettextModules.ml is in libgettext-ocaml-dev 0.3.5-2build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
(**************************************************************************)
(*  ocaml-gettext: a library to translate messages                        *)
(*                                                                        *)
(*  Copyright (C) 2003-2008 Sylvain Le Gall <sylvain@le-gall.net>         *)
(*                                                                        *)
(*  This library is free software; you can redistribute it and/or         *)
(*  modify it under the terms of the GNU Lesser General Public            *)
(*  License as published by the Free Software Foundation; either          *)
(*  version 2.1 of the License, or (at your option) any later version;    *)
(*  with the OCaml static compilation exception.                          *)
(*                                                                        *)
(*  This library is distributed in the hope that it will be useful,       *)
(*  but WITHOUT ANY WARRANTY; without even the implied warranty of        *)
(*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *)
(*  Lesser General Public License for more details.                       *)
(*                                                                        *)
(*  You should have received a copy of the GNU Lesser General Public      *)
(*  License along with this library; if not, write to the Free Software   *)
(*  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307   *)
(*  USA                                                                   *)
(**************************************************************************)

(**
    @author Sylvain Le Gall
  *)

open FileUtil;;
open GettextTypes;;
open GettextCategory;;

(** Function for manipulation the type t *)

let upgrade_textdomain t k value =  
  let (current_codeset,current_dir) = 
    try
      MapTextdomain.find k t.textdomains
    with Not_found ->
      (None,None)
  in
  let new_value = 
    match value with
      (None,None) -> (current_codeset,current_dir)
    | (None,new_dir) -> (current_codeset,new_dir)
    | (new_codeset,None) -> (new_codeset,current_dir)
    | (new_codeset,new_dir) -> (new_codeset,new_dir)
  in
  { t with textdomains = MapTextdomain.add k new_value t.textdomains }
;;

let create 
  ?(failsafe = Ignore) 
  ?(categories = []) 
  ?(codesets = [])
  ?(dirs = []) 
  ?(textdomains = [])
  ?(codeset = GettextConfig.default_codeset )
  ?(path = GettextConfig.default_path )
  ?(language)
  textdomain =
    let map_categories = 
        List.fold_left ( 
          fun map (category,locale) -> 
            MapCategory.add category locale map 
          ) 
        MapCategory.empty
        categories
    in
    let result =
      {
        failsafe    = failsafe;
        textdomains = MapTextdomain.empty;
        categories  = map_categories;
        language    = language;
        codeset     = codeset;
        path        = path;
        default     = textdomain;
      }
    in
    (* Apply any upgrade required by the different settings provided *)
    let apply_upgrade t lst =
      List.fold_left (
        fun t (textdomain,changes) ->
          upgrade_textdomain t textdomain changes
      ) t lst
    in
    (* All changes from the setting of textdomains *)
    let textdomains_changes = 
      List.map 
      (fun textdomain -> (textdomain,(None,None))) 
      (textdomain :: textdomains)
    in
    (* All changes from the setting of codesets *)
    let codesets_changes =
      List.map 
      (fun (textdomain,codeset) -> (textdomain,(Some codeset,None))) 
      codesets
    in
    (* All changes from the setting of dirs *)
    let dirs_changes =
      List.map 
      (fun (textdomain,dir) -> (textdomain,(None,Some dir))) 
      dirs
    in
    apply_upgrade 
    result 
    ( textdomains_changes @ codesets_changes @ dirs_changes )
;;