in src/main/java/org/apache/maven/shared/utils/StringUtils.java [2048:2086]
public static String quoteAndEscape(
@Nullable String source,
char quoteChar,
@Nonnull final char[] escapedChars,
@Nonnull final char[] quotingTriggers,
char escapeChar,
boolean force) {
if (source == null) {
return null;
}
if (!force
&& source.startsWith(Character.toString(quoteChar))
&& source.endsWith(Character.toString(quoteChar))) {
return source;
}
String escaped = escape(source, escapedChars, escapeChar);
boolean quote = false;
if (force) {
quote = true;
} else if (!escaped.equals(source)) {
quote = true;
} else {
for (char quotingTrigger : quotingTriggers) {
if (escaped.indexOf(quotingTrigger) > -1) {
quote = true;
break;
}
}
}
if (quote) {
return quoteChar + escaped + quoteChar;
}
return escaped;
}