File tree Expand file tree Collapse file tree 1 file changed +11
-6
lines changed Expand file tree Collapse file tree 1 file changed +11
-6
lines changed Original file line number Diff line number Diff line change @@ -9,6 +9,14 @@ module.exports = parseIrcLine;
99 */
1010var parse_regex = / ^ (?: @ ( [ ^ ] + ) ) ? (?: : ( (?: (?: ( [ ^ \s ! @ ] + ) (?: ! ( [ ^ \s @ ] + ) ) ? ) @ ) ? ( \S + ) ) ) ? ( (?: [ a - z A - Z ] + ) | (?: [ 0 - 9 ] { 3 } ) ) (?: ( [ ^ : ] .* ?) ) ? (?: : ( .* ) ) ? $ / i;
1111
12+ var escape_tags_map = {
13+ '\\\\' : '\\' ,
14+ '\\:' : ';' ,
15+ '\\s' : ' ' ,
16+ '\\n' : '\n' ,
17+ '\\r' : '\r'
18+ } ;
19+
1220function parseIrcLine ( line ) {
1321 var msg ;
1422 var tags = Object . create ( null ) ;
@@ -30,12 +38,9 @@ function parseIrcLine(line) {
3038 var value = parts [ 1 ] ;
3139 if ( key ) {
3240 if ( typeof value === 'string' ) {
33- var segs = value . split ( / \\ \\ / g) ;
34- segs = segs . map ( ( v ) => v . replace ( / \\ : / g, ';' ) ) ;
35- segs = segs . map ( ( v ) => v . replace ( / \\ s / g, ' ' ) ) ;
36- segs = segs . map ( ( v ) => v . replace ( / \\ n / g, '\n' ) ) ;
37- segs = segs . map ( ( v ) => v . replace ( / \\ r / g, '\r' ) ) ;
38- value = segs . join ( '\\' ) ;
41+ value = value . replace ( / \\ \\ | \\ : | \\ s | \\ n | \\ r / gi, function ( matched ) {
42+ return escape_tags_map [ matched ] || '' ;
43+ } ) ;
3944 } else {
4045 value = true ;
4146 }
You can’t perform that action at this time.
0 commit comments