X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbin%2Frecomm%2FrecommOutput.ml;h=187a2984b73bcd042279cfe585be40facc1b810b;hb=ae626612bff9c3746dd7647bbada791c737e348c;hp=fe8bebe945148fdd03ce6450c4b8b3f1bdbc56ec;hpb=dbc57c92512c04b3fd88f8289bb8dbe99b2f90e0;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/bin/recomm/recommOutput.ml b/matita/matita/contribs/lambdadelta/bin/recomm/recommOutput.ml index fe8bebe94..187a2984b 100644 --- a/matita/matita/contribs/lambdadelta/bin/recomm/recommOutput.ml +++ b/matita/matita/contribs/lambdadelta/bin/recomm/recommOutput.ml @@ -4,8 +4,17 @@ let width = ref 78 let replace = ref false -let complete s = - let l = !width - String.length s - 6 in +let string_length_utf8 s = + let l = String.length s in + let rec aux r i = + if i >= l then r else + if '\x80' <= s.[i] && s.[i] <= '\xBF' + then aux (succ r) (succ i) else aux r (succ i) + in + l - aux 0 0 + +let complete s n = + let l = !width - string_length_utf8 s - 5 - n in if l < 0 then begin Printf.eprintf "overfull: %S\n" s; "" @@ -19,15 +28,18 @@ let out_src och = function | ET.Text s -> Printf.fprintf och "%s" s | ET.Mark s -> - Printf.fprintf och "(* %s**)" s + Printf.fprintf och "(* *%s*)" s | ET.Key (s1, s2) -> - Printf.fprintf och "(* %s%s*)" s1 s2 + let s3 = + if s1 = "NOTE" then complete (s1^s2) 0 else "" + in + Printf.fprintf och "(* %s%s%s*)" s1 s2 s3 | ET.Title ss -> let s = String.concat " " ss in - Printf.fprintf och "(* %s %s*)" s (complete s) + Printf.fprintf och "(* %s %s*)" s (complete s 1) | ET.Slice ss -> let s = String.capitalize_ascii (String.concat " " ss) in - Printf.fprintf och "(* %s %s*)" s (complete s) + Printf.fprintf och "(* %s %s*)" s (complete s 1) | ET.Other (s1, s2, s3) -> Printf.fprintf och "%s%s%s" s1 s2 s3