Merge pull request #1158 from mlgd/master
Fix save config ini file
Showing
1 changed file
with
39 additions
and
15 deletions
| ... | @@ -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 | ... | ... |
-
Please register or sign in to post a comment