On Mar 28, 2009, at 9:59 PM, Reinier Lamers wrote:

Hi all,

I'd say: amend to move the insert_before_lastline to the Printer module in src/Printer.lhs, and import it from there to Changes.lhs and Arguments.lhs.
For the rest it's fine.

It might be nice to send a patch to add documentation of this as well. It's
most relevant for people implementing tools on top of darcs.


I will have a look into it.


+
+           xml_with_summary hp
+               | Just p <- hopefullyM hp = insert_before_lastline
+ (to_xml $ info hp) (indent $
xml_summary p) +           xml_with_summary hp = to_xml (info hp)
+           indent = prefix "    "

Is that a pattern guard? Do those work with GHC 6.6? Anyway, it appears to be
cut n pasted from Changes.lhs so it works.

I didn't fully understand it, but someone seemed to know what he was doing ;).

+insert_before_lastline :: Doc -> Doc -> Doc
+insert_before_lastline a b =
+    case reverse $ map packedString $ linesPS $ renderPS a of
+    (ll:ls) -> vcat (reverse ls) $$ b $$ ll
+    [] -> impossible

Shouldn't we move this to src/Printer.lhs? That's where the commonly used
functions on Doc's reside.

I just tried that to improve that. Turns out that "impossible" is undefined in Printer.lhs (happens), but you cannot include "impossible.h" into Printer, because that would create a circular dependency with Darcs.Bug. I have no quick idea how to solve this or whether darcs has an alternative way of reporting bugs.

Regards,
Florian

_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to