This file is indexed.

/usr/lib/ocaml/plcairo/plcairo.mli is in libplplot-ocaml 5.9.9-2ubuntu2.

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
108
109
110
111
(*
Copyright 2008, 2009, 2010  Hezekiah M. Carty

This file is part of PLplot.

PLplot 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 of the License, or
(at your option) any later version.

PLplot 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 PLplot.  If not, see <http://www.gnu.org/licenses/>.
*)

(** A record to keep track of the Cairo surface and context information *)
type ('a, 'b) t

(** Types of Cairo surfaces available for {!plinit_cairo}. *)
type ('a, 'b) plcairo_sfc_t

(** Provide PLplot with a Cairo context to plot on. *)
external plset_cairo_context : Cairo.t -> unit
  = "ml_set_plplot_cairo_context"

(** Get the [(width, height)] of the surface in device units. *)
val plget_dims : ('a, 'b) t -> float * float

(** Get the Cairo surface associated with [t]. *)
val plget_surface : ('a, 'b) t -> 'a Cairo.surface

(** Get the Cairo context associated with [t]. *)
val plget_context : ('a, 'b) t -> Cairo.t

(** Get the PLplot stream number associated with [t]. *)
val plget_stream : ('a, 'b) t -> int

(** Get the output (filename, output stream or nothing) associated with [t]. *)
val plget_output : ('a, 'b) t -> 'b option

(** [plblit_to_cairo ?xoff ?yoff ?scale_by plcairo dest]
    blits the contents of [plcairo] to [dest].
    Optionally, offset the blit by [xoff] and [yoff] and
    scale by [`width w], [`height h] or [`both (w, h)]. *)
val plblit_to_cairo :
  ?xoff:float ->
  ?yoff:float ->
  ?scale_by:[< `both of float * float | `height of float | `width of float ] ->
  ([> `Any ], 'a) t -> Cairo.t -> unit

(** [plrasterize ?alpha t f] applies the plotting function [f ()] to [t],
    with the difference that the output will be rasterized for all plot
    output drivers, including vector-based output drivers such as PS, PDF and
    SVG.
    The [alpha] parameter may be provided to make the rasterized overlay
    transparent, even if the current color palette is not.
    Note that the plotting done by [f ()] will not be antialiased by default. *)
val plrasterize :
  ?alpha:float ->
  ?antialias:Cairo.antialias -> ('a, 'b) t -> (unit -> 'c) -> unit

(** [plcairo_new_page t] will advance the Cairo context associated with [t] to
    a new page, for devices which support this. *)
val plcairo_new_page : ('a, 'b) t -> unit

(** The following 4 functions provide a relatively simple way to setup an
    appropriate Cairo surface for use with this library and the extcairo
    driver.  They should be passed as the [init] argument to the
    [plinit_cairo] function.*)
val plpscairo : (out_channel, [ `Any | `PS ]) plcairo_sfc_t
val plpdfcairo : (out_channel, [ `Any | `PDF ]) plcairo_sfc_t
val plimagecairo : (string, [ `Any | `Image ]) plcairo_sfc_t
val plimagecairo_rgba : (string, [ `Any | `Image ]) plcairo_sfc_t

(** [plinit_cairo ?filename ?clear ?pre (width, height) init] creates a Cairo
    context and associates it with a new PLplot stream. *)
val plinit_cairo :
  ?filename:string ->
  ?clear:bool ->
  ?pre:(unit -> unit) ->
  int * int -> ('a, [> `Any ] as 'b) plcairo_sfc_t -> ('b, 'a) t

(** [plcairo_make_active t] sets PLplot to using the plot stream associated
    with [t] the active plot stream. *)
val plcairo_make_active : ('a, 'b) t -> unit

(** [plcairo_finish t] calls [Cairo.surface_finish] on the Cairo surface
    associated with [t]. *)
val plcairo_finish : ([> `Any ], 'a) t -> unit

(** [plsave_cairo_image ?filename t] saves the plot surface in [t]
    as a png to its associated file.  If [filename] is given then the file is
    saved with that name instead.  One of [Plplot.plflush], [Plplot.plend] or
    [Plplot.plend1] should be called first or the plotting may not be complete!
    Raises [Invalid_argument "No filename associated with this plot"] if no
    filename is provided and [t] does not have a filename associated with it. *)
val plsave_cairo_image : ?filename:string -> ([> `Any ], string) t -> unit

(** [plsave_cairo ?filename t] is like {!plsave_cairo_image} but for
    non-image surfaces. *)
val plsave_cairo : ([> `Any ], out_channel) t -> unit

(** NOTE: This function will almost definitely change in a future revision.
    [plcairo_copy_plot t driver filename] copies the plot stream from
    [t] to a new output stream, using the plot driver [driver], saving the
    output to [filename]. *)
val plcairo_copy_plot : ('a, 'b) t -> string -> string -> unit