No join, no split

This commit is contained in:
Hongarc 2018-12-01 23:43:31 +07:00
parent d088643f2e
commit d8c2aed4bc

View file

@ -127,7 +127,7 @@ var parse = function(str) {
// before our "stuff" we can simply // before our "stuff" we can simply
// split on space-groups and grab everything after // split on space-groups and grab everything after
// the second: // the second:
options = str.match(/('.*?'|".*?"|\S+)/g).slice(2).join(' '); options = str.match(/('.*?'|".*?"|\S+)/g).slice(2);
} }
}); });
}); });
@ -170,11 +170,8 @@ function CommandOptionParser(vcs, method, options) {
} }
CommandOptionParser.prototype.explodeAndSet = function() { CommandOptionParser.prototype.explodeAndSet = function() {
// TODO -- this is ugly for (var i = 0; i < this.rawOptions.length; i++) {
// split on spaces, except when inside quotes var part = this.rawOptions[i];
var exploded = this.rawOptions.match(/('.*?'|".*?"|\S+)/g) || [];
for (var i = 0; i < exploded.length; i++) {
var part = exploded[i];
if (part.slice(0,1) == '-') { if (part.slice(0,1) == '-') {
// it's an option, check supportedMap // it's an option, check supportedMap
@ -187,7 +184,7 @@ CommandOptionParser.prototype.explodeAndSet = function() {
}); });
} }
var next = exploded[i + 1]; var next = this.rawOptions[i + 1];
var optionArgs = []; var optionArgs = [];
if (next && next.slice(0,1) !== '-') { if (next && next.slice(0,1) !== '-') {
// only store the next argument as this // only store the next argument as this