From: SourceForge.net <no...@so...> - 2012-05-27 07:56:04
|
Bugs item #3529234, was opened at 2012-05-23 15:01 Message generated for change (Comment added) made by jeremynicoll You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=3529234&group_id=119701 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Installation Group: Next Release >Status: Open Resolution: Fixed Priority: 5 Private: No Submitted By: Jeremy C B Nicoll (jeremynicoll) Assigned to: Mark Miesfeld (miesfeld) Summary: Win32 installer for 4.1.1 broken Initial Comment: After running 4.1.1.7797 install on a machine (XP Pro SP3 etc) which had had a previous 4.0.0 install completely removed (including my trawling through the registry to remove remnants the uninstall did not remove), I find that Windows Explorer sees all three file extensions (.rex .rexh .rexp) as identical; running any of these types of program by a double-click causes them to run under rexxpaws.exe. The reason is that in the install dialog there's no checking that the "file type" text one provides (defaults RexxScript, RexxHide, RexxPaws) are single words. I had no idea that they should be, because - as a Windows user - I'm used to seeing multiword values in the Window Explorer 'File Type' column. Indeed, with V4.0.0 I had my own definitions in the registry to make what was shown in these columns for each ooRexx filetype show up as several words... so this is what I thought I was telling the installer to do. The values I provided to the installer have actually been correctly saved in the registry in an uninstall key: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ooRexx RexxAssociation REG_SZ .rex ooRexx cmdwin RexxHideAssociation REG_SZ .rexh ooRexx hidden RexxPawsAssociation REG_SZ .rexp ooRexx paused Clearly what's happened is that only the first word of the phrases I supplied has been used in file associations. Using the 'assoc' command I see the 3 extensions defined as: .rex=ooRexx .rexh=ooRexx .rexp=ooRexx and HKEY_CLASSES_ROOT\.rex and HKEY_CLASSES_ROOT\.rexh and HKEY_CLASSES_ROOT\.rexp all have value: (Default) REG_SZ ooRexx which I assume points to the value in HKEY_CLASSES_ROOT\ooRexx whose subkeys define rexxpaws.exe. (I assume the installer did make three definitions but as they were all for "ooRexx" only the third one (which I think would have been rexxpaws, it being preceded by rexxhide and rexx) survives. So all filetypes have the same action. Slightly less easy to understand is why there's a definition at HKEY_CLASSES_ROOT\Applications\rexxpaws.exe but nothing corresponding to that for rexx.exe and rexxhide.exe I've not looked exhaustively for all discrepancies. In Windows Explorer what I actually see in the FileType column is the text: ooRexx Rexx pausing Program which is defined in key HKEY_CLASSES_ROOT\ooRexx as (Default) REG_SZ ooRexx Rexx pausing Progam In V400 I had my own definitions in the three corresponding places. To be honest I don't want to see something as long-winded as this default text especially with "ooRexx" and "Rexx" in the text. I really think this user-facing text should be settable by the user.. In my old V400 definitions the structure I had was: HKEY_CLASSES_ROOT\.REX (Default) REG_SZ REXXScript <==== supplied by the V400 installer I assume HKEY_CLASSES_ROOT\.rexh (Default) REG_SZ rexh_auto_file <==== set by me, modelled on eg Python file types, I think HKEY_CLASSES_ROOT\.rexp (Default) REG_SZ rexp_auto_file <==== set by me, modelled on eg Python file types, I think then HKEY_CLASSES_ROOT\Applications\rexx.exe (Default) REG_SZ (not set) HKEY_CLASSES_ROOT\Applications\rexx.exe\shell (Default) REG_SZ open <=== don't know why this is here HKEY_CLASSES_ROOT\Applications\rexx.exe\shell\open (Default) REG_SZ Run <=== don't know why this is here HKEY_CLASSES_ROOT\Applications\rexx.exe\shell\open\command (Default) REG_SZ "C:\Program Files\~O-folder\ooRexxV3201\rexx.exe" "%1" %* <==== clearly not recently used, where did that V3201 come from? HKEY_CLASSES_ROOT\Applications\rexxhide.exe (Default) REG_SZ (not set) <== added by me, worked fine HKEY_CLASSES_ROOT\Applications\rexxhide.exe\shell (Default) REG_SZ (not set) <== added by me, worked fine HKEY_CLASSES_ROOT\Applications\rexxhide.exe\shell\open (Default) REG_SZ (not set) <== added by me, worked fine HKEY_CLASSES_ROOT\Applications\rexxhide.exe\shell\open\command (Default) REG_SZ "C:\Program Files\~O-folder\ooRexxV400\rexxhide.exe" "%1" HKEY_CLASSES_ROOT\Applications\rexxpaws.exe (Default) REG_SZ (not set) <== added by me, worked fine HKEY_CLASSES_ROOT\Applications\rexxpaws.exe\shell (Default) REG_SZ (not set) <== added by me, worked fine HKEY_CLASSES_ROOT\Applications\rexxpaws.exe\shell\open (Default) REG_SZ (not set) <== added by me, worked fine HKEY_CLASSES_ROOT\Applications\rexxpaws.exe\shell\open\command (Default) REG_SZ "C:\Program Files\~O-folder\ooRexxV400\rexxpaws.exe" "%1" and HKEY_CLASSES_ROOT\rexh_auto_file (Default) REG_SZ ooREXX hidden <==== my filetype text HKEY_CLASSES_ROOT\rexh_auto_file\shell (Default) REG_SZ (not set) HKEY_CLASSES_ROOT\rexh_auto_file\shell\open (Default) REG_SZ (not set) HKEY_CLASSES_ROOT\rexh_auto_file\shell\open\command (Default) REG_SZ "C:\Program Files\~O-folder\ooRexxV400\rexxhide.exe" "%1" HKEY_CLASSES_ROOT\rexp_auto_file (Default) REG_SZ ooREXX paused <==== my filetype text HKEY_CLASSES_ROOT\rexp_auto_file\shell (Default) REG_SZ (not set) HKEY_CLASSES_ROOT\rexp_auto_file\shell\open (Default) REG_SZ (not set) HKEY_CLASSES_ROOT\rexp_auto_file\shell\open\command (Default) REG_SZ "C:\Program Files\~O-folder\ooRexxV400\rexxpaws.exe" "%1" and stuff presumably set by the V400 installer: HKEY_CLASSES_ROOT\REXXScript (Default) REG_SZ ooRexx Rexx Program HKEY_CLASSES_ROOT\REXXScript\DefaultIcon (Default) REG_SZ C:\Program Files\~O-folder\ooRexxV400\rexx.exe,0 HKEY_CLASSES_ROOT\REXXScript\shell (Default) REG_SZ open <=== don't think that value is needed HKEY_CLASSES_ROOT\REXXScript\shell\edit (Default) REG_SZ Edit <=== don't think that value is needed HKEY_CLASSES_ROOT\REXXScript\shell\edit\command (Default) REG_SZ notepad.exe "%1" HKEY_CLASSES_ROOT\REXXScript\shell\open (Default) REG_SZ Run <=== don't think that value is needed HKEY_CLASSES_ROOT\REXXScript\shell\open\command (Default) REG_SZ "C:\Program Files\~O-folder\ooRexxV400\rexx.exe" "%1" %* HKEY_CLASSES_ROOT\REXXScript\shellex (Default) REG_SZ (not set) HKEY_CLASSES_ROOT\REXXScript\shellex\DropHandler (Default) REG_SZ {60254CA5-953B-11CF-8C96-00AA00B8708C} and HKEY_CURRENT_USER\Software\Classes\Applications\rexxhide.exe (Default) REG_SZ (not set) HKEY_CURRENT_USER\Software\Classes\Applications\rexxhide.exe\shell (Default) REG_SZ (not set) HKEY_CURRENT_USER\Software\Classes\Applications\rexxhide.exe\shell\open (Default) REG_SZ (not set) HKEY_CURRENT_USER\Software\Classes\Applications\rexxhide.exe\shell\open\command (Default) REG_SZ "C:\Program Files\~O-folder\ooRexxV400\rexxhide.exe" "%1" HKEY_CURRENT_USER\Software\Classes\Applications\rexxpaws.exe (Default) REG_SZ (not set) HKEY_CURRENT_USER\Software\Classes\Applications\rexxpaws.exe\shell (Default) REG_SZ (not set) HKEY_CURRENT_USER\Software\Classes\Applications\rexxpaws.exe\shell\open (Default) REG_SZ (not set) HKEY_CURRENT_USER\Software\Classes\Applications\rexxpaws.exe\shell\open\command (Default) REG_SZ "C:\Program Files\~O-folder\ooRexxV400\rexxpaws.exe" "%1" I see some of my old settings had args "%1" while others had "%1" %* but I understand why that is;probably they should all be the latter.: As well as these issues, I tried right clicking a .rexh file in Windows Explorer and choosing "Open With...". In the dialog that comes up the recommended program is described as: <icon> Open Object Rexx Interface which gives no clue at all which .exe it means. Likewise if one or more executables are listed in "Other Programs". You can't tell them apart, so you always have to click "Browse" and go and find the executable you want to use as click it. The text shows up in the registry in the MUICache associated with the filepath to each of the executables. (IIRC MUICache is for cacheing values that are locale-dependent in the windows user interface.) If you look at the three executables in Windows Explorer they all have this value in their "Description" field. Really, it should differ a little... If I make changes to MUICache entries using regedit the new texts show up instantly in "Open With..." dialogs etc. I've always meant to use an exec to load differing texts into MUICache after every reboot, and never got around to it, but it would be better if it was fixed at source. Lastly, PATHEXT has been updated with the three new file extensions and looks like: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.PSC1;.rex;.rexh;.rexp but I wonder if the new entries should be in uppercase like all the others? Just at the moment I can't quite decide whether I should fix all the registry issues by hand (after all I do know what's needed where), or whether I should uninstall (which might not work properly either) then reinstall providing different single-token 'filetype' values so at least I'll have what you guys intended. Hmm. Neither is all that attractive, if there might be a revised installer coming along in due course... ---------------------------------------------------------------------- >Comment By: Jeremy C B Nicoll (jeremynicoll) Date: 2012-05-27 00:56 Message: OK... First the "no spaces" thing: something else that occurs to me is to ask whether the installer checks that the user provides 3 different values for the "filetype" tokens? Because if not, the actions they'll map on to will not be separated in the registry. TBH I don't understand why you bother asking the user for "filetype" values. In XP I have never seen those values displayed anywhere in the GUI. Of course you can see that 'assoc' shows that (eg) .rexh is filetype 'RexxHide', but so what? If the value the user provides isn't visible to the user why ask them to provide it? It'd be simpler if you just automatically used values like "rexh_auto_file". The real work is done by the registry key that defines what that label, eg "rexh_auto_file" is. The installer creates a key: HKEY_CLASSES_ROOT\<thatlabel> (Default) REG_SZ ooRexx Rexx GUI Progam I don't like the text values you create by default - long winded (eg rexxpaws's "ooRexx Rexx pausing Progam") and in rexxhide's case, not even accurate. A .rexh exec is NOT a "ooRexx Rexx GUI Progam"; it's a program that one doesn't want output from. Nearly all my .rexh execs are automatically scheduled by Windows' Scheduled Tasks and generate nothing except log files. Of course if one is writing an ooDialog program it makes sense to use .rexh, but that doesn't mean all .rexh execs are GUI execs. Anyway, if you must ask the user to provide a "filetype" value, it would be better to use what they provide to populate this field and use your own internal labels for "rex_auto_file", "rexxh_auto_file", "rexp_auto_file" etc, ie <suppliedextension>_auto_file" in each case. I change the values you provide (manually in the past, but now with an exec that I run after your install is finished) to acheive terser and more accurate values in HKEY_CLASSES_ROOT\<thoselabels>; the values I set are "ooREXX cmdwin" (for .rex), "ooREXX hidden" and "ooREXX paused". These then show up in Windows Explorer's FileType column, and in the WE Properties pane for a rexx exec. See screenshot for a rexx-exec's properties. ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2012-05-26 16:54 Message: Committed revision 7801. Committed revision 7802. in bug fix branch The commits listed in this tracker item address these issues: 1.) Fix spelling error Progam. 2.) Add text to the labels for the file extension and file type name saying "(no spaces)" 3.) Check the user entered values for those fields for spaces. If found put up a message saying the values can not contain space and return the user to the page. 4.) Upper case the extension when writing the PATHEXT, to match what Microsoft does. Jeremy, I appreciate all the detail you've gone to in describing this bug you opened. But, it is a little difficult for me to sort out what all needs to be fixed. So, if there is something else you think needs to be addressed would you open a separate bug for it. I'm marking this one as fixe. ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2012-05-26 14:17 Message: Committed revision 7799. fixes spelling error: Progam Committed revision 7800. bug fix branch ---------------------------------------------------------------------- Comment By: Jeremy C B Nicoll (jeremynicoll) Date: 2012-05-23 17:50 Message: I decided to uninstall and reinstall. in the second install I left the filetype values at their defaults (though changed .rexg to .rexh) and things worked much better. I noticed though that the texts displayed in the Window Explorer FileType columns all have a spelling mistake... They say: .rex "ooRexx Rexx Progam" .rexh "ooRexx Rexx GUI Progam" .rexp "ooRexx Rexx pausing Progam" Program has two "R"s in it... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=3529234&group_id=119701 |