package shakuhachi
Source file stringUtil.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(*****************************************************************************) (* *) (* Copyright (C) 2026 Yves Ndiaye *) (* *) (* This Source Code Form is subject to the terms of the Mozilla Public *) (* License, v. 2.0. If a copy of the MPL was not distributed with this *) (* file, You can obtain one at https://mozilla.org/MPL/2.0/. *) (* *) (*****************************************************************************) (** [make_path_safe s] replaces all {i slash}, {i backslash} and {i 0x00} characters by {i _} *) let make_path_safe s = String.map (function '/' | '\\' | '\000' -> '_' | c -> c) s let rec chunks current acc n s = match s with | [] -> acc | t :: q -> ( let s = Printf.sprintf "%s%c" current t in match String.length s with | l when l = n -> chunks String.empty (s :: acc) n q | _ -> chunks s acc n q ) (** [chunks n s] sépare [s] en une liste de [n] strings *) let chunks ?(rev = false) n s = let s = chunks String.empty [] n (List.of_seq @@ String.to_seq s) in if rev then s else List.rev s