Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-commonmark-extensions for
openSUSE:Factory checked in at 2022-02-11 23:08:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-commonmark-extensions (Old)
and /work/SRC/openSUSE:Factory/.ghc-commonmark-extensions.new.1956 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-commonmark-extensions"
Fri Feb 11 23:08:41 2022 rev:7 rq:953444 version:0.2.3
Changes:
--------
---
/work/SRC/openSUSE:Factory/ghc-commonmark-extensions/ghc-commonmark-extensions.changes
2021-11-11 21:38:19.108971641 +0100
+++
/work/SRC/openSUSE:Factory/.ghc-commonmark-extensions.new.1956/ghc-commonmark-extensions.changes
2022-02-11 23:10:37.635157294 +0100
@@ -1,0 +2,9 @@
+Wed Jan 12 17:57:58 UTC 2022 - Peter Simons <[email protected]>
+
+- Update commonmark-extensions to version 0.2.3.
+ ## 0.2.3
+
+ - Allow bare word attribute in fenced_divs (#84). This follows a similar
+ change in pandoc (jgm/pandoc#7242).
+
+-------------------------------------------------------------------
Old:
----
commonmark-extensions-0.2.2.1.tar.gz
New:
----
commonmark-extensions-0.2.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-commonmark-extensions.spec ++++++
--- /var/tmp/diff_new_pack.a1fSsO/_old 2022-02-11 23:10:37.979158289 +0100
+++ /var/tmp/diff_new_pack.a1fSsO/_new 2022-02-11 23:10:37.983158300 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ghc-commonmark-extensions
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%global pkg_name commonmark-extensions
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.2.2.1
+Version: 0.2.3
Release: 0
Summary: Pure Haskell commonmark parser
License: BSD-3-Clause
++++++ commonmark-extensions-0.2.2.1.tar.gz ->
commonmark-extensions-0.2.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/commonmark-extensions-0.2.2.1/benchmark/benchmark.hs
new/commonmark-extensions-0.2.3/benchmark/benchmark.hs
--- old/commonmark-extensions-0.2.2.1/benchmark/benchmark.hs 2021-06-20
22:26:52.000000000 +0200
+++ new/commonmark-extensions-0.2.3/benchmark/benchmark.hs 2022-01-12
04:38:13.000000000 +0100
@@ -8,9 +8,6 @@
import Commonmark.Extensions
import qualified Data.Text as T
import qualified Data.Text.IO as TIO
-#if !MIN_VERSION_base(4,11,0)
-import Data.Monoid
-#endif
main :: IO ()
main = do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/commonmark-extensions-0.2.2.1/changelog.md
new/commonmark-extensions-0.2.3/changelog.md
--- old/commonmark-extensions-0.2.2.1/changelog.md 2021-10-30
23:29:52.000000000 +0200
+++ new/commonmark-extensions-0.2.3/changelog.md 2022-01-12
18:28:16.000000000 +0100
@@ -1,5 +1,10 @@
# Changelog for commonmark-extensions
+## 0.2.3
+
+- Allow bare word attribute in fenced_divs (#84). This follows a similar
+ change in pandoc (jgm/pandoc#7242).
+
## 0.2.2.1
- Fix commonmark-extensions to build with GHC 9.2 (#81, Joseph C. Sible).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/commonmark-extensions.cabal
new/commonmark-extensions-0.2.3/commonmark-extensions.cabal
--- old/commonmark-extensions-0.2.2.1/commonmark-extensions.cabal
2021-10-30 23:28:25.000000000 +0200
+++ new/commonmark-extensions-0.2.3/commonmark-extensions.cabal 2022-01-12
18:28:27.000000000 +0100
@@ -1,5 +1,5 @@
name: commonmark-extensions
-version: 0.2.2.1
+version: 0.2.3
synopsis: Pure Haskell commonmark parser.
description:
This library provides some useful extensions to core commonmark
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/Attributes.hs
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/Attributes.hs
--- old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/Attributes.hs
2021-06-20 22:26:52.000000000 +0200
+++ new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/Attributes.hs
2022-01-12 05:52:46.000000000 +0100
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE UndecidableInstances #-}
@@ -30,9 +29,6 @@
import Data.Tree
import Control.Monad (mzero, guard, void)
import Text.Parsec
-#if !MIN_VERSION_base(4,11,0)
-import Data.Semigroup
-#endif
class HasDiv bl where
div_ :: bl -> bl
@@ -53,7 +49,7 @@
fencedDivBlockSpec :: (Monad m, IsBlock il bl, HasDiv bl)
=> BlockSpec m il bl
fencedDivBlockSpec = BlockSpec
- { blockType = "FencedDiv"
+ { blockType = "FencedDiv"
, blockStart = try $ do
prepos <- getPosition
nonindentSpaces
@@ -63,7 +59,10 @@
let fencelength = length colons
guard $ fencelength >= 3
skipWhile (hasType Spaces)
- attrs <- pAttributes
+ attrs <- pAttributes <|>
+ (do bareWordToks <- many1
+ (satisfyWord (const True) <|> anySymbol)
+ return [("class", untokenize bareWordToks)])
skipWhile (hasType Spaces)
lookAhead $ void lineEnd <|> eof
addNodeToStack $
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/AutoIdentifiers.hs
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/AutoIdentifiers.hs
---
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/AutoIdentifiers.hs
2021-06-20 22:26:52.000000000 +0200
+++
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/AutoIdentifiers.hs
2022-01-12 04:38:13.000000000 +0100
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE UndecidableInstances #-}
@@ -18,9 +17,6 @@
import qualified Data.Map as M
import qualified Data.Text as T
import Text.Parsec
-#if !MIN_VERSION_base(4,11,0)
-import Data.Semigroup
-#endif
autoIdentifiersSpec :: (Monad m, IsBlock il bl, IsInline il, ToPlainText il)
=> SyntaxSpec m il bl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/Autolink.hs
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/Autolink.hs
--- old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/Autolink.hs
2021-06-20 22:26:52.000000000 +0200
+++ new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/Autolink.hs
2022-01-12 04:38:14.000000000 +0100
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
module Commonmark.Extensions.Autolink
@@ -12,9 +11,6 @@
import Control.Monad (guard, void)
import Text.Parsec
import Data.Text (Text)
-#if !MIN_VERSION_base(4,11,0)
-import Data.Monoid
-#endif
autolinkSpec :: (Monad m, IsBlock il bl, IsInline il)
=> SyntaxSpec m il bl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/DefinitionList.hs
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/DefinitionList.hs
---
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/DefinitionList.hs
2021-10-30 20:40:25.000000000 +0200
+++ new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/DefinitionList.hs
2022-01-12 04:38:14.000000000 +0100
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE UndecidableInstances #-}
@@ -17,10 +16,6 @@
import Commonmark.TokParsers
import Commonmark.Html
import Control.Monad (mzero)
-#if !MIN_VERSION_base(4,11,0)
-import Data.Semigroup (Semigroup)
-import Data.Monoid
-#endif
import Data.Dynamic
import Data.Tree
import Text.Parsec
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/Emoji.hs
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/Emoji.hs
--- old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/Emoji.hs
2021-06-20 22:26:52.000000000 +0200
+++ new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/Emoji.hs
2022-01-12 04:38:14.000000000 +0100
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
module Commonmark.Extensions.Emoji
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/FancyList.hs
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/FancyList.hs
--- old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/FancyList.hs
2021-06-20 22:26:52.000000000 +0200
+++ new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/FancyList.hs
2022-01-12 04:38:14.000000000 +0100
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE UndecidableInstances #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/Footnote.hs
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/Footnote.hs
--- old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/Footnote.hs
2021-10-30 20:40:25.000000000 +0200
+++ new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/Footnote.hs
2022-01-12 04:38:14.000000000 +0100
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
@@ -23,10 +22,6 @@
import Control.Monad (mzero)
import Data.List
import Data.Maybe (fromMaybe, mapMaybe)
-#if !MIN_VERSION_base(4,11,0)
-import Data.Semigroup (Semigroup)
-import Data.Monoid
-#endif
import Data.Dynamic
import Data.Tree
import Text.Parsec
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/ImplicitHeadingReferences.hs
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/ImplicitHeadingReferences.hs
---
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/ImplicitHeadingReferences.hs
2021-06-20 22:26:52.000000000 +0200
+++
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/ImplicitHeadingReferences.hs
2022-01-12 04:38:14.000000000 +0100
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE UndecidableInstances #-}
@@ -19,9 +18,6 @@
import Control.Monad (unless)
import Data.Maybe (fromMaybe)
import Text.Parsec
-#if !MIN_VERSION_base(4,11,0)
-import Data.Semigroup
-#endif
implicitHeadingReferencesSpec
:: (Monad m, IsBlock il bl, IsInline il)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/Math.hs
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/Math.hs
--- old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/Math.hs
2021-06-20 22:26:52.000000000 +0200
+++ new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/Math.hs
2022-01-12 04:38:14.000000000 +0100
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
module Commonmark.Extensions.Math
@@ -14,9 +13,6 @@
import Commonmark.Html
import Text.Parsec
import Data.Text (Text)
-#if !MIN_VERSION_base(4,11,0)
-import Data.Semigroup (Semigroup(..))
-#endif
mathSpec :: (Monad m, IsBlock il bl, IsInline il, HasMath il)
=> SyntaxSpec m il bl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/PipeTable.hs
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/PipeTable.hs
--- old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/PipeTable.hs
2021-06-20 22:26:52.000000000 +0200
+++ new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/PipeTable.hs
2022-01-12 04:38:14.000000000 +0100
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
{-# LANGUAGE IncoherentInstances #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
@@ -25,9 +24,6 @@
import Data.Dynamic
import Data.Tree
import Data.Data
-#if !MIN_VERSION_base(4,11,0)
-import Data.Semigroup (Semigroup(..))
-#endif
data ColAlignment = LeftAlignedCol
| CenterAlignedCol
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/RebaseRelativePaths.hs
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/RebaseRelativePaths.hs
---
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/RebaseRelativePaths.hs
2021-06-20 22:26:52.000000000 +0200
+++
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/RebaseRelativePaths.hs
2022-01-12 05:58:38.000000000 +0100
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
@@ -18,9 +17,6 @@
import qualified System.FilePath.Posix as Posix
import Network.URI (URI (uriScheme), parseURI)
import qualified Data.Set as Set
-#if !MIN_VERSION_base(4,11,0)
-import Data.Semigroup (Semigroup(..))
-#endif
rebaseRelativePathsSpec
:: forall m bl il . (Monad m , IsInline il , IsBlock il bl)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/Smart.hs
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/Smart.hs
--- old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/Smart.hs
2021-10-30 20:40:25.000000000 +0200
+++ new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/Smart.hs
2022-01-12 04:38:14.000000000 +0100
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
@@ -15,10 +14,6 @@
import Commonmark.SourceMap
import Commonmark.TokParsers (symbol)
import Text.Parsec
-#if !MIN_VERSION_base(4,11,0)
-import Data.Monoid (Monoid)
-import Data.Semigroup (Semigroup, (<>))
-#endif
class IsInline il => HasQuoted il where
singleQuoted :: il -> il
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/TaskList.hs
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/TaskList.hs
--- old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/TaskList.hs
2021-10-30 20:40:25.000000000 +0200
+++ new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/TaskList.hs
2022-01-12 04:38:14.000000000 +0100
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE UndecidableInstances #-}
@@ -19,10 +18,6 @@
import Commonmark.TokParsers
import Commonmark.Html
import Control.Monad (mzero)
-#if !MIN_VERSION_base(4,11,0)
-import Data.Semigroup (Semigroup)
-import Data.Monoid ((<>))
-#endif
import Control.Monad (when, guard)
import Data.List (sort)
import Data.Dynamic
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/Wikilinks.hs
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/Wikilinks.hs
--- old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions/Wikilinks.hs
2021-06-20 22:26:52.000000000 +0200
+++ new/commonmark-extensions-0.2.3/src/Commonmark/Extensions/Wikilinks.hs
2022-01-12 04:38:14.000000000 +0100
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE UndecidableInstances #-}
@@ -17,9 +16,6 @@
import Commonmark.TokParsers
import Commonmark.Html
import Text.Parsec
-#if !MIN_VERSION_base(4,11,0)
-import Data.Semigroup hiding (option)
-#endif
import Data.Text (Text, strip)
class HasWikilinks il where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions.hs
new/commonmark-extensions-0.2.3/src/Commonmark/Extensions.hs
--- old/commonmark-extensions-0.2.2.1/src/Commonmark/Extensions.hs
2021-10-13 07:13:03.000000000 +0200
+++ new/commonmark-extensions-0.2.3/src/Commonmark/Extensions.hs
2022-01-12 05:58:38.000000000 +0100
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
{- |
Syntax extensions for the commonmark library.
@@ -64,9 +63,6 @@
import Commonmark.Extensions.RebaseRelativePaths
import Commonmark
import Data.Typeable
-#if !MIN_VERSION_base(4,11,0)
-import Data.Monoid ((<>))
-#endif
-- | Standard extensions for GitHub-flavored Markdown.
gfmExtensions :: (Monad m, Typeable m, Typeable il, Typeable bl,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/commonmark-extensions-0.2.2.1/test/fenced_divs.md
new/commonmark-extensions-0.2.3/test/fenced_divs.md
--- old/commonmark-extensions-0.2.2.1/test/fenced_divs.md 2021-06-20
22:26:52.000000000 +0200
+++ new/commonmark-extensions-0.2.3/test/fenced_divs.md 2022-01-12
04:38:14.000000000 +0100
@@ -119,3 +119,16 @@
</blockquote>
````````````````````````````````
+Instead of a normal attribute specifier in curly braces,
+a single bare word may be used; it will be treated as a
+"class" attribute:
+
+```````````````````````````````` example
+::: c_d
+Hi
+:::
+.
+<div class="c_d">
+<p>Hi</p>
+</div>
+````````````````````````````````
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/commonmark-extensions-0.2.2.1/test/test-commonmark-extensions.hs
new/commonmark-extensions-0.2.3/test/test-commonmark-extensions.hs
--- old/commonmark-extensions-0.2.2.1/test/test-commonmark-extensions.hs
2021-06-20 22:26:53.000000000 +0200
+++ new/commonmark-extensions-0.2.3/test/test-commonmark-extensions.hs
2022-01-12 04:38:14.000000000 +0100
@@ -17,9 +17,6 @@
import Test.Tasty.HUnit
import Text.Parsec
import Text.Parsec.Pos
-#if !MIN_VERSION_base(4,11,0)
-import Data.Semigroup
-#endif
readTextFile :: FilePath -> IO Text
readTextFile fp = do