Do not print comments if they are all empty

https://github.com/magiconair/properties/issues/3
diff --git a/properties.go b/properties.go
index 03abec2..33c108c 100644
--- a/properties.go
+++ b/properties.go
@@ -539,21 +539,32 @@
 
 		if prefix != "" {
 			if comments, ok := p.c[key]; ok {
-				// add a blank line between entries but not at the top
-				if len(comments) > 0 && n > 0 {
-					x, err = fmt.Fprintln(w)
-					if err != nil {
-						return
+				// don't print comments if they are all empty
+				allEmpty := true
+				for _, c := range comments {
+					if c != "" {
+						allEmpty = false
+						break
 					}
-					n += x
 				}
 
-				for _, c := range comments {
-					x, err = fmt.Fprintf(w, "%s%s\n", prefix, encode(c, "", enc))
-					if err != nil {
-						return
+				if !allEmpty {
+					// add a blank line between entries but not at the top
+					if len(comments) > 0 && n > 0 {
+						x, err = fmt.Fprintln(w)
+						if err != nil {
+							return
+						}
+						n += x
 					}
-					n += x
+
+					for _, c := range comments {
+						x, err = fmt.Fprintf(w, "%s%s\n", prefix, encode(c, "", enc))
+						if err != nil {
+							return
+						}
+						n += x
+					}
 				}
 			}
 		}
diff --git a/properties_test.go b/properties_test.go
index 6f1c5c1..36ff293 100644
--- a/properties_test.go
+++ b/properties_test.go
@@ -116,6 +116,7 @@
 	comments          []string
 }{
 	{"key=value", "key", "value", nil},
+	{"#\nkey=value", "key", "value", []string{""}},
 	{"#comment\nkey=value", "key", "value", []string{"comment"}},
 	{"# comment\nkey=value", "key", "value", []string{"comment"}},
 	{"#  comment\nkey=value", "key", "value", []string{"comment"}},
@@ -176,6 +177,8 @@
 }{
 	// ISO-8859-1 tests
 	{"key = value", "key = value\n", "ISO-8859-1"},
+	{"#\nkey = value", "key = value\n", "ISO-8859-1"},
+	{"#\n#\n#\nkey = value", "key = value\n", "ISO-8859-1"},
 	{"# comment\nkey = value", "# comment\nkey = value\n", "ISO-8859-1"},
 	{"\n# comment\nkey = value", "# comment\nkey = value\n", "ISO-8859-1"},
 	{"# comment\n\nkey = value", "# comment\nkey = value\n", "ISO-8859-1"},
@@ -247,11 +250,11 @@
 	def, value time.Duration
 }{
 	// valid values
-	{"key = -1ns", "key", 999, -1*time.Nanosecond},
-	{"key = 300ms", "key", 999, 300*time.Millisecond},
-	{"key = 5s", "key", 999, 5*time.Second},
-	{"key = 3h", "key", 999, 3*time.Hour},
-	{"key = 2h45m", "key", 999, 2*time.Hour+45*time.Minute},
+	{"key = -1ns", "key", 999, -1 * time.Nanosecond},
+	{"key = 300ms", "key", 999, 300 * time.Millisecond},
+	{"key = 5s", "key", 999, 5 * time.Second},
+	{"key = 3h", "key", 999, 3 * time.Hour},
+	{"key = 2h45m", "key", 999, 2*time.Hour + 45*time.Minute},
 
 	// invalid values
 	{"key = 0xff", "key", 999, 999},