Skip to content

Commit

Permalink
Merge branch 'master' of yuisource.corp.yahoo.com:yuicompressor
Browse files Browse the repository at this point in the history
  • Loading branch information
reid committed Oct 20, 2010
2 parents 53128bd + a4674b5 commit 5847c27
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 4 deletions.
13 changes: 11 additions & 2 deletions ports/js/cssmin.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,12 @@ YAHOO.compressor.cssmin = function (css, linebreakpos) {
css = css.replace(/:0 0 0 0(;|\})/g, ":0$1");
css = css.replace(/:0 0 0(;|\})/g, ":0$1");
css = css.replace(/:0 0(;|\})/g, ":0$1");

// Replace background-position:0; with background-position:0 0;
css = css.replace(/background-position:0(;|\})/gi, "background-position:0 0$1");
// same for transform-origin
css = css.replace(/(background-position|transform-origin|webkit-transform-origin|moz-transform-origin|o-transform-origin|ms-transform-origin):0(;|\})/gi, function(all, prop, tail) {
return prop.toLowerCase() + ":0 0" + tail;
});

// Replace 0.6 to .6, but only when preceded by : or a white-space
css = css.replace(/(:|\s)0+\.(\d+)/g, "$1.$2");
Expand Down Expand Up @@ -183,6 +187,11 @@ YAHOO.compressor.cssmin = function (css, linebreakpos) {
}
});

// border: none -> border:0
css = css.replace(/(border|border-top|border-right|border-bottom|border-right|outline|background):none(;|\})/gi, function(all, prop, tail) {
return prop.toLowerCase() + ":0" + tail;
});

// shorter opacity IE filter
css = css.replace(/progid:DXImageTransform\.Microsoft\.Alpha\(Opacity=/gi, "alpha(opacity=");

Expand All @@ -202,7 +211,7 @@ YAHOO.compressor.cssmin = function (css, linebreakpos) {
startIndex = i;
}
}
}
}

// Replace multiple semi-colons in a row by a single one
// See SF bug #1980989
Expand Down
24 changes: 22 additions & 2 deletions src/com/yahoo/platform/yui/compressor/CssCompressor.java
Original file line number Diff line number Diff line change
Expand Up @@ -181,9 +181,19 @@ public void compress(Writer out, int linebreakpos)
css = css.replaceAll(":0 0 0 0(;|})", ":0$1");
css = css.replaceAll(":0 0 0(;|})", ":0$1");
css = css.replaceAll(":0 0(;|})", ":0$1");


// Replace background-position:0; with background-position:0 0;
css = css.replaceAll("(?i)background-position:0(;|})", "background-position:0 0$1");

// same for transform-origin
sb = new StringBuffer();
p = Pattern.compile("(?i)(background-position|transform-origin|webkit-transform-origin|moz-transform-origin|o-transform-origin|ms-transform-origin):0(;|})");
m = p.matcher(css);
while (m.find()) {
m.appendReplacement(sb, m.group(1).toLowerCase() + ":0 0" + m.group(2));
}
m.appendTail(sb);
css = sb.toString();

// Replace 0.6 to .6, but only when preceded by : or a white-space
css = css.replaceAll("(:|\\s)0+\\.(\\d+)", "$1.$2");

Expand Down Expand Up @@ -229,6 +239,16 @@ public void compress(Writer out, int linebreakpos)
m.appendTail(sb);
css = sb.toString();

// border: none -> border:0
sb = new StringBuffer();
p = Pattern.compile("(?i)(border|border-top|border-right|border-bottom|border-right|outline|background):none(;|})");
m = p.matcher(css);
while (m.find()) {
m.appendReplacement(sb, m.group(1).toLowerCase() + ":0" + m.group(2));
}
m.appendTail(sb);
css = sb.toString();

// shorter opacity IE filter
css = css.replaceAll("(?i)progid:DXImageTransform.Microsoft.Alpha\\(Opacity=", "alpha(opacity=");

Expand Down
5 changes: 5 additions & 0 deletions tests/border-none.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
a {
border: none;
}
b {BACKGROUND:none}
s {border-top: none;}
1 change: 1 addition & 0 deletions tests/border-none.css.min
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a{border:0}b{background:0}s{border-top:0}
2 changes: 2 additions & 0 deletions tests/webkit-transform.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
c {-webkit-transform-origin: 0 0;}
d {-MOZ-TRANSFORM-ORIGIN: 0 0 }
1 change: 1 addition & 0 deletions tests/webkit-transform.css.min
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
c{-webkit-transform-origin:0 0}d{-moz-transform-origin:0 0}

0 comments on commit 5847c27

Please sign in to comment.