Changeset 12292 for third-party
- Timestamp:
- 08/16/06 07:16:34 (2 years ago)
- Files:
-
- 1 modified
-
third-party/HsSyck/Data/Yaml/Syck.hsc (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
third-party/HsSyck/Data/Yaml/Syck.hsc
r11938 r12292 23 23 import qualified Data.HashTable as Hash 24 24 import qualified Data.ByteString.Char8 as Buf 25 import Data.ByteString.Char8 (copyCStringLen, useAsCStringLen, useAsCString, copyCString) 25 26 26 27 type Buf = Buf.ByteString … … 153 154 outputCallbackPS :: IORef [Buf] -> SyckEmitter -> CString -> CLong -> IO () 154 155 outputCallbackPS out emitter buf len = do 155 str <- Buf.copyCStringLen (buf, fromEnum len)156 str <- copyCStringLen (buf, fromEnum len) 156 157 str `seq` modifyIORef out (str:) 157 158 … … 177 178 emitNode _ e n | EStr s <- n_elem n = do 178 179 withTag n (Ptr "string"##) $ \tag -> 179 Buf.useAsCStringLen s $ \(cs, l) ->180 useAsCStringLen s $ \(cs, l) -> 180 181 syck_emit_scalar e tag scalarNone 0 0 0 cs (toEnum l) 181 182 … … 195 196 196 197 withTag :: YamlNode -> CString -> (CString -> IO a) -> IO a 197 withTag node def f = maybe (f def) (` Buf.useAsCString` f) (n_tag node)198 withTag node def f = maybe (f def) (`useAsCString` f) (n_tag node) 198 199 199 200 parseYaml :: String -> IO YamlNode … … 204 205 205 206 parseYamlBytes :: Buf -> IO YamlNode 206 parseYamlBytes = (` Buf.useAsCString` parseYamlCStr)207 parseYamlBytes = (`useAsCString` parseYamlCStr) 207 208 208 209 parseYamlCStr :: CString -> IO YamlNode … … 285 286 tag <- #{peek SyckNode, type_id} syckNode 286 287 if (tag == nullPtr) then (return Nothing) else do 287 p <- Buf.copyCString tag288 p <- copyCString tag 288 289 return $! case Buf.elemIndex '/' p of 289 290 Just n -> let { pre = Buf.take n p; post = Buf.drop (n+1) p } in … … 322 323 tag <- syckNodeTag syckNode 323 324 cstr <- syck_str_read syckNode 324 buf <- Buf.copyCStringLen (cstr, fromEnum len)325 buf <- copyCStringLen (cstr, fromEnum len) 325 326 let node = nilNode{ n_elem = EStr buf, n_tag = tag } 326 327 if tag == Nothing && Buf.length buf == 1 && Buf.index buf 0 == '~'
