diff --git a/src/com/yahoo/platform/yui/compressor/CssCompressor.java b/src/com/yahoo/platform/yui/compressor/CssCompressor.java index 170d028..798e689 100644 --- a/src/com/yahoo/platform/yui/compressor/CssCompressor.java +++ b/src/com/yahoo/platform/yui/compressor/CssCompressor.java @@ -240,12 +240,17 @@ public void compress(Writer out, int linebreakpos) m = p.matcher(css); sb = new StringBuffer(); while (m.find()) { - // Test for AABBCC pattern - if (m.group(3).equalsIgnoreCase(m.group(4)) && + if (m.group(1).equals("}")) { + // Likely an ID selector. Don't touch. + // #AABBCC is a valid ID. IDs are case-sensitive. + m.appendReplacement(sb, m.group()); + } else if (m.group(3).equalsIgnoreCase(m.group(4)) && m.group(5).equalsIgnoreCase(m.group(6)) && m.group(7).equalsIgnoreCase(m.group(8))) { + // #AABBCC pattern m.appendReplacement(sb, (m.group(1) + m.group(2) + "#" + m.group(3) + m.group(5) + m.group(7)).toLowerCase()); } else { + // Any other color. m.appendReplacement(sb, m.group().toLowerCase()); } } diff --git a/tests/preserve-case.css b/tests/preserve-case.css new file mode 100644 index 0000000..d7f1550 --- /dev/null +++ b/tests/preserve-case.css @@ -0,0 +1,12 @@ +#AddAddressForm { + padding: 0; +} +#AddAddressForm .messageBoxNeutral { + padding: 0; +} +#FeedbackMailForm{ + padding: 0; +} +#FeedbackMailForm .classe{ + margin: 0; +} diff --git a/tests/preserve-case.css.min b/tests/preserve-case.css.min new file mode 100644 index 0000000..8628faa --- /dev/null +++ b/tests/preserve-case.css.min @@ -0,0 +1 @@ +#AddAddressForm{padding:0}#AddAddressForm .messageBoxNeutral{padding:0}#FeedbackMailForm{padding:0}#FeedbackMailForm .classe{margin:0}