forked from sheetjs/sheetjs
version bump 0.5.5: eliminate double-negatives
This commit is contained in:
parent
e5fe385335
commit
2f9e0dbc01
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ssf",
|
||||
"version": "0.5.4",
|
||||
"version": "0.5.5",
|
||||
"author": "SheetJS",
|
||||
"description": "pure-JS library to format data using ECMA-376 spreadsheet Format Codes",
|
||||
"keywords": [ "format", "sprintf", "spreadsheet" ],
|
||||
|
7
ssf.js
7
ssf.js
@ -5,7 +5,7 @@ var _strrev = function(x) { return String(x).split("").reverse().join("");};
|
||||
function fill(c,l) { return new Array(l+1).join(c); }
|
||||
function pad(v,d,c){var t=String(v);return t.length>=d?t:(fill(c||0,d-t.length)+t);}
|
||||
function rpad(v,d,c){var t=String(v);return t.length>=d?t:(t+fill(c||0,d-t.length));}
|
||||
SSF.version = '0.5.4';
|
||||
SSF.version = '0.5.5';
|
||||
/* Options */
|
||||
var opts_fmt = {};
|
||||
function fixopts(o){for(var y in opts_fmt) if(o[y]===undefined) o[y]=opts_fmt[y];}
|
||||
@ -371,7 +371,7 @@ function eval_fmt(fmt, v, opts, flen) {
|
||||
out[i].v += out[jj].v;
|
||||
delete out[jj]; ++jj;
|
||||
}
|
||||
out[i].v = write_num(out[i].t, out[i].v, v);
|
||||
out[i].v = write_num(out[i].t, out[i].v, (flen >1 && v < 0 && i>0 && out[i-1].v == "-" ? -v:v));
|
||||
out[i].t = 't';
|
||||
i = jj-1; break;
|
||||
case 'G': out[i].t = 't'; out[i].v = general_fmt(v,opts); break;
|
||||
@ -385,6 +385,7 @@ function choose_fmt(fmt, v, o) {
|
||||
if(typeof fmt === 'number') fmt = ((o&&o.table) ? o.table : table_fmt)[fmt];
|
||||
if(typeof fmt === "string") fmt = split_fmt(fmt);
|
||||
var l = fmt.length;
|
||||
if(l<4 && fmt[l-1].indexOf("@")>-1) --l;
|
||||
switch(fmt.length) {
|
||||
case 1: fmt = fmt[0].indexOf("@")>-1 ? ["General", "General", "General", fmt[0]] : [fmt[0], fmt[0], fmt[0], "@"]; break;
|
||||
case 2: fmt = fmt[1].indexOf("@")>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], "@"]; break;
|
||||
@ -402,7 +403,7 @@ var format = function format(fmt,v,o) {
|
||||
var f = choose_fmt(fmt, v, o);
|
||||
if(f[1].toLowerCase() === "general") return general_fmt(v,o);
|
||||
if(v === true) v = "TRUE"; if(v === false) v = "FALSE";
|
||||
if(v === "" || typeof v === "undefined") return "";
|
||||
if(v === "" || typeof v === "undefined") return "";
|
||||
return eval_fmt(f[1], v, o, f[0]);
|
||||
};
|
||||
|
||||
|
13
ssf.md
13
ssf.md
@ -666,7 +666,13 @@ The default magic characters are listed in subsubsections 18.8.30-31 of ECMA376:
|
||||
out[i].v += out[jj].v;
|
||||
delete out[jj]; ++jj;
|
||||
}
|
||||
out[i].v = write_num(out[i].t, out[i].v, v);
|
||||
```
|
||||
|
||||
The magic in the next line is to ensure that the negative number is passed as
|
||||
positive when there is an explicit hyphen before it (e.g. `#,##0.0;-#,##0.0`):
|
||||
|
||||
```
|
||||
out[i].v = write_num(out[i].t, out[i].v, (flen >1 && v < 0 && i>0 && out[i-1].v == "-" ? -v:v));
|
||||
out[i].t = 't';
|
||||
i = jj-1; break;
|
||||
case 'G': out[i].t = 't'; out[i].v = general_fmt(v,opts); break;
|
||||
@ -767,6 +773,7 @@ function choose_fmt(fmt, v, o) {
|
||||
if(typeof fmt === 'number') fmt = ((o&&o.table) ? o.table : table_fmt)[fmt];
|
||||
if(typeof fmt === "string") fmt = split_fmt(fmt);
|
||||
var l = fmt.length;
|
||||
if(l<4 && fmt[l-1].indexOf("@")>-1) --l;
|
||||
switch(fmt.length) {
|
||||
```
|
||||
|
||||
@ -816,7 +823,7 @@ The boolean TRUE and FALSE are formatted as if they are the uppercase text:
|
||||
Empty string should always emit empty, even if there are other characters:
|
||||
|
||||
```
|
||||
if(v === "" || typeof v === "undefined") return "";
|
||||
if(v === "" || typeof v === "undefined") return "";
|
||||
return eval_fmt(f[1], v, o, f[0]);
|
||||
};
|
||||
|
||||
@ -953,7 +960,7 @@ coveralls:
|
||||
```json>package.json
|
||||
{
|
||||
"name": "ssf",
|
||||
"version": "0.5.4",
|
||||
"version": "0.5.5",
|
||||
"author": "SheetJS",
|
||||
"description": "pure-JS library to format data using ECMA-376 spreadsheet Format Codes",
|
||||
"keywords": [ "format", "sprintf", "spreadsheet" ],
|
||||
|
@ -16,7 +16,7 @@
|
||||
["[Blue]G3neral", [1], [-1], [0], ["TODO","TODO"]],
|
||||
["A\"TODO\"", [1, "ATODO"], [-1, "ATODO"], [0, "ATODO"], ["TODO","TODO"]],
|
||||
["r", [1], [-1], [0], ["TODO","TODO"]],
|
||||
["((;@", [1], [-1], [0], ["TODO","TODO"]],
|
||||
["((;@", [1,"(("], [0,"(("], ["foo","foo"]],
|
||||
["\\r", [1, "r"], [-1, "r"], [0, "r"], ["TODO","TODO"]],
|
||||
["_($* #,##0_);_($* (#,##0);_($* \"-\"_);_(@_)", [1, " $1 "], [-1, " $(1)"], [0," $- "], ["TODO", " TODO "], ["",""]],
|
||||
["#,##0.0", [1,"1.0"], [-1,"-1.0"], [0,"0.0"], ["TODO","TODO"]],
|
||||
|
Loading…
Reference in New Issue
Block a user