/usr/lib/ocaml/netstring/netmappings.mli is in libocamlnet-ocaml-dev 4.1.2-3.
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 | (* $Id$
* ----------------------------------------------------------------------
*)
(** Internal access to the character conversion database
*
* This is an internal module.
*)
type from_uni_list =
U_nil
| U_single of (int*int)
| U_double of (int*int * int*int)
| U_array of int array
;;
(* A representation of (int*int) list that is optimized for the case that
* lists with 0 and 1 and 2 elements are the most frequent cases.
*)
val get_to_unicode : string -> int array
val get_from_unicode : string -> from_uni_list array
(* These functions get the conversion tables from local encodings to
* Unicode and vice versa.
* It is normally not necessary to access these tables; the
* Netconversion module does it already for you.
*
* The argument is the internal name of the encoding. (E.g. if
* encoding = `Enc_iso88591, the internal name is "iso88591", i.e.
* the "`Enc_" prefix is removed. However, for "composite encodings"
* like `Enc_eucjp things are more complicated.)
*
* Specification of the conversion tables:
*
* to_unicode: maps a local code to Unicode, i.e.
* let m = Hashtbl.find `Enc_isoXXX to_unicode in
* let unicode = m.(isocode)
* - This may be (-1) to indicate that the code point is not defined.
*
* from_unicode: maps Unicode to a local code, i.e.
* let m = Hashtbl.find `Enc_isoXXX from_unicode in
* let l = m.(unicode land mask)
* Now search in l the pair (unicode, isocode), and return isocode.
* Where mask = Array.length from_unicode - 1
*)
val lock : unit -> unit
(* In multi-threaded applications: obtains a lock which is required to
* Lazy.force the values found in to_unicode and from_unicode.
* In single-threaded applications: a NO-OP
*)
val unlock : unit -> unit
(* In multi-threaded applications: releases the lock which is required to
* Lazy.force the values found in to_unicode and from_unicode.
* In single-threaded applications: a NO-OP
*)
|