forked from emacs-mirror/emacs
-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
330a48a
commit a611c05
Showing
6 changed files
with
233 additions
and
96 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,7 +11,7 @@ jobs: | |
- name: checkout | ||
uses: actions/[email protected] | ||
- run: brew update | ||
- run: brew install make automake gettext texinfo gawk gdb coreutils gnu-sed gnu-which llvm clang-build-analyzer clang-format | ||
- run: brew install make automake gettext texinfo gawk gdb coreutils gnu-sed gnu-which clang-build-analyzer clang-format | ||
env: | ||
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 | ||
HOMEBREW_VERBOSE_USING_DOTS: 1 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,3 +6,5 @@ images/icons/* | |
*.log | ||
refcards/emacsver.tex | ||
refcards/*.pdf | ||
*.pyc | ||
__pycache__/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
"""Definitions used by commands sent to inferior Python in python.el.""" | ||
|
||
# -*- coding: utf-8; mode: python; indent-tabs-mode: nil; -*- | ||
# Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. | ||
# Author: Dave Love <[email protected]> | ||
|
||
|
@@ -21,92 +22,103 @@ | |
# Boston, MA 02110-1301, USA. | ||
|
||
import os, sys, traceback, inspect, rlcompleter, __main__ | ||
import importlib | ||
|
||
__all__ = ["eexecfile", "args", "complete", "ehelp", "eimport"] | ||
|
||
def eexecfile (file): | ||
|
||
def eexecfile(file): | ||
"""Execute FILE and then remove it. | ||
If we get an exception, print a traceback with the top frame | ||
(oursleves) excluded.""" | ||
try: | ||
try: execfile (file, globals (), globals ()) | ||
except: | ||
(type, value, tb) = sys.exc_info () | ||
# Lose the stack frame for this location. | ||
tb = tb.tb_next | ||
if tb is None: # print_exception won't do it | ||
print "Traceback (most recent call last):" | ||
traceback.print_exception (type, value, tb) | ||
try: | ||
exec(compile(open(file, "rb").read(), file, "exec"), globals(), globals()) | ||
except: | ||
(type, value, tb) = sys.exc_info() | ||
# Lose the stack frame for this location. | ||
tb = tb.tb_next | ||
if tb is None: # print_exception fails to do it | ||
print("Traceback (most recent call last):") | ||
traceback.print_exception(type, value, tb) | ||
finally: | ||
os.remove (file) | ||
os.remove(file) | ||
|
||
|
||
def eargs (name): | ||
def eargs(name): | ||
"Get arglist of NAME for Eldoc &c." | ||
try: | ||
parts = name.split ('.') | ||
if len (parts) > 1: | ||
exec 'import ' + parts[0] # might fail | ||
func = eval (name) | ||
if inspect.isbuiltin (func): | ||
doc = func.__doc__ | ||
if doc.find (' ->') != -1: | ||
print '_emacs_out', doc.split (' ->')[0] | ||
elif doc.find ('\n') != -1: | ||
print '_emacs_out', doc.split ('\n')[0] | ||
return | ||
if inspect.ismethod (func): | ||
func = func.im_func | ||
if not inspect.isfunction (func): | ||
parts = name.split(".") | ||
if len(parts) > 1: | ||
exec("import " + parts[0]) # might fail | ||
func = eval(name) | ||
if inspect.isbuiltin(func): | ||
doc = func.__doc__ | ||
if doc.find(" ->") != -1: | ||
print("_emacs_out", doc.split(" ->")[0]) | ||
elif doc.find("\n") != -1: | ||
print("_emacs_out", doc.split("\n")[0]) | ||
return | ||
(args, varargs, varkw, defaults) = inspect.getargspec (func) | ||
# No space between name and arglist for consistency with builtins. | ||
print '_emacs_out', \ | ||
func.__name__ + inspect.formatargspec (args, varargs, varkw, | ||
defaults) | ||
except: pass | ||
|
||
def complete (text, namespace = None): | ||
if inspect.ismethod(func): | ||
func = func.__func__ | ||
if not inspect.isfunction(func): | ||
return | ||
(args, varargs, varkw, defaults) = inspect.getargspec(func) | ||
# No space between name and arglist for consistency with builtins. | ||
print( | ||
"_emacs_out", | ||
func.__name__ + inspect.formatargspec(args, varargs, varkw, defaults), | ||
) | ||
except: | ||
pass | ||
|
||
|
||
def complete(text, namespace=None): | ||
"""Complete TEXT in NAMESPACE and print a Lisp list of completions. | ||
NAMESPACE is currently not used.""" | ||
if namespace is None: namespace = __main__.__dict__ | ||
c = rlcompleter.Completer (namespace) | ||
if namespace is None: | ||
namespace = __main__.__dict__ | ||
c = rlcompleter.Completer(namespace) | ||
try: | ||
if '.' in text: | ||
matches = c.attr_matches (text) | ||
else: | ||
matches = c.global_matches (text) | ||
print '_emacs_out (', | ||
for elt in matches: | ||
print '"%s"' % elt, | ||
print ')' | ||
if "." in text: | ||
matches = c.attr_matches(text) | ||
else: | ||
matches = c.global_matches(text) | ||
print("_emacs_out (", end=" ") | ||
for elt in matches: | ||
print('"%s"' % elt, end=" ") | ||
print(")") | ||
except: | ||
print '_emacs_out ()' | ||
print("_emacs_out ()") | ||
|
||
|
||
def ehelp (name, g, l): | ||
def ehelp(name, g, l): | ||
"""Get help on string NAME using globals G and locals L. | ||
First try to eval name for, e.g. user definitions where we need | ||
the object. Otherwise try the string form.""" | ||
try: help (eval (name, g, l)) | ||
except: help (name) | ||
try: | ||
help(eval(name, g, l)) | ||
except: | ||
help(name) | ||
|
||
def eimport (mod, dir): | ||
|
||
def eimport(mod, dir): | ||
"""Import module MOD with directory DIR at the head of the search path. | ||
NB doesn't load from DIR if MOD shadows a system module.""" | ||
path0 = sys.path[0] | ||
sys.path[0] = dir | ||
try: | ||
try: | ||
if globals().has_key(mod) and inspect.ismodule (eval (mod)): | ||
reload(eval (mod)) | ||
else: | ||
globals ()[mod] = __import__ (mod) | ||
except: | ||
(type, value, tb) = sys.exc_info () | ||
print "Traceback (most recent call last):" | ||
traceback.print_exception (type, value, tb.tb_next) | ||
if mod in globals() and inspect.ismodule(eval(mod)): | ||
importlib.reload(eval(mod)) | ||
else: | ||
globals()[mod] = __import__(mod) | ||
except: | ||
(type, value, tb) = sys.exc_info() | ||
print("Traceback (most recent call last):") | ||
traceback.print_exception(type, value, tb.tb_next) | ||
finally: | ||
sys.path[0] = path0 | ||
sys.path[0] = path0 | ||
|
||
|
||
print '_emacs_ok' # ready for input and can call continuation | ||
print("_emacs_ok") # ready for input and can call continuation | ||
|
||
# arch-tag: d90408f3-90e2-4de4-99c2-6eb9c7b9ca46 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
--- emacs.py (original) | ||
+++ emacs.py (refactored) | ||
@@ -22,6 +22,7 @@ | ||
# Boston, MA 02110-1301, USA. | ||
|
||
import os, sys, traceback, inspect, rlcompleter, __main__ | ||
+import importlib | ||
|
||
__all__ = ["eexecfile", "args", "complete", "ehelp", "eimport"] | ||
|
||
@@ -29,13 +30,13 @@ | ||
"""Execute FILE and then remove it. | ||
If we get an exception, print a traceback with the top frame | ||
(oursleves) excluded.""" | ||
- try: execfile (file, globals (), globals ()) | ||
+ try: exec(compile(open(file, "rb").read(), file, 'exec'), globals (), globals ()) | ||
except: | ||
(type, value, tb) = sys.exc_info () | ||
# Lose the stack frame for this location. | ||
tb = tb.tb_next | ||
if tb is None: # print_exception fails to do it | ||
- print "Traceback (most recent call last):" | ||
+ print("Traceback (most recent call last):") | ||
traceback.print_exception (type, value, tb) | ||
finally: | ||
os.remove (file) | ||
@@ -45,24 +46,24 @@ | ||
try: | ||
parts = name.split ('.') | ||
if len (parts) > 1: | ||
- exec 'import ' + parts[0] # might fail | ||
+ exec('import ' + parts[0]) # might fail | ||
func = eval (name) | ||
if inspect.isbuiltin (func): | ||
doc = func.__doc__ | ||
if doc.find (' ->') != -1: | ||
- print '_emacs_out', doc.split (' ->')[0] | ||
+ print('_emacs_out', doc.split (' ->')[0]) | ||
elif doc.find ('\n') != -1: | ||
- print '_emacs_out', doc.split ('\n')[0] | ||
+ print('_emacs_out', doc.split ('\n')[0]) | ||
return | ||
if inspect.ismethod (func): | ||
- func = func.im_func | ||
+ func = func.__func__ | ||
if not inspect.isfunction (func): | ||
return | ||
(args, varargs, varkw, defaults) = inspect.getargspec (func) | ||
# No space between name and arglist for consistency with builtins. | ||
- print '_emacs_out', \ | ||
+ print('_emacs_out', \ | ||
func.__name__ + inspect.formatargspec (args, varargs, varkw, | ||
- defaults) | ||
+ defaults)) | ||
except: pass | ||
|
||
def complete (text, namespace = None): | ||
@@ -75,12 +76,12 @@ | ||
matches = c.attr_matches (text) | ||
else: | ||
matches = c.global_matches (text) | ||
- print '_emacs_out (', | ||
+ print('_emacs_out (', end=' ') | ||
for elt in matches: | ||
- print '"%s"' % elt, | ||
- print ')' | ||
+ print('"%s"' % elt, end=' ') | ||
+ print(')') | ||
except: | ||
- print '_emacs_out ()' | ||
+ print('_emacs_out ()') | ||
|
||
def ehelp (name, g, l): | ||
"""Get help on string NAME using globals G and locals L. | ||
@@ -96,17 +97,17 @@ | ||
sys.path[0] = dir | ||
try: | ||
try: | ||
- if globals().has_key(mod) and inspect.ismodule (eval (mod)): | ||
- reload(eval (mod)) | ||
+ if mod in globals() and inspect.ismodule (eval (mod)): | ||
+ importlib.reload(eval (mod)) | ||
else: | ||
globals ()[mod] = __import__ (mod) | ||
except: | ||
(type, value, tb) = sys.exc_info () | ||
- print "Traceback (most recent call last):" | ||
+ print("Traceback (most recent call last):") | ||
traceback.print_exception (type, value, tb.tb_next) | ||
finally: | ||
sys.path[0] = path0 | ||
|
||
-print '_emacs_ok' # ready for input and can call continuation | ||
+print('_emacs_ok') # ready for input and can call continuation | ||
|
||
# arch-tag: d90408f3-90e2-4de4-99c2-6eb9c7b9ca46 |
Oops, something went wrong.