mirror of
https://github.com/apache/cordova-android.git
synced 2026-04-04 00:02:03 +08:00
CB-14145 commit updated node_modules in 7.1.x only
(installed by npm@6.1.0)
This commit is contained in:
86
node_modules/elementtree/lib/sprintf.js
generated
vendored
Normal file
86
node_modules/elementtree/lib/sprintf.js
generated
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* Copyright 2011 Rackspace
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
var cache = {};
|
||||
|
||||
|
||||
// Do any others need escaping?
|
||||
var TO_ESCAPE = {
|
||||
'\'': '\\\'',
|
||||
'\n': '\\n'
|
||||
};
|
||||
|
||||
|
||||
function populate(formatter) {
|
||||
var i, type,
|
||||
key = formatter,
|
||||
prev = 0,
|
||||
arg = 1,
|
||||
builder = 'return \'';
|
||||
|
||||
for (i = 0; i < formatter.length; i++) {
|
||||
if (formatter[i] === '%') {
|
||||
type = formatter[i + 1];
|
||||
|
||||
switch (type) {
|
||||
case 's':
|
||||
builder += formatter.slice(prev, i) + '\' + arguments[' + arg + '] + \'';
|
||||
prev = i + 2;
|
||||
arg++;
|
||||
break;
|
||||
case 'j':
|
||||
builder += formatter.slice(prev, i) + '\' + JSON.stringify(arguments[' + arg + ']) + \'';
|
||||
prev = i + 2;
|
||||
arg++;
|
||||
break;
|
||||
case '%':
|
||||
builder += formatter.slice(prev, i + 1);
|
||||
prev = i + 2;
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
} else if (TO_ESCAPE[formatter[i]]) {
|
||||
builder += formatter.slice(prev, i) + TO_ESCAPE[formatter[i]];
|
||||
prev = i + 1;
|
||||
}
|
||||
}
|
||||
|
||||
builder += formatter.slice(prev) + '\';';
|
||||
cache[key] = new Function(builder);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* A fast version of sprintf(), which currently only supports the %s and %j.
|
||||
* This caches a formatting function for each format string that is used, so
|
||||
* you should only use this sprintf() will be called many times with a single
|
||||
* format string and a limited number of format strings will ever be used (in
|
||||
* general this means that format strings should be string literals).
|
||||
*
|
||||
* @param {String} formatter A format string.
|
||||
* @param {...String} var_args Values that will be formatted by %s and %j.
|
||||
* @return {String} The formatted output.
|
||||
*/
|
||||
exports.sprintf = function(formatter, var_args) {
|
||||
if (!cache[formatter]) {
|
||||
populate(formatter);
|
||||
}
|
||||
|
||||
return cache[formatter].apply(null, arguments);
|
||||
};
|
||||
Reference in New Issue
Block a user