From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3347 invoked by alias); 1 Aug 2011 09:51:13 -0000 Received: (qmail 3333 invoked by uid 22791); 1 Aug 2011 09:51:12 -0000 X-SWARE-Spam-Status: No, hits=-6.7 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,SPF_HELO_PASS,TW_CP 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, 01 Aug 2011 09:50:56 +0000 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p719otam031082 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 1 Aug 2011 05:50:55 -0400 Received: from localhost.localdomain (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p719osbh017120; Mon, 1 Aug 2011 05:50:55 -0400 From: Phil Muldoon To: Matt Rice Cc: gdb-patches@sourceware.org Subject: Re: [patch] python prompt additions at first prompt. References: Reply-to: pmuldoon@redhat.com X-URL: http://www.redhat.com Date: Mon, 01 Aug 2011 09:51:00 -0000 In-Reply-To: (Matt Rice's message of "Sat, 30 Jul 2011 07:12:31 -0700") 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-08/txt/msg00001.txt.bz2 Matt Rice writes: > little bug with the new python prompt stuff, the prompt_hook doesn't > take effect until the second prompt. Thanks for doing this. This looks fine to me, apart from one question. For tests, there are prompt tests in the python.exp file for prompt substitutions. For passing arguments to GDB at start-up, see usage of $GDBFLAGS in the testsuite. > - prompt, otherwise just print the prompt. */ > - if (async_command_editing_p) > - { > - int length; > - char *a_prompt; > - char *gdb_prompt = get_prompt (0); > - > - /* Tell readline what the prompt to display is and what function > - it will need to call after a whole line is read. This also > - displays the first prompt. */ > - length = strlen (get_prefix (0)) > - + strlen (gdb_prompt) + strlen (get_suffix(0)) + 1; > - a_prompt = (char *) alloca (length); > - strcpy (a_prompt, get_prefix (0)); > - strcat (a_prompt, gdb_prompt); > - strcat (a_prompt, get_suffix (0)); > - rl_callback_handler_install (a_prompt, input_handler); > - } > - else > - display_gdb_prompt (0); > + display_gdb_prompt (0); display_gdb_prompt removes any handler that is present, and then installs a handler. As this is the first prompt, the above code does not (because there could not have been a handler installed). I think attempting to remove a handler that does not exist just results in a NOOP, but it is worth checking. I know very little about readline, however. So my question is: with GDB's copy of readline, is this okay? Cheers Phil