You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Having an $EDITOR with arguments raises an exception #11
@davidparsson I forgot about the old behaviour, but this is most likely ibecause to avoid arbitrary code injection, the library uses subprocess.Popen and passes a list according to the following spec:
program, *args = [a1,a2,...]
the OS then resolves the program executable, e.g. looking in $PATH, etc. and tries to execute the program with the name program along with args as arguments (the strings you find in sys.argv). In this case, vim -v is not a valid program as it tries to execute vim<SPACE>-v, which is not found on your system.
If you're using the latest codebase, as in the master branch, it should not be an issue.
EDIT: I was mistaken as I briefly skimmed through the code. Sorry!
All right, if so then that's a shame. Since having a space in an editor is supported by most Unix commands, I think it would make sense to support that here as well.
I think I'm a fan of making this use case work. Does this break editors that have a whitespace in their executable name?
Not sure that's a use case we need to care about, but I guess we can add some heuristics if we need to support it.
My main concern with the PR that I initially looked at was that it changed a couple of other things that seemed unrelated, but I haven't looked too closely yet.
@eugene-eeo, nearly, but not quite. The args passed to Popen for that code are in my case ['subl --wait', '--wait', 'file.txt'] which raises the same exception.
@davidparsson that will be up to @fmoo. However I don't see any drawbacks from this and it makes the library more Unix-friendly so my best guess would be that it would be part of a future release.
@davidparsson that will be up to @fmoo. However I don't see any drawbacks from this and it makes the library more Unix-friendly so my best guess would be that it would be part of a future release.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
Can you share the warning that setuptools displayed? Maybe you've previously published the same version. BTW, my PR that you merged does not include this fix. Let me know if I should include the support for spaces as well, and I'll drop it in and write some tests.
The latest build on pypi is 1.0.3, which is the most recent commit in the
repo. Spaces should no longer raise an exception, but it will treat spaces
like part of the editor filename (e.g., looking for a file named `vim -e`
instead of passing `-e` to vim).
Activity
[-]Having an EDITOR with spaces raises exception[/-][+]Having an EDITOR with spaces raises an exception[/+]eugene-eeo commentedon Nov 4, 2016
@davidparsson I forgot about the old behaviour, but this is most likely ibecause to avoid arbitrary code injection, the library uses subprocess.Popen and passes a list according to the following spec:
the OS then resolves the
programexecutable, e.g. looking in$PATH, etc. and tries to execute the program with the nameprogramalong withargsas arguments (the strings you find insys.argv). In this case,vim -vis not a valid program as it tries to executevim<SPACE>-v, which is not found on your system.If you're using the latest codebase, as in themasterbranch, it should not be an issue.EDIT: I was mistaken as I briefly skimmed through the code. Sorry!
davidparsson commentedon Nov 9, 2016
@eugene-eeo, are you saying that this functionality is intended and not likely to change? I'm seeing this on the
masterbranch as well.eugene-eeo commentedon Nov 9, 2016
@davidparsson I can't read minds, but probably yes. Relevant code: https://github.com/fmoo/python-editor/blob/master/editor.py#L83
davidparsson commentedon Nov 10, 2016
All right, if so then that's a shame. Since having a space in an editor is supported by most Unix commands, I think it would make sense to support that here as well.
eugene-eeo commentedon Nov 11, 2016
I think it can be implemented quite easily using the
shlexmodule. Give me a moment and I'll hack up a version and see if it suits your needs.@davidparsson does this look good? https://gist.github.com/eugene-eeo/f0baa1e79b5efbe240c2d5b3d9a899e8
fmoo commentedon Nov 11, 2016
I think I'm a fan of making this use case work. Does this break editors that have a whitespace in their executable name?
Not sure that's a use case we need to care about, but I guess we can add some heuristics if we need to support it.
My main concern with the PR that I initially looked at was that it changed a couple of other things that seemed unrelated, but I haven't looked too closely yet.
eugene-eeo commentedon Nov 12, 2016
shlex handles
editor\ binaries\ with\ spacesperfectly.davidparsson commentedon Nov 14, 2016
@eugene-eeo, nearly, but not quite. The
argspassed toPopenfor that code are in my case['subl --wait', '--wait', 'file.txt']which raises the same exception.eugene-eeo commentedon Nov 15, 2016
@davidparsson it should work now :)
davidparsson commentedon Nov 15, 2016
@eugene-eeo, indeed it does. Thanks!
Do you think that this will be a part of a future release?
eugene-eeo commentedon Nov 16, 2016
@davidparsson that will be up to @fmoo. However I don't see any drawbacks from this and it makes the library more Unix-friendly so my best guess would be that it would be part of a future release.
fmoo commentedon Nov 17, 2016
I published a 1.0.2, but setuptools is throwing a hissy fit and not letting me upload via cli.
So I tried uploading via the UI, but pip doesn't seem to see it. Any ideas?
eugene-eeo commentedon Nov 17, 2016
Can you share the warning that setuptools displayed? Maybe you've previously published the same version. BTW, my PR that you merged does not include this fix. Let me know if I should include the support for spaces as well, and I'll drop it in and write some tests.
fmoo commentedon Nov 19, 2016
It was an authentication error. Which is weird because I can use the credentials to login through the web UI.
eugene-eeo commentedon Nov 21, 2016
Try checking for extraneous spaces at the end and such.
davidparsson commentedon Nov 21, 2016
@fmoo, please note that a fix for this has not been merged, since it was not included in #12, as stated above.
fmoo commentedon Nov 29, 2016
davidparsson commentedon Jan 25, 2017
@fmoo, sorry, I don't think I can be of any help there.
@eugene-eeo, would you mind opening a pull request with the fix for this issue as well?
eugene-eeo commentedon Jan 27, 2017
@fmoo please don't do that because it's IMO really scary magic that you need to maintain in the future.
@davidparsson sure, give me a moment.
davidparsson commentedon Sep 27, 2017
I'm still having this issue. Is there anything I can do to help get this fixed and released?
eugene-eeo commentedon Oct 15, 2017
@davidparsson I think the bugfix is released in the latest version. If not you can try bugging @fmoo to release the current code to PyPI.
fmoo commentedon Oct 15, 2017
Support editors with spaces with shlex
davidparsson commentedon Oct 16, 2017
I'm still able to reproduce the problem in 1.0.3, and I don't see the fix with
shlexfor this ineditor.pyon master.The gist in #11 (comment) was never committed/merged.
I've opened #15 with those changes.
[-]Having an EDITOR with spaces raises an exception[/-][+]Having an $EDITOR with arguments raises an exception[/+]fmoo commentedon Apr 23, 2019
Also wow I totally missed the updates to this thread last year. I'll take a look after work today.
Add alias for nbtedit to work around python-editor bug