packages feed

cpphs 1.19.3 → 1.20

raw patch · 5 files changed

+33/−13 lines, 5 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Language.Preprocessor.Cpphs: ansi :: BoolOptions -> Bool
- Language.Preprocessor.Cpphs: boolopts :: CpphsOptions -> BoolOptions
- Language.Preprocessor.Cpphs: defines :: CpphsOptions -> [(String, String)]
- Language.Preprocessor.Cpphs: hashline :: BoolOptions -> Bool
- Language.Preprocessor.Cpphs: includes :: CpphsOptions -> [String]
- Language.Preprocessor.Cpphs: infiles :: CpphsOptions -> [FilePath]
- Language.Preprocessor.Cpphs: lang :: BoolOptions -> Bool
- Language.Preprocessor.Cpphs: layout :: BoolOptions -> Bool
- Language.Preprocessor.Cpphs: literate :: BoolOptions -> Bool
- Language.Preprocessor.Cpphs: locations :: BoolOptions -> Bool
- Language.Preprocessor.Cpphs: macros :: BoolOptions -> Bool
- Language.Preprocessor.Cpphs: outfiles :: CpphsOptions -> [FilePath]
- Language.Preprocessor.Cpphs: pragma :: BoolOptions -> Bool
- Language.Preprocessor.Cpphs: preInclude :: CpphsOptions -> [FilePath]
- Language.Preprocessor.Cpphs: stripC89 :: BoolOptions -> Bool
- Language.Preprocessor.Cpphs: stripEol :: BoolOptions -> Bool
- Language.Preprocessor.Cpphs: warnings :: BoolOptions -> Bool
+ Language.Preprocessor.Cpphs: [ansi] :: BoolOptions -> Bool
+ Language.Preprocessor.Cpphs: [boolopts] :: CpphsOptions -> BoolOptions
+ Language.Preprocessor.Cpphs: [defines] :: CpphsOptions -> [(String, String)]
+ Language.Preprocessor.Cpphs: [hashline] :: BoolOptions -> Bool
+ Language.Preprocessor.Cpphs: [includes] :: CpphsOptions -> [String]
+ Language.Preprocessor.Cpphs: [infiles] :: CpphsOptions -> [FilePath]
+ Language.Preprocessor.Cpphs: [lang] :: BoolOptions -> Bool
+ Language.Preprocessor.Cpphs: [layout] :: BoolOptions -> Bool
+ Language.Preprocessor.Cpphs: [literate] :: BoolOptions -> Bool
+ Language.Preprocessor.Cpphs: [locations] :: BoolOptions -> Bool
+ Language.Preprocessor.Cpphs: [macros] :: BoolOptions -> Bool
+ Language.Preprocessor.Cpphs: [outfiles] :: CpphsOptions -> [FilePath]
+ Language.Preprocessor.Cpphs: [pragma] :: BoolOptions -> Bool
+ Language.Preprocessor.Cpphs: [preInclude] :: CpphsOptions -> [FilePath]
+ Language.Preprocessor.Cpphs: [stripC89] :: BoolOptions -> Bool
+ Language.Preprocessor.Cpphs: [stripEol] :: BoolOptions -> Bool
+ Language.Preprocessor.Cpphs: [warnings] :: BoolOptions -> Bool

Files

CHANGELOG view
@@ -1,3 +1,7 @@+Version 1.20+------------+  * bugfixes for #if defined(FOO) && FOO(a,b)+ Version 1.19 ------------   * expose more of the cpphs API
Language/Preprocessor/Cpphs/CppIfdef.hs view
@@ -216,16 +216,22 @@ -- | Expansion of symbols. expandSymOrCall :: SymTab HashDefine -> TextParser String expandSymOrCall st =-  do  sym <- parseSym+  do sym <- parseSym+     if sym=="defined" then do arg <- skip parseSym; convert sym [arg]+                            <|>+                            do arg <- skip $ parenthesis (do x <- skip parseSym;+                                                             skip (return x))+                               convert sym [arg]+                            <|> convert sym []+      else       ( do  args <- parenthesis (commit $ fragment `sepBy` skip (isWord ","))             args' <- flip mapM args $ \arg->                          case runParser (preExpand st) arg of                              (Left msg, _) -> fail msg                              (Right s, _)  -> return s             convert sym args'-        <|>-        if (sym=="defined") then do arg <- skip parseSym; convert sym [arg]-                            else convert sym [] )+        <|> convert sym []+      )   where     fragment = many1 (satisfy (`notElem`",)"))     convert "defined" [arg] =@@ -238,14 +244,16 @@     convert sym args =       case lookupST sym st of         Nothing  -> if null args then return sym-                    else fail (disp sym args++" is not a defined macro")+                    else return "0"+                 -- else fail (disp sym args++" is not a defined macro")         Just (a@SymbolReplacement{}) -> do reparse (replacement a)                                            return ""         Just (a@MacroExpansion{})    -> do reparse (expandMacro a args False)                                            return ""         Just (a@AntiDefined{})       ->                     if null args then return sym-                    else fail (disp sym args++" explicitly undefined with -U")+                    else return "0"+                 -- else fail (disp sym args++" explicitly undefined with -U")     disp sym args = let len = length args                         chars = map (:[]) ['a'..'z']                     in sym ++ if null args then ""
README view
@@ -30,7 +30,7 @@  COPYRIGHT ----------Copyright (c) 2004-2015 Malcolm Wallace (Malcolm.Wallace@me.com)+Copyright (c) 2004-2016 Malcolm Wallace (Malcolm.Wallace@me.com)   LICENCE
cpphs.cabal view
@@ -1,6 +1,6 @@ Name: cpphs-Version: 1.19.3-Copyright: 2004-2015, Malcolm Wallace+Version: 1.20+Copyright: 2004-2016, Malcolm Wallace License: LGPL License-File: LICENCE-LGPL Cabal-Version: >= 1.6
docs/index.html view
@@ -198,12 +198,11 @@ <b>Current stable version:</b>  <p>-cpphs-1.19.3, release date 2015-08-23<br>+cpphs-1.20, release date 2016-03-04<br> By HTTP: <a href="http://hackage.haskell.org/package/cpphs">Hackage</a>. <ul>-<li> bugfix for hlint ticket #161, for-     the interaction of --unlit and --linepragma options+<li> bugfix for #if defined(FOO) &amp;&amp; FOO(a,b) </ul>  <p>@@ -227,6 +226,15 @@ <b>Older versions:</b>  <p>+cpphs-1.19.3, release date 2015-08-23<br>+By HTTP:+<a href="http://hackage.haskell.org/package/cpphs">Hackage</a>.+<ul>+<li> bugfix for hlint ticket #161, for+     the interaction of --unlit and --linepragma options+</ul>++<p> cpphs-1.19.2, release date 2015-07-31<br> By HTTP: <a href="http://hackage.haskell.org/package/cpphs">Hackage</a>.@@ -753,7 +761,7 @@         Malcolm.Wallace@me.com</a>  </ul> -<p><b>Copyright:</b> &copy; 2004-2015 Malcolm Wallace+<p><b>Copyright:</b> &copy; 2004-2016 Malcolm Wallace  <p><b>License:</b> The library modules in cpphs are distributed under the terms of the LGPL (see file <a href="LICENCE-LGPL">LICENCE-LGPL</a>