Save position does not work anymore in TC 9
Moderators: Hacker, petermad, Stefan2, white
- Wilhelm M.
- Power Member
- Posts: 1050
- Joined: 2003-06-05, 10:45 UTC
Save position does not work anymore in TC 9
Changes of the tap stop positions should - according to the TC help - be saved by pressing "save position" in the configuration.
In TC 9.12 this does not work any longer. A restart of TC always re-establishes the original tab positions.
Even the "save settings" comman does not store the new tab positions.
This was also confirmed by starting TC with a fresh ini file.
About my system: Win 7 64 bit and Win 7 32 bit, TC 32 bit, programme path is D:\Tools\TC (no user restrictions),
UseIniInProgramDir=7 is set and the programme uses this wincmd.ini.
This error was also confirmed by other users in the German Forum.
In TC 9.12 this does not work any longer. A restart of TC always re-establishes the original tab positions.
Even the "save settings" comman does not store the new tab positions.
This was also confirmed by starting TC with a fresh ini file.
About my system: Win 7 64 bit and Win 7 32 bit, TC 32 bit, programme path is D:\Tools\TC (no user restrictions),
UseIniInProgramDir=7 is set and the programme uses this wincmd.ini.
This error was also confirmed by other users in the German Forum.
Last edited by Wilhelm M. on 2018-02-15, 14:15 UTC, edited 1 time in total.
Grüße/Regards,
Wilhelm
Wilhelm
-
- Power Member
- Posts: 872
- Joined: 2013-09-04, 14:07 UTC
Cannot confirm with TC9.12 32bit and 64bit.
OS: Win 7 Pro x64 english
I tested in a fresh Win7 Pro x64 VM, so no TC registry keys were present. Like Wilhelm, I used a fresh wincmd.ini with UseIniInProgramDir=7 in the TC folder (C:\TC) which had full permissions (TC in fact updated the INI file).
"Save positions" saved the changed column widths without problems. After restart, TC used those changed column width as expected.
@̶W̶i̶l̶h̶e̶l̶m̶,̶ ̶p̶l̶e̶a̶s̶e̶ ̶c̶h̶e̶c̶k̶ ̶y̶o̶u̶r̶ ̶r̶e̶g̶i̶s̶t̶r̶y̶.̶ ̶D̶o̶e̶s̶ ̶i̶t̶ ̶c̶o̶n̶t̶a̶i̶n̶ ̶"̶G̶h̶i̶s̶l̶e̶r̶"̶ ̶k̶e̶y̶s̶ ̶i̶n̶ ̶e̶i̶t̶h̶e̶r̶ ̶ ̶H̶K̶C̶U̶/̶S̶o̶f̶t̶w̶a̶r̶e̶ ̶o̶r̶ ̶H̶K̶L̶M̶/̶S̶o̶f̶t̶w̶a̶r̶e̶?̶ ̶I̶f̶ ̶s̶o̶,̶ ̶"̶U̶s̶e̶I̶n̶i̶I̶n̶P̶r̶o̶g̶r̶a̶m̶D̶i̶r̶"̶ ̶m̶i̶g̶h̶t̶ ̶n̶o̶t̶ ̶t̶a̶k̶e̶ ̶e̶f̶f̶e̶c̶t̶ ̶a̶s̶ ̶T̶C̶ ̶m̶i̶g̶h̶t̶ ̶t̶a̶k̶e̶ ̶t̶h̶e̶ ̶l̶o̶c̶a̶t̶i̶o̶n̶ ̶o̶f̶ ̶t̶h̶e̶ ̶w̶i̶n̶c̶m̶d̶.̶i̶n̶i̶ ̶f̶i̶l̶e̶ ̶f̶r̶o̶m̶ ̶t̶h̶e̶ ̶r̶e̶g̶i̶s̶t̶r̶y̶ ̶(̶a̶n̶d̶ ̶i̶f̶ ̶t̶h̶a̶t̶ ̶p̶a̶t̶h̶ ̶r̶e̶f̶e̶r̶s̶ ̶t̶o̶ ̶a̶ ̶r̶e̶s̶t̶r̶i̶c̶t̶e̶d̶ ̶o̶r̶ ̶n̶o̶n̶-̶e̶x̶i̶s̶t̶i̶n̶g̶ ̶d̶i̶r̶e̶c̶t̶o̶r̶y̶,̶ ̶u̶p̶d̶a̶t̶e̶s̶ ̶t̶o̶ ̶t̶h̶e̶ ̶i̶n̶i̶ ̶f̶i̶l̶e̶ ̶p̶e̶r̶h̶a̶p̶s̶ ̶f̶a̶i̶l̶ ̶s̶i̶l̶e̶n̶t̶l̶y̶;̶ ̶b̶u̶t̶ ̶i̶ ̶d̶o̶n̶'̶t̶ ̶k̶n̶o̶w̶ ̶f̶o̶r̶ ̶s̶u̶r̶e̶)̶
With UseIniInProgramDir=7, registry keys will be ignored anyway. Hmm, whatever the cause, it seems some "environmental" factors play a role here, as i am unable to reproduce the problem...
OS: Win 7 Pro x64 english
I tested in a fresh Win7 Pro x64 VM, so no TC registry keys were present. Like Wilhelm, I used a fresh wincmd.ini with UseIniInProgramDir=7 in the TC folder (C:\TC) which had full permissions (TC in fact updated the INI file).
"Save positions" saved the changed column widths without problems. After restart, TC used those changed column width as expected.
@̶W̶i̶l̶h̶e̶l̶m̶,̶ ̶p̶l̶e̶a̶s̶e̶ ̶c̶h̶e̶c̶k̶ ̶y̶o̶u̶r̶ ̶r̶e̶g̶i̶s̶t̶r̶y̶.̶ ̶D̶o̶e̶s̶ ̶i̶t̶ ̶c̶o̶n̶t̶a̶i̶n̶ ̶"̶G̶h̶i̶s̶l̶e̶r̶"̶ ̶k̶e̶y̶s̶ ̶i̶n̶ ̶e̶i̶t̶h̶e̶r̶ ̶ ̶H̶K̶C̶U̶/̶S̶o̶f̶t̶w̶a̶r̶e̶ ̶o̶r̶ ̶H̶K̶L̶M̶/̶S̶o̶f̶t̶w̶a̶r̶e̶?̶ ̶I̶f̶ ̶s̶o̶,̶ ̶"̶U̶s̶e̶I̶n̶i̶I̶n̶P̶r̶o̶g̶r̶a̶m̶D̶i̶r̶"̶ ̶m̶i̶g̶h̶t̶ ̶n̶o̶t̶ ̶t̶a̶k̶e̶ ̶e̶f̶f̶e̶c̶t̶ ̶a̶s̶ ̶T̶C̶ ̶m̶i̶g̶h̶t̶ ̶t̶a̶k̶e̶ ̶t̶h̶e̶ ̶l̶o̶c̶a̶t̶i̶o̶n̶ ̶o̶f̶ ̶t̶h̶e̶ ̶w̶i̶n̶c̶m̶d̶.̶i̶n̶i̶ ̶f̶i̶l̶e̶ ̶f̶r̶o̶m̶ ̶t̶h̶e̶ ̶r̶e̶g̶i̶s̶t̶r̶y̶ ̶(̶a̶n̶d̶ ̶i̶f̶ ̶t̶h̶a̶t̶ ̶p̶a̶t̶h̶ ̶r̶e̶f̶e̶r̶s̶ ̶t̶o̶ ̶a̶ ̶r̶e̶s̶t̶r̶i̶c̶t̶e̶d̶ ̶o̶r̶ ̶n̶o̶n̶-̶e̶x̶i̶s̶t̶i̶n̶g̶ ̶d̶i̶r̶e̶c̶t̶o̶r̶y̶,̶ ̶u̶p̶d̶a̶t̶e̶s̶ ̶t̶o̶ ̶t̶h̶e̶ ̶i̶n̶i̶ ̶f̶i̶l̶e̶ ̶p̶e̶r̶h̶a̶p̶s̶ ̶f̶a̶i̶l̶ ̶s̶i̶l̶e̶n̶t̶l̶y̶;̶ ̶b̶u̶t̶ ̶i̶ ̶d̶o̶n̶'̶t̶ ̶k̶n̶o̶w̶ ̶f̶o̶r̶ ̶s̶u̶r̶e̶)̶
With UseIniInProgramDir=7, registry keys will be ignored anyway. Hmm, whatever the cause, it seems some "environmental" factors play a role here, as i am unable to reproduce the problem...
- ghisler(Author)
- Site Admin
- Posts: 50555
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
I cannot confirm it either. Could you check whether this is a problem with writing to wincmd.ini, or reading from it?
1. Make copy of wincmd.ini
2. Slightly change tab positions
3. Configuration - Save position
4. Compare by content of old and new wincmd.ini
1. Make copy of wincmd.ini
2. Slightly change tab positions
3. Configuration - Save position
4. Compare by content of old and new wincmd.ini
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
It may be that configuring - save position works in a certain way.ghisler(Author) wrote:I cannot confirm it either.
But after a TC restart, at least under certain conditions, the view of the column widths changes up from TC 9.0 and following.
TC up from 9.0 and following
Since this is not the case under TC 8.52a, it was considered a bug.
TC 8.52a
If you compare the wincmd.ini's, you'll notice that after saving/exiting <- AND -> restarting the TC, the [lefttabs] section has been moved,
although no change has been made yet. For me, this looks like TC is performing a calculation on restart, which is not necessary in this case,
as it should continue to work with the previously saved values.
Incidentally, I assume that you have read the topic in the German forum
What I have learned now is that hints in a forum obviously are not as important as an entry in the bug forum.
Unfortunately, the language is not my main language, so it means much more effort for me.
That was my last statement on this topic anyway, because I do not use this setting and just wanted to confirm
to another user that there is an inconsistency here.
EDIT: I made corrections to this statements here...
viewtopic.php?p=338130#338130
Last edited by tuska on 2018-02-15, 15:11 UTC, edited 1 time in total.
- Wilhelm M.
- Power Member
- Posts: 1050
- Joined: 2003-06-05, 10:45 UTC
@Ghisler
Sorry for the delay.
I have changed the tab positions significantly (!), not just a few pixels, and pressed Save position.
Then restarted TC and the original position seemed to be restored (that's the bug I am supposing).
But: the comparison shows that the positons are almost the same
but not exactly. Here the relevant differences:
[1280x1024 (8x16)]
New wincmd.ini: Tabstops=191,199,258,-1,576,93
Old wincmd.ini: Tabstops=192,200,264,-1,576,93
[Tabstops]
New wincmd.in:
0=191
1=199
3=258
4=0
5=93
Old wincmd.ini:
0=192
1=200
3=264
4=0
5=93
These slight differnces are virtually unvisible. The changes that I really made were much larger!
E.g. the colum for the file name was moved to approx. half of the file list window.
Sorry for the delay.
I have changed the tab positions significantly (!), not just a few pixels, and pressed Save position.
Then restarted TC and the original position seemed to be restored (that's the bug I am supposing).
But: the comparison shows that the positons are almost the same
but not exactly. Here the relevant differences:
[1280x1024 (8x16)]
New wincmd.ini: Tabstops=191,199,258,-1,576,93
Old wincmd.ini: Tabstops=192,200,264,-1,576,93
[Tabstops]
New wincmd.in:
0=191
1=199
3=258
4=0
5=93
Old wincmd.ini:
0=192
1=200
3=264
4=0
5=93
These slight differnces are virtually unvisible. The changes that I really made were much larger!
E.g. the colum for the file name was moved to approx. half of the file list window.
Grüße/Regards,
Wilhelm
Wilhelm
- Wilhelm M.
- Power Member
- Posts: 1050
- Joined: 2003-06-05, 10:45 UTC
- Wilhelm M.
- Power Member
- Posts: 1050
- Joined: 2003-06-05, 10:45 UTC
You put it a bit ambiguosly. If the extensions are placed directly behind the filenames, the error occurs.elgonzo wrote: So, the problem does not occur with a fresh wincmd.ini, but when file extensions are directly behind the file names.
In this case it makes no difference wheter the windcmd.ini is fresh or not.
Grüße/Regards,
Wilhelm
Wilhelm
-
- Power Member
- Posts: 872
- Joined: 2013-09-04, 14:07 UTC
Just did a very quick and dirty test, taking into account the update from tuska and Wilhelm.
When the file extensions are shown directly behind the file names, i can experience the issue. If i make the file name column larger and save the position, it seems TC will load and restore the width of the column correctly. However, if i make the file name column smaller than a certain width and save its position again, TC will ignore this at the next restart and make the column somewhat larger. I haven't checked yet whether the issue is with saving the position info to the INI, or whether it is an issue with loading the positions and initializing the columns during program start. Just wanted to let you know that i can "see something" now...
When the file extensions are shown directly behind the file names, i can experience the issue. If i make the file name column larger and save the position, it seems TC will load and restore the width of the column correctly. However, if i make the file name column smaller than a certain width and save its position again, TC will ignore this at the next restart and make the column somewhat larger. I haven't checked yet whether the issue is with saving the position info to the INI, or whether it is an issue with loading the positions and initializing the columns during program start. Just wanted to let you know that i can "see something" now...
-
- Power Member
- Posts: 872
- Joined: 2013-09-04, 14:07 UTC
I removed the post you were responding to. I noticed that you made a comprehensive update to your bug report, which made my deleted (and already editedWilhelm M. wrote:You put it a bit ambiguosly. If the extensions are placed directly behind the filenames, the error occurs.elgonzo wrote: So, the problem does not occur with a fresh wincmd.ini, but when file extensions are directly behind the file names.
In this case it makes no difference wheter the windcmd.ini is fresh or not.


In this deleted post i also mentioned that just saying "starting TC with a fresh wincmd.ini" can and will be understood as using TC with its default settings. If you alter some setting(s), then you are not using TC with its default settings anymore. But yeah, if you just take that sentence stand-alone, it is indeed ambiguous...

I have to correct my statements made above:
1. After clicking on the "Apply" button other values (wrong) are saved in the wincmd.ini under the section [Tabstops].
2. With Configuration - Save Position the wrong values are saved (again) in the wincmd.ini
3. A comparison of the wincmd.ini files (before - after restart of TC) then brings no difference
That Configuration - Save Position works.
The indicated error is from TC 9.0 and following still available.
http://www.bilder-hochladen.net/files/big/lwdu-r-3f0d.png
EDIT: -Addition-
For TC 8.52a, after clicking on the "Apply" button in wincmd.ini, under section [Tabs], the correct values are saved.
1. After clicking on the "Apply" button other values (wrong) are saved in the wincmd.ini under the section [Tabstops].
2. With Configuration - Save Position the wrong values are saved (again) in the wincmd.ini
3. A comparison of the wincmd.ini files (before - after restart of TC) then brings no difference
That Configuration - Save Position works.
The indicated error is from TC 9.0 and following still available.
http://www.bilder-hochladen.net/files/big/lwdu-r-3f0d.png
EDIT: -Addition-
For TC 8.52a, after clicking on the "Apply" button in wincmd.ini, under section [Tabs], the correct values are saved.
Last edited by tuska on 2018-02-15, 20:53 UTC, edited 1 time in total.
- ghisler(Author)
- Site Admin
- Posts: 50555
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
If you use the option "Directly after file name", the position of the Extension column cannot be saved. It is restored to a fixed percentage of the name/ext columns combined. The reason is that the width of the Ext column is irrelevant in this case. The header only used for sorting.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
-
- Power Member
- Posts: 872
- Joined: 2013-09-04, 14:07 UTC
Ah, okay. So me only looking at the name column might not mean much. I should look at the combined width of the name+extension columns. I will have to check again...ghisler(Author) wrote:If you use the option "Directly after file name", the position of the Extension column cannot be saved. It is restored to a fixed percentage of the name/ext columns combined. The reason is that the width of the Ext column is irrelevant in this case. The header only used for sorting.
-
- Power Member
- Posts: 872
- Joined: 2013-09-04, 14:07 UTC
So, i have finally taken a closer look...
TC64 9.12a
OS: Windows 7 Pro x64, english
Display: 1920x1080, 96 DPI (100% text scaling, system default), Aero DWM enabled
From the tests i describe below it should be pretty clear that somewhere deep down in its guts, TC is somehow getting its arithmetic for the Name and Extension column width wrong.
In test 2, a shrinking Name column could compensate for the expanding Expansion column, thus keeping the other columns at their intended positions.
However, tests 3 and 4 completely expose the issue: The widths of the Name+Extension columns is calculated or stored incorrectly, causing them to expand more and more each time their positions are saved + TC is restarted.
Test 1 ("Preparations for War")
Test 2 ("All the Promises in the World")
Test 3 ("A Thursday Evening Murder")
Test 4 ("A Series of Unfortunate Events")
With the TC instance from test 3 still running (close the configuration dialog), do the following in a loop:
TC64 9.12a
OS: Windows 7 Pro x64, english
Display: 1920x1080, 96 DPI (100% text scaling, system default), Aero DWM enabled
From the tests i describe below it should be pretty clear that somewhere deep down in its guts, TC is somehow getting its arithmetic for the Name and Extension column width wrong.
In test 2, a shrinking Name column could compensate for the expanding Expansion column, thus keeping the other columns at their intended positions.
However, tests 3 and 4 completely expose the issue: The widths of the Name+Extension columns is calculated or stored incorrectly, causing them to expand more and more each time their positions are saved + TC is restarted.
Test 1 ("Preparations for War")
- Start TC with a fresh wincmd.ini.
- In the Tabstops configuration dialog, enable "Show file extensions directly after file name" and disable "Adjust tabs to window width".
- Close the Tabstops configuration dialog.
- Change the column widths with the mouse. (If you align the column edges with separators in the button bar, you can later easily tell if some column has the wrong width.)
- Open the Tabstops configuration dialog again. Write down the numbers (or make a screenshot).
Test 2 ("All the Promises in the World")
- Delete the old wincmd.ini, and start TC again with a fresh wincmd.ini.
- Again, in the Tabstops configuration dialog, enable "Show file extensions directly after file name" and disable "Adjust tabs to window width".
- However, this time do NOT close the Tabstops configuration dialog yet.
- Now, enter manually the numbers you have written down at the end of test 1.
- Now close the Tabstops configuration dialog (OK button).
- Expected result is that the columns would appear the same as at the end of test 1. But this is not the case. Note how the Extension column is somewhat larger (about 20px in my case). The Name column shrinks by this amount, thus maintaining its combined width and the position of the other columns.
So far so good.
Test 3 ("A Thursday Evening Murder")
- Once more, delete the old wincmd.ini, and start TC again with a fresh wincmd.ini.
- Like test 2, in the Tabstops configuration dialog, enable "Show file extensions directly after file name" and disable "Adjust tabs to window width".
- Like test 2, enter the numbers you wrote down (in test 1) before closing the Tabstops configuration dialog (OK button).
- Now, save the positions (main menu Configuration -> Save Position). This step might or might not be necessary, i haven't verified this.
- Restart TC.
- Note that the column width for the Extension column does grow much more than compared to test 2. Also, this time the Name column does not compensate for the Extension column greediness, and thus pushing the other columns further to the right.
- Open the Tabstops configuration dialog.
- Note that the numbers are different from what you have originally entered.
Test 4 ("A Series of Unfortunate Events")
With the TC instance from test 3 still running (close the configuration dialog), do the following in a loop:
- Click main menu Configuration -> Save position.
- Restart TC.
- Note how the width of the Name+Extension columns has grown.
- Repeat this test (Click Configuration -> Save position, restart TC, observe further growth of Name+Extension columns)
- Rinse and repeat. After each iteration of this test you will notice that the width of both the Name and Extension columns grows more and more and more...
Last edited by gdpr deleted 6 on 2018-02-15, 21:34 UTC, edited 2 times in total.
Let's try to make this more reproducible.
Save this initial ini file into your temp folder:
- Use the first button to start a fresh instance using the test.ini
- Paste both buttons into the button bar
- now repeat multiple times
a) the button "Save Position"
b) the button "New TC instance"
-> with every new TC Instance the Name+Extension column becomes broader.
So yes: there is a (rounding?) bug in "Save position" in combination with
Aligned extension=0
AdjustWidth=0
Regards
Holger
Save this initial ini file into your temp folder:
For convenience we create two buttons:%Temp%\test.ini wrote:[Configuration]
ResolutionSpecific=0
Aligned extension=0
UseNewDefFont=1
SetEncoding=дц.do.not.remove
firstmnu=3770
FirstTimeIconLib=0
FirstTime=0
SeparateTree=0
PanelsVertical=0
test=76
ShowCentury=1
SizeStyle=0
SizeFooter=1
[Tabstops]
0=223
1=226
3=280
4=-1
6=629
5=100
AdjustWidth=0
[AllResolutions]
maximized=0
x=410
y=120
dx=1100
dy=800
Divider=500
DividerQuickView=500
DividerComments=500
Tabstops=223,226,280,-1,629,100
button New TC instance wrote:TOTALCMD#BAR#DATA
%COMMANDER_EXE%
/n /i="%%TEMP%%\test.ini"
%COMMANDER_EXE%
new TC with Test.ini
-1
S2R:button Save Position wrote:TOTALCMD#BAR#DATA
cm_ConfigSavePos
wcmicons.dll
0
493
- Use the first button to start a fresh instance using the test.ini
- Paste both buttons into the button bar
- now repeat multiple times
a) the button "Save Position"
b) the button "New TC instance"
-> with every new TC Instance the Name+Extension column becomes broader.
So yes: there is a (rounding?) bug in "Save position" in combination with
Aligned extension=0
AdjustWidth=0
Regards
Holger
Make our planet great again
-
- Power Member
- Posts: 872
- Joined: 2013-09-04, 14:07 UTC
Oh... i forgot including the part about the INI file. Here it comes... 
INI file observations ("A Day In the Life of...")
When executing test 3, after entering the numbers manually in the configuration dialog (as per screenshot for test 1: https://imgur.com/a/uuPSZ) and confirming it with "OK", the INI file contains the following values with regard to the tabstops:
Note that those are NOT the values as were entered in the configuration dialog. You will notice that these numbers appear in the configuration dialog after TC has been restarted (Screenshot from test 3: https://imgur.com/a/qQjjb).
This makes me think the error is somewhere in the code path that obtains and writes the column width values to the INI file...

INI file observations ("A Day In the Life of...")
When executing test 3, after entering the numbers manually in the configuration dialog (as per screenshot for test 1: https://imgur.com/a/uuPSZ) and confirming it with "OK", the INI file contains the following values with regard to the tabstops:
Code: Select all
[Tabstops]
0=209
1=219
3=329
4=-1
6=629
5=100
AdjustWidth=0
[1920x1080 (8x16)]
Tabstops=209,219,329,-1,629,100
This makes me think the error is somewhere in the code path that obtains and writes the column width values to the INI file...