mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Added emacs.py (for misc/py-connect.el).
posixpath.py: added undocumented expanndvars() (expands $VAR in string).
This commit is contained in:
parent
21803b8a6f
commit
4732ccf642
2 changed files with 44 additions and 0 deletions
18
Lib/emacs.py
Normal file
18
Lib/emacs.py
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# Execute Emacs code from a Python interpreter.
|
||||||
|
# This code should be imported from a Python interpreter that is
|
||||||
|
# running as an inferior process of Emacs.
|
||||||
|
# See misc/py-connect.el for the companion Emacs lisp code.
|
||||||
|
# Author: Terrence M. Brannon.
|
||||||
|
|
||||||
|
start_marker = '+'
|
||||||
|
end_marker = '~'
|
||||||
|
|
||||||
|
def eval (string):
|
||||||
|
tmpstr = start_marker + '(' + string + ')' + end_marker
|
||||||
|
print tmpstr
|
||||||
|
|
||||||
|
def dired (directory):
|
||||||
|
eval( 'dired ' + '"' + directory + '"' )
|
||||||
|
|
||||||
|
def buffer_menu ():
|
||||||
|
eval( 'buffer-menu(buffer-list)' )
|
|
@ -230,3 +230,29 @@ def expanduser(path):
|
||||||
return path
|
return path
|
||||||
userhome = pwent[5]
|
userhome = pwent[5]
|
||||||
return userhome + path[i:]
|
return userhome + path[i:]
|
||||||
|
|
||||||
|
|
||||||
|
# Expand paths containing shell variable substitutions.
|
||||||
|
# This is done by piping it through the shell.
|
||||||
|
# Shell quoting characters (\ " ' `) are protected by a backslash.
|
||||||
|
# NB: a future version may avoid starting a subprocess and do the
|
||||||
|
# substitutions internally. This may slightly change the syntax
|
||||||
|
# for variables.
|
||||||
|
|
||||||
|
def expandvars(path):
|
||||||
|
if '$' not in path:
|
||||||
|
return path
|
||||||
|
q = ''
|
||||||
|
for c in path:
|
||||||
|
if c in ('\\', '"', '\'', '`'):
|
||||||
|
c = '\\' + c
|
||||||
|
q = q + c
|
||||||
|
d = '!'
|
||||||
|
if q == d:
|
||||||
|
d = '+'
|
||||||
|
p = posix.popen('cat <<' + d + '\n' + q + '\n' + d + '\n', 'r')
|
||||||
|
res = p.read()
|
||||||
|
del p
|
||||||
|
if res[-1:] == '\n':
|
||||||
|
res = res[:-1]
|
||||||
|
return res
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue