9252301f by mlgd Committed by astaxie

Fix save config ini file

1 parent 1053b63b
...@@ -300,7 +300,32 @@ func (c *IniConfigContainer) SaveConfigFile(filename string) (err error) { ...@@ -300,7 +300,32 @@ func (c *IniConfigContainer) SaveConfigFile(filename string) (err error) {
300 defer f.Close() 300 defer f.Close()
301 301
302 buf := bytes.NewBuffer(nil) 302 buf := bytes.NewBuffer(nil)
303 // Save default section at first place
304 if dt, ok := c.data[DEFAULT_SECTION]; ok {
305 for key, val := range dt {
306 if key != " " {
307 // Write key comments.
308 if v, ok := c.keyComment[key]; ok {
309 if _, err = buf.WriteString(string(bNumComment) + v + lineBreak); err != nil {
310 return err
311 }
312 }
313
314 // Write key and value.
315 if _, err = buf.WriteString(key + string(bEqual) + val + lineBreak); err != nil {
316 return err
317 }
318 }
319 }
320
321 // Put a line between sections.
322 if _, err = buf.WriteString(lineBreak); err != nil {
323 return err
324 }
325 }
326 // Save named sections
303 for section, dt := range c.data { 327 for section, dt := range c.data {
328 if section != DEFAULT_SECTION {
304 // Write section comments. 329 // Write section comments.
305 if v, ok := c.sectionComment[section]; ok { 330 if v, ok := c.sectionComment[section]; ok {
306 if _, err = buf.WriteString(string(bNumComment) + v + lineBreak); err != nil { 331 if _, err = buf.WriteString(string(bNumComment) + v + lineBreak); err != nil {
...@@ -308,12 +333,10 @@ func (c *IniConfigContainer) SaveConfigFile(filename string) (err error) { ...@@ -308,12 +333,10 @@ func (c *IniConfigContainer) SaveConfigFile(filename string) (err error) {
308 } 333 }
309 } 334 }
310 335
311 if section != DEFAULT_SECTION {
312 // Write section name. 336 // Write section name.
313 if _, err = buf.WriteString(string(sectionStart) + section + string(sectionEnd) + lineBreak); err != nil { 337 if _, err = buf.WriteString(string(sectionStart) + section + string(sectionEnd) + lineBreak); err != nil {
314 return err 338 return err
315 } 339 }
316 }
317 340
318 for key, val := range dt { 341 for key, val := range dt {
319 if key != " " { 342 if key != " " {
...@@ -336,6 +359,7 @@ func (c *IniConfigContainer) SaveConfigFile(filename string) (err error) { ...@@ -336,6 +359,7 @@ func (c *IniConfigContainer) SaveConfigFile(filename string) (err error) {
336 return err 359 return err
337 } 360 }
338 } 361 }
362 }
339 363
340 if _, err = buf.WriteTo(f); err != nil { 364 if _, err = buf.WriteTo(f); err != nil {
341 return err 365 return err
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!