59c1e74e by astaxie

Merge pull request #1158 from mlgd/master

Fix save config ini file
2 parents 519602a5 1d726293
...@@ -300,21 +300,8 @@ func (c *IniConfigContainer) SaveConfigFile(filename string) (err error) { ...@@ -300,21 +300,8 @@ 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 for section, dt := range c.data { 303 // Save default section at first place
304 // Write section comments. 304 if dt, ok := c.data[DEFAULT_SECTION]; ok {
305 if v, ok := c.sectionComment[section]; ok {
306 if _, err = buf.WriteString(string(bNumComment) + v + lineBreak); err != nil {
307 return err
308 }
309 }
310
311 if section != DEFAULT_SECTION {
312 // Write section name.
313 if _, err = buf.WriteString(string(sectionStart) + section + string(sectionEnd) + lineBreak); err != nil {
314 return err
315 }
316 }
317
318 for key, val := range dt { 305 for key, val := range dt {
319 if key != " " { 306 if key != " " {
320 // Write key comments. 307 // Write key comments.
...@@ -336,6 +323,43 @@ func (c *IniConfigContainer) SaveConfigFile(filename string) (err error) { ...@@ -336,6 +323,43 @@ func (c *IniConfigContainer) SaveConfigFile(filename string) (err error) {
336 return err 323 return err
337 } 324 }
338 } 325 }
326 // Save named sections
327 for section, dt := range c.data {
328 if section != DEFAULT_SECTION {
329 // Write section comments.
330 if v, ok := c.sectionComment[section]; ok {
331 if _, err = buf.WriteString(string(bNumComment) + v + lineBreak); err != nil {
332 return err
333 }
334 }
335
336 // Write section name.
337 if _, err = buf.WriteString(string(sectionStart) + section + string(sectionEnd) + lineBreak); err != nil {
338 return err
339 }
340
341 for key, val := range dt {
342 if key != " " {
343 // Write key comments.
344 if v, ok := c.keyComment[key]; ok {
345 if _, err = buf.WriteString(string(bNumComment) + v + lineBreak); err != nil {
346 return err
347 }
348 }
349
350 // Write key and value.
351 if _, err = buf.WriteString(key + string(bEqual) + val + lineBreak); err != nil {
352 return err
353 }
354 }
355 }
356
357 // Put a line between sections.
358 if _, err = buf.WriteString(lineBreak); err != nil {
359 return err
360 }
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!