From: Jarkko Hietaniemi Date: Thu, 18 Sep 2003 08:05:28 +0000 (+0000) Subject: Missed OS/2 patch hunk. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=d79a646beae7a86020bf36abcfc0cb1db4f161bd;p=p5sagit%2Fp5-mst-13.2.git Missed OS/2 patch hunk. p4raw-id: //depot/perl@21271 --- diff --git a/os2/os2.c b/os2/os2.c index ddb5895..d5c3e2e 100644 --- a/os2/os2.c +++ b/os2/os2.c @@ -619,6 +619,7 @@ static const struct { {&pmwin_handle, NULL, 745}, /* WinFlashWindow */ {&pmwin_handle, NULL, 780}, /* WinLoadPointer */ {&pmwin_handle, NULL, 828}, /* WinQuerySysPointer */ + {&doscalls_handle, NULL, 417}, /* DosReplaceModule */ }; HMODULE @@ -1828,6 +1829,29 @@ XS(XS_File__Copy_syscopy) XSRETURN(1); } +/* APIRET APIENTRY DosReplaceModule (PCSZ pszOld, PCSZ pszNew, PCSZ pszBackup); */ + +DeclOSFuncByORD(ULONG,replaceModule,ORD_DosReplaceModule, + (char *old, char *new, char *backup), (old, new, backup)) + +XS(XS_OS2_replaceModule); /* prototype to pass -Wmissing-prototypes */ +XS(XS_OS2_replaceModule) +{ + dXSARGS; + if (items < 1 || items > 3) + Perl_croak(aTHX_ "Usage: OS2::replaceModule(target [, source [, backup]])"); + { + char * target = (char *)SvPV_nolen(ST(0)); + char * source = (items < 2) ? Nullch : (char *)SvPV_nolen(ST(1)); + char * backup = (items < 3) ? Nullch : (char *)SvPV_nolen(ST(2)); + + if (!replaceModule(target, source, backup)) + croak_with_os2error("replaceModule() error"); + } + XSRETURN_EMPTY; +} + + #define PERL_PATCHLEVEL_H_IMPLICIT /* Do not init local_patches. */ #include "patchlevel.h" #undef PERL_PATCHLEVEL_H_IMPLICIT @@ -3478,6 +3502,7 @@ Xs_OS2_init(pTHX) newXS("Cwd::sys_is_relative", XS_Cwd_sys_is_relative, file); newXS("Cwd::sys_cwd", XS_Cwd_sys_cwd, file); newXS("Cwd::sys_abspath", XS_Cwd_sys_abspath, file); + newXS("OS2::replaceModule", XS_OS2_replaceModule, file); newXSproto("OS2::_control87", XS_OS2__control87, file, "$$"); newXSproto("OS2::get_control87", XS_OS2_get_control87, file, ""); newXSproto("OS2::set_control87", XS_OS2_set_control87, file, ";$$");