// Try to get the quoting right... sS smartJoin(S[] args) { if (empty(args)) ret ""; if (args.length == 1) return args[0]; S[] a = new S[args.length]; for (int i = 0; i < a.length; i++) a[i] = !isJavaIdentifier(args[i]) && !isQuoted(args[i]) ? quote(args[i]) : args[i]; return join(" ", a); } static S smartJoin(L args) { ret smartJoin(toStringArray(args)); }