From 86446d8d9c0ef63274b1e8e8f642449d4b682a72 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Mon, 31 Jan 2022 10:13:52 -0500 Subject: [PATCH] msg: Stub implementation for 32-bit DosTrueGetMessage(). --- native/msg-lx.h | 3 ++- native/msg.c | 16 ++++++++++++++++ native/msg.h | 1 + 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/native/msg-lx.h b/native/msg-lx.h index bf08d49..14660e1 100644 --- a/native/msg-lx.h +++ b/native/msg-lx.h @@ -48,7 +48,8 @@ static int init16_msg(void) { LX_NATIVE_MODULE_INIT({ if (!init16_msg()) return 0; }) LX_NATIVE_EXPORT16_DIFFERENT_NAME(Dos16PutMessage, "DOSPUTMESSAGE", 1), LX_NATIVE_EXPORT16_DIFFERENT_NAME(Dos16TrueGetMessage, "DOSTRUEGETMESSAGE", 2), - LX_NATIVE_EXPORT(DosPutMessage, 5) + LX_NATIVE_EXPORT(DosPutMessage, 5), + LX_NATIVE_EXPORT(DosTrueGetMessage, 6) LX_NATIVE_MODULE_INIT_END() #endif /* LX_LEGACY */ diff --git a/native/msg.c b/native/msg.c index 218823b..21ac5a1 100644 --- a/native/msg.c +++ b/native/msg.c @@ -70,5 +70,21 @@ APIRET16 Dos16TrueGetMessage(PVOID pTable, USHORT cTable, PCHAR pData, USHORT cb return NO_ERROR; } +APIRET DosTrueGetMessage(PVOID msgseg, PVOID pTable, ULONG cTable, PCHAR pData, ULONG cbBuf, ULONG msgnum, PCHAR pFilename, PULONG pcbMsg) +{ + TRACE_NATIVE("DosTrueGetMessage(%p, %p, %u, %p, %u, %u, '%s', %p)", msgseg, pTable, cTable, pData, cbBuf, msgnum, pFilename, pcbMsg); + FIXME("really implement this"); + const char *msgstr = "SYSXXX: DosTrueGetMessage is not yet implemented."; + ULONG rc = 0; + if (pData) { + rc = (ULONG) snprintf(pData, cbBuf, "%s", msgstr); + if (rc >= cbBuf) { + rc = cbBuf; + } + } + if (pcbMsg) *pcbMsg = rc; + return ERROR_MR_MID_NOT_FOUND; +} + // end of msg.c ... diff --git a/native/msg.h b/native/msg.h index 4327ddf..169a62d 100644 --- a/native/msg.h +++ b/native/msg.h @@ -18,6 +18,7 @@ extern "C" { OS2EXPORT APIRET16 OS2API16 Dos16PutMessage(USHORT hfile, USHORT cbMsg, PCHAR pBuf) OS2APIINFO(ord=1,name=DOSPUTMESSAGE); OS2EXPORT APIRET16 OS2API16 Dos16TrueGetMessage(PVOID pTable, USHORT cTable, PCHAR pData, USHORT cbBuf, USHORT msgnum, PCHAR pFilename, PUSHORT pcbMsg, PVOID msgseg) OS2APIINFO(ord=2,name=DOSTRUEGETMESSAGE); OS2EXPORT APIRET OS2API DosPutMessage(HFILE hfile, ULONG cbMsg, PCHAR pBuf) OS2APIINFO(5); +OS2EXPORT APIRET OS2API DosTrueGetMessage(PVOID msgseg, PVOID pTable, ULONG cTable, PCHAR pData, ULONG cbBuf, ULONG msgnum, PCHAR pFilename, PULONG pcbMsg) OS2APIINFO(6); #ifdef __cplusplus }