On Tue, Nov 11, 2008 at 12:47:50PM -0500, Brian J. Murrell wrote:
> On Tue, 2008-11-11 at 12:08 -0500, Eric Cooper wrote:
> > The fix should be simple.

> Is that a hint that I should be able to fix it myself?  :-)

No, that was just me daring myself to fix it soon :-)

In fact, I've fixed it already; a patch is attached.  The build
dependencies for approx are rather extensive, but nothing that
pbuilder, etc. can't handle.  Let me know if you need any help.

-- 
Eric Cooper             e c c @ c m u . e d u
>From da60a6d786ed9b6e847e8abb1deeec1c14605ba3 Mon Sep 17 00:00:00 2001
From: Eric Cooper <[EMAIL PROTECTED]>
Date: Tue, 11 Nov 2008 12:41:56 -0500
Subject: [PATCH] handle multiple blank lines between paragraphs in control files

---
 control_file.ml |   30 ++++++++++++++++++------------
 1 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/control_file.ml b/control_file.ml
index 90b8e89..3dbae7e 100644
--- a/control_file.ml
+++ b/control_file.ml
@@ -45,18 +45,24 @@ let read_paragraph chan =
       with End_of_file -> None
     in
     match next with
-    | None when lines = [] -> raise End_of_file
-    | None | Some "" -> lines
-    | Some line when line.[0] = ' ' || line.[0] = '\t' ->
-        (match lines with
-        | last :: others ->
-            let line =
-              if line = " ." then ""
-              else substring line ~from: 1
-            in
-            loop ((last ^ "\n" ^ line) :: others)
-        | [] -> failwith ("leading white space: " ^ line))
-    | Some line -> loop (line :: lines)
+    | None ->
+        if lines <> [] then lines
+        else raise End_of_file
+    | Some "" ->
+        if lines <> [] then lines
+        else loop []
+    | Some line ->
+        if line.[0] = ' ' || line.[0] = '\t' then
+          match lines with
+          | last :: others ->
+              let line =
+                if line = " ." then ""
+                else substring line ~from: 1
+              in
+              loop ((last ^ "\n" ^ line) :: others)
+          | [] -> failwith ("leading white space: " ^ line)
+        else
+          loop (line :: lines)
   in
   List.rev_map parse (loop [])
 
-- 
1.5.6.5

Reply via email to