This file is indexed.

/usr/lib/ocaml/melt/mlpost_specific.ml is in libmelt-ocaml-dev 1.4.0-1.

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
(**************************************************************************)
(* Copyright (c) 2009, Romain BARDOU                                      *)
(* All rights reserved.                                                   *)
(*                                                                        *)
(* Redistribution and  use in  source and binary  forms, with  or without *)
(* modification, are permitted provided that the following conditions are *)
(* met:                                                                   *)
(*                                                                        *)
(* * Redistributions  of  source code  must  retain  the above  copyright *)
(*   notice, this list of conditions and the following disclaimer.        *)
(* * Redistributions in  binary form  must reproduce the  above copyright *)
(*   notice, this list of conditions  and the following disclaimer in the *)
(*   documentation and/or other materials provided with the distribution. *)
(* * Neither the  name of Melt nor  the names of its  contributors may be *)
(*   used  to endorse  or  promote products  derived  from this  software *)
(*   without specific prior written permission.                           *)
(*                                                                        *)
(* THIS SOFTWARE  IS PROVIDED BY  THE COPYRIGHT HOLDERS  AND CONTRIBUTORS *)
(* "AS  IS" AND  ANY EXPRESS  OR IMPLIED  WARRANTIES, INCLUDING,  BUT NOT *)
(* LIMITED TO, THE IMPLIED  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR *)
(* A PARTICULAR PURPOSE  ARE DISCLAIMED. IN NO EVENT  SHALL THE COPYRIGHT *)
(* OWNER OR CONTRIBUTORS BE  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *)
(* SPECIAL,  EXEMPLARY,  OR  CONSEQUENTIAL  DAMAGES (INCLUDING,  BUT  NOT *)
(* LIMITED TO, PROCUREMENT OF SUBSTITUTE  GOODS OR SERVICES; LOSS OF USE, *)
(* DATA, OR PROFITS; OR BUSINESS  INTERRUPTION) HOWEVER CAUSED AND ON ANY *)
(* THEORY OF  LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY,  OR TORT *)
(* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING  IN ANY WAY OUT OF THE USE *)
(* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.   *)
(**************************************************************************)

module type Signature = sig
  (** Part of [Melt] which uses [Mlpost]. *)

  val compiled_with_mlpost: bool
    (** The value of [compiled_with_mlpost] is [true]. *)

  (** Convert some LaTeX into a picture. *)
  val picture_of_latex: Latex.t -> Mlpost.Picture.t

  (** Emit a figure to use it in a LaTeX document. *)
  val mlpost: ?mode: Melt_common.mode ->
    ?file: string -> Mlpost.Command.t -> Latex.t
  (**  The default  value  of [~mode]  is  the mode specified via the
command line (either to the melt tool or directly to the executable).

The [~file] parameter may be used if you want to specify the file name
used  for the  figure Metapost  script. Otherwise,  a default  name is
chosen.  This default name is [base.melt.figureN.ext], where [base] is
the executable base name (can  be overriden with the [-name] option on
the  command line),  [N] is  the figure  index and  [ext] is  [mps] if
[-pdf] is [true] or [1] otherwise. *)

  module Beamer :
    sig
      include Latex.BEAMER

      val mlpost: ?only: Latex.Beamer.overlays_spec list -> 
        ?mode: Melt_common.mode ->
        ?file: string -> Mlpost.Command.t -> Latex.t

    end
end

let compiled_with_mlpost = true

open Melt_common

let picture_of_latex l =
  try
    Mlpost.Picture.tex (Latex.to_string l)
  with (Invalid_argument txt) ->
    Mlpost.Picture.tex
      ("Cannot compile Mlpost figure. Reason: " ^
          (Latex.to_string
             (Latex.texttt
                (Latex.Verbatim.verbatim txt))))

let mlpost_gen includegraphics ?(mode = mode) ?file f =
  let file = match file with
    | None -> next_name ()
    | Some file -> file
  in
  let ext = match mode with
    | `Pdf -> ".mps"
    | `Ps -> ".1"
    | `Cairo -> ".pdf"
    | `Mps -> ".mps"
  in
  let full_name = file ^ ext in
  Mlpost.Metapost.emit file f;
  includegraphics (Latex.text full_name)

let mlpost = mlpost_gen Latex.includegraphics

module Beamer =
struct
  include Latex.Beamer

  let mlpost ?only = mlpost_gen (fun x -> Latex.Beamer.includegraphics ?only x)
end