Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-30374: Fixed several bugs in win_add2path.py #1645

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Conversation

XDcsy
Copy link

@XDcsy XDcsy commented May 18, 2017

  • Discard DEFAULT = "%PATH%". The system PATH is effective to all users[1] so adding "%PATH%" in user PATH is unnecessary.
  • os.path.isdir() always return False because the input path includes "%APPDATA%" and also because the USER_SITE directory does not yet exist when Python is just installed. It is now deleted to make paths be added correctly.
  • The script compulsively sets the type of PATH var to REG_EXPAND_SZ to make the reference "%APPDATA%" effective[2] . However this is not a good practice (brought forward by Eryk Sun in the issue). Now the script does not change the type of PATH. If it's REG_SZ, the absolute path of %APPDATA% will be added instead.
  • The script needs users to log off and then log back on to take effect. Now it takes effect immediately by broadcasting a WM_SETTINGCHANG message[3] after the change of env vars.
  • Now displays error massages when fails to load PATH values or fails to refresh env vars.

https://bugs.python.org/issue30374

* Discard the DEFAULT "%PATH%" value.
* Delete wrong `os.path.isdir()`.
* Add absolute path instead of `%APPDATA%...` if the type of PATH is `REG_SZ`.
* Broadcast a `WM_SETTINGCHANG` message after the change of env vars.
* Add codes to deal with possible errors.
@mention-bot
Copy link

@mention-bot mention-bot commented May 18, 2017

@neEverett, thanks for your PR! By analyzing the history of the files in this pull request, we identified @benjaminp, @tiran and @birkenfeld to be potential reviewers.

@serhiy-storchaka serhiy-storchaka requested a review from Dec 8, 2018
@serhiy-storchaka serhiy-storchaka added the type-bug label Dec 8, 2018
Copy link
Member

@zooba zooba left a comment

Thanks for this! Overall they are good looking changes, just a few loose ends to tidy up.

@@ -11,43 +11,67 @@
import site
import os
import winreg
import ctypes
Copy link
Member

@zooba zooba Feb 2, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Put in alphabetical order

envpath, dtype = winreg.QueryValueEx(key, PATH)
except FileNotFoundError:
envpath, dtype = "", winreg.REG_EXPAND_SZ
pass
Copy link
Member

@zooba zooba Feb 2, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unnecessary pass

except:
raise OSError("Failed to load PATH value")

if hasattr(site, "USER_SITE") and dtype == winreg.REG_EXPAND_SZ:
Copy link
Member

@zooba zooba Feb 2, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This hasattr check doesn't apply to the subsequent elif block, or rather, if the first check here fails then we may end up crashing in the elif block.

XDcsy added 2 commits Feb 4, 2019
Fixed the problems mentioned here: python#1645
Fixed the problems mentioned here: python#1645
@csabella
Copy link
Contributor

@csabella csabella commented Jan 27, 2020

Closing and reopening to retrigger tests.

@csabella csabella closed this Jan 27, 2020
@csabella csabella reopened this Jan 27, 2020
@csabella csabella requested review from zooba and zware Jan 27, 2020
@github-actions
Copy link

@github-actions github-actions bot commented Feb 19, 2022

This PR is stale because it has been open for 30 days with no activity.

@github-actions github-actions bot added the stale label Feb 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting review CLA signed stale type-bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants