summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/strings/quoted_printable_decode.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/locutus/php/strings/quoted_printable_decode.js')
-rw-r--r--node_modules/locutus/php/strings/quoted_printable_decode.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/node_modules/locutus/php/strings/quoted_printable_decode.js b/node_modules/locutus/php/strings/quoted_printable_decode.js
new file mode 100644
index 0000000..5ad45dc
--- /dev/null
+++ b/node_modules/locutus/php/strings/quoted_printable_decode.js
@@ -0,0 +1,33 @@
+'use strict';
+
+module.exports = function quoted_printable_decode(str) {
+ // eslint-disable-line camelcase
+ // discuss at: http://locutus.io/php/quoted_printable_decode/
+ // original by: Ole Vrijenhoek
+ // bugfixed by: Brett Zamir (http://brett-zamir.me)
+ // bugfixed by: Theriault (https://github.com/Theriault)
+ // reimplemented by: Theriault (https://github.com/Theriault)
+ // improved by: Brett Zamir (http://brett-zamir.me)
+ // example 1: quoted_printable_decode('a=3Db=3Dc')
+ // returns 1: 'a=b=c'
+ // example 2: quoted_printable_decode('abc =20\r\n123 =20\r\n')
+ // returns 2: 'abc \r\n123 \r\n'
+ // example 3: quoted_printable_decode('012345678901234567890123456789012345678901234567890123456789012345678901234=\r\n56789')
+ // returns 3: '01234567890123456789012345678901234567890123456789012345678901234567890123456789'
+ // example 4: quoted_printable_decode("Lorem ipsum dolor sit amet=23, consectetur adipisicing elit")
+ // returns 4: 'Lorem ipsum dolor sit amet#, consectetur adipisicing elit'
+
+ // Decodes all equal signs followed by two hex digits
+ var RFC2045Decode1 = /=\r\n/gm;
+
+ // the RFC states against decoding lower case encodings, but following apparent PHP behavior
+ var RFC2045Decode2IN = /=([0-9A-F]{2})/gim;
+ // RFC2045Decode2IN = /=([0-9A-F]{2})/gm,
+
+ var RFC2045Decode2OUT = function RFC2045Decode2OUT(sMatch, sHex) {
+ return String.fromCharCode(parseInt(sHex, 16));
+ };
+
+ return str.replace(RFC2045Decode1, '').replace(RFC2045Decode2IN, RFC2045Decode2OUT);
+};
+//# sourceMappingURL=quoted_printable_decode.js.map \ No newline at end of file