Total Updater 0.8.6.9 - Total Commander & plugin updater

Discuss and announce Total Commander plugins, addons and other useful tools here, both their usage and their development.

Moderators: white, Hacker, petermad, Stefan2

Post Reply
User avatar
Bluestar
Senior Member
Senior Member
Posts: 377
Joined: 2007-06-10, 15:26 UTC
Location: Hungary
Contact:

Post by *Bluestar »

@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. :P

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... :roll: 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
» Developer of Total Updater & extDir utility.
User avatar
petermad
Power Member
Power Member
Posts: 14808
Joined: 2003-02-05, 20:24 UTC
Location: Denmark
Contact:

Post by *petermad »

Do you know about any other 'tricky' keys like "UseIniInProgramDir" available for TC, which I should check for & handle?
Well, apart from redirection to a specific file like this:

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
of which TU currently supports the last three (and also %COMMANDER_EXE%\..\plugins.ini) - there can also be a general redirection by using: AlternateUserIni=<somename.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
in this case TU should look in mysettings.ini for the plugins sections.


Then there is the pluginbasedir= parameter - for example:

Code: Select all

pluginbasedir=%COMMANDER_PATH%\MYPLUGINS
But it seems that TU is already using this parameter when set to "Load all files from "plugins" directory (not just the installed ones)". It also looks like TU is defaulting to %COMMANDER_PATH%\PLUGINS if the pluginbasedir= parameter is missing, which is a good idea - afterall PLUGINS (with subdirs WDX, WLX, WFX and WCX) is the recommended place for plugins, although this directory structure is not not a demand.
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
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

Bluestar,
Every PE header contains TimeStamp field that usually keeps build date and time. So if there's no version info resource, you can check/compare build dates.
User avatar
EricB
Senior Member
Senior Member
Posts: 355
Joined: 2008-03-25, 22:21 UTC
Location: The Netherlands

Post by *EricB »

@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
User avatar
Bluestar
Senior Member
Senior Member
Posts: 377
Joined: 2007-06-10, 15:26 UTC
Location: Hungary
Contact:

Post by *Bluestar »

@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
Last edited by Bluestar on 2013-02-23, 10:27 UTC, edited 4 times in total.
» Developer of Total Updater & extDir utility.
User avatar
EricB
Senior Member
Senior Member
Posts: 355
Joined: 2008-03-25, 22:21 UTC
Location: The Netherlands

Post by *EricB »

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 ;-)
User avatar
Bluestar
Senior Member
Senior Member
Posts: 377
Joined: 2007-06-10, 15:26 UTC
Location: Hungary
Contact:

Post by *Bluestar »

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
Last edited by Bluestar on 2013-02-23, 10:28 UTC, edited 2 times in total.
» Developer of Total Updater & extDir utility.
User avatar
EricB
Senior Member
Senior Member
Posts: 355
Joined: 2008-03-25, 22:21 UTC
Location: The Netherlands

Post by *EricB »

Well, I just sent my update a few seconds too fast. Anyhow, the new tool is promising, immediately generating the correct ini structure. Are you going to bundle it with TU? Or will it be integrated?

Regards, EricB
User avatar
petermad
Power Member
Power Member
Posts: 14808
Joined: 2003-02-05, 20:24 UTC
Location: Denmark
Contact:

Post by *petermad »

and what if both key exists, AlternateUserIni=mysettings.ini and UseIniInProgramDir=7 too?
Well that must be UseIniInProgramDir=7 - they don't really interfere.

But I found the reason why I cannot make singlefilename in RedirectSection work with TU :!: :roll:

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
User avatar
Bluestar
Senior Member
Senior Member
Posts: 377
Joined: 2007-06-10, 15:26 UTC
Location: Hungary
Contact:

Post by *Bluestar »

@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... :roll: 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.
» Developer of Total Updater & extDir utility.
User avatar
petermad
Power Member
Power Member
Posts: 14808
Joined: 2003-02-05, 20:24 UTC
Location: Denmark
Contact:

Post by *petermad »

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.
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
User avatar
ts-soft
Junior Member
Junior Member
Posts: 66
Joined: 2009-04-19, 21:56 UTC
Location: Berlin

Post by *ts-soft »

Can you add "Total Updater Updater" :wink:
I think, selfupdating is usefull.
User avatar
LonerD
Senior Member
Senior Member
Posts: 381
Joined: 2010-06-19, 20:18 UTC
Location: Makeyevka, Russia
Contact:

Post by *LonerD »

Bluestar
Ukrainian translation for Total Updater beta6
User avatar
Tichij
Junior Member
Junior Member
Posts: 24
Joined: 2011-02-22, 12:33 UTC
Location: Lithuania

Post by *Tichij »

2ts-soft
Place a "Total Updater" in the subdirectory of "Total Commander", for example in: %COMMANDER_PATH%\Tools\TotalUpdater, and selfupdating is ready ... 8)
#49857 Personal licence
Windows 10 Pro 64bit. TC 10.51 32 + 64bit
damjang
Senior Member
Senior Member
Posts: 215
Joined: 2003-10-09, 15:58 UTC
Contact:

Post by *damjang »

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...
Post Reply