diff options
Diffstat (limited to 'cygwin/cygwin.c')
-rw-r--r-- | cygwin/cygwin.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/cygwin/cygwin.c b/cygwin/cygwin.c new file mode 100644 index 0000000000..fc7767ffdc --- /dev/null +++ b/cygwin/cygwin.c @@ -0,0 +1,37 @@ +/* + * Cygwin extras + */ + +#include "EXTERN.h" +#include "perl.h" +#undef USE_DYNAMIC_LOADING +#include "XSUB.h" + +#include <sys/unistd.h> + + +/* see also Cwd.pm */ +static +XS(Cygwin_cwd) +{ + dXSARGS; + char *cwd; + + if(items != 0) + Perl_croak(aTHX_ "Usage: Cwd::cwd()"); + if(cwd = getcwd(NULL, 0)) { + ST(0) = sv_2mortal(newSVpv(cwd, 0)); + safesysfree(cwd); + XSRETURN(1); + } + XSRETURN_UNDEF; +} + +void +init_os_extras(void) +{ + char *file = __FILE__; + dTHX; + + newXS("Cwd::cwd", Cygwin_cwd, file); +} |