Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/f2c901019e9828f82fc91cd126bc466de3e36c5c

>---------------------------------------------------------------

commit f2c901019e9828f82fc91cd126bc466de3e36c5c
Author: Duncan Coutts <[email protected]>
Date:   Thu May 3 16:21:17 2007 +0000

    List packages in name and version order (case-insensitively)

>---------------------------------------------------------------

 .../src/Network/Hackage/CabalInstall/List.hs       |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/cabal-install/src/Network/Hackage/CabalInstall/List.hs 
b/cabal-install/src/Network/Hackage/CabalInstall/List.hs
index 985cec0..dbdc293 100644
--- a/cabal-install/src/Network/Hackage/CabalInstall/List.hs
+++ b/cabal-install/src/Network/Hackage/CabalInstall/List.hs
@@ -16,7 +16,9 @@ module Network.Hackage.CabalInstall.List
 
 import Text.Regex
 import Data.Maybe (catMaybes, isJust)
-import Data.List (find, nub)
+import Data.List (find, nub, sortBy)
+import Data.Char as Char (toLower)
+import Data.Ord  (comparing)
 import Distribution.Package
 import Distribution.PackageDescription
 import Network.Hackage.CabalInstall.Config (getKnownPackages)
@@ -27,13 +29,18 @@ import Network.Hackage.CabalInstall.Types (PkgInfo(..), 
ConfigFlags(..), Unresol
 list :: ConfigFlags -> [String] -> IO ()
 list cfg pats = do
     pkgs <- getKnownPackages cfg
-    mapM_ doList $ if null pats then pkgs else nub (concatMap (findInPkgs 
pkgs) pats)
+    let pkgs' | null pats = pkgs
+              | otherwise = nub (concatMap (findInPkgs pkgs) pats)
+    mapM_ doList (sortBy (comparing nameAndVersion) pkgs')
     where
     findInPkgs :: [PkgInfo] -> String -> [PkgInfo]
     findInPkgs pkgs pat = let rx = mkRegexWithOpts pat False False in
         filter (isJust . matchRegex rx . showInfo) pkgs
     showInfo :: PkgInfo -> String
     showInfo pkg = showPackageId (infoId pkg) ++ "\n" ++ infoSynopsis pkg
+    nameAndVersion PkgInfo { infoId =
+        PackageIdentifier { pkgName = name, pkgVersion = version }
+      } = (map Char.toLower name, name, version)
 
 doList :: PkgInfo -> IO ()
 doList info = do



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to