convert line endings to unix from dos

This commit is contained in:
Kyle Robbertze 2018-12-01 21:57:49 +02:00
parent 5d9ec43a85
commit eeed9441e9
8 changed files with 3166 additions and 3166 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,19 @@
//Serbian Latin //Serbian Latin
{ {
"sProcessing": "Obrada...", "sProcessing": "Obrada...",
"sLengthMenu": "_MENU_ Rezultati po stranici", "sLengthMenu": "_MENU_ Rezultati po stranici",
"sZeroRecords": "Ništa nije pronađeno", "sZeroRecords": "Ništa nije pronađeno",
"sInfo": "Rezultati: _START_ - _END_ Ukupno: _TOTAL_", "sInfo": "Rezultati: _START_ - _END_ Ukupno: _TOTAL_",
"sInfoEmpty": "Nula Rezultat", "sInfoEmpty": "Nula Rezultat",
"sInfoFiltered": "(filtrirano iz _MAX_ ukupnih rezultata)", "sInfoFiltered": "(filtrirano iz _MAX_ ukupnih rezultata)",
"sInfoPostFix": "", "sInfoPostFix": "",
"sSearch": "Filter", "sSearch": "Filter",
"sUrl": "", "sUrl": "",
"oPaginate": { "oPaginate": {
"sFirst": "Prva", "sFirst": "Prva",
"sPrevious": "Nazad", "sPrevious": "Nazad",
"sNext": "Napred", "sNext": "Napred",
"sLast": "Zadnja" "sLast": "Zadnja"
} }
} }

View File

