packages feed

darcswatch-0.1: example/mails/patch_1f03d40fbe9d0593a9eb7fbefc3bfa85

New patches:

[Little style change (avoid a bind+return).
Nicolas Pouillard <nicolas.pouillard@gmail.com>**20080413142318] hunk ./src/Darcs/Commands/MarkConflicts.lhs 76
 markconflicts_cmd opts [] = withRepoLock opts $- \repository -> do
   pend <- get_unrecorded_unsorted repository
   Sealed r <- read_repo repository
-  Sealed res <- return $ patchset_conflict_resolutions r
+  let (Sealed res) = patchset_conflict_resolutions r
   case res of NilFL -> do putStrLn "No conflicts to mark."
                           exitWith ExitSuccess
               _ -> return ()
[Extend a little color printing, and prettify hunks with mangenta and cyan.
nicolas.pouillard@gmail.com**20080414214559] hunk ./src/Darcs/ColourPrinter.lhs 9
 import System.IO ( stderr )
 import Darcs.External (getTermNColors)
 import Printer (Printer, Printers, Printers'(..), Printable(..), Color(..),
-                invisiblePrinter, (<>), Doc(..), unDoc, unsafeBoth, simplePrinter, hcat,
-                unsafeText, unsafeChar, space, unsafePackedString,
-                renderStringWith )
+                invisiblePrinter, (<>), Doc(Doc,unDoc), unsafeBoth, unsafeBothStr,
+                simplePrinter, hcat, unsafeText, unsafeChar, space,
+                unsafePackedString, renderStringWith )
 import Data.Char ( isAscii, isPrint, isSpace, isControl, ord, chr, intToDigit )
 import Data.Bits ( bit, xor )
 import System ( getEnv )
hunk ./src/Darcs/ColourPrinter.lhs 99
 -- printers
 
 fancyPrinters :: Printers
