From 8f8dba0190fe2a3a8b148fecf0dc83a725fb3fd2 Mon Sep 17 00:00:00 2001 From: Ben Gamari <ben@smart-cactus.org> Date: Wed, 2 Nov 2022 20:42:34 -0400 Subject: [PATCH] Revert "base: Move CString, CStringLen to GHC.Foreign" This reverts commit 5ec22f0135483ea8a8a543c53dcc7f9d7f6a8dea. --- libraries/base/Foreign/C/String.hs | 11 ++++++++++- libraries/base/GHC/Foreign.hs | 6 +----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/libraries/base/Foreign/C/String.hs b/libraries/base/Foreign/C/String.hs index 2b0c7ec25029..a8eb60c5a31e 100644 --- a/libraries/base/Foreign/C/String.hs +++ b/libraries/base/Foreign/C/String.hs @@ -110,11 +110,20 @@ import GHC.Base import {-# SOURCE #-} GHC.IO.Encoding import qualified GHC.Foreign as GHC -import GHC.Foreign (CString, CStringLen) ----------------------------------------------------------------------------- -- Strings +-- representation of strings in C +-- ------------------------------ + +-- | A C string is a reference to an array of C characters terminated by NUL. +type CString = Ptr CChar + +-- | A string with explicit length information in bytes instead of a +-- terminating NUL (allowing NUL characters in the middle of the string). +type CStringLen = (Ptr CChar, Int) + -- exported functions -- ------------------ -- diff --git a/libraries/base/GHC/Foreign.hs b/libraries/base/GHC/Foreign.hs index 0bd858190a8a..042745ce1108 100644 --- a/libraries/base/GHC/Foreign.hs +++ b/libraries/base/GHC/Foreign.hs @@ -19,7 +19,6 @@ module GHC.Foreign ( -- * C strings with a configurable encoding - CString, CStringLen, -- conversion of C strings into Haskell strings -- @@ -75,11 +74,8 @@ putDebugMsg | c_DEBUG_DUMP = debugLn | otherwise = const (return ()) --- | A C string is a reference to an array of C characters terminated by NUL. +-- These definitions are identical to those in Foreign.C.String, but copied in here to avoid a cycle: type CString = Ptr CChar - --- | A string with explicit length information in bytes instead of a --- terminating NUL (allowing NUL characters in the middle of the string). type CStringLen = (Ptr CChar, Int) -- exported functions -- GitLab