aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRanger Harke <ranger.harke@autodesk.com>2013-09-19 17:24:31 -0400
committerRanger Harke <ranger.harke@autodesk.com>2013-09-19 17:24:31 -0400
commit61c9d6ede1fe9a91ae501dc019d2e5f97803943a (patch)
treec60349138d76cbda413292b56e0e62743523a49d /src
parentb72b6d897250cc7624b66832f720ff3bed6823a6 (diff)
Implement missing 'space' formatting flag
This flag causes space (padding) to be reserved for the sign even if the number is positive. It is basically the same as the 'plus' flag except that a space is displayed instead of a plus sign. The 'plus' flag takes precedence.
Diffstat (limited to 'src')
-rw-r--r--src/library.js20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/library.js b/src/library.js
index 995fa2ab..2faa40d7 100644
--- a/src/library.js
+++ b/src/library.js
@@ -1974,6 +1974,7 @@ LibraryManager.library = {
var flagLeftAlign = false;
var flagAlternative = false;
var flagZeroPad = false;
+ var flagPadSign = false;
flagsLoop: while (1) {
switch (next) {
case {{{ charCode('+') }}}:
@@ -1992,6 +1993,9 @@ LibraryManager.library = {
flagZeroPad = true;
break;
}
+ case {{{ charCode(' ') }}}:
+ flagPadSign = true;
+ break;
default:
break flagsLoop;
}
@@ -2158,8 +2162,12 @@ LibraryManager.library = {
}
// Add sign if needed
- if (flagAlwaysSigned && currArg >= 0) {
- prefix = '+' + prefix;
+ if (currArg >= 0) {
+ if (flagAlwaysSigned) {
+ prefix = '+' + prefix;
+ } else if (flagPadSign) {
+ prefix = ' ' + prefix;
+ }
}
// Move sign to prefix so we zero-pad after the sign
@@ -2250,8 +2258,12 @@ LibraryManager.library = {
if (next == {{{ charCode('E') }}}) argText = argText.toUpperCase();
// Add sign.
- if (flagAlwaysSigned && currArg >= 0) {
- argText = '+' + argText;
+ if (currArg >= 0) {
+ if (flagAlwaysSigned) {
+ argText = '+' + argText;
+ } else if (flagPadSign) {
+ argText = ' ' + argText;
+ }
}
}