Skip to content
Snippets Groups Projects
Commit a0cb27e8 authored by rswindell's avatar rswindell
Browse files

Extra protection against base64-decode failure.

compress_preview() now accepts a binary preview, not base64 encoded
(so skip an entire base64-encode/decode step).
parent 0fbc4e66
No related branches found
No related tags found
No related merge requests found
......@@ -581,17 +581,17 @@ function syncterm_list(list, dir)
const base64_max_line_len = 72;
function compress_preview(preview)
function compress_preview(bin)
{
var compressed = LZString.compressToBase64(base64_decode(preview.join("")));
return ["!LZ"].concat(compressed.match(new RegExp('([\x00-\xff]{0,' + base64_max_line_len + '})', 'g')));
var compressed = LZString.compressToBase64(bin);
return ["!LZ"].concat(compressed.match(new RegExp('([\x00-\xff]{1,' + base64_max_line_len + '})', 'g')));
}
function encode_preview(ansi_capture)
{
var graphic = new Graphic();
graphic.ANSI = ansi_capture.join("\r\n");
return compress_preview(graphic.base64_encode());
return compress_preview(graphic.BIN);
}
function decode_preview(preview)
......@@ -604,9 +604,14 @@ function decode_preview(preview)
function draw_preview(bbs)
{
if(!bbs.preview)
return false;
var graphic = new Graphic();
graphic.BIN = decode_preview(bbs.preview);
graphic.draw();
var bin = decode_preview(bbs.preview);
if(!bin || !bin.length)
return false;
graphic.BIN = bin;
return graphic.draw();
}
/* Leave as last line for convenient load() usage: */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment