diff options
author | Nicholas Clark <nick@ccl4.org> | 2007-10-16 09:40:15 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2007-10-16 09:40:15 +0000 |
commit | 5686ee583d95bf194b657486beb96283ecfc182b (patch) | |
tree | aff036c41badcb135b015d0c0e93622c0557f092 /doio.c | |
parent | f85893a12feb8ca0f4e9b625542f3ff2920ac00c (diff) | |
download | perl-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.c | 20 |
1 files changed, 10 insertions, 10 deletions
@@ -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(); |