Total Updater 0.8.6.9 - Total Commander & plugin updater
Moderators: white, Hacker, petermad, Stefan2
@petermad:
Thanks for your tests - I need to add that your conclusion is only true in case UseIniInProgramDir can be found in those files, in every other situation it works just fine (e.g. with a fresh install & clean ini, and even with singlefilename in RedirectSection, since I use it that way atm). As I wrote above, since I misunderstood this option of TC & its working, I need to rewrite the whole wincmd.ini catcher algorithm (currently TU even checks for UseIniInProgramDir if TC gave valid result to the envvar "%COMMANDER_INI" - which the utility shouldn't have to do) - it leads to such 'interesting' behaviour.
Do you know about any other 'tricky' keys like "UseIniInProgramDir" available for TC, which I should check for & handle?
@EricB:
Hi, would be nice if you could collect all these informations in a file. Maybe server-side methods are not even neccessary, I could just embed it into TU, so when it "meets" a filename that exists in its database, it could get its actual version (if no FileVersion section & no readme etc files exists) without an active online connection - that would be the best.
A similar concept like inside [OverridePlugVer] section would do the trick, do you agree? Just a bit modification is needed, e.g. like this:
[envvar.wfx] (though this one actually contains verinfo, so its just for an example)
2206166715=1.3.0.222v
where the structure is:
[{filename.extension}]
CRC32 chksum of file=actual local version
_________________
About MVV's wdx plugin: Wow, its a whole kilobyte increase! Now thats what I call totally unacceptable for anything to be updatable.
Btw he shouldn't definitely need to add verinfo into that file (however generally every single PE file in the world should have version informations imho, but nvm), it would be just as fine if he could add a single "readme.txt" file into the package, containing "SkipCompare 1.0" (or whatever the version is). The filename could even be "SkipCompare.txt". Now thats just 15 bytes, or 4 bytes if he decides to simply write "v1.0" into that txt file without anything else... But its always developers choice if they want their plugin to be updatable or not (anyway for me to achieve native Unicode support in GUI & everywhere else, exe size needed to be increased with ~1MB - now thats significant change... should I just drop Unicode support then, or start compressing the exe with UPX in the world of 2TB HDDs? Quid pro quo...).
Regards,
Bluestar
Thanks for your tests - I need to add that your conclusion is only true in case UseIniInProgramDir can be found in those files, in every other situation it works just fine (e.g. with a fresh install & clean ini, and even with singlefilename in RedirectSection, since I use it that way atm). As I wrote above, since I misunderstood this option of TC & its working, I need to rewrite the whole wincmd.ini catcher algorithm (currently TU even checks for UseIniInProgramDir if TC gave valid result to the envvar "%COMMANDER_INI" - which the utility shouldn't have to do) - it leads to such 'interesting' behaviour.
Do you know about any other 'tricky' keys like "UseIniInProgramDir" available for TC, which I should check for & handle?
@EricB:
Hi, would be nice if you could collect all these informations in a file. Maybe server-side methods are not even neccessary, I could just embed it into TU, so when it "meets" a filename that exists in its database, it could get its actual version (if no FileVersion section & no readme etc files exists) without an active online connection - that would be the best.
A similar concept like inside [OverridePlugVer] section would do the trick, do you agree? Just a bit modification is needed, e.g. like this:
[envvar.wfx] (though this one actually contains verinfo, so its just for an example)
2206166715=1.3.0.222v
where the structure is:
[{filename.extension}]
CRC32 chksum of file=actual local version
_________________
About MVV's wdx plugin: Wow, its a whole kilobyte increase! Now thats what I call totally unacceptable for anything to be updatable.
Btw he shouldn't definitely need to add verinfo into that file (however generally every single PE file in the world should have version informations imho, but nvm), it would be just as fine if he could add a single "readme.txt" file into the package, containing "SkipCompare 1.0" (or whatever the version is). The filename could even be "SkipCompare.txt". Now thats just 15 bytes, or 4 bytes if he decides to simply write "v1.0" into that txt file without anything else... But its always developers choice if they want their plugin to be updatable or not (anyway for me to achieve native Unicode support in GUI & everywhere else, exe size needed to be increased with ~1MB - now thats significant change... should I just drop Unicode support then, or start compressing the exe with UPX in the world of 2TB HDDs? Quid pro quo...).
Regards,
Bluestar
Well, apart from redirection to a specific file like this:Do you know about any other 'tricky' keys like "UseIniInProgramDir" available for TC, which I should check for & handle?
Code: Select all
[PackerPlugins]
RedirectSection=plugins.ini
[FileSystemPlugins]
RedirectSection=C:\wc\plugins.ini
[ListerPlugins]
RedirectSection=%COMMANDER_PATH%\plugins.ini
[ContentPlugins]
RedirectSection=%COMMANDER_INI%\..\plugins.ini
AlternateUserIni= does not by default redirect the four plugins sections, but they can be forced to be redirected this way:
Code: Select all
AlternateUserIni=mysettings.ini
[PackerPlugins]
RedirectSection=1
[FileSystemPlugins]
RedirectSection=1
[ListerPlugins]
RedirectSection=1
[ContentPlugins]
RedirectSection=1
Then there is the pluginbasedir= parameter - for example:
Code: Select all
pluginbasedir=%COMMANDER_PATH%\MYPLUGINS
Last edited by petermad on 2013-02-21, 12:17 UTC, edited 3 times in total.
License #524 (1994)
Danish Total Commander Translator
TC 11.03 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1371a
TC 3.50 on Android 6 & 13
Try: TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
Danish Total Commander Translator
TC 11.03 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1371a
TC 3.50 on Android 6 & 13
Try: TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
@Bluestar:
I'll start compiling a list. As for CRC32, there are two flavors: the implementation of TC/PKZIP (also called CRC32b) or the implementation used by ethernet and plugin wdHash. I'll choose the former (since one can easily derive it using only TC).
Unless of course MVV's suggestion for using internal build date from PE header is enough? It should be as unique as CRC, I'd say.
Regards, EricB
Edit: just sent my list
I'll start compiling a list. As for CRC32, there are two flavors: the implementation of TC/PKZIP (also called CRC32b) or the implementation used by ethernet and plugin wdHash. I'll choose the former (since one can easily derive it using only TC).
Unless of course MVV's suggestion for using internal build date from PE header is enough? It should be as unique as CRC, I'd say.
Regards, EricB
Edit: just sent my list
@petermad: Ah really, the AlternateUserIni, thanks totally forgot about it - things are getting more complex... and what if both key exists, AlternateUserIni=mysettings.ini and UseIniInProgramDir=7 too? Which one overrides the other, especially in case RedirectSection=1 (or filename) has been set... ? Yes, "pluginbasedir" is being considered at the moment, so it should be fine.
@MVV: Thanks, haven't thought about that one (IMAGE_FILE_HEADER/TimeDateStamp). Still theres a problem with it, older compiler versions may have not correctly set / update its value (eg. Delphi 2-3 etc is told not to do so, or even later versions fights with similar issues), so I'm not quite sure if I can rely on it completely... see the case of ntfs_stream, deb, devman etc packages (20 files out of my 117 installed plugins have issues with it - screenshot with the most often cases). I may use the last modification date of these problematic files though - when the date retrieved from PE file header is in the past (in '90s) or when its a future date...
@EricB: TU is currently not using the exact checksum method TC does. You can download a small utility I just compiled by clicking here (link updated [1.1]) to be able to create CRC32 checksums compatible with Total Updater.
I've got your email, thanks for it.
Regards,
Bluestar
@MVV: Thanks, haven't thought about that one (IMAGE_FILE_HEADER/TimeDateStamp). Still theres a problem with it, older compiler versions may have not correctly set / update its value (eg. Delphi 2-3 etc is told not to do so, or even later versions fights with similar issues), so I'm not quite sure if I can rely on it completely... see the case of ntfs_stream, deb, devman etc packages (20 files out of my 117 installed plugins have issues with it - screenshot with the most often cases). I may use the last modification date of these problematic files though - when the date retrieved from PE file header is in the past (in '90s) or when its a future date...
@EricB: TU is currently not using the exact checksum method TC does. You can download a small utility I just compiled by clicking here (link updated [1.1]) to be able to create CRC32 checksums compatible with Total Updater.
I've got your email, thanks for it.
Regards,
Bluestar
Last edited by Bluestar on 2013-02-23, 10:27 UTC, edited 4 times in total.
Hmmm, this tool seems to generate only numerical values, which are the decimal representation of CRC32. Any reason for using this tool instead of e.g. HashMyfiles from Nirsoft (which can do both HEX and decimal)? The advantage of hexadecimal is that it is used (nearly) everywhere and less lengthy.
Regards, EricB
Edit: Never mind, I just sent the decimal values
Regards, EricB
Edit: Never mind, I just sent the decimal values
The Nirsoft tool is just as okay as the one I linked above, what really matters is to store the checksums as decimal values, as I don't really want to mix the two by changing the current method...
Or just use CRC32TU, which is going to generate the needed ini-like structure in one step (click here to download).
[updated: 1.1, 2013-02-23; does its job faster, added scrollbar, no more wordwrap, and other code improvements (smaller size)]
Regards,
Bluestar
Or just use CRC32TU, which is going to generate the needed ini-like structure in one step (click here to download).
[updated: 1.1, 2013-02-23; does its job faster, added scrollbar, no more wordwrap, and other code improvements (smaller size)]
Regards,
Bluestar
Last edited by Bluestar on 2013-02-23, 10:28 UTC, edited 2 times in total.
Well that must be UseIniInProgramDir=7 - they don't really interfere.and what if both key exists, AlternateUserIni=mysettings.ini and UseIniInProgramDir=7 too?
But I found the reason why I cannot make singlefilename in RedirectSection work with TU
It is caused by the particular filename that I have used (plugins.ini). If I change it to for example myplugins.ini it works OK - so for some reason TU cannot handle RedirectSection=plugins.ini but have no problems with RedirectSection=myplugins.ini
Since you wrote that you use the file name redir_packers.ini you don't experience the bug, so try and rename your redir_packers.ini to plugins.ini and change to RedirectSection=plugins.ini in wincmd.ini - then I am sure you will experience that it doesn't work for you either.
So far it seems that it is only the filename plugins.ini that doesn't work, plugin.ini works OK for example.
License #524 (1994)
Danish Total Commander Translator
TC 11.03 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1371a
TC 3.50 on Android 6 & 13
Try: TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
Danish Total Commander Translator
TC 11.03 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1371a
TC 3.50 on Android 6 & 13
Try: TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
@EricB: Thanks - I'm not sure at the moment, definitely won't bundle with TU in the package, and not totally sure about integration either: maybe it just wouldn't be a good idea to let anyone modify this database with any (valid / possibly invalid) version / crc32 value pairs by a single click...
Theres the possibility to just press "Confirm marked items as latest", I think the best option is to let us do the rest... But I'm totally open to any ideas / contradictions, every opinion counts.
@petermad:
Thats interesting... well I've tried to reproduce it, so just renamed my "redir_packers.ini" file to "plugins.ini" as you said (file is still in %APPDATA%\Ghisler) - before this rename action: 112 items in my list in TU. After this action + renaming it in the RedirectSection of wincmd.ini & reloading TU: still 112 items in the list (as it should be).
By commenting out the line ";RedirectSection=plugins.ini" in wincmd.ini: 93 items in the list (everything except the packer plugins). Removing ";" character & reloading: all items again. By writing in "RedirectSection=plugs.ini" (file doesnt exists): 93 items in the list (everything except packerplugins)... and I really doesn't have any single line in the source code which should refer to exclude the filename "plugins.ini". Maybe your created HKLM/HKCU entry still exists in the registry, thats why it works?
P.S. If you are interested in coding, I can send you the current method of getting wincmd.ini path, to figure out the problem - but I'm going to rewrite it anyway from scratch, since there are much more cases to handle than I originally thought so.
Theres the possibility to just press "Confirm marked items as latest", I think the best option is to let us do the rest... But I'm totally open to any ideas / contradictions, every opinion counts.
@petermad:
Thats interesting... well I've tried to reproduce it, so just renamed my "redir_packers.ini" file to "plugins.ini" as you said (file is still in %APPDATA%\Ghisler) - before this rename action: 112 items in my list in TU. After this action + renaming it in the RedirectSection of wincmd.ini & reloading TU: still 112 items in the list (as it should be).
By commenting out the line ";RedirectSection=plugins.ini" in wincmd.ini: 93 items in the list (everything except the packer plugins). Removing ";" character & reloading: all items again. By writing in "RedirectSection=plugs.ini" (file doesnt exists): 93 items in the list (everything except packerplugins)... and I really doesn't have any single line in the source code which should refer to exclude the filename "plugins.ini". Maybe your created HKLM/HKCU entry still exists in the registry, thats why it works?
P.S. If you are interested in coding, I can send you the current method of getting wincmd.ini path, to figure out the problem - but I'm going to rewrite it anyway from scratch, since there are much more cases to handle than I originally thought so.
2Bluestar
I now tested it on my Windows 7 machine (until now I have mostly been testing on my Windows XP machine) - and there it worked OK for both 32bit and 64bit TC with plugins.ini.
So I compared what the difference was, and discovered that it was because I had a copy (for backup) of my plugins.ini file in Total Updaters program directory - once I removed that file everything works as it should.
I now tested it on my Windows 7 machine (until now I have mostly been testing on my Windows XP machine) - and there it worked OK for both 32bit and 64bit TC with plugins.ini.
So I compared what the difference was, and discovered that it was because I had a copy (for backup) of my plugins.ini file in Total Updaters program directory - once I removed that file everything works as it should.
License #524 (1994)
Danish Total Commander Translator
TC 11.03 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1371a
TC 3.50 on Android 6 & 13
Try: TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
Danish Total Commander Translator
TC 11.03 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1371a
TC 3.50 on Android 6 & 13
Try: TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
Bluestar
Ukrainian translation for Total Updater beta6
Ukrainian translation for Total Updater beta6
I use Total Updater and find a problem with Ghisler wdx_exif plugin. The last version is 2.3 and is available from http://www.ghisler.com/plugins.htm#content
The last version described in http://www.totalcmd.net/plugring/exif.html is 2.1, but the download is 1.4...
The last version described in http://www.totalcmd.net/plugring/exif.html is 2.1, but the download is 1.4...