[Pkg-haskell-commits] [SCM] haskell-testpack branch, master, updated. debian/1.0.2-1-4-gb0d6b36

John Goerzen jgoerzen at complete.org
Fri Apr 23 15:15:23 UTC 2010


The following commit has been merged in the master branch:
commit 1204d115b9d1bee67e76288e0188871938a9c4fa
Author: John Goerzen <jgoerzen at complete.org>
Date:   Wed Nov 29 02:03:20 2006 +0100

    Use list rendering now

diff --git a/MissingH/ProgressMeter.hs b/MissingH/ProgressMeter.hs
index cac7211..c2089e9 100644
--- a/MissingH/ProgressMeter.hs
+++ b/MissingH/ProgressMeter.hs
@@ -65,7 +65,7 @@ data ProgressMeterR =
                     components :: [Progress], -- ^ Individual component statuses
                     width :: Int, -- ^ Width of the meter
                     unit :: String, -- ^ Units of display
-                    renderer :: Integer -> String, -- ^ Function to render
+                    renderer :: [Integer] -> [String], -- ^ Function to render numbers
                     autoDisplayers :: [ThreadId] -- ^ Auto-updating display
                    }
 
@@ -77,19 +77,19 @@ type ProgressMeter = MVar ProgressMeterR
 
 * Width 80
 
-* MissingH.Quantity.renderNum binaryOpts 1
+* MissingH.Quantity.renderNums binaryOpts 1
 
 * Unit inticator @"B"@
 
 -}
 simpleNewMeter :: Progress -> IO ProgressMeter
-simpleNewMeter pt = newMeter pt "B" 80 (renderNum binaryOpts 1)
+simpleNewMeter pt = newMeter pt "B" 80 (renderNums binaryOpts 1)
 
 {- | Set up a new status bar. -}
 newMeter :: Progress           -- ^ The top-level 'Progress'
          -> String              -- ^ Unit indicator string
           -> Int                -- ^ Width of the terminal -- usually 80
-          -> (Integer -> String)-- ^ A function to render sizes
+          -> ([Integer] -> [String])-- ^ A function to render sizes
           -> IO ProgressMeter
 newMeter tracker u w rfunc = 
     newMVar $ ProgressMeterR {masterP = tracker, components = [],
@@ -213,17 +213,18 @@ renderMeterR meter =
                   if (totalUnits pts == 0)
                      then return "0%"
                      else return $ show (((completedUnits pts) * 100) `div` (totalUnits pts)) ++ "%"
-          rendercomponent :: (Integer -> String) -> Progress -> IO String
+          rendercomponent :: ([Integer] -> [String]) -> Progress -> IO String
           rendercomponent rfunc pt = withStatus pt $ \pts ->
               do pct <- renderpctpts pts
                  let u = unit meter
+                 let renders = rfunc [totalUnits pts, completedUnits pts]
                  return $ "[" ++ trackerName pts ++ " " ++
-                     rfunc (completedUnits pts) ++ u ++ "/" ++
-                     rfunc (totalUnits pts) ++ u ++ " " ++ pct ++ "]"
+                     (renders !! 1) ++ u ++ "/" ++
+                     head renders ++ u ++ " " ++ pct ++ "]"
           renderoverall rfunc pt = withStatus pt $ \pts ->
               do etr <- getETR pts
                  speed <- getSpeed pts
-                 return $ rfunc (floor speed) ++ (unit meter) ++ 
+                 return $ head (rfunc [floor speed]) ++ (unit meter) ++ 
                             "/s " ++ renderSecs etr
 
 

-- 
haskell-testpack



More information about the Pkg-haskell-commits mailing list