parseArgs static method

List<String> parseArgs(
  1. String revised
)

Parses a string into a list of string arguments.

Implementation

static List<String> parseArgs(String revised) {
  final raw = revised.trim().split(RegExp(r"[ \t]"));
  final result = <String>[];
  var i = 0;
  while(i < raw.length) {
    final current = raw[i++];
    final buffer = StringBuffer();
    if(current.startsWith('"')) {
      buffer.write(_cleanEdgeQuotes(current));
      while(i < raw.length) {
        final next = raw[i++];
        if(next.endsWith('"')) {
          buffer.write(" ${_cleanEdgeQuotes(next)}");
          break;
        } else {
          buffer.write(" $next");
        }
      }
      result.add(buffer.toString());
    } else {
      result.add(current);
    }
  }
  return result;
}