darcs 2.8.4 → 2.8.5
raw patch · 18 files changed
+122/−65 lines, 18 filesdep +network-uridep ~arraydep ~basedep ~mtlsetup-changedPVP ok
version bump matches the API change (PVP)
Dependencies added: network-uri
Dependency ranges changed: array, base, mtl, network, process, text, unix
API changes (from Hackage documentation)
Files
- NEWS +10/−0
- Setup.lhs +8/−0
- darcs.cabal +44/−31
- release/distributed-context +1/−1
- release/distributed-version +1/−1
- src/Crypt/SHA256.hs +2/−1
- src/Darcs/Commands/Get.hs +2/−1
- src/Darcs/Global.hs +14/−7
- src/Darcs/Patch/Match.hs +6/−1
- src/Darcs/SignalHandler.hs +12/−3
- src/Darcs/Test/Patch.hs +3/−0
- src/Darcs/Test/Patch/Info.hs +1/−1
- src/Encoding/IConv.hsc +3/−3
- src/URL.hs +5/−5
- src/Workaround.hs +2/−2
- src/h_iconv.c +3/−3
- src/h_iconv.h +3/−3
- tests/record_editor.sh +2/−2
NEWS view
@@ -1,3 +1,13 @@+Darcs 2.8.5, 25 August 2014+ * GHC 7.8 support+ * Resolve issue2364: Download problems with GHC 7.8+ * Bump some dependencies: base, network, unix, process, array, mtl, text+ * Support matching on short patch hash+ * Resolve issue2345: Fix bug where configure script reported missing libiconv rather than libcurl+ * Darcs API: Rename iconv functions imported from haskeline to avoid name clash+++Darcs 2.8.4, 7 February 2013 * GHC 7.6 support * Bump some dependencies: base, network, unix, containers, bytestring, tar * Resolved issue2199: get --tag can include extra patches
Setup.lhs view
@@ -10,6 +10,8 @@ import qualified Distribution.InstalledPackageInfo as Installed import Distribution.Simple ( defaultMainWithHooks, UserHooks(..), simpleUserHooks )+import Distribution.Simple.Configure+ ( checkForeignDeps ) import Distribution.ModuleName( toFilePath ) import Distribution.PackageDescription ( PackageDescription(executables), Executable(buildInfo, exeName)@@ -143,12 +145,18 @@ \genericDescript flags -> do lbi <- confHook simpleUserHooks genericDescript flags let pkgDescr = localPkgDescr lbi+ let verb = fromFlag (configVerbosity flags)+ checkForeignDeps pkgDescr lbi verb let Just lib = library pkgDescr let bi = libBuildInfo lib bi' <- maybeSetLibiconv flags bi lbi return lbi {localPkgDescr = pkgDescr { library = Just lib { libBuildInfo = bi'}}}+ ,+ postConf = \_ _ _ _ -> return () --- Usually this checked for external C+ --- dependencies, but we already have performed such+ --- check in the confHook } -- | For @./Setup build@ and @./Setup haddock@, do some unusual
darcs.cabal view
@@ -1,5 +1,5 @@ Name: darcs-version: 2.8.4+version: 2.8.5 License: GPL License-file: COPYING Author: David Roundy <droundy@darcs.net>, <darcs-devel@darcs.net>@@ -79,6 +79,10 @@ flag http description: Use the pure Haskell HTTP package for HTTP support. +flag network-uri+ description: Get Network.URI from the network-uri package+ default: True+ flag static description: Build static binary default: False@@ -147,7 +151,7 @@ else buildable: True - build-tools: ghc >= 6.10 && < 7.8+ build-tools: ghc >= 6.10 && < 7.10 hs-source-dirs: src include-dirs: src@@ -369,17 +373,17 @@ cc-options: -DHAVE_SIGINFO_H if os(windows)- build-depends: base >= 4 && < 4.7+ build-depends: base >= 4 && < 4.8 else if flag(force-char8-encoding)- build-depends: base >= 4.5 && < 4.7+ build-depends: base >= 4.5 && < 4.8 cpp-options: -DFORCE_CHAR8_ENCODING else build-depends: base >= 4 && < 4.4 build-depends: extensible-exceptions >= 0.1 && < 0.2, regex-compat >= 0.95.1,- mtl >= 1.0 && < 2.2,+ mtl >= 1.0 && < 2.3, parsec >= 2.0 && < 3.2, html == 1.0.*, filepath >= 1.1.0.0 && < 1.5.0.0,@@ -393,15 +397,15 @@ build-depends: haskeline <= 0.6.4.6 if !os(windows)- build-depends: unix >= 1.0 && < 2.7+ build-depends: unix >= 1.0 && < 2.8 build-depends: bytestring >= 0.9.0 && < 0.11,- text >= 0.11.0.6 && < 0.12.0.0,+ text >= 0.11.0.6 && < 1.2, old-time >= 1.0 && < 1.2, directory >= 1.0.0.0 && < 1.3.0.0,- process >= 1.0.0.0 && < 1.2.0.0,+ process >= 1.0.0.0 && < 1.3.0.0, containers >= 0.1 && < 0.6,- array >= 0.1 && < 0.5,+ array >= 0.1 && < 0.6, random == 1.0.* @@ -430,10 +434,13 @@ cc-options: -DHAVE_CURL if flag(http)- build-depends: network >= 2.2 && < 2.5,- HTTP >= 4000.0.8 && < 4000.3+ build-depends: HTTP >= 4000.0.8 && < 4000.3 cpp-options: -DHAVE_HTTP x-have-http:+ if flag(network-uri)+ build-depends: network >= 2.6, network-uri >= 2.6+ else+ build-depends: network >= 2.2, network < 2.6 if (!flag(curl) && !flag(http)) buildable: False@@ -486,7 +493,7 @@ buildable: False else buildable: True- build-tools: ghc >= 6.10 && < 7.8+ build-tools: ghc >= 6.10 && < 7.10 main-is: darcs.hs hs-source-dirs: src@@ -547,17 +554,17 @@ cc-options: -DHAVE_SIGINFO_H if os(windows)- build-depends: base >= 4 && < 4.7+ build-depends: base >= 4 && < 4.8 else if flag(force-char8-encoding)- build-depends: base >= 4.5 && < 4.7+ build-depends: base >= 4.5 && < 4.8 cpp-options: -DFORCE_CHAR8_ENCODING else build-depends: base >= 4 && < 4.4 build-depends: extensible-exceptions >= 0.1 && < 0.2, regex-compat >= 0.95.1,- mtl >= 1.0 && < 2.2,+ mtl >= 1.0 && < 2.3, parsec >= 2.0 && < 3.2, html == 1.0.*, filepath >= 1.1.0.0 && < 1.5.0.0,@@ -571,15 +578,15 @@ build-depends: haskeline <= 0.6.4.6 if !os(windows)- build-depends: unix >= 1.0 && < 2.7+ build-depends: unix >= 1.0 && < 2.8 build-depends: bytestring >= 0.9.0 && < 0.11,- text >= 0.11.0.6 && < 0.12.0.0,+ text >= 0.11.0.6 && < 1.2, old-time >= 1.0 && < 1.2, directory >= 1.0.0.0 && < 1.3.0.0,- process >= 1.0.0.0 && < 1.2.0.0,+ process >= 1.0.0.0 && < 1.3.0.0, containers >= 0.1 && < 0.6,- array >= 0.1 && < 0.5,+ array >= 0.1 && < 0.6, random == 1.0.* if flag(curl)@@ -590,10 +597,13 @@ cc-options: -DHAVE_CURL if flag(http)- build-depends: network >= 2.2 && < 2.5,- HTTP >= 4000.0.8 && < 4000.3+ build-depends: HTTP >= 4000.0.8 && < 4000.3 cpp-options: -DHAVE_HTTP x-have-http:+ if flag(network-uri)+ build-depends: network >= 2.6, network-uri >= 2.6+ else+ build-depends: network >= 2.2, network < 2.6 if (!flag(curl) && !flag(http)) buildable: False@@ -643,7 +653,7 @@ Executable darcs-test main-is: test.hs - build-tools: ghc >= 6.10 && < 7.8+ build-tools: ghc >= 6.10 && < 7.10 if !flag(test)@@ -653,7 +663,7 @@ build-depends: extensible-exceptions >= 0.1 && < 0.2, regex-compat >= 0.95.1,- mtl >= 1.0 && < 2.2,+ mtl >= 1.0 && < 2.3, parsec >= 2.0 && < 3.2, html == 1.0.*, filepath >= 1.1.0.0 && < 1.5.0.0,@@ -756,25 +766,25 @@ cc-options: -DHAVE_SIGINFO_H if os(windows)- build-depends: base >= 4 && < 4.7+ build-depends: base >= 4 && < 4.8 else if flag(force-char8-encoding)- build-depends: base >= 4.5 && < 4.7+ build-depends: base >= 4.5 && < 4.8 cpp-options: -DFORCE_CHAR8_ENCODING else build-depends: base >= 4 && < 4.4 if !os(windows)- build-depends: unix >= 1.0 && < 2.7+ build-depends: unix >= 1.0 && < 2.8 build-depends: bytestring >= 0.9.0 && < 0.11, haskeline >= 0.6.3 && < 0.8,- text >= 0.11.0.6 && < 0.12.0.0,+ text >= 0.11.0.6 && < 1.2, old-time >= 1.0 && < 1.2, directory >= 1.0.0.0 && < 1.3.0.0,- process >= 1.0.0.0 && < 1.2.0.0,+ process >= 1.0.0.0 && < 1.3.0.0, containers >= 0.1 && < 0.6,- array >= 0.1 && < 0.5,+ array >= 0.1 && < 0.6, hashed-storage >= 0.5.6 && < 0.6, vector >= 0.7, tar >= 0.3 && < 0.5,@@ -796,8 +806,11 @@ cpp-options: -DHAVE_TERMINFO if flag(http)- build-depends: network >= 2.2 && < 2.5,- HTTP >= 4000.0.8 && < 4000.3+ build-depends: HTTP >= 4000.0.8 && < 4000.3+ if flag(network-uri)+ build-depends: network >= 2.6, network-uri >= 2.6+ else+ build-depends: network >= 2.2, network < 2.6 if flag(color) x-use-color:
release/distributed-context view
@@ -1,1 +1,1 @@-Just "\nContext:\n\n[TAG 2.8.4\nGanesh Sittampalam <ganesh@earth.li>**20130127231845\n Ignore-this: d032f69540341ecfd5858fce7aee1457\n] \n\n[Resolve issue2155: Expurgate the non-functional annotate --xml-output option\nDave Love <fx@gnu.org>**20130127231835\n Ignore-this: eb03207031e75687968091d56fb008f8\n backported from HEAD by Ganesh Sittampalam <ganesh@earth.li>\n] \n\n[Resolve issue2155: Expurgate the non-functional annotate --xml-output option\nDave Love <fx@gnu.org>**20130120121739\n Ignore-this: 8a9ce6409a50b71cd0d2fdabbc181b1a\n backported from HEAD by Ganesh Sittampalam <ganesh@earth.li>\n] \n\n[note dependency bumps in NEWS\nGanesh Sittampalam <ganesh@earth.li>**20130120170310\n Ignore-this: 48cf181c89ec1b69fc6e9e701734ff19\n] \n\n[bump version to 2.8.4\nGanesh Sittampalam <ganesh@earth.li>**20130120154856\n Ignore-this: 2f2542e9825b66cda3a0a17275b5e311\n] \n\n[resolve issue2199: getMatchingTag needs to commute for dirty tags\nGanesh Sittampalam <ganesh@earth.li>**20121218191024\n Ignore-this: 947252cd8e084b793044aff564f0462d\n backported from HEAD\n] \n\n[accept issue2199: darcs get --tag gets too much\nGanesh Sittampalam <ganesh@earth.li>**20120528164525\n Ignore-this: 8c138a80c294e6181a3ef9250593fa31\n] \n\n[constrain haskeline version on old GHC\nGanesh Sittampalam <ganesh@earth.li>**20130119234432\n Ignore-this: 8af00cc3d3c1ad223a8b35712c06bae\n] \n\n[Add option -a to darcs changes in Setup.lhs\nBen Franksen <ben.franksen@online.de>**20120811195807\n Ignore-this: f23d2e558f7248fec8d07b0391d9a7e8\n \n Some (potential) contributors (like me) have 'changes interactive'\n in their ~/.darcs/defaults and then wonder why their build hangs.\n] \n\n[add copyright notices for the imported haskeline code\nGanesh Sittampalam <ganesh@earth.li>**20130119163610\n Ignore-this: afcdc8048f8b3233fa17d3ab0c9c311f\n licence/copyright taken from haskeline 0.6.4.7:\n BSD3, copyright Judah Jacobson\n] \n\n[import encoding code from haskeline: switch over\nGanesh Sittampalam <ganesh@earth.li>**20130118231907\n Ignore-this: b423a92ba93e74520d0578ac21aceab3\n] \n\n[import encoding code from haskeline: source files\nGanesh Sittampalam <ganesh@earth.li>**20130118225947\n Ignore-this: c2d1e228fa4cce3e66e90a14fa2f3200\n] \n\n[import encoding code from haskeline: cabal file changes\nGanesh Sittampalam <ganesh@earth.li>**20130118070642\n Ignore-this: d2ed13887d0c547cb7498bd5a2aef46f\n] \n\n[import encoding code from haskeline: Setup.lhs changes\nGanesh Sittampalam <ganesh@earth.li>**20130115181040\n Ignore-this: 31ccdca76001bff769464fb7a8e574e9\n] \n\n[ROLLBACK: conditionally use bytestring-handle\nGanesh Sittampalam <ganesh@earth.li>**20130111213829\n Ignore-this: d3c18b61f765bdfcb574b4977185197b\n It doesn't skip invalid byte sequences when decoding so breaks on \n repositories with non-UTF8 encoded metadata.\n] \n\n[bump network dependency\nGanesh Sittampalam <ganesh@earth.li>**20130111184607\n Ignore-this: 54e55fa09793008d55572b6acad1a7b8\n] \n\n[add some comments about \"nearby\" darcs, and print out the one that was found\nGanesh Sittampalam <ganesh@earth.li>**20130111211817\n Ignore-this: 57385f3248fc539435ed9de069a40bd5\n backported from HEAD\n] \n\n[make darcs-test look \"nearby\" for a darcs exe to use\nGanesh Sittampalam <ganesh@earth.li>**20130111211445\n Ignore-this: d952cf330c0d9510c5c973dd41b191e0\n backported from HEAD\n] \n\n[need different path separator on Windows\nGanesh Sittampalam <ganesh@earth.li>**20121219191221\n Ignore-this: 42c7ba1e46f5b6b600d23838e5a162cb\n] \n\n[test for issue2286: make sure we can read repos with non-UTF8 metadata\nGanesh Sittampalam <ganesh@earth.li>**20130102222735\n Ignore-this: adc6165d5d5d991383ebf0e6547f7bf4\n] \n\n[We can use chcp to switch encodings on Windows\nGanesh Sittampalam <ganesh@earth.li>**20130101122254\n Ignore-this: bc115467e31e144694a33e43dca3fb6c\n This means that the tests that require different encodings can run.\n] \n\n[Find latin9 locale on OS X too\nMichael Hendricks <michael@ndrix.org>**20120420202408\n Ignore-this: c87db3b97312234ed2380d2ca11a8ca0\n \n Most Linux systems describe latin9 as \"iso885915\". OS X\n describes it with \"ISO8859-15\". The new regex catches both.\n] \n\n[windows test fix: replace shell script with a Haskell program\nGanesh Sittampalam <ganesh@earth.li>**20121231224332\n Ignore-this: de01ab8647e7d62c18d8c266d514b054\n] \n\n[unsetting DARCS_TEST_PREFS_DIR in utf8 test doesn't seem to be necessary\nGanesh Sittampalam <ganesh@earth.li>**20130101120246\n Ignore-this: ed74710d8b358b920d742e86a7f008d8\n \n It was causing problems on Windows because getAppUserDataDirectory\n still returns the normal user directory.\n \n It also means that the repository type choice isn't picked up.\n] \n\n[improve diagnostics when utf8 test fails\nGanesh Sittampalam <ganesh@earth.li>**20121231224600\n Ignore-this: 63db587bc36f8826c66dc6913a4fdb2d\n] \n\n[need to do case-insensitive comparison on Windows\nGanesh Sittampalam <ganesh@earth.li>**20121228214823\n Ignore-this: ef309d4aef22e87d5c3da3222926af0e\n] \n\n[update NEWS\nGanesh Sittampalam <ganesh@earth.li>**20121216202654\n Ignore-this: aef3e47204a4157504f90554ffc3a327\n] \n\n[conditionally use bytestring-handle instead of haskeline for encoding\nGanesh Sittampalam <ganesh@earth.li>**20121216201745\n Ignore-this: fd758796b689d090d01e003e660e405\n This is transitional because we need to support GHC 6.10: we can switch\n over to bytestring-handle unconditionally on HEAD.\n] \n\n[bump deps for GHC 7.6/latest hackage\nGanesh Sittampalam <ganesh@earth.li>**20121216201543\n Ignore-this: 77829b074a4bff635a421879bdd04be0\n] \n\n[conditionally support tar 0.4\nGanesh Sittampalam <ganesh@earth.li>**20121216201014\n Ignore-this: 8eff0330e6af196727bdd736ef31db25\n] \n\n[recent test-framework seems to require Typeable\nGanesh Sittampalam <ganesh@earth.li>**20121216175601\n Ignore-this: a8cce6b69984bfc2335b5c19688950b3\n] \n\n[stop using Prelude.catch\nGanesh Sittampalam <ganesh@earth.li>**20121216163240\n Ignore-this: b4bfc48775b3337f8f7ebe275be1a058\n \n backported from HEAD\n] \n\n[import constructors of C types to deal with a GHC change\nGanesh Sittampalam <ganesh@earth.li>**20120401132500\n Ignore-this: ab7cf2fb5e9a2494c14fe7394200da9b\n] \n\n[TAG 2.8.3\nGanesh Sittampalam <ganesh@earth.li>**20121104174910\n Ignore-this: 3198f6deecf3d1b44df6e05a2657d9ca\n] \n"+Just "\nContext:\n\n[TAG 2.8.5\nGanesh Sittampalam <ganesh@earth.li>**20140825204639\n Ignore-this: 4e6c90569ceab19a231cdd4c5089b4c2\n] \n"
release/distributed-version view
@@ -1,1 +1,1 @@-Just 1+Just 0
src/Crypt/SHA256.hs view
@@ -14,12 +14,13 @@ module Crypt.SHA256 ( sha256sum ) where -import Foreign+import Foreign hiding ( unsafePerformIO ) import Foreign.C.Types import Numeric (showHex) import Foreign.C.String ( withCString ) import Data.ByteString.Unsafe (unsafeUseAsCStringLen) import qualified Data.ByteString as B+import System.IO.Unsafe ( unsafePerformIO ) sha256sum :: B.ByteString -> String sha256sum p = unsafePerformIO $
src/Darcs/Commands/Get.hs view
@@ -157,7 +157,8 @@ copyRepo withRepository opts ((RepoJob $ \repository -> goToChosenVersion repository opts) :: RepoJob ()) putInfo opts $ text "Finished getting."- where copyRepo =+ where copyRepo :: IO ()+ copyRepo = withRepository opts $ RepoJob $ \repository -> if formatHas HashedInventory rfsource then do
src/Darcs/Global.hs view
@@ -61,8 +61,12 @@ import Control.Monad ( when ) import Control.Concurrent.MVar import Control.Exception.Extensible ( bracket_, catch, catchJust, SomeException- , block, unblock )+#if (MIN_VERSION_base(4,4,0))+import Control.Exception.Extensible ( mask )+#else+import Control.Exception.Extensible ( block, unblock )+#endif import Data.IORef ( IORef, newIORef, readIORef, writeIORef ) import Data.IORef ( modifyIORef ) import Data.List ( isPrefixOf )@@ -75,6 +79,9 @@ import System.Environment ( getEnv ) import Prelude hiding (catch) +#if !(MIN_VERSION_base(4,4,0))+mask f = block (f unblock)+#endif windows :: Bool windows = "mingw" `isPrefixOf` os@@ -106,12 +113,12 @@ exit prog where- exit = block $ do+ exit = mask $ \unmask -> do Just actions <- swapMVar atexitActions Nothing -- from now on atexit will not register new actions- mapM_ runAction actions- runAction action =- catch (unblock action) $ \(exn :: SomeException) -> do+ mapM_ (runAction unmask) actions+ runAction unmask action =+ catch (unmask action) $ \(exn :: SomeException) -> do hPutStrLn stderr $ "Exception thrown by an atexit registered action:" hPutStrLn stderr $ show exn @@ -239,7 +246,7 @@ _badSourcesList :: IORef [String] _badSourcesList = unsafePerformIO $ newIORef []-{- NOINLINE _badSourcesList -}+{-# NOINLINE _badSourcesList #-} addBadSource :: String -> IO ()@@ -258,7 +265,7 @@ _reachableSourcesList :: IORef [String] _reachableSourcesList = unsafePerformIO $ newIORef []-{- NOINLINE _reachableSourcesList -}+{-# NOINLINE _reachableSourcesList #-} addReachableSource :: String -> IO ()
src/Darcs/Patch/Match.hs view
@@ -28,6 +28,7 @@ import Text.ParserCombinators.Parsec.Expr import Text.Regex ( mkRegex, matchRegex ) import Data.Maybe ( isJust )+import Data.List ( isPrefixOf ) import System.IO.Unsafe ( unsafePerformIO ) import Darcs.Patch.PatchInfoAnd ( PatchInfoAnd, hopefully, info )@@ -181,7 +182,9 @@ , ["\"prevent deadlocks\""] , logmatch ) , ("hash", "match the darcs hash for a patch"- , ["20040403105958-53a90-c719567e92c3b0ab9eddd5290b705712b8b918ef"]+ , ["20040403105958-53a90-c719567e92c3b0ab9eddd5290b705712b8b918ef"+ ,"c719567e92c3b0ab9eddd5290b705712b8b918ef"+ ,"c719567e"] , hashmatch ) , ("date", "match the patch date" , ["\"2006-04-02 22:41\"", "\"tea time yesterday\""]@@ -220,6 +223,8 @@ hashmatch h (Sealed2 hp) = let rh = makeFilename (info hp) in (rh == h) || (rh == h++".gz")+ || (h `isPrefixOf` drop 21 rh)+ -- enable matching on (prefix of) third part, like in darcs 2.10 datematch d (Sealed2 hp) = let dm = unsafePerformIO $ parseDateMatcher d in dm $ piDate (info hp)
src/Darcs/SignalHandler.hs view
@@ -27,8 +27,13 @@ import System.Exit ( exitWith, ExitCode ( ExitFailure ) ) import Control.Concurrent ( ThreadId, myThreadId ) import Control.Exception.Extensible- ( catch, throw, throwTo, block, unblock,+ ( catch, throw, throwTo, Exception(..), SomeException(..), IOException )+#if (MIN_VERSION_base(4,4,0))+import Control.Exception.Extensible ( mask )+#else+import Control.Exception.Extensible ( block, unblock )+#endif import System.Posix.Files ( getFdStatus, isNamedPipe ) import System.Posix.IO ( stdOutput ) import Data.Typeable ( Typeable, cast )@@ -42,6 +47,10 @@ import CtrlC ( withCtrlCHandler ) #endif +#if !(MIN_VERSION_base(4,4,0))+mask f = block (f unblock)+#endif+ stdoutIsAPipe :: IO Bool stdoutIsAPipe = catch@@ -128,8 +137,8 @@ | otherwise = throw ioe withSignalsBlocked :: IO a -> IO a-withSignalsBlocked job = block (job >>= \r ->- unblock(return r) `catchSignal` couldnt_do r)+withSignalsBlocked job = mask (\unmask -> job >>= \r ->+ unmask (return r) `catchSignal` couldnt_do r) where couldnt_do r s | s == sigINT = oops "interrupt" r | s == sigHUP = oops "HUP" r | s == sigABRT = oops "ABRT" r
src/Darcs/Test/Patch.hs view
@@ -2,6 +2,9 @@ #if __GLASGOW_HASKELL__ >= 700 {-# LANGUAGE ImpredicativeTypes #-} #endif+#if __GLASGOW_HASKELL__ >= 708+{-# LANGUAGE AllowAmbiguousTypes #-}+#endif -- Copyright (C) 2002-2005,2007 David Roundy -- -- This program is free software; you can redistribute it and/or modify
src/Darcs/Test/Patch/Info.hs view
@@ -28,7 +28,7 @@ import Data.Text as T ( find, any ) import Data.Text.Encoding ( decodeUtf8With ) import Data.Text.Encoding.Error ( lenientDecode )-import Foreign ( unsafePerformIO )+import System.IO.Unsafe ( unsafePerformIO ) import Test.QuickCheck ( Arbitrary(arbitrary), oneof, listOf, choose, shrink , Gen ) import Test.Framework.Providers.QuickCheck2 ( testProperty )
src/Encoding/IConv.hsc view
@@ -119,7 +119,7 @@ type IConvT = ForeignPtr () type IConvTPtr = Ptr () -foreign import ccall "haskeline_iconv_open" iconv_open+foreign import ccall "darcs_iconv_open" iconv_open :: CString -> CString -> IO IConvTPtr iconvOpen :: String -> String -> IO IConvT@@ -133,9 +133,9 @@ else newForeignPtr iconv_close res -- really this returns a CInt, but it's easiest to just ignore that, I think.-foreign import ccall "& haskeline_iconv_close" iconv_close :: FunPtr (IConvTPtr -> IO ())+foreign import ccall "& darcs_iconv_close" iconv_close :: FunPtr (IConvTPtr -> IO ()) -foreign import ccall "haskeline_iconv" c_iconv :: IConvTPtr -> Ptr CString -> Ptr CSize+foreign import ccall "darcs_iconv" c_iconv :: IConvTPtr -> Ptr CString -> Ptr CSize -> Ptr CString -> Ptr CSize -> IO CSize data Result = Successful
src/URL.hs view
@@ -22,7 +22,7 @@ import System.IO.Unsafe ( unsafePerformIO ) import Control.Concurrent ( forkIO ) import Control.Concurrent.Chan ( isEmptyChan, newChan, readChan, writeChan, Chan )-import Control.Concurrent.MVar ( isEmptyMVar, modifyMVar_, newEmptyMVar, newMVar, putMVar, readMVar, withMVar, MVar )+import Control.Concurrent.MVar ( isEmptyMVar, modifyMVar_, modifyMVar, newEmptyMVar, newMVar, putMVar, readMVar, withMVar, MVar ) import Control.Monad ( unless, when ) import Control.Monad.Trans ( liftIO ) import Control.Monad.State ( evalStateT, get, modify, put, StateT )@@ -196,10 +196,10 @@ debugMessage ("URL.copyUrlWithPriority ("++u++"\n"++ " -> "++f++")") v <- newEmptyMVar- let fn _ old_val = old_val- modifyMVar_ urlNotifications (return . (Map.insertWith fn u v))- let r = UrlRequest u f c p- writeChan urlChan r+ old_mv <- modifyMVar urlNotifications (return . (\(a, b) -> (b, a)) . Map.insertLookupWithKey (\_k _n old -> old) u v)+ case old_mv of+ Nothing -> writeChan urlChan $ UrlRequest u f c p -- ok, new URL+ Just _ -> debugMessage $ "URL.copyUrlWithPriority already in progress, skip (" ++ u ++ "\n" ++ "-> " ++ f ++ ")" waitNextUrl :: StateT UrlState IO () waitNextUrl = do
src/Workaround.hs view
@@ -31,7 +31,7 @@ import qualified System.Directory ( renameFile, getCurrentDirectory, removeFile ) import Control.Exception ( catch, IOException )-import qualified Control.Exception ( block )+import qualified Control.Exception ( mask ) import qualified System.IO.Error ( isDoesNotExistError, ioError ) #else@@ -96,7 +96,7 @@ renameFile :: FilePath -> FilePath -> IO ()-renameFile old new = Control.Exception.block $+renameFile old new = Control.Exception.mask $ \_ -> System.Directory.renameFile old new `catch` \(_ :: IOException) -> do System.Directory.removeFile new
src/h_iconv.c view
@@ -1,15 +1,15 @@ #include "h_iconv.h" // Wrapper functions, since iconv_open et al are macros in libiconv.-iconv_t haskeline_iconv_open(const char *tocode, const char *fromcode) {+iconv_t darcs_iconv_open(const char *tocode, const char *fromcode) { return iconv_open(tocode, fromcode); } -void haskeline_iconv_close(iconv_t cd) {+void darcs_iconv_close(iconv_t cd) { iconv_close(cd); } -size_t haskeline_iconv(iconv_t cd, char **inbuf, size_t *inbytesleft,+size_t darcs_iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft) { // Cast inbuf to (void*) so that it works both on Solaris, which expects // a (const char**), and on other platforms (e.g. Linux), which expect
src/h_iconv.h view
@@ -1,9 +1,9 @@ #include <iconv.h> -iconv_t haskeline_iconv_open(const char *tocode, const char *fromcode);+iconv_t darcs_iconv_open(const char *tocode, const char *fromcode); -void haskeline_iconv_close(iconv_t cd);+void darcs_iconv_close(iconv_t cd); -size_t haskeline_iconv(iconv_t cd, char **inbuf, size_t *inbytesleft,+size_t darcs_iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
tests/record_editor.sh view
@@ -8,7 +8,7 @@ rm -rf temp1 -export DARCS_EDITOR="/bin/cat -n"+export DARCS_EDITOR="cat -n" # editor: space in command mkdir temp1 cd temp1@@ -62,7 +62,7 @@ cd .. rm -rf temp1 -export DARCS_EDITOR='/bin/echo'+export DARCS_EDITOR='echo' # editor: evil filename mkdir temp1 cd temp1