chatty 0.5.4.1 → 0.5.4.2
raw patch · 2 files changed
+14/−2 lines, 2 files
Files
- Text/Chatty/Expansion/Vars.hs +13/−1
- chatty.cabal +1/−1
Text/Chatty/Expansion/Vars.hs view
@@ -84,9 +84,21 @@ instance MonadExpand m => MonadExpand (ExpanderT m) where expand = lift . expand <=< expandVars --- | Expand $variables. TODO: ${var}+-- | Expand $variables expandVars :: (Monad m,Functor m,ExpanderEnv m) => String -> m String expandVars [] = return []+expandVars ('\\':'$':ss) = do r <- expandVars ss; return ('$':r)+expandVars ('$':'{':ss) =+ let nm = takeBrace 0 ss+ rm = drop (length nm + 1) ss+ takeBrace 0 ('}':ss) = ""+ takeBrace n ('}':ss) = '}' : takeBrace (n-1) ss+ takeBrace n ('{':ss) = '{' : takeBrace (n+1) ss+ takeBrace n (s:ss) = s : takeBrace n ss+ in do+ v <- fmap show $ mgetv nm+ r <- expandVars rm+ return (v++r) expandVars ('$':ss) = let (nm,rm) = (takeWhile isAnum &&& dropWhile isAnum) ss in do
chatty.cabal view
@@ -10,7 +10,7 @@ -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 0.5.4.1+version: 0.5.4.2 -- A short (one-line) description of the package. synopsis: Some monad transformers and typeclasses to simplify I/O on a transformer stack.