fix CCString.*_ascii; add CCChar.{upper,lower}case_ascii

This commit is contained in:
Simon Cruanes 2016-09-18 20:31:53 +02:00
parent b249adf86f
commit 7a823b16d8
3 changed files with 32 additions and 4 deletions

View file

@ -11,3 +11,13 @@ let compare = Char.compare
let pp = Buffer.add_char
let print = Format.pp_print_char
let lowercase_ascii c =
if c >= 'A' && c <= 'Z'
then Char.unsafe_chr (Char. code c + 32)
else c
let uppercase_ascii c =
if c >= 'a' && c <= 'z'
then Char.unsafe_chr (Char.code c - 32)
else c

View file

@ -9,5 +9,13 @@ type t = char
val equal : t -> t -> bool
val compare : t -> t -> int
val lowercase_ascii : t -> t
(** See {!Char}
@since NEXT_RELEASE *)
val uppercase_ascii : t -> t
(** See {!Char}
@since NEXT_RELEASE *)
val pp : Buffer.t -> t -> unit
val print : Format.formatter -> t -> unit

View file

@ -651,10 +651,20 @@ let lowercase_ascii = String.lowercase_ascii
#else
let capitalize_ascii = String.capitalize
let uncapitalize_ascii = String.uncapitalize
let uppercase_ascii = String.uppercase
let lowercase_ascii = String.lowercase
let capitalize_ascii s =
mapi
(fun i c -> if i=0 then CCChar.uppercase_ascii c else c)
s
let uncapitalize_ascii s =
mapi
(fun i c -> if i=0 then CCChar.lowercase_ascii c else c)
s
let uppercase_ascii = map CCChar.uppercase_ascii
let lowercase_ascii = map CCChar.lowercase_ascii
#endif