diff options
Diffstat (limited to 'ext/PerlIO/Scalar/Scalar.xs')
-rw-r--r-- | ext/PerlIO/Scalar/Scalar.xs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/ext/PerlIO/Scalar/Scalar.xs b/ext/PerlIO/Scalar/Scalar.xs index d8ee701b59..3bd37de010 100644 --- a/ext/PerlIO/Scalar/Scalar.xs +++ b/ext/PerlIO/Scalar/Scalar.xs @@ -236,6 +236,18 @@ PerlIOScalar_open(pTHX_ PerlIO_funcs *self, PerlIO_list_t *layers, IV n, const c return NULL; } +PerlIO * +PerlIOScalar_dup(pTHX_ PerlIO *f, PerlIO *o, CLONE_PARAMS *param) +{ + if ((f = PerlIOBase_dup(aTHX_ f, o, param))) + { + PerlIOScalar *fs = PerlIOSelf(f,PerlIOScalar); + PerlIOScalar *os = PerlIOSelf(o,PerlIOScalar); + /* var has been set by implicit push */ + fs->posn = os->posn; + } + return f; +} PerlIO_funcs PerlIO_scalar = { "Scalar", @@ -246,6 +258,7 @@ PerlIO_funcs PerlIO_scalar = { PerlIOScalar_open, NULL, PerlIOScalar_fileno, + PerlIOScalar_dup, PerlIOBase_read, PerlIOScalar_unread, PerlIOScalar_write, |