summaryrefslogtreecommitdiff
path: root/doio.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2007-10-16 09:40:15 +0000
committerNicholas Clark <nick@ccl4.org>2007-10-16 09:40:15 +0000
commit5686ee583d95bf194b657486beb96283ecfc182b (patch)
treeaff036c41badcb135b015d0c0e93622c0557f092 /doio.c
parentf85893a12feb8ca0f4e9b625542f3ff2920ac00c (diff)
downloadperl-5686ee583d95bf194b657486beb96283ecfc182b.tar.gz
Given that the buffer for mode in Perl_do_openn() has been initialised
to all NUL bytes, and the "string" being appended is one character, it's way faster just to write the byte in question to the buffer. p4raw-id: //depot/perl@32113
Diffstat (limited to 'doio.c')
-rw-r--r--doio.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/doio.c b/doio.c
index 8d7c812767..1c7eb5200f 100644
--- a/doio.c
+++ b/doio.c
@@ -259,9 +259,9 @@ Perl_do_openn(pTHX_ GV *gv, register const char *oname, I32 len, int as_raw,
mode[0] = 'w';
writing = 1;
if (out_raw)
- my_strlcat(mode, "b", PERL_MODE_MAX - 1);
+ mode[1] = 'b';
else if (out_crlf)
- my_strlcat(mode, "t", PERL_MODE_MAX - 1);
+ mode[1] = 't';
if (num_svs > 1) {
fp = PerlProc_popen_list(mode, num_svs, svp);
}
@@ -290,9 +290,9 @@ Perl_do_openn(pTHX_ GV *gv, register const char *oname, I32 len, int as_raw,
writing = 1;
if (out_raw)
- my_strlcat(mode, "b", PERL_MODE_MAX - 1);
+ mode[1] = 'b';
else if (out_crlf)
- my_strlcat(mode, "t", PERL_MODE_MAX - 1);
+ mode[1] = 't';
if (*type == '&') {
duplicity:
dodup = PERLIO_DUP_FD;
@@ -416,9 +416,9 @@ Perl_do_openn(pTHX_ GV *gv, register const char *oname, I32 len, int as_raw,
} while (isSPACE(*type));
mode[0] = 'r';
if (in_raw)
- my_strlcat(mode, "b", PERL_MODE_MAX - 1);
+ mode[1] = 'b';
else if (in_crlf)
- my_strlcat(mode, "t", PERL_MODE_MAX - 1);
+ mode[1] = 't';
if (*type == '&') {
goto duplicity;
}
@@ -470,9 +470,9 @@ Perl_do_openn(pTHX_ GV *gv, register const char *oname, I32 len, int as_raw,
mode[0] = 'r';
if (in_raw)
- my_strlcat(mode, "b", PERL_MODE_MAX - 1);
+ mode[1] = 'b';
else if (in_crlf)
- my_strlcat(mode, "t", PERL_MODE_MAX - 1);
+ mode[1] = 't';
if (num_svs > 1) {
fp = PerlProc_popen_list(mode,num_svs,svp);
@@ -501,9 +501,9 @@ Perl_do_openn(pTHX_ GV *gv, register const char *oname, I32 len, int as_raw,
mode[0] = 'r';
if (in_raw)
- my_strlcat(mode, "b", PERL_MODE_MAX - 1);
+ mode[1] = 'b';
else if (in_crlf)
- my_strlcat(mode, "t", PERL_MODE_MAX - 1);
+ mode[1] = 't';
if (*name == '-' && name[1] == '\0') {
fp = PerlIO_stdin();