From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14162 invoked by alias); 31 Oct 2011 15:52:22 -0000 Received: (qmail 14152 invoked by uid 22791); 31 Oct 2011 15:52:18 -0000 X-SWARE-Spam-Status: No, hits=-7.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,SPF_HELO_PASS X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 31 Oct 2011 15:51:59 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p9VFpxM2012241 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 31 Oct 2011 11:51:59 -0400 Received: from localhost.localdomain (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p9VFpwCK016446 for ; Mon, 31 Oct 2011 11:51:58 -0400 From: Phil Muldoon To: gdb-patches@sourceware.org Subject: [python] [patch] PR python/13345 Reply-to: pmuldoon@redhat.com X-URL: http://www.redhat.com Date: Mon, 31 Oct 2011 18:11:00 -0000 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-10/txt/msg00823.txt.bz2 This patch fixes a case where the tilde (~) command was being passed to Python via the "source" command. Python does not understand what to do with a tilde, so we have to expand it first. OK? Cheers, Phil -- 2011-10-31 Phil Muldoon PR Python/13345 * python/python.c (python_run_simple_file): Expand tilde in path. -- Index: python/python.c =================================================================== RCS file: /cvs/src/src/gdb/python/python.c,v retrieving revision 1.75 diff -u -r1.75 python.c --- python/python.c 7 Oct 2011 07:38:30 -0000 1.75 +++ python/python.c 31 Oct 2011 15:42:19 -0000 @@ -30,6 +30,7 @@ #include "exceptions.h" #include "event-loop.h" #include "serial.h" +#include "readline/tilde.h" #include "python.h" #include @@ -162,13 +163,22 @@ static void python_run_simple_file (const char *filename) { - char *filename_copy; + char *full_path; PyObject *python_file; struct cleanup *cleanup; - filename_copy = xstrdup (filename); - cleanup = make_cleanup (xfree, filename_copy); - python_file = PyFile_FromString (filename_copy, "r"); + /* Because we have a string for a filename, and are using Python to + open the file, we need to expand any tilde in the path first. */ + full_path = tilde_expand (filename); + cleanup = make_cleanup (xfree, full_path); + python_file = PyFile_FromString (full_path, "r"); + if (! python_file) + { + do_cleanups (cleanup); + gdbpy_print_stack (); + error (_("Error sourcing Python file")); + } + make_cleanup_py_decref (python_file); PyRun_SimpleFile (PyFile_AsFile (python_file), filename); do_cleanups (cleanup);