-fancyPrinters h = Printers { colorP     = colorPrinter (getPolicy h),
+fancyPrinters h = Printers { colorP     = color (getPolicy h),
                              invisibleP = invisiblePrinter,
                              hiddenP = colorPrinter (getPolicy h) Green,
                              userchunkP  = userchunkPrinter (getPolicy h),
hunk ./src/Darcs/ColourPrinter.lhs 197
          in ['\\', intToDigit q, intToDigit r]
 
 
--- make colours and highlightings
+-- make colors and highlightings
 
 mark_escape :: Policy -> Doc -> Doc
 mark_escape po | poAltColor po  = make_invert
hunk ./src/Darcs/ColourPrinter.lhs 209
          | otherwise     = make_color
 
 make_color :: Color -> Doc -> Doc
-make_color Blue  = make_blue
-make_color Red   = make_red
-make_color Green = make_green
+make_color Blue    = make_blue
+make_color Red     = make_red
+make_color Green   = make_green
+make_color Cyan    = make_cyan
+make_color Magenta = make_magenta
 
 make_asciiart :: Doc -> Doc
hunk ./src/Darcs/ColourPrinter.lhs 216
-make_asciiart x = unsafeBoth "[_" (packString "[_")
-               <> x
-               <> unsafeBoth "_]" (packString "_]")
+make_asciiart x = unsafeBothStr "[_" <> x <> unsafeBothStr "_]"
 
hunk ./src/Darcs/ColourPrinter.lhs 218
-make_bold :: Doc -> Doc
-make_bold x = unsafeBoth "\x1B[01m" (packString "\x1B[01m")
-              <> x
-              <> reset_colour
+set_bold, set_invert, set_blue, set_red, set_green, set_magenta, set_cyan, reset_color :: Doc
+set_bold    = unsafeBothStr "\x1B[01m"
+set_invert  = unsafeBothStr "\x1B[07m"
+set_blue    = unsafeBothStr "\x1B[01;34m" -- bold blue
+set_red     = unsafeBothStr "\x1B[01;31m" -- bold red
+set_green   = unsafeBothStr "\x1B[01;32m" -- bold green
+set_magenta = unsafeBothStr "\x1B[35m"    -- light magenta
+set_cyan    = unsafeBothStr "\x1B[36m"    -- light cyan
+reset_color = unsafeBothStr "\x1B[00m"
 
hunk ./src/Darcs/ColourPrinter.lhs 228
-make_invert :: Doc -> Doc
-make_invert x = unsafeBoth "\x1B[07m" (packString "\x1B[07m")
-                <> x
-                <> reset_colour
+set_color :: Doc -> Doc -> Doc
+set_color set_some_color = \x -> set_some_color <> x <> reset_color
 
hunk ./src/Darcs/ColourPrinter.lhs 231
-make_blue :: Doc -> Doc
-make_blue x = unsafeBoth "\x1B[01;34m" (packString "\x1B[01;34m")
-           <> x
-           <> reset_colour
-
-make_red :: Doc -> Doc
-make_red x = unsafeBoth "\x1B[01;31m" (packString "\x1B[01;31m")
-          <> x
-          <> reset_colour
-
-make_green :: Doc -> Doc
-make_green x = unsafeBoth "\x1B[01;32m" (packString "\x1B[01;32m")
-            <> x
-            <> reset_colour
-
-reset_colour :: Doc
-reset_colour = unsafeBoth "\x1B[00m" (packString "\x1B[00m")
+make_bold, make_invert, make_blue, make_red, make_green, make_magenta, make_cyan :: Doc -> Doc
+make_bold    = set_color set_bold
+make_invert  = set_color set_invert
+make_blue    = set_color set_blue
+make_red     = set_color set_red
+make_green   = set_color set_green
+make_cyan    = set_color set_cyan
+make_magenta = set_color set_magenta
 
 \end{code}
hunk ./src/Darcs/Patch/Prim.lhs 66
 import Darcs.Utils ( nubsort )
 import Lcs ( getChanges )
 import RegChars ( regChars )
-import Printer ( Doc, vcat, packedString,
+import Printer ( Doc, vcat, packedString, Color(Cyan,Magenta), colorDoc,
                  text, userchunk, invisibleText, invisiblePS, blueText,
                  ($$), (<+>), (<>), prefix, userchunkPS,
                )
hunk ./src/Darcs/Patch/Prim.lhs 400
 showHunk :: FileNameFormat -> FileName -> Int -> [PackedString] -> [PackedString] -> Doc
 showHunk x f line old new =
            blueText "hunk" <+> formatFileName x f <+> text (show line)
-        $$ prefix "-" (vcat $ map userchunkPS old)
-        $$ prefix "+" (vcat $ map userchunkPS new)
+        $$ colorDoc Magenta (prefix "-" (vcat $ map userchunkPS old))
+        $$ colorDoc Cyan    (prefix "+" (vcat $ map userchunkPS new))
 \end{code}
 
 \paragraph{Token replace}
hunk ./src/Darcs/Patch/Viewing.lhs 32
 import FastPackedString ( nullPS, linesPS )
 import FileName ( FileName, fp2fn, fn2fp )
 import Printer ( Doc, empty, vcat,
-                 text, blueText,
+                 text, blueText, Color(Cyan,Magenta), colorDoc,
                  minus, plus, ($$), (<+>), (<>),
                  prefix, renderString,
                  userchunkPS,
hunk ./src/Darcs/Patch/Viewing.lhs 130
             post = take numpost $ drop (max 0 $ l+length o-1) cleanedls
             in blueText "hunk" <+> formatFileName OldFormat f <+> text (show l)
             $$ prefix " " (vcat $ map userchunkPS pre)
-            $$ prefix "-" (vcat $ map userchunkPS o)
-            $$ prefix "+" (vcat $ map userchunkPS n)
+            $$ colorDoc Magenta (prefix "-" $ vcat $ map userchunkPS o)
+            $$ colorDoc Cyan    (prefix "+" $ vcat $ map userchunkPS n)
             $$ prefix " " (vcat $ map userchunkPS post)
 coolContextHunk _ _ _ _ = impossible
 \end{code}
hunk ./src/Printer.lhs 41
 
 This code was made generic in the element type by Juliusz Chroboczek.
 \begin{code}
-module Printer (Printable(..), Doc(..), unDoc, Printers, Printers'(..), Printer, Color(..),
+module Printer (Printable(..), Doc(Doc,unDoc), Printers, Printers'(..), Printer, Color(..),
                 hPutDoc,     hPutDocLn,     putDoc,     putDocLn,
                 hPutDocWith, hPutDocLnWith, putDocWith, putDocLnWith,
                 renderString, renderStringWith, renderPS, renderPSWith,
hunk ./src/Printer.lhs 47
                 renderPSs, renderPSsWith,
                 prefix, colorText, invisibleText, hiddenText, hiddenPrefix, userchunk, text,
-                printable, wrap_text,
-                blueText, redText, greenText,
-                unsafeText, unsafeBoth, unsafeChar,
+                printable, wrap_text, colorDoc,
+                blueText, redText, greenText, magentaText, cyanText,
+                unsafeText, unsafeBoth, unsafeBothStr, unsafeChar,
                 invisiblePS, packedString, unsafePackedString, userchunkPS,
                 simplePrinters, invisiblePrinter, simplePrinter,
                 doc, empty, (<>), (<+>), ($$), vcat, vsep, hcat,
hunk ./src/Printer.lhs 112
 hPrintPrintable h (PS ps) = hPutPS h ps
 hPrintPrintable h (Both _ ps) = hPutPS h ps
 
-newtype Doc = Doc (Reader St Document)
-unDoc :: Doc -> Reader St Document
-unDoc (Doc d) = d
+newtype Doc = Doc { unDoc :: Reader St Document }
 
 data St = St { printers :: !Printers', current_prefix :: !DocumentInternals }
 type Printers = Handle -> Printers'
hunk ./src/Printer.lhs 116
-data Printers' = Printers {colorP :: !(Color -> Printer),
+data Printers' = Printers {colorP :: !(Color -> Doc -> Doc),
                            invisibleP :: !Printer,
                            hiddenP :: !Printer,
                            userchunkP :: !Printer,
hunk ./src/Printer.lhs 124
                           }
 type Printer = Printable -> Reader St Document
 
-data Color = Blue | Red | Green
+data Color = Blue | Red | Green | Cyan | Magenta
 
 type DocumentInternals = [Printable] -> [Printable]
 data Document = Document DocumentInternals
hunk ./src/Printer.lhs 184
 unsafeBoth :: String -> PackedString -> Doc
 unsafeBoth s ps = Doc $ simplePrinter (Both s ps)
 
+unsafeBothStr :: String -> Doc
+unsafeBothStr s = Doc $ simplePrinter (Both s (packString s))
+
 packedString, unsafePackedString, invisiblePS, userchunkPS :: PackedString -> Doc
 packedString = printable . PS
 unsafePackedString = Doc . simplePrinter . PS
hunk ./src/Printer.lhs 196
 unsafeChar :: Char -> Doc
 unsafeChar = unsafeText . return
 
-text, unsafeText, invisibleText, hiddenText, userchunk, blueText, redText, greenText :: String -> Doc
+text, unsafeText, invisibleText, hiddenText, userchunk, blueText, redText, greenText, magentaText, cyanText :: String -> Doc
 text = printable . S
 unsafeText = Doc . simplePrinter . S
 invisibleText = invisiblePrintable . S
hunk ./src/Printer.lhs 205
 blueText = colorText Blue
 redText = colorText Red
 greenText = colorText Green
+magentaText = colorText Magenta
+cyanText = colorText Cyan
 
 colorText :: Color -> String -> Doc
hunk ./src/Printer.lhs 209
-colorText c = mkColorPrintable c . S
+colorText c = colorDoc c . printable . S
+
+colorDoc :: Color -> Doc -> Doc
+colorDoc c d = Doc $ do st <- ask
+                        unDoc $ colorP (printers st) c d
 
 wrap_text :: Int -> String -> Doc
 wrap_text n s =
hunk ./src/Printer.lhs 226
 printable, invisiblePrintable, hiddenPrintable, userchunkPrintable :: Printable -> Doc
 printable x = Doc $ do st <- ask
                        defP (printers st) x
-mkColorPrintable :: Color -> Printable -> Doc
-mkColorPrintable c x = Doc $ do st <- ask
-                                colorP (printers st) c x
 invisiblePrintable x = Doc $ do st <- ask
                                 invisibleP (printers st) x
 hiddenPrintable x = Doc $ do st <- ask
hunk ./src/Printer.lhs 237
 simplePrinters _ = simplePrinters'
 
 simplePrinters' :: Printers'
-simplePrinters'  = Printers { colorP = \_ -> simplePrinter,
+simplePrinters'  = Printers { colorP = const id,
                               invisibleP = simplePrinter,
                               hiddenP = invisiblePrinter,
                               userchunkP = simplePrinter,

Context:

[roll back implementation of joke oops command.
David Roundy <droundy@darcs.net>**20080414133342
 Apparently it didn't actually work...
 
 rolling back:
 
 Tue Apr  8 07:58:56 PDT 2008  David Roundy <droundy@darcs.net>
   * resolve issue786:  implement oops command.
 
     M ./src/Darcs/Commands/Tag.lhs -5 +47
     M ./src/Darcs/TheCommands.lhs -1 +2
] 
[just remove concatLenPS
David Roundy <droundy@darcs.net>**20080411205303
 It is never used in a performance-critical situation, so I'm voting to just
 trash it.  I'd rather have fewer unsafe operations.
] 
[FastPackedString.hs: simplify concatLenPS, although this removes its strictness properties
**20080411035327] 
[FastPackedString.hs: remove wfindPS
**20080411035046
 With better imports from bytestring, I believe it to be superfluous, and dangerous to leave around.
] 
[FastPackedString.hs: grmmr/sp
**20080411034730] 
[FastPackedString.hs: rw linesPS using ByteString split
**20080411032229] 
[doc updates
gwern0@gmail.com**20080409170824
 Convert all uses of 'http://darcs.net/repos/stable' to just darcs.net, since unstable and stable were merged together, and the old URL is a 404 for darcs getting. This is a real problem, see for example <http://reddit.com/info/6ewbq/comments/c03o6d5>.
] 
[fix typo in show_bug_help
Matyas Janos <mjanos5@gmail.com>**20080408232600] 
[Raise a configure error when no Text.Regex module can be found.
nicolas.pouillard@gmail.com**20080409085522] 
[update README url links
gwern0@gmail.com**20080407201333] 
[add a bit more debugging info to repository identification.
David Roundy <droundy@darcs.net>**20080408151912] 
[resolve issue385: don't worry if we can't get local changes.
David Roundy <droundy@darcs.net>**20080408151823] 
[add test for issue385.
David Roundy <droundy@darcs.net>**20080408151808] 
[resolve issue786:  implement oops command.
David Roundy <droundy@darcs.net>**20080408145856] 
[fix URL in network test.
David Roundy <droundy@darcs.net>**20080408145407] 
[fix manual bug.
David Roundy <droundy@darcs.net>**20080407191736] 
[add new show bug command (hidden) to see what darcs will report if we encounter a bug.
David Roundy <droundy@darcs.net>**20080407175410] 
[automatically work out the version of the stable release.
David Roundy <droundy@darcs.net>**20080407171850] 
[set prefs again (they got lost on convert).
David Roundy <droundy@darcs.net>**20080407171559] 
[update darcs repository URL.
David Roundy <droundy@darcs.net>**20080407164601] 
[fix up website for new release.
David Roundy <droundy@darcs.net>**20080407164010] 
[simplify determine_release_state.pl.
David Roundy <droundy@darcs.net>**20080407153000] 
[make determine_release_state.pl use changes --count.
David Roundy <droundy@darcs.net>**20080407152347] 
[add --count output option to changes.
David Roundy <droundy@darcs.net>**20080407151825] 
[TAG 2.0.0
David Roundy <droundy@darcs.net>**20080407150638] 
Patch bundle hash:
45247877729e0cfc5f1be0417f1d8c7deb8e740f

--=_