[Python-checkins] cpython (merge default -> default): Merge

brett.cannon python-checkins at python.org
Tue Jan 31 20:58:14 CET 2012


http://hg.python.org/cpython/rev/06d47538af89
changeset: 74700:06d47538af89
parent: 74699:2d0ff4d82b14
parent: 74697:bf31815548c9
user: Brett Cannon <brett at python.org>
date: Tue Jan 31 14:58:07 2012 -0500
summary:
 Merge
files:
 Lib/idlelib/PyShell.py | 19 +++++++++++++------
 Lib/idlelib/ScriptBinding.py | 5 ++---
 Misc/ACKS | 1 +
 Misc/NEWS | 3 +++
 Modules/zipimport.c | 9 +++++----
 5 files changed, 24 insertions(+), 13 deletions(-)
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -411,11 +411,11 @@
 self.rpcclt.register("flist", self.tkconsole.flist)
 self.rpcclt.register("linecache", linecache)
 self.rpcclt.register("interp", self)
- self.transfer_path()
+ self.transfer_path(with_cwd=True)
 self.poll_subprocess()
 return self.rpcclt
 
- def restart_subprocess(self):
+ def restart_subprocess(self, with_cwd=False):
 if self.restarting:
 return self.rpcclt
 self.restarting = True
@@ -439,7 +439,7 @@
 except socket.timeout as err:
 self.display_no_subprocess_error()
 return None
- self.transfer_path()
+ self.transfer_path(with_cwd=with_cwd)
 # annotate restart in shell window and mark it
 console.text.delete("iomark", "end-1c")
 if was_executing:
@@ -492,12 +492,18 @@
 except OSError:
 return
 
- def transfer_path(self):
+ def transfer_path(self, with_cwd=False):
+ if with_cwd: # Issue 13506
+ path = [''] # include Current Working Directory
+ path.extend(sys.path)
+ else:
+ path = sys.path
+
 self.runcommand("""if 1:
 import sys as _sys
 _sys.path = %r
 del _sys
- \n""" % (sys.path,))
+ \n""" % (path,))
 
 active_seq = None
 
@@ -1191,7 +1197,8 @@
 self.text.see("restart")
 
 def restart_shell(self, event=None):
- self.interp.restart_subprocess()
+ "Callback for Run/Restart Shell Cntl-F6"
+ self.interp.restart_subprocess(with_cwd=True)
 
 def showprompt(self):
 self.resetoutput()
diff --git a/Lib/idlelib/ScriptBinding.py b/Lib/idlelib/ScriptBinding.py
--- a/Lib/idlelib/ScriptBinding.py
+++ b/Lib/idlelib/ScriptBinding.py
@@ -144,10 +144,9 @@
 return 'break'
 if not self.tabnanny(filename):
 return 'break'
- shell = self.shell
- interp = shell.interp
+ interp = self.shell.interp
 if PyShell.use_subprocess:
- shell.restart_shell()
+ interp.restart_subprocess(with_cwd=False)
 dirname = os.path.dirname(filename)
 # XXX Too often this discards arguments the user just set...
 interp.runcommand("""if 1:
diff --git a/Misc/ACKS b/Misc/ACKS
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -880,6 +880,7 @@
 Ty Sarna
 Ben Sayer
 sbt
+Marco Scataglini
 Andrew Schaaf
 Michael Scharf
 Andreas Schawo
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -463,6 +463,9 @@
 Library
 -------
 
+- Issue #13506: Add '' to path for IDLE Shell when started and restarted with Restart Shell.
+ Original patches by Marco Scataglini and Roger Serwy.
+
 - Issue #8828: Add new function os.replace(), for cross-platform renaming
 with overwriting.
 
diff --git a/Modules/zipimport.c b/Modules/zipimport.c
--- a/Modules/zipimport.c
+++ b/Modules/zipimport.c
@@ -728,14 +728,15 @@
 PyObject *files = NULL;
 FILE *fp;
 unsigned short flags;
- long compress, crc, data_size, file_size, file_offset, date, time;
- long header_offset, name_size, header_size, header_position;
+ short compress, time, date, name_size;
+ long crc, data_size, file_size, header_size;
+ Py_ssize_t file_offset, header_position, header_offset;
 long l, count;
 Py_ssize_t i;
 char name[MAXPATHLEN + 5];
 PyObject *nameobj = NULL;
 char *p, endof_central_dir[22];
- long arc_offset; /* offset from beginning of file to start of zip-archive */
+ Py_ssize_t arc_offset; /* Absolute offset to start of the zip-archive. */
 PyObject *path;
 const char *charset;
 int bootstrap;
@@ -835,7 +836,7 @@
 path = PyUnicode_FromFormat("%U%c%U", archive, SEP, nameobj);
 if (path == NULL)
 goto error;
- t = Py_BuildValue("Niiiiiii", path, compress, data_size,
+ t = Py_BuildValue("Nhllnhhl", path, compress, data_size,
 file_size, file_offset, time, date, crc);
 if (t == NULL)
 goto error;
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /