summaryrefslogtreecommitdiff
path: root/ext/PerlIO/Scalar/Scalar.xs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/PerlIO/Scalar/Scalar.xs')
-rw-r--r--ext/PerlIO/Scalar/Scalar.xs13
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,