https://bugzilla.wikimedia.org/show_bug.cgi?id=68315
Bug ID: 68315
Summary: config default editor on Windows detection fails
Product: Pywikibot
Version: core (2.0)
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: Unprioritized
Component: General
Assignee: Pywikipedia-bugs(a)lists.wikimedia.org
Reporter: jayvdb(a)gmail.com
Web browser: ---
Mobile Platform: ---
Steps to reproduce (core):
1. Set up an editor for .txt
2. Run python pwb.py pywikibot/config2.py
Expected results:
The 'editor' config variable should be set to the editor set up for .txt. i.e.
editor='C:\\Path\\to\\editor.exe'
Actual results:
editor=None
pywikibot configuration tries to automatically detect a text editor to use,
using the Windows registry key
Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\OpenWithProgids
That exists for WinXP and later versions, and documentation can be found here:
http://msdn.microsoft.com/en-us/library/bb166549.aspx
http://msdn.microsoft.com/en-us/library/bb165967.aspx
As can be seen in that documentation, the key name is relevant, and the key
value is always REG_NONE (zero-length binary value)
However to find the appropriate progid within that key, pywikbot uses
_winreg.EnumValue(key, 1)
As can be seen at
https://docs.python.org/2/library/_winreg.html#_winreg.EnumValue , the '1' in
the second parameter returns "An object that holds the value data, and whose
type depends on the underlying registry type".
Changing it to _winreg.EnumValue(key, 0) causes _winreg to return "A string
that identifies the value name" and suddenly the detection works correctly.
This has existed since the first version in compat/ in 2007
https://git.wikimedia.org/blobdiff/pywikibot%2Fcompat/36a702559c94c0b12f5cc…
However, it doesnt really work as one would expect, since it hooks onto .txt,
rather than .py
--
You are receiving this mail because:
You are the assignee for the bug.