package dune-private-libs
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Private libraries of Dune
Install
dune-project
Dependency
Authors
Maintainers
Sources
dune-2.5.1.tbz
sha256=8f77d3a87f208e0d7cccaa1c48c4bb1bb87d62d07c3f25e9b8ba298e028ce52b
sha512=f209f12ced10c1abf8782bdb0143f4cec77795f7174d2cc75130afb1e01550b01f2f77b9e3ec4888efdad83d2f9878d179b39126f824f4e522f3ef4da34bf27e
doc/src/dune-private-libs.dune-lang/escape.ml.html
Source file escape.ml
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 91open! Stdune let quote_length s = let n = ref 0 in let len = String.length s in for i = 0 to len - 1 do n := !n + match String.unsafe_get s i with | '\"' | '\\' | '\n' | '\t' | '\r' | '\b' -> 2 | '%' -> if i + 1 < len && s.[i + 1] = '{' then 2 else 1 | ' ' .. '~' -> 1 | _ -> 4 done; !n let escape_to s ~dst:s' ~ofs = let n = ref ofs in let len = String.length s in for i = 0 to len - 1 do ( match String.unsafe_get s i with | ('\"' | '\\') as c -> Bytes.unsafe_set s' !n '\\'; incr n; Bytes.unsafe_set s' !n c | '\n' -> Bytes.unsafe_set s' !n '\\'; incr n; Bytes.unsafe_set s' !n 'n' | '\t' -> Bytes.unsafe_set s' !n '\\'; incr n; Bytes.unsafe_set s' !n 't' | '\r' -> Bytes.unsafe_set s' !n '\\'; incr n; Bytes.unsafe_set s' !n 'r' | '\b' -> Bytes.unsafe_set s' !n '\\'; incr n; Bytes.unsafe_set s' !n 'b' | '%' when i + 1 < len && s.[i + 1] = '{' -> Bytes.unsafe_set s' !n '\\'; incr n; Bytes.unsafe_set s' !n '%' | ' ' .. '~' as c -> Bytes.unsafe_set s' !n c | c -> let a = Char.code c in Bytes.unsafe_set s' !n '\\'; incr n; Bytes.unsafe_set s' !n (Char.unsafe_chr (48 + (a / 100))); incr n; Bytes.unsafe_set s' !n (Char.unsafe_chr (48 + (a / 10 mod 10))); incr n; Bytes.unsafe_set s' !n (Char.unsafe_chr (48 + (a mod 10))) ); incr n done (* Escape [s] if needed. *) let escaped s = let n = quote_length s in if n = 0 || n > String.length s then ( let s' = Bytes.create n in escape_to s ~dst:s' ~ofs:0; Bytes.unsafe_to_string s' ) else s (* Surround [s] with quotes, escaping it if necessary. *) let quoted s = let len = String.length s in let n = quote_length s in let s' = Bytes.create (n + 2) in Bytes.unsafe_set s' 0 '"'; if len = 0 || n > len then escape_to s ~dst:s' ~ofs:1 else Bytes.blit_string ~src:s ~src_pos:0 ~dst:s' ~dst_pos:1 ~len; Bytes.unsafe_set s' (n + 1) '"'; Bytes.unsafe_to_string s'
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>