irc-ctcp-0.1.2.0: irc-ctcp.cabal
-- Initial irc-ctcp.cabal generated by cabal init. For further
-- documentation, see http://haskell.org/cabal/users-guide/
-- The name of the package.
name: irc-ctcp
-- The package version. See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 0.1.2.0
-- A short (one-line) description of the package.
synopsis: A CTCP encoding and decoding library for IRC clients.
-- A longer description of the package.
description:
CTCP (Client To Client Protocol) is a way of sending arbitrary data
over an IRC network, which may include bytes not allowed in standard
IRC messages. CTCPs are sent as a PRIVMSG or NOTICE, where the first
and last characters as @\\001@ (SOH), and special bytes are escaped
by encoding them into a two-byte sequence beginning with @\\020@
(DLE). CTCPs consist of command name (typically in upper-case)
followed by list of space-separated arguments, which may be empty.
.
One use of CTCPs supported by the vast majority of IRC clients today
is the ACTION command, typically invoked with /me. For example, if
the user @foo@ in the channel @#bar@ were to issue
.
> /me dances
.
everyone in the channel would receive the message
.
> :foo PRIVMSG #bar :\001ACTION dances\001
.
Other common uses of CTCP include requesting the name and version of
a user's IRC client, their local time, determining ping times, and
initiating file transfers (DCC).
.
Characters are escaped as follows:
.
[@\\000@ (NUL)] @\\020 \\060@ ("0")
.
[@\\012@ (NL)] @\\020 \\156@ ("n")
.
[@\\015@ (CR)] @\\020 \\162@ ("r")
.
[@\\020@ (DLE)] @\\020 \\020@
.
All other appearences of the escape character are errors, and are
dropped.
.
See <http://www.irchelp.org/irchelp/rfc/ctcpspec.html> for more
details.
-- URL for the project homepage or repository.
homepage: https://github.com/barrucadu/yukibot
-- The license under which the package is released.
license: OtherLicense
-- The file containing the license text.
license-file: LICENSE
-- The package author(s).
author: Michael Walker
-- An email address to which users can send suggestions, bug reports, and
-- patches.
maintainer: mike@barrucadu.co.uk
-- A copyright notice.
-- copyright:
category: Network
build-type: Simple
-- Extra files to be distributed with the package, such as examples or a
-- README.
extra-source-files: changes.md
-- Constraint on the version of Cabal needed to build this package.
cabal-version: >=1.10
library
-- Modules exported by the library.
exposed-modules: Network.IRC.CTCP
-- Modules included in this library but not exported.
-- other-modules:
-- LANGUAGE extensions used by modules in this package.
-- other-extensions:
-- Other library packages from which modules are imported.
build-depends: base >=4.7 && <5
, bytestring >=0.10
, text >=1.1
-- Directories containing source files.
-- hs-source-dirs:
-- Base language which the package is written in.
default-language: Haskell2010