[Python-checkins] r51028 - in python/trunk: Mac/PythonLauncher/FileSettings.m Misc/NEWS
ronald.oussoren
python-checkins at python.org
Tue Aug 1 23:01:02 CEST 2006
Author: ronald.oussoren
Date: Tue Aug 1 23:00:57 2006
New Revision: 51028
Modified:
python/trunk/Mac/PythonLauncher/FileSettings.m
python/trunk/Misc/NEWS
Log:
This fixes bug #1527397: PythonLauncher runs scripts with the wrong working
directory. It also fixes a bug where PythonLauncher failed to launch scripts
when the scriptname (or the path to the script) contains quotes.
Modified: python/trunk/Mac/PythonLauncher/FileSettings.m
==============================================================================
--- python/trunk/Mac/PythonLauncher/FileSettings.m (original)
+++ python/trunk/Mac/PythonLauncher/FileSettings.m Tue Aug 1 23:00:57 2006
@@ -245,12 +245,26 @@
if (value) with_terminal = [value boolValue];
}
+- (NSString*)_replaceSingleQuotes: (NSString*)string
+{
+ /* Replace all single-quotes by '"'"', that way shellquoting will
+ * be correct when the result value is delimited using single quotes.
+ */
+ NSArray* components = [string componentsSeparatedByString:@"'"];
+
+ return [components componentsJoinedByString:@"'\"'\"'"];
+}
+
- (NSString *)commandLineForScript: (NSString *)script
{
NSString *cur_interp = NULL;
+ NSString* script_dir = NULL;
char hashbangbuf[1024];
FILE *fp;
char *p;
+
+ script_dir = [script substringToIndex:
+ [script length]-[[script lastPathComponent] length]];
if (honourhashbang &&
(fp=fopen([script cString], "r")) &&
@@ -266,8 +280,9 @@
cur_interp = interpreter;
return [NSString stringWithFormat:
- @"\"%@\"%s%s%s%s%s%s %@ \"%@\" %@ %s",
- cur_interp,
+ @"cd '%@' && '%@'%s%s%s%s%s%s %@ '%@' %@ %s",
+ [self _replaceSingleQuotes:script_dir],
+ [self _replaceSingleQuotes:cur_interp],
debug?" -d":"",
verbose?" -v":"",
inspect?" -i":"",
@@ -275,7 +290,7 @@
nosite?" -S":"",
tabs?" -t":"",
others,
- script,
+ [self _replaceSingleQuotes:script],
scriptargs,
with_terminal? "&& echo Exit status: $? && exit 1" : " &"];
}
Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS (original)
+++ python/trunk/Misc/NEWS Tue Aug 1 23:00:57 2006
@@ -185,6 +185,17 @@
- Bug #1439538: Drop usage of test -e in configure as it is not portable.
+Mac
+---
+
+- PythonLauncher now works correctly when the path to the script contains
+ characters that are treated specially by the shell (such as quotes).
+
+- Bug #1527397: PythonLauncher now launches scripts with the working directory
+ set to the directory that contains the script instead of the user home
+ directory. That latter was an implementation accident and not what users
+ expect.
+
What's New in Python 2.5 beta 2?
================================
More information about the Python-checkins
mailing list