aboutsummaryrefslogtreecommitdiff
path: root/c/pl.h
diff options
context:
space:
mode:
Diffstat (limited to 'c/pl.h')
-rw-r--r--c/pl.h16
1 files changed, 4 insertions, 12 deletions
diff --git a/c/pl.h b/c/pl.h
index c0af4bc..c7fcfc8 100644
--- a/c/pl.h
+++ b/c/pl.h
@@ -7,7 +7,7 @@
#include "common.h"
-int PlString(term_t t, std::wstring* pWs, int iFlags = CVT_WRITE);
+wstring_owner PlString(const term_t t, const int iFlags = CVT_WRITE);
struct Frame
{
@@ -54,8 +54,7 @@ inline int PlPut(term_t, long*) { return -1; }
inline int PlPut(term_t, long long*) { return -1; }
inline int PlPut(term_t, atom_t*) { return -1; }
inline int PlPut(term_t, char**) { return -1; }
-inline int PlPut(term_t, std::string*) { return -1; }
-inline int PlPut(term_t, std::wstring*) { return -1; }
+inline int PlPut(term_t, wstring_owner*) { return -1; }
inline int PlGet(term_t, int) { return -1; }
inline int PlGet(term_t, long) { return -1; }
@@ -68,18 +67,11 @@ inline int PlGet(term_t t, long* x) { return PL_get_long(t, x); }
inline int PlGet(term_t t, long long* x) { return PL_get_int64(t, x); }
inline int PlGet(term_t t, atom_t* x) { return PL_get_atom(t, x); }
inline int PlGet(term_t t, char** x) { return PL_get_atom_chars(t, x); }
-inline int PlGet(term_t t, std::string* x) {
+inline int PlGet(term_t t, wstring_owner* x) {
Mark m;
char* sz;
if (!PlGet(t, &sz)) return 0;
- *x = sz;
- return 1;
-}
-inline int PlGet(term_t t, std::wstring* x) {
- Mark m;
- char* sz;
- if (!PlGet(t, &sz)) return 0;
- *x = WsFromSz(sz);
+ *x = WsoFromSz(sz);
return 1; /* or catch potential exception from BstrFromSz? */
}