@ -1,111 +1,111 @@
/* /*
* jQuery.stickyPanel * jQuery.stickyPanel
* ---------------------- * ----------------------
* version: 1.4.1 * version: 1.4.1
* date: 7/21/11 * date: 7/21/11
* *
* Copyright (c) 2011 Donny Velazquez * Copyright (c) 2011 Donny Velazquez
* http://donnyvblog.blogspot.com/ * http://donnyvblog.blogspot.com/
* http://code.google.com/p/sticky-panel/ * http://code.google.com/p/sticky-panel/
* *
* Licensed under the Apache License 2.0 * Licensed under the Apache License 2.0
* *
*/ */
(function ($) { (function ($) {
$.fn.stickyPanel = function (options) { $.fn.stickyPanel = function (options) {
var options = $.extend({}, $.fn.stickyPanel.defaults, options); var options = $.extend({}, $.fn.stickyPanel.defaults, options);
return this.each(function () { return this.each(function () {
$(window).bind("scroll.stickyPanel", { selected: $(this), options: options }, Scroll); $(window).bind("scroll.stickyPanel", { selected: $(this), options: options }, Scroll);
}); });
}; };
function Scroll(event) { function Scroll(event) {
var node = event.data.selected; var node = event.data.selected;
var o = event.data.options; var o = event.data.options;
var isMobile = navigator.userAgent.toLowerCase().indexOf('mobile') > 0; var isMobile = navigator.userAgent.toLowerCase().indexOf('mobile') > 0;
var windowHeight = $(window).height(); var windowHeight = $(window).height();
var nodeHeight = node.outerHeight(true); var nodeHeight = node.outerHeight(true);
var scrollTop = $(document).scrollTop(); var scrollTop = $(document).scrollTop();
// when top of window reaches the top of the panel detach // when top of window reaches the top of the panel detach
if (!isMobile && if (!isMobile &&
scrollTop <= $(document).height() - windowHeight && // Fix for rubberband scrolling in Safari on Lion scrollTop <= $(document).height() - windowHeight && // Fix for rubberband scrolling in Safari on Lion
scrollTop > node.offset().top - o.topPadding) { scrollTop > node.offset().top - o.topPadding) {
// topPadding // topPadding
var newNodeTop = 0; var newNodeTop = 0;
if (o.topPadding != "undefined") { if (o.topPadding != "undefined") {
newNodeTop = newNodeTop + o.topPadding; newNodeTop = newNodeTop + o.topPadding;
} }
// get left before adding spacer // get left before adding spacer
var nodeLeft = node.offset().left; var nodeLeft = node.offset().left;
// save panels top // save panels top
node.data("PanelsTop", node.offset().top - newNodeTop); node.data("PanelsTop", node.offset().top - newNodeTop);
// MOVED: savePanelSpace before afterDetachCSSClass to handle afterDetachCSSClass changing size of node // MOVED: savePanelSpace before afterDetachCSSClass to handle afterDetachCSSClass changing size of node
// savePanelSpace // savePanelSpace
if (o.savePanelSpace == true) { if (o.savePanelSpace == true) {
var nodeWidth = node.outerWidth(true); var nodeWidth = node.outerWidth(true);
var nodeCssfloat = node.css("float"); var nodeCssfloat = node.css("float");
var nodeCssdisplay = node.css("display"); var nodeCssdisplay = node.css("display");
var randomNum = Math.ceil(Math.random() * 9999); /* Pick random number between 1 and 9999 */ var randomNum = Math.ceil(Math.random() * 9999); /* Pick random number between 1 and 9999 */
node.data("PanelSpaceID", "stickyPanelSpace" + randomNum); node.data("PanelSpaceID", "stickyPanelSpace" + randomNum);
node.before("<div id='" + node.data("PanelSpaceID") + "' style='width:" + nodeWidth + "px;height:" + nodeHeight + "px;float:" + nodeCssfloat + ";display:" + nodeCssdisplay + ";'>&nbsp;</div>"); node.before("<div id='" + node.data("PanelSpaceID") + "' style='width:" + nodeWidth + "px;height:" + nodeHeight + "px;float:" + nodeCssfloat + ";display:" + nodeCssdisplay + ";'>&nbsp;</div>");
} }
// afterDetachCSSClass // afterDetachCSSClass
if (o.afterDetachCSSClass != "") { if (o.afterDetachCSSClass != "") {
node.addClass(o.afterDetachCSSClass); node.addClass(o.afterDetachCSSClass);
} }
// save inline css // save inline css
node.data("Original_Inline_CSS", (!node.attr("style") ? "" : node.attr("style"))); node.data("Original_Inline_CSS", (!node.attr("style") ? "" : node.attr("style")));
// detach panel // detach panel
node.css({ node.css({
"margin": 0, "margin": 0,
"left": nodeLeft, "left": nodeLeft,
"top": newNodeTop, "top": newNodeTop,
"position": "fixed" "position": "fixed"
}); });
} }
// ADDED: css top check to avoid continuous reattachment // ADDED: css top check to avoid continuous reattachment
if (scrollTop <= node.data("PanelsTop") && node.css("top") != "auto") { if (scrollTop <= node.data("PanelsTop") && node.css("top") != "auto") {
if (o.savePanelSpace == true) { if (o.savePanelSpace == true) {
$("#" + node.data("PanelSpaceID")).remove(); $("#" + node.data("PanelSpaceID")).remove();
} }
// attach panel // attach panel
node.attr("style", node.data("Original_Inline_CSS")); node.attr("style", node.data("Original_Inline_CSS"));
if (o.afterDetachCSSClass != "") { if (o.afterDetachCSSClass != "") {
node.removeClass(o.afterDetachCSSClass); node.removeClass(o.afterDetachCSSClass);
} }
} }
}; };
$.fn.stickyPanel.defaults = { $.fn.stickyPanel.defaults = {
topPadding: 0, topPadding: 0,
// Use this to set the top margin of the detached panel. // Use this to set the top margin of the detached panel.
afterDetachCSSClass: "", afterDetachCSSClass: "",
// This class is applied when the panel detaches. // This class is applied when the panel detaches.
savePanelSpace: false savePanelSpace: false
// When set to true the space where the panel was is kept open. // When set to true the space where the panel was is kept open.
}; };
})(jQuery); })(jQuery);

View File

@ -1,25 +1,25 @@
// Croatian // Croatian
plupload.addI18n({ plupload.addI18n({
'Select files': 'Izaberite datoteke:', 'Select files': 'Izaberite datoteke:',
'Add files to the upload queue and click the start button.': 'Dodajte datoteke u listu i kliknite Upload.', 'Add files to the upload queue and click the start button.': 'Dodajte datoteke u listu i kliknite Upload.',
'Filename': 'Ime datoteke', 'Filename': 'Ime datoteke',
'Status': 'Status', 'Status': 'Status',
'Size': 'Veličina', 'Size': 'Veličina',
'Add files': 'Dodajte datoteke', 'Add files': 'Dodajte datoteke',
'Stop current upload': 'Zaustavi trenutan upload', 'Stop current upload': 'Zaustavi trenutan upload',
'Start uploading queue': 'Pokreni Upload', 'Start uploading queue': 'Pokreni Upload',
'Uploaded %d/%d files': 'Uploadano %d/%d datoteka', 'Uploaded %d/%d files': 'Uploadano %d/%d datoteka',
'N/A': 'N/A', 'N/A': 'N/A',
'Drag files here.': 'Dovucite datoteke ovdje', 'Drag files here.': 'Dovucite datoteke ovdje',
'File extension error.': 'Greška ekstenzije datoteke.', 'File extension error.': 'Greška ekstenzije datoteke.',
'File size error.': 'Greška veličine datoteke.', 'File size error.': 'Greška veličine datoteke.',
'Init error.': 'Greška inicijalizacije.', 'Init error.': 'Greška inicijalizacije.',
'HTTP Error.': 'HTTP greška.', 'HTTP Error.': 'HTTP greška.',
'Security error.': 'Sigurnosna greška.', 'Security error.': 'Sigurnosna greška.',
'Generic error.': 'Generička greška.', 'Generic error.': 'Generička greška.',
'IO error.': 'I/O greška.', 'IO error.': 'I/O greška.',
'Stop Upload': 'Zaustavi upload.', 'Stop Upload': 'Zaustavi upload.',
'Add Files': 'Dodaj datoteke', 'Add Files': 'Dodaj datoteke',
'Start Upload': 'Pokreni upload.', 'Start Upload': 'Pokreni upload.',
'%d files queued': '%d datoteka na čekanju.' '%d files queued': '%d datoteka na čekanju.'
}); });

View File

@ -1,14 +1,14 @@
// Serbian Cyrillic // Serbian Cyrillic
plupload.addI18n({ plupload.addI18n({
'Select files' : 'Изаберите фајлове', 'Select files' : 'Изаберите фајлове',
'Add files to the upload queue and click the start button.' : 'Додајте фајлове у листу и кликните на дугме Старт.', 'Add files to the upload queue and click the start button.' : 'Додајте фајлове у листу и кликните на дугме Старт.',
'Filename' : 'Назив фајла', 'Filename' : 'Назив фајла',
'Status' : 'Status', 'Status' : 'Status',
'Size' : 'Величина', 'Size' : 'Величина',
'Add Files' : 'Додај фајлове', 'Add Files' : 'Додај фајлове',
'Stop current upload' : 'Заустави upload', 'Stop current upload' : 'Заустави upload',
'Start uploading queue' : 'Почни upload', 'Start uploading queue' : 'Почни upload',
'Drag files here.' : 'Превуци фајлове овде.', 'Drag files here.' : 'Превуци фајлове овде.',
'Start Upload': 'Почни upload', 'Start Upload': 'Почни upload',
'Uploaded %d/%d files': 'Снимљено %d/%d фајлова' 'Uploaded %d/%d files': 'Снимљено %d/%d фајлова'
}); });

View File

@ -1,14 +1,14 @@
// Serbian Latin // Serbian Latin
plupload.addI18n({ plupload.addI18n({
'Select files' : 'Izaberite fajlove', 'Select files' : 'Izaberite fajlove',
'Add files to the upload queue and click the start button.' : 'Dodajte fajlove u listu i kliknite na dugme Start.', 'Add files to the upload queue and click the start button.' : 'Dodajte fajlove u listu i kliknite na dugme Start.',
'Filename' : 'Naziv fajla', 'Filename' : 'Naziv fajla',
'Status' : 'Status', 'Status' : 'Status',
'Size' : 'Veličina', 'Size' : 'Veličina',
'Add Files' : 'Dodaj fajlove', 'Add Files' : 'Dodaj fajlove',
'Stop current upload' : 'Zaustavi upload', 'Stop current upload' : 'Zaustavi upload',
'Start uploading queue' : 'Počni upload', 'Start uploading queue' : 'Počni upload',
'Drag files here.' : 'Prevucite fajlove ovde.', 'Drag files here.' : 'Prevucite fajlove ovde.',
'Start Upload': 'Počni upload', 'Start Upload': 'Počni upload',
'Uploaded %d/%d files': 'Snimljeno %d/%d fajlova' 'Uploaded %d/%d files': 'Snimljeno %d/%d fajlova'
}); });

View File

@ -1,183 +1,183 @@
/** /**
sprintf() for JavaScript 0.7-beta1 sprintf() for JavaScript 0.7-beta1
http://www.diveintojavascript.com/projects/javascript-sprintf http://www.diveintojavascript.com/projects/javascript-sprintf
Copyright (c) Alexandru Marasteanu <alexaholic [at) gmail (dot] com> Copyright (c) Alexandru Marasteanu <alexaholic [at) gmail (dot] com>
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met: modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer. notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright * Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution. documentation and/or other materials provided with the distribution.
* Neither the name of sprintf() for JavaScript nor the * Neither the name of sprintf() for JavaScript nor the
names of its contributors may be used to endorse or promote products names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission. derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Changelog: Changelog:
2010.09.06 - 0.7-beta1 2010.09.06 - 0.7-beta1
- features: vsprintf, support for named placeholders - features: vsprintf, support for named placeholders
- enhancements: format cache, reduced global namespace pollution - enhancements: format cache, reduced global namespace pollution
2010.05.22 - 0.6: 2010.05.22 - 0.6:
- reverted to 0.4 and fixed the bug regarding the sign of the number 0 - reverted to 0.4 and fixed the bug regarding the sign of the number 0
Note: Note:
Thanks to Raphael Pigulla <raph (at] n3rd [dot) org> (http://www.n3rd.org/) Thanks to Raphael Pigulla <raph (at] n3rd [dot) org> (http://www.n3rd.org/)
who warned me about a bug in 0.5, I discovered that the last update was who warned me about a bug in 0.5, I discovered that the last update was
a regress. I appologize for that. a regress. I appologize for that.
2010.05.09 - 0.5: 2010.05.09 - 0.5:
- bug fix: 0 is now preceeded with a + sign - bug fix: 0 is now preceeded with a + sign
- bug fix: the sign was not at the right position on padded results (Kamal Abdali) - bug fix: the sign was not at the right position on padded results (Kamal Abdali)
- switched from GPL to BSD license - switched from GPL to BSD license
2007.10.21 - 0.4: 2007.10.21 - 0.4:
- unit test and patch (David Baird) - unit test and patch (David Baird)
2007.09.17 - 0.3: 2007.09.17 - 0.3:
- bug fix: no longer throws exception on empty paramenters (Hans Pufal) - bug fix: no longer throws exception on empty paramenters (Hans Pufal)
2007.09.11 - 0.2: 2007.09.11 - 0.2:
- feature: added argument swapping - feature: added argument swapping
2007.04.03 - 0.1: 2007.04.03 - 0.1:
- initial release - initial release
**/ **/
var sprintf = (function() { var sprintf = (function() {
function get_type(variable) { function get_type(variable) {
return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase(); return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();
} }
function str_repeat(input, multiplier) { function str_repeat(input, multiplier) {
for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */} for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}
return output.join(''); return output.join('');
} }
var str_format = function() { var str_format = function() {
if (!str_format.cache.hasOwnProperty(arguments[0])) { if (!str_format.cache.hasOwnProperty(arguments[0])) {
str_format.cache[arguments[0]] = str_format.parse(arguments[0]); str_format.cache[arguments[0]] = str_format.parse(arguments[0]);
} }
return str_format.format.call(null, str_format.cache[arguments[0]], arguments); return str_format.format.call(null, str_format.cache[arguments[0]], arguments);
}; };
str_format.format = function(parse_tree, argv) { str_format.format = function(parse_tree, argv) {
var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length; var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;
for (i = 0; i < tree_length; i++) { for (i = 0; i < tree_length; i++) {
node_type = get_type(parse_tree[i]); node_type = get_type(parse_tree[i]);
if (node_type === 'string') { if (node_type === 'string') {
output.push(parse_tree[i]); output.push(parse_tree[i]);
} }
else if (node_type === 'array') { else if (node_type === 'array') {
match = parse_tree[i]; // convenience purposes only match = parse_tree[i]; // convenience purposes only
if (match[2]) { // keyword argument if (match[2]) { // keyword argument
arg = argv[cursor]; arg = argv[cursor];
for (k = 0; k < match[2].length; k++) { for (k = 0; k < match[2].length; k++) {
if (!arg.hasOwnProperty(match[2][k])) { if (!arg.hasOwnProperty(match[2][k])) {
throw(sprintf('[sprintf] property "%s" does not exist', match[2][k])); throw(sprintf('[sprintf] property "%s" does not exist', match[2][k]));
} }
arg = arg[match[2][k]]; arg = arg[match[2][k]];
} }
} }
else if (match[1]) { // positional argument (explicit) else if (match[1]) { // positional argument (explicit)
arg = argv[match[1]]; arg = argv[match[1]];
} }
else { // positional argument (implicit) else { // positional argument (implicit)
arg = argv[cursor++]; arg = argv[cursor++];
} }
if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) { if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {
throw(sprintf('[sprintf] expecting number but found %s', get_type(arg))); throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));
} }
switch (match[8]) { switch (match[8]) {
case 'b': arg = arg.toString(2); break; case 'b': arg = arg.toString(2); break;
case 'c': arg = String.fromCharCode(arg); break; case 'c': arg = String.fromCharCode(arg); break;
case 'd': arg = parseInt(arg, 10); break; case 'd': arg = parseInt(arg, 10); break;
case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break; case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;
case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break; case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;
case 'o': arg = arg.toString(8); break; case 'o': arg = arg.toString(8); break;
case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break; case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;
case 'u': arg = Math.abs(arg); break; case 'u': arg = Math.abs(arg); break;
case 'x': arg = arg.toString(16); break; case 'x': arg = arg.toString(16); break;
case 'X': arg = arg.toString(16).toUpperCase(); break; case 'X': arg = arg.toString(16).toUpperCase(); break;
} }
arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg); arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);
pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' '; pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';
pad_length = match[6] - String(arg).length; pad_length = match[6] - String(arg).length;
pad = match[6] ? str_repeat(pad_character, pad_length) : ''; pad = match[6] ? str_repeat(pad_character, pad_length) : '';
output.push(match[5] ? arg + pad : pad + arg); output.push(match[5] ? arg + pad : pad + arg);
} }
} }
return output.join(''); return output.join('');
}; };
str_format.cache = {}; str_format.cache = {};
str_format.parse = function(fmt) { str_format.parse = function(fmt) {
var _fmt = fmt, match = [], parse_tree = [], arg_names = 0; var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;
while (_fmt) { while (_fmt) {
if ((match = /^[^\x25]+/.exec(_fmt)) !== null) { if ((match = /^[^\x25]+/.exec(_fmt)) !== null) {
parse_tree.push(match[0]); parse_tree.push(match[0]);
} }
else if ((match = /^\x25{2}/.exec(_fmt)) !== null) { else if ((match = /^\x25{2}/.exec(_fmt)) !== null) {
parse_tree.push('%'); parse_tree.push('%');
} }
else if ((match = /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(_fmt)) !== null) { else if ((match = /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {
if (match[2]) { if (match[2]) {
arg_names |= 1; arg_names |= 1;
var field_list = [], replacement_field = match[2], field_match = []; var field_list = [], replacement_field = match[2], field_match = [];
if ((field_match = /^([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) { if ((field_match = /^([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
field_list.push(field_match[1]); field_list.push(field_match[1]);
while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {
if ((field_match = /^\.([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) { if ((field_match = /^\.([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
field_list.push(field_match[1]); field_list.push(field_match[1]);
} }
else if ((field_match = /^\[(\d+)\]/.exec(replacement_field)) !== null) { else if ((field_match = /^\[(\d+)\]/.exec(replacement_field)) !== null) {
field_list.push(field_match[1]); field_list.push(field_match[1]);
} }
else { else {
throw('[sprintf] huh?'); throw('[sprintf] huh?');
} }
} }
} }
else { else {
throw('[sprintf] huh?'); throw('[sprintf] huh?');
} }
match[2] = field_list; match[2] = field_list;
} }
else { else {
arg_names |= 2; arg_names |= 2;
} }
if (arg_names === 3) { if (arg_names === 3) {
throw('[sprintf] mixing positional and named placeholders is not (yet) supported'); throw('[sprintf] mixing positional and named placeholders is not (yet) supported');
} }
parse_tree.push(match); parse_tree.push(match);
} }
else { else {
throw('[sprintf] huh?'); throw('[sprintf] huh?');
} }
_fmt = _fmt.substring(match[0].length); _fmt = _fmt.substring(match[0].length);
} }
return parse_tree; return parse_tree;
}; };
return str_format; return str_format;
})(); })();
var vsprintf = function(fmt, argv) { var vsprintf = function(fmt, argv) {
argv.unshift(fmt); argv.unshift(fmt);
return sprintf.apply(null, argv); return sprintf.apply(null, argv);
}; };

File diff suppressed because it is too large Load Diff