Reinier, could you take care of this one? Thanks! On Fri, Mar 27, 2009 at 21:14:53 +0100, Florian Gilcher wrote: > Fri Mar 27 18:51:25 CET 2009 Florian Gilcher <[email protected]> > * Made --summary --xml-output work for other commands then changes > > Makes print_dry_run_message_and_exit care for --summary --xml-output and > print a summary-tag inside the return XML. > > Adapted the Algorithm from Changes.lhs and copied insert_before_lastline > from there. (not nice, but works) > > Why? > The manual suggests 'darcs pull --dry-run' to get the difference between 2 > repositories. If you want to see the changes > in detail, 'darcs pull --summary --dry-run' is the way to go. This works > great, until --xml comes into play, which behaves > different from the parameter in 'darcs changes' - it silently ignores > --summary and prints no summary. > This patch should fix that. > > How? > Adapted the algorithm from Changes.lhs in Arguments.hs. This also involved > copying insert_before_lastline (i didn't want > to create an include-Dependency here). Maybe that should be factored out > of changes anyways. > > Who? > A bloody Haskell beginner. Please review the code and bury me under evil > comments ;). > >
Made --summary --xml-output work for other commands then changes ---------------------------------------------------------------- > Florian Gilcher <[email protected]>**20090327175125 > Ignore-this: d3b9af82419fb66b56e8b151e84de8be > > Makes print_dry_run_message_and_exit care for --summary --xml-output and > print a summary-tag inside the return XML. > > Adapted the Algorithm from Changes.lhs and copied insert_before_lastline > from there. (not nice, but works) > > ] hunk ./src/Darcs/Arguments.lhs 100 > import Progress ( beginTedious, endTedious, tediousSize, finishedOneIO ) > #endif > > -import Darcs.Hopefully ( PatchInfoAnd, info ) > -import Darcs.Patch ( RepoPatch, Patchy, showNicely, description ) > +import Darcs.Hopefully ( PatchInfoAnd, info, hopefullyM ) > +import Darcs.Patch ( RepoPatch, Patchy, showNicely, description, xml_summary > ) > import Darcs.Patch.Info ( to_xml ) > import Darcs.Ordered ( FL, mapFL ) > import qualified Darcs.Patch ( summary ) > hunk ./src/Darcs/Arguments.lhs 119 > import Darcs.Repository.HashedRepo ( slurp_all_but_darcs ) > import Darcs.SlurpDirectory ( list_slurpy ) > import Darcs.Global ( darcsdir ) > -import Printer ( Doc, putDocLn, text, vsep, ($$), vcat ) > +import ByteStringUtils ( linesPS ) > +import Printer ( Doc, putDocLn, text, vsep, ($$), vcat, packedString, > renderPS, prefix ) > import URL ( pipeliningEnabledByDefault ) > #include "impossible.h" > > hunk ./src/Darcs/Arguments.lhs 1111 > putDocLn $ put_mode > where put_mode = if XMLOutput `elem` opts > then (text "<patches>" $$ > - vcat (mapFL (to_xml . info) patches) $$ > + vcat (mapFL (indent . xml_info) patches) $$ > text "</patches>") > else (vsep $ mapFL (showFriendly opts) patches) > putInfo = if XMLOutput `elem` opts then \_ -> return () else > putDocLn > hunk ./src/Darcs/Arguments.lhs 1115 > + xml_info pl > + | Summary `elem` opts = xml_with_summary pl > + | otherwise = (to_xml . info) pl > + > + 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 " " > + > +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 > > \end{code} > > -- Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow> PGP Key ID: 08AC04F9
pgpAcmATaBiix.pgp
Description: PGP signature
_______________________________________________ darcs-users mailing list [email protected] http://lists.osuosl.org/mailman/listinfo/darcs-users
