@@ -806,37 +806,28 @@ impl Ini {
806
806
pub fn write_to_opt < W : Write > ( & self , writer : & mut W , opt : WriteOption ) -> io:: Result < ( ) > {
807
807
let mut firstline = true ;
808
808
809
- if let Some ( props) = self . sections . get ( & None ) {
810
- for ( k, v) in props. iter ( ) {
811
- let k_str = escape_str ( k, opt. escape_policy ) ;
812
- let v_str = escape_str ( v, opt. escape_policy ) ;
813
- write ! ( writer, "{}{}{}{}" , k_str, opt. kv_separator, v_str, opt. line_separator) ?;
814
-
815
- firstline = false ;
816
- }
817
- }
818
-
819
809
for ( section, props) in & self . sections {
820
- if let Some ( ref section ) = * section {
810
+ if !props . data . is_empty ( ) {
821
811
if firstline {
822
812
firstline = false ;
823
813
} else {
824
814
// Write an empty line between sections
825
815
writer. write_all ( opt. line_separator . as_str ( ) . as_bytes ( ) ) ?;
826
816
}
817
+ }
827
818
819
+ if let Some ( ref section) = * section {
828
820
write ! (
829
821
writer,
830
822
"[{}]{}" ,
831
823
escape_str( & section[ ..] , opt. escape_policy) ,
832
824
opt. line_separator
833
825
) ?;
834
-
835
- for ( k, v) in props. iter ( ) {
836
- let k_str = escape_str ( k, opt. escape_policy ) ;
837
- let v_str = escape_str ( v, opt. escape_policy ) ;
838
- write ! ( writer, "{}{}{}{}" , k_str, opt. kv_separator, v_str, opt. line_separator) ?;
839
- }
826
+ }
827
+ for ( k, v) in props. iter ( ) {
828
+ let k_str = escape_str ( k, opt. escape_policy ) ;
829
+ let v_str = escape_str ( v, opt. escape_policy ) ;
830
+ write ! ( writer, "{}{}{}{}" , k_str, opt. kv_separator, v_str, opt. line_separator) ?;
840
831
}
841
832
}
842
833
Ok ( ( ) )
0 commit comments