packages feed

haskeline-0.7.0.3: haskeline.cabal

Name:           haskeline
Cabal-Version:  >=1.6
Version:        0.7.0.3
Category:       User Interfaces
License:        BSD3
License-File:   LICENSE
Copyright:      (c) Judah Jacobson
Author:         Judah Jacobson
Maintainer:     Judah Jacobson <judah.jacobson@gmail.com>
Category:       User Interfaces
Synopsis:       A command-line interface for user input, written in Haskell.
Description:    
                Haskeline provides a user interface for line input in command-line
                programs.  This library is similar in purpose to readline, but since
                it is written in Haskell it is (hopefully) more easily used in other
                Haskell programs.
                .
                Haskeline runs both on POSIX-compatible systems and on Windows.
Homepage:       http://trac.haskell.org/haskeline
Stability:      Experimental
Build-Type:     Custom
extra-source-files: examples/Test.hs CHANGES

source-repository head
    type: darcs
    location: http://code.haskell.org/haskeline

-- There are three main advantages to the terminfo backend over the portable,
-- "dumb" alternative.  First, it enables more efficient control sequences
-- when redrawing the input.  Second, and more importantly, it enables us
-- to draw on multiple lines, so we can wrap long input strings.  And third,
-- the backend adds some extra key sequences such as forwards delete.
--
-- (The "dumb" terminal also allows editing of long input strings, but is
-- restricted to only one line and thus only shows part of the input at once.)
flag terminfo
    Description: Use the terminfo package for POSIX consoles.
    Default: True

-- Note that the Setup script checks whether -liconv is necessary.  This flag
-- lets us override that decision.  When it is True, we use -liconv.  When it
-- is False, we run tests to decide.
flag libiconv
    Description: Explicitly link against the libiconv library.
    Default: False

flag legacy-encoding
    Description: Use the legacy iconv encoding for POSIX, even on ghc>=7.4.1.
                 (Intended for testing only.)
    Default: False

Library
    if impl(ghc>=6.11) {
        Build-depends: base >=4.1 && < 4.7, containers>=0.1 && < 0.6, directory>=1.0 && < 1.3,
                       bytestring>=0.9 && < 0.11
    }
    else {
        Build-depends: base>=3 && <4.1 , containers>=0.1 && < 0.3, directory==1.0.*,
                       bytestring==0.9.*
    }
    Build-depends:  filepath >= 1.1 && < 1.4, transformers >= 0.2 && < 0.4
    Extensions:     ForeignFunctionInterface, Rank2Types, FlexibleInstances,
                TypeSynonymInstances
                FlexibleContexts, ExistentialQuantification
                ScopedTypeVariables, GeneralizedNewtypeDeriving
                MultiParamTypeClasses, OverlappingInstances
                UndecidableInstances
                ScopedTypeVariables, CPP, DeriveDataTypeable,
                PatternGuards
    Exposed-Modules:
                System.Console.Haskeline
                System.Console.Haskeline.Completion
                System.Console.Haskeline.MonadException
                System.Console.Haskeline.History
                System.Console.Haskeline.IO
    Other-Modules:
                System.Console.Haskeline.Backend
                System.Console.Haskeline.Backend.WCWidth
                System.Console.Haskeline.Command
                System.Console.Haskeline.Command.Completion
                System.Console.Haskeline.Command.History
                System.Console.Haskeline.Command.KillRing
                System.Console.Haskeline.Directory
                System.Console.Haskeline.Emacs
                System.Console.Haskeline.InputT
                System.Console.Haskeline.Key
                System.Console.Haskeline.LineState
                System.Console.Haskeline.Monads
                System.Console.Haskeline.Prefs
                System.Console.Haskeline.RunCommand
                System.Console.Haskeline.Term
                System.Console.Haskeline.Command.Undo
                System.Console.Haskeline.Vi
    include-dirs: includes
    c-sources: cbits/h_wcwidth.c

    -- We require ghc>=7.4.1 to use the base library encodings,
    -- even though it was implemented in earlier releases,
    -- due to GHC bug #5436 which wasn't fixed until 7.4.1
    if !flag(legacy-encoding) && impl(ghc>=7.4) {
        cpp-options: -DUSE_GHC_ENCODINGS
        Other-modules: System.Console.Haskeline.Recover
    } else {
        Build-depends: utf8-string==0.3.* && >=0.3.6
    }
    if os(windows) {
        Build-depends: Win32>=2.0
        Other-modules: System.Console.Haskeline.Backend.Win32
        c-sources: cbits/win_console.c
        includes: win_console.h
        install-includes: win_console.h
        cpp-options: -DMINGW
    } else {
        Build-depends: unix>=2.0 && < 2.7
                        -- unix-2.3 doesn't build on ghc-6.8.1 or earlier
        -- Use manual encoding/decoding on ghc<7.4
        if flag (legacy-encoding) || impl(ghc<7.4) {
            c-sources: cbits/h_iconv.c
            includes: h_iconv.h
            install-includes: h_iconv.h
            Other-modules: System.Console.Haskeline.Backend.Posix.IConv
        }
        Other-modules: 
                System.Console.Haskeline.Backend.Posix
                System.Console.Haskeline.Backend.Posix.Encoder
                System.Console.Haskeline.Backend.DumbTerm
        if flag(terminfo) {
            Build-depends: terminfo>=0.3.1.3 && <0.4
            Other-modules: System.Console.Haskeline.Backend.Terminfo
            cpp-options: -DTERMINFO
        }
        if os(solaris) {
            cpp-options: -DUSE_TERMIOS_H
        }
    }
    ghc-options: -Wall