[Pkg-ocaml-maint-commits] [hevea] 06/13: Imported Upstream version 2.14
Ralf Treinen
treinen at moszumanska.debian.org
Thu Jun 19 06:39:16 UTC 2014
This is an automated email from the git hooks/post-receive script.
treinen pushed a commit to branch master
in repository hevea.
commit e986efff98c24408126c32e42d49a4f8724e602b
Author: Ralf Treinen <treinen at free.fr>
Date: Sat May 3 08:56:59 2014 +0200
Imported Upstream version 2.14
---
CHANGES | 2 ++
buff.ml | 43 ------------------------------------
buff.mli | 18 ---------------
cross.ml | 6 ++---
cutOut.ml | 3 ++-
esp.ml | 11 ++++-----
esp.mli | 6 ++---
esponja.ml | 19 ++++++++++++++--
hevea.ml | 1 +
htmllex.mli | 14 +++++++-----
htmllex.mll | 71 ++++++++++++++++++++++++++++++++---------------------------
htmlparse.ml | 57 +++++++++++++++++++++++++++--------------------
htmlparse.mli | 11 +++++----
infoRef.mll | 18 +++++++--------
tagout.mll | 10 +++++----
version.ml | 4 ++--
16 files changed, 135 insertions(+), 159 deletions(-)
diff --git a/CHANGES b/CHANGES
index ac61280..d02aa22 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,5 @@
+version 2.14
+ * Rationalize buffer usage and suppress private buff module.
version 2.13
* More effort to skip comments in arguments.
version 2.12
diff --git a/buff.ml b/buff.ml
deleted file mode 100644
index 2a4fa1e..0000000
--- a/buff.ml
+++ /dev/null
@@ -1,43 +0,0 @@
-(***********************************************************************)
-(* *)
-(* HEVEA *)
-(* *)
-(* Luc Maranget, projet Moscova, INRIA Rocquencourt *)
-(* *)
-(* Copyright 2001 Institut National de Recherche en Informatique et *)
-(* Automatique. Distributed only by permission. *)
-(* *)
-(***********************************************************************)
-type t = {mutable t : string ; mutable p : int}
-;;
-
-let create () = {t = String.create 64 ; p = 0}
-
-let rec realloc d b =
- let l = String.length b.t in
- if b.p + d-1 >= l then begin
- let new_t = String.create (2*l) in
- String.blit b.t 0 new_t 0 b.p ;
- b.t <- new_t ;
- realloc d b
- end
-
-
-let put_char b c =
- realloc 1 b ;
- b.t.[b.p] <- c ;
- b.p <- b.p + 1
-
-let put b s =
- let l = String.length s in
- realloc l b ;
- String.blit s 0 b.t b.p l ;
- b.p <- b.p + l
-
-let to_string b =
- let r = String.sub b.t 0 b.p in
- b.p <- 0 ;
- r
-
-let reset b = b.p <- 0
-
diff --git a/buff.mli b/buff.mli
deleted file mode 100644
index 6ed0afc..0000000
--- a/buff.mli
+++ /dev/null
@@ -1,18 +0,0 @@
-(***********************************************************************)
-(* *)
-(* HEVEA *)
-(* *)
-(* Luc Maranget, projet Moscova, INRIA Rocquencourt *)
-(* *)
-(* Copyright 2001 Institut National de Recherche en Informatique et *)
-(* Automatique. Distributed only by permission. *)
-(* *)
-(* $Id: buff.mli,v 1.4 2001-05-28 17:28:55 maranget Exp $ *)
-(***********************************************************************)
-type t
-
-val create : unit -> t
-val put_char : t -> char -> unit
-val put : t -> string -> unit
-val to_string : t -> string
-val reset : t -> unit
diff --git a/cross.ml b/cross.ml
index c1c617d..de1d888 100644
--- a/cross.ml
+++ b/cross.ml
@@ -29,9 +29,9 @@ let add name file =
let decode_fragment frag =
- let buff = Buff.create () in
- Url.decode_fragment (Buff.put_char buff) (Buff.put buff) frag ;
- Buff.to_string buff
+ let buff = Buffer.create 32 in
+ Url.decode_fragment (Buffer.add_char buff) (Buffer.add_string buff) frag ;
+ Buffer.contents buff
let fullname change myfilename name =
if !verbose > 1 then
diff --git a/cutOut.ml b/cutOut.ml
index 98c3394..497b94c 100644
--- a/cutOut.ml
+++ b/cutOut.ml
@@ -15,7 +15,8 @@ module type Config = sig
end
module Make(C:Config) = struct
-module Out = DoOut.Make(struct let small_length = 256 end)
+
+module Out = DoOut.Make(C)
type t = { out : Out.t ; name : string }
diff --git a/esp.ml b/esp.ml
index ee5212b..3ab1fb1 100644
--- a/esp.ml
+++ b/esp.ml
@@ -17,6 +17,7 @@ exception Failed
module type Config = sig
val pess : bool
val move : bool
+ val small_length : int
end
module Make(C:Config) = struct
@@ -98,10 +99,10 @@ let lex_this_out vdef f name_in name_out =
Location.restore () ;
raise e
-
+module Parse = Htmlparse.Make(C)
let process cls in_name input output =
- let rec do_rec lexbuf = match Htmlparse.main cls lexbuf with
+ let rec do_rec lexbuf = match Parse.main cls lexbuf with
| [] -> ()
| ts ->
if C.pess then
@@ -129,8 +130,8 @@ let process cls in_name input output =
output_char stderr '\n' ;
Location.print_fullpos () ;
Printf.fprintf stderr "Parser error: %s\n" s ;
- Htmllex.ptop () ;
- Htmllex.reset () ;
+ Parse.ptop () ;
+ Parse.reset () ;
Location.restore () ;
false
| e ->
@@ -142,7 +143,7 @@ let classes in_name input =
let lexbuf = Lexing.from_channel input in
Location.set in_name lexbuf ;
Emisc.reset () ;
- let cls = Htmllex.classes lexbuf in
+ let cls = Parse.classes lexbuf in
Location.restore () ;
Some cls
with
diff --git a/esp.mli b/esp.mli
index 2c4f3fe..040dcf8 100644
--- a/esp.mli
+++ b/esp.mli
@@ -15,12 +15,10 @@ exception Failed
module type Config = sig
val pess : bool
val move : bool
+ val small_length : int
end
module Make(C:Config) : sig
-val file : string -> unit
+ val file : string -> unit
end
-(*
-val process : Emisc.Strings.t option -> string -> in_channel -> out_channel -> bool
-*)
diff --git a/esponja.ml b/esponja.ml
index f57a916..8108135 100644
--- a/esponja.ml
+++ b/esponja.ml
@@ -9,16 +9,30 @@
(* *)
(***********************************************************************)
+open Printf
+
let arg = ref []
let pess = ref false
let move = ref true
+let small_length = ref 1024
let () =
Arg.parse
- ["-u", Arg.Set pess, "pessimize" ;
+ [
+ ("-version", Arg.Unit
+ (fun () ->
+ print_endline ("esponja "^Version.version) ;
+ print_endline ("library directory: "^Mylib.static_libdir) ;
+ exit 0),
+ "show version and exit") ;
+ ("-rsz", Arg.Int (fun i -> small_length := i),
+ (sprintf
+ "size of leaves in rope implementation (default %i)"
+ !small_length)) ;
+ "-u", Arg.Set pess, "pessimize" ;
"-v", Arg.Unit (fun () -> incr Emisc.verbose),"be verbose" ;
"-n", Arg.Unit (fun () -> move := false ; incr Emisc.verbose),
- "do not change files"]
+ "do not change files"; ]
(fun s -> arg := s :: !arg)
("Usage: esponja [option*] files\noptions are:")
;;
@@ -28,6 +42,7 @@ module E =
(struct
let pess = !pess
let move = !move
+ let small_length = !small_length
end)
let process name = try E.file name with Esp.Failed -> ()
diff --git a/hevea.ml b/hevea.ml
index f31c8e1..1ce9720 100644
--- a/hevea.ml
+++ b/hevea.ml
@@ -190,6 +190,7 @@ let main () =
(struct
let pess = false
let move = true
+ let small_length = !small_length
end) in
begin try E.file name_out
with Esp.Failed ->
diff --git a/htmllex.mli b/htmllex.mli
index 6585cdd..ce6c60b 100644
--- a/htmllex.mli
+++ b/htmllex.mli
@@ -7,13 +7,15 @@
(* Copyright 2001 Institut National de Recherche en Informatique et *)
(* Automatique. Distributed only by permission. *)
(* *)
-(* $Id: htmllex.mli,v 1.6 2006-10-09 08:25:16 maranget Exp $ *)
(***********************************************************************)
-val ptop : unit -> unit
val to_string : Lexeme.token -> string
val cost : Lexeme.style -> int * int
-val reset : unit -> unit
-val next_token : Lexing.lexbuf -> Lexeme.token
-val styles : Lexing.lexbuf -> Css.id list
-val classes : Lexing.lexbuf -> Emisc.Strings.t
+
+module Make(C:DoOut.Config) : sig
+ val ptop : unit -> unit
+ val reset : unit -> unit
+ val next_token : Lexing.lexbuf -> Lexeme.token
+ val styles : Lexing.lexbuf -> Css.id list
+ val classes : Lexing.lexbuf -> Emisc.Strings.t
+end
diff --git a/htmllex.mll b/htmllex.mll
index a727bb1..1e29d40 100644
--- a/htmllex.mll
+++ b/htmllex.mll
@@ -7,14 +7,27 @@
(* Copyright 2001 Institut National de Recherche en Informatique et *)
(* Automatique. Distributed only by permission. *)
(* *)
-(* $Id: htmllex.mll,v 1.15 2012-06-05 14:55:39 maranget Exp $ *)
(***********************************************************************)
+
+
{
-open Lexing
+
open Lexeme
-open Buff
+
+let to_string = function
+ | Open (_,_,txt) | Close (_,txt) | Text txt | Blanks txt -> txt
+ | Eof -> "Eof"
+
+let cost = function
+ | {tag=FONT ; attrs=attrs;_} -> (1,List.length attrs)
+ | _ -> (1,0)
+module Make(C:DoOut.Config) = struct
+open Lexing
+
+module Out = DoOut.Make(C)
+
let txt_level = ref 0
and txt_stack = MyStack.create "htmllex"
@@ -170,13 +183,13 @@ and ferme _lb name txt =
with
| Not_found -> Text txt
-let buff = Buff.create ()
-and abuff = Buff.create ()
+let buff = Out.create_buff ()
+and abuff = Out.create_buff ()
-let put s = Buff.put buff s
-and putc c = Buff.put_char buff c
+let put s = Out.put buff s
+and putc c = Out.put_char buff c
-let aput s = Buff.put abuff s
+let aput s = Out.put abuff s
@@ -193,24 +206,24 @@ rule main = parse
| "<!--"
{put (lexeme lexbuf) ;
in_comment lexbuf ;
- Text (Buff.to_string buff)}
+ Text (Out.to_string buff)}
| "<!"
{put (lexeme lexbuf) ;
in_tag lexbuf ;
- Text (Buff.to_string buff)}
+ Text (Out.to_string buff)}
| '<' (tag as tag) as lxm
{put lxm ;
if is_textlevel tag then begin
let attrs = read_attrs lexbuf in
- ouvre lexbuf tag attrs (Buff.to_string buff)
+ ouvre lexbuf tag attrs (Out.to_string buff)
end else if is_basefont tag then begin
let attrs = read_attrs lexbuf in
set_basefont attrs lexbuf ;
- Text (Buff.to_string buff)
+ Text (Out.to_string buff)
end else begin
check_nesting lexbuf tag ;
in_tag lexbuf ;
- let txt = Buff.to_string buff in
+ let txt = Out.to_string buff in
if is_br tag then
Blanks txt
else
@@ -219,12 +232,12 @@ rule main = parse
| "</" (tag as tag) as lxm
{put lxm ;
in_tag lexbuf ;
- ferme lexbuf tag (Buff.to_string buff)}
+ ferme lexbuf tag (Out.to_string buff)}
| eof {Eof}
| _ as c
{putc c ;
text lexbuf ;
- Text (Buff.to_string buff)}
+ Text (Out.to_string buff)}
and text = parse
| [^'<'] as c
@@ -237,10 +250,10 @@ and read_attrs = parse
| attr_name as name
{aput name ;
let v = read_avalue lexbuf in
- let atxt = Buff.to_string abuff in
+ let atxt = Out.to_string abuff in
put atxt ;
(name,v,atxt)::read_attrs lexbuf}
-| '>' {put_char buff '>' ; []}
+| '>' {Out.put_char buff '>' ; []}
| "" {error "Attribute syntax (read_attrs)" lexbuf}
and read_avalue = parse
@@ -353,27 +366,19 @@ and extract_attrs cls = parse
{
-let to_string = function
- | Open (_,_,txt) | Close (_,txt) | Text txt | Blanks txt -> txt
- | Eof -> "Eof"
-
-let cost = function
- | {tag=FONT ; attrs=attrs;_} -> (1,List.length attrs)
- | _ -> (1,0)
-
let tok_buff = ref None
;;
-let txt_buff = Buff.create ()
+let txt_buff = Out.create_buff ()
;;
let rec read_tokens blanks lb =
let t = main lb in
match t with
- | Text txt -> Buff.put txt_buff txt ; read_tokens false lb
- | Blanks txt -> Buff.put txt_buff txt ; read_tokens blanks lb
+ | Text txt -> Out.put txt_buff txt ; read_tokens false lb
+ | Blanks txt -> Out.put txt_buff txt ; read_tokens blanks lb
| _ ->
- let txt = Buff.to_string txt_buff in
+ let txt = Out.to_string txt_buff in
match txt with
| "" -> t
| _ ->
@@ -386,9 +391,9 @@ let rec read_tokens blanks lb =
let reset () =
txt_level := 0 ;
MyStack.reset txt_stack ;
- Buff.reset txt_buff ;
- Buff.reset buff ;
- Buff.reset abuff
+ Out.reset txt_buff ;
+ Out.reset buff ;
+ Out.reset abuff
let next_token lb =
try match !tok_buff with
@@ -402,5 +407,5 @@ let next_token lb =
let classes lexbuf =
let r = extract_classes Emisc.Strings.empty lexbuf in
r
-
+end
}
diff --git a/htmlparse.ml b/htmlparse.ml
index 73c1b04..f48bbb8 100644
--- a/htmlparse.ml
+++ b/htmlparse.ml
@@ -11,35 +11,38 @@
(***********************************************************************)
open Lexeme
-open Htmllex
open Tree
exception Error of string
+module Make(C:DoOut.Config) = struct
let error msg _lb = raise (Error msg)
;;
+module Out = DoOut.Make(C)
+module Lex = Htmllex.Make(C)
+
let buff = ref None
let next_token lexbuf = match !buff with
| Some tok -> buff := None ; tok
-| None -> Htmllex.next_token lexbuf
+| None -> Lex.next_token lexbuf
and put_back lexbuf tok = match !buff with
| None -> buff := Some tok
| _ -> error "Put back" lexbuf
-let txt_buff = Buff.create ()
+let txt_buff = Out.create_buff ()
let rec to_close tag lb = match next_token lb with
| Close (t,_) as tok when t=tag -> tok
| Open (t,_,txt) when t=tag ->
- Buff.put txt_buff txt ;
- Buff.put txt_buff (Htmllex.to_string (to_close tag lb)) ;
+ Out.put txt_buff txt ;
+ Out.put txt_buff (Htmllex.to_string (to_close tag lb)) ;
to_close tag lb
| Eof -> error ("Eof in to_close") lb
| tok ->
- Buff.put txt_buff (Htmllex.to_string tok);
+ Out.put txt_buff (Htmllex.to_string tok);
to_close tag lb
let rec tree cls lexbuf =
@@ -48,38 +51,38 @@ let rec tree cls lexbuf =
| Open (STYLE,_,txt) ->
let otxt = txt
and ctxt = Htmllex.to_string (to_close STYLE lexbuf) in
- let txt = Buff.to_string txt_buff in
+ let txt = Out.to_string txt_buff in
let txt = match cls with
| None -> txt
| Some cls ->
- let css = Htmllex.styles (MyLexing.from_string txt) in
- let buff = Buff.create () in
- Buff.put_char buff '\n' ;
+ let css = Lex.styles (MyLexing.from_string txt) in
+ let buff = Out.create_buff () in
+ Out.put_char buff '\n' ;
List.iter
(fun cl -> match cl with
| Css.Other txt ->
- Buff.put buff txt ;
- Buff.put_char buff '\n'
+ Out.put buff txt ;
+ Out.put_char buff '\n'
| Css.Class (name, addname, txt) ->
if Emisc.Strings.mem name cls then begin
- Buff.put_char buff '.' ;
- Buff.put buff name ;
+ Out.put_char buff '.' ;
+ Out.put buff name ;
begin match addname with
| None -> ()
| Some n ->
- Buff.put_char buff ' ' ;
- Buff.put buff n
+ Out.put_char buff ' ' ;
+ Out.put buff n
end ;
- Buff.put buff txt ;
- Buff.put_char buff '\n'
+ Out.put buff txt ;
+ Out.put_char buff '\n'
end)
css ;
- Buff.to_string buff in
+ Out.to_string buff in
Some (Text (otxt^txt^ctxt))
| Open (SCRIPT,_,txt) ->
- Buff.put txt_buff txt ;
- Buff.put txt_buff (Htmllex.to_string (to_close SCRIPT lexbuf)) ;
- Some (Text (Buff.to_string txt_buff))
+ Out.put txt_buff txt ;
+ Out.put txt_buff (Htmllex.to_string (to_close SCRIPT lexbuf)) ;
+ Some (Text (Out.to_string txt_buff))
| Open (tag,attrs,txt) ->
let fils = trees cls lexbuf in
begin match next_token lexbuf with
@@ -105,12 +108,16 @@ let rec do_main cls lexbuf = match tree cls lexbuf with
| None ->
begin match next_token lexbuf with
| Eof -> []
- | tok -> error ("Unexpected " ^ to_string tok) lexbuf
+ | tok -> error ("Unexpected " ^ Htmllex.to_string tok) lexbuf
end
| Some (Text _ as last) -> [last]
| Some t -> t :: do_main cls lexbuf
-let reset () = Buff.reset txt_buff
+let ptop () = Lex.ptop ()
+
+let reset () =
+ Lex.reset() ;
+ Out.reset txt_buff
let main cls lexbuf =
try
@@ -118,3 +125,5 @@ let main cls lexbuf =
with
| e -> reset () ; raise e
+let classes = Lex.classes
+end
diff --git a/htmlparse.mli b/htmlparse.mli
index 59ca654..a1fc612 100644
--- a/htmlparse.mli
+++ b/htmlparse.mli
@@ -11,7 +11,10 @@
(***********************************************************************)
exception Error of string
-val reset : unit -> unit
-val main :
- Emisc.Strings.t option -> Lexing.lexbuf -> Lexeme.style Tree.t list
-
+module Make(C:DoOut.Config) : sig
+ val ptop : unit -> unit
+ val reset : unit -> unit
+ val main :
+ Emisc.Strings.t option -> Lexing.lexbuf -> Lexeme.style Tree.t list
+ val classes : Lexing.lexbuf -> Emisc.Strings.t
+end
diff --git a/infoRef.mll b/infoRef.mll
index 8e124cc..9f44eca 100644
--- a/infoRef.mll
+++ b/infoRef.mll
@@ -124,16 +124,14 @@ let ajoute_node_dans_menu n m =
let verifie name =
- let nom = String.copy name in
- for i = 0 to String.length name -1 do
- match nom.[i] with
- | '\t' -> nom.[i] <- ' '
- | ',' -> nom.[i] <- ' '
- | '.' -> nom.[i] <- '-'
- | '\n' -> nom.[i] <- ' '
- | _ -> ()
- done;
- nom
+ String.map
+ (fun c -> match c with
+ | '\t'
+ | ','
+ | '\n' -> ' '
+ | '.' -> '-'
+ | _ -> c)
+ name
;;
diff --git a/tagout.mll b/tagout.mll
index e866d98..997fce5 100644
--- a/tagout.mll
+++ b/tagout.mll
@@ -14,7 +14,7 @@
{
exception Error
- let buff = Buff.create ()
+ let buff = Buffer.create 32
}
let blank = [' ''\t''\n''\r']
@@ -25,8 +25,8 @@ let attr_name = ['a'-'z''A'-'Z''-''0'-'9']+
rule tagout = parse
| ('<' | "</") tag { skiptag lexbuf ; tagout lexbuf }
| [^'<']+ as lxm
- { Buff.put buff lxm ; tagout lexbuf }
-| eof { Buff.to_string buff }
+ { Buffer.add_string buff lxm ; tagout lexbuf }
+| eof { Buffer.contents buff }
| "" { raise Error }
and skiptag = parse
@@ -41,5 +41,7 @@ and skiptag = parse
| "" { raise Error }
{
-let tagout s = tagout (MyLexing.from_string s)
+let tagout s =
+ Buffer.reset buff ;
+ tagout (MyLexing.from_string s)
}
diff --git a/version.ml b/version.ml
index 762439d..8d2b103 100644
--- a/version.ml
+++ b/version.ml
@@ -9,8 +9,8 @@
(* *)
(***********************************************************************)
-let real_version = "2.13"
-let release_date = "2014-03-18"
+let real_version = "2.14"
+let release_date = "2014-04-16"
let version =
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ocaml-maint/packages/hevea.git
More information about the Pkg-ocaml-maint-commits
mailing list