Directory hotlist (Ctrl+D) and [DirMenu] section in WINCMD.INI:
- When using "Ctrl+D > Add current dir" to add a dir to an existing submenu in directory hotlist, the lines in WINCMD.INI get mixed up:
"menu" line gets correctly added in the selected submenu,
but "cmd" and "path" lines get appended at the end of [DirMenu] section. - When deleting the last/bottom item inside a submenu, the next entry after the submenu is messed up in the same way
- Additionally a bunch of other existing lines get mixed up like this by a single add/delete command
(currently 27 out of 229 items in my list).
Seems to exist since TC 8.0, when "[X] Add to submenu" was introduced.
TC 7.57a was OK.
Suggestion:
It seems that all above already get auto-corrected in WINCMD.INI after opening Directory hotlist: Ctrl+D > configure > OK (even without changes),
so obviously there already is a repair function, that's called after using Ctrl+D and leaving with OK.
=> Maybe this function can simply be called after adding/deleting items from the hotlist menu itself?
To reproduce:
([DirMenu] should contain submenus, like in the test data attached here)
- before testing: for later comparison create a backup copy of your INI containing the [DirMenu] section
- navigate to a directory that's not yet in the list
- press Ctrl+D > Add current dir > [X] Add to submenu > (select the first submenu from the list) > press Enter (OK)
(=> now INI is already mixed up, but will be better comparable after deleting the new line again:)
- press Ctrl+D > Remove current dir
- use "File > Compare by content" to see the differences:
=> 27 items moved to the bottom of the section
(but only "cmd" and "path" parts, position of the "menu" part stays unchanged).
Test data (archive): [DirMenu] before and after the test
Code: Select all
begin 644 usermenu-dir_add-to-submenu.rar
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
6D)$\%X5X/"SKK4&H6P.0Q#U[`$`'````
`
end
sum -r/size 48993/2857
Shorter test data (with less order corruption)
Code: Select all
[DirMenu]
menu1=title1
cmd1=cd C:\temp\1
path1=C:\temp\1
menu2=-submenu2
menu3=title3
cmd3=cd C:\temp\3
path3=C:\temp\3
menu4=NewDir
cmd4=cd d:\temp\NewDir
path4=d:\temp\TargetDir\
menu5=--
menu6=title5
cmd6=cd C:\temp\5
path6=C:\temp\5
menu7=title6
cmd7=cd C:\temp\6
path7=C:\temp\6
menu8=title7
cmd8=cd C:\temp\7
path8=C:\temp\7
Code: Select all
[DirMenu]
menu1=title1
cmd1=cd C:\temp\1
path1=C:\temp\1
menu2=-submenu2
menu3=title3
cmd3=cd C:\temp\3
path3=C:\temp\3
menu4=NewDir
cmd4=cd d:\temp\NewDir
path4=d:\temp\TargetDir\
menu5=--
menu6=title5
menu7=title6
cmd7=cd C:\temp\6
path7=C:\temp\6
menu8=title7
cmd8=cd C:\temp\7
path8=C:\temp\7
cmd6=cd C:\temp\5
path6=C:\temp\5