| Ticket UUID: | 3612465 | |||
| Title: | Spaces around section line specifications should be ignored | |||
| Type: | Bug | Version: | None | |
| Submitter: | takatsuki | Created on: | 2013-05-02 09:14:22 | |
| Subsystem: | inifile | Assigned To: | aku | |
| Priority: | 5 Medium | Severity: | Minor | |
| Status: | Deleted | Last Modified: | 2013-05-31 19:18:06 | |
| Resolution: | Not Applicable Here | Closed By: | aku | |
| Closed on: | 2013-05-31 19:18:06 | |||
| Description: |
When parsing a file, if a section line contains some leading or trailing spaces (outside the square brackets), it is not recognized. A sample ini file reproducing the error would be (please note the extra trailing in the section line: "[General] "): [General] key=value key2=value2 # Before patch package require inifile set fh [::ini::open sample.ini] puts [llength [ini::sections $fh]] 0 # After applying the attached patch package require inifile set fh [::ini::open sample.ini] puts [llength [ini::sections $fh]] 1 | |||
| User Comments: |
ferrieux added on 2013-05-02 23:28:26:
For the record, I know how Stupid SF eats any indentation, which makes any inlined patch nearly unusable, but the same Stupid SF won't allow me to attach anything... ferrieux added on 2013-05-02 23:24:56: Why stop halfway ? Comments and settings line would benefit from the same tolerance.
The simpler patch below does that.
--- ini.tcl~2013-05-02 18:24:50.000000000 +0200
+++ ini.tcl2013-05-02 18:25:24.000000000 +0200
@@ -113,6 +113,7 @@
seek $channel 0 start
foreach line [split [read $channel] "\n"] {
+set line [string trim $line]
if { [string match "$char*" $line] } {
lappend com [string trim [string range $line [string length $char] end]]
} elseif { [string match {\[*\]} $line] } {
takatsuki added on 2013-05-02 16:14:23: File Added - 463065: inifile-sections.patch | |||
Attachments:
- inifile-sections.patch [download] added by takatsuki on 2013-05-02 16:14:23. [details]
