From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22300 invoked by alias); 18 Nov 2005 12:32:53 -0000 Received: (qmail 22284 invoked by uid 22791); 18 Nov 2005 12:32:50 -0000 Received: from fra-del-04.spheriq.net (HELO fra-del-04.spheriq.net) (195.46.51.100) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Fri, 18 Nov 2005 12:32:50 +0000 Received: from fra-out-03.spheriq.net (fra-out-03.spheriq.net [195.46.51.131]) by fra-del-04.spheriq.net with ESMTP id jAICWke4031205 for ; Fri, 18 Nov 2005 12:32:46 GMT Received: from fra-cus-01.spheriq.net (fra-cus-01.spheriq.net [195.46.51.37]) by fra-out-03.spheriq.net with ESMTP id jAICWjBt004980 for ; Fri, 18 Nov 2005 12:32:46 GMT Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by fra-cus-01.spheriq.net with ESMTP id jAICWhGe025833 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=OK); Fri, 18 Nov 2005 12:32:44 GMT Received: from zeta.dmz-eu.st.com (ns2.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id D6021DA45; Fri, 18 Nov 2005 12:32:42 +0000 (GMT) Received: by zeta.dmz-eu.st.com (STMicroelectronics, from userid 60012) id 5F7124735C; Fri, 18 Nov 2005 12:35:42 +0000 (GMT) Received: from zeta.dmz-eu.st.com (localhost [127.0.0.1]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 341C67599D; Fri, 18 Nov 2005 12:35:42 +0000 (UTC) Received: from mail1.bri.st.com (mail1.bri.st.com [164.129.8.218]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id B4316472CA; Fri, 18 Nov 2005 12:35:41 +0000 (GMT) Received: from [164.129.15.13] (terrorhawk.bri.st.com [164.129.15.13]) by mail1.bri.st.com (MOS 3.5.8-GR) with ESMTP id CGZ53136 (AUTH "andrew stubbs"); Fri, 18 Nov 2005 12:32:41 GMT Message-ID: <437DC94B.7060601@st.com> Date: Fri, 18 Nov 2005 13:23:00 -0000 From: Andrew STUBBS User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317) MIME-Version: 1.0 To: Eli Zaretskii Cc: gdb-patches@sources.redhat.com Subject: Re: [PATCH] Use search path for scripts References: <437B6718.7070300@st.com> <437C6D69.1030209@st.com> In-Reply-To: Content-Type: multipart/mixed; boundary="------------050002020105070404090205" X-O-Spoofed: Not Scanned X-O-General-Status: No X-O-Spam1-Status: Not Scanned X-O-Spam2-Status: Not Scanned X-O-URL-Status: Not Scanned X-O-Virus1-Status: No X-O-Virus2-Status: Not Scanned X-O-Virus3-Status: No X-O-Virus4-Status: No X-O-Virus5-Status: Not Scanned X-O-Image-Status: Not Scanned X-O-Attach-Status: Not Scanned X-SpheriQ-Ver: 4.1.07 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2005-11/txt/msg00318.txt.bz2 This is a multi-part message in MIME format. --------------050002020105070404090205 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 646 Eli Zaretskii wrote: > Sorry, I don't think that the peculiar setup on your systems is a > reason good enough to change the current behavior in an incompatible > fashion. Your specific problem could have been solved in a different > way, for example by having all your system-wide scripts begin with a > reserved string (you could make that string include some unusual > characters to minimize the possibility of a name clash with user > scripts). Fair enough. As you say, I can probably solve this part of the problem a different way, or else just keep a (much smaller) local patch. Here is the patch adjusted as you request. Andrew Stubbs --------------050002020105070404090205 Content-Type: text/plain; name="search-path.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="search-path.patch" Content-length: 3404 2005-11-17 Andrew Stubbs * cli-cmds.c: Include fcntl.h. (source_command): Use the GDB search path to find script files. doc/ * gdb.texinfo (Choosing files): Mention that -directory is used for script files. (Specifying source directories): Likewise. (Command files): Explain how script files are found. Index: src/gdb/cli/cli-cmds.c =================================================================== --- src.orig/gdb/cli/cli-cmds.c 2005-11-18 11:22:08.000000000 +0000 +++ src/gdb/cli/cli-cmds.c 2005-11-18 11:23:27.000000000 +0000 @@ -50,6 +50,8 @@ #include "tui/tui.h" /* For tui_active et.al. */ #endif +#include + /* Prototypes for local command functions */ static void complete_command (char *, int); @@ -433,6 +435,8 @@ source_command (char *args, int from_tty char *file = args; char *minusv=NULL; int old_source_verbose = source_verbose; + char *full_pathname = NULL; + int fd; /* -v causes the source command to run in verbose mode. We still have to be able to handle filenames with spaces. */ @@ -486,8 +490,18 @@ source_command (char *args, int from_tty file = tilde_expand (file); old_cleanups = make_cleanup (xfree, file); - stream = fopen (file, FOPEN_RT); - if (!stream) + /* Search for and open 'file' on the search path used for source + files. Put the full location in 'full_pathname'. */ + fd = openp (source_path, OPF_TRY_CWD_FIRST, + file, O_RDONLY, 0, &full_pathname); + + /* Use the full path name, if it is found. */ + if (full_pathname != NULL && fd != -1) + { + file = full_pathname; + } + + if (fd == -1) { source_verbose = old_source_verbose; if (from_tty) @@ -496,6 +510,7 @@ source_command (char *args, int from_tty return; } + stream = fdopen (fd, "r"); script_from_file (stream, file); do_cleanups (old_cleanups); Index: src/gdb/doc/gdb.texinfo =================================================================== --- src.orig/gdb/doc/gdb.texinfo 2005-11-18 11:22:09.000000000 +0000 +++ src/gdb/doc/gdb.texinfo 2005-11-18 12:31:33.000000000 +0000 @@ -951,7 +951,7 @@ also be interleaved with @samp{-command} @itemx -d @var{directory} @cindex @code{--directory} @cindex @code{-d} -Add @var{directory} to the path to search for source files. +Add @var{directory} to the path to search for source and script files. @item -r @itemx -readnow @@ -4830,6 +4830,9 @@ When you start @value{GDBN}, its source and @samp{cwd}, in that order. To add other directories, use the @code{directory} command. +The search path is used to find both program source files and @value{GDBN} +script files (read using the @samp{-command} option and @samp{source} command). + @table @code @item directory @var{dirname} @dots{} @item dir @var{dirname} @dots{} @@ -15997,6 +16000,9 @@ The lines in a command file are executed printed as they are executed. An error in any command terminates execution of the command file and control is returned to the console. +@value{GDBN} searches for @var{filename} in the current directory and then +on the search path (specified with the @samp{directory} command). + If @code{-v}, for verbose mode, is given then each command will be displayed as it is executed. The option may be given before or after @var{filename}, but will be interpreted as part of the filename anywhere else. --------------050002020105070404090205--