From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: raman@comcast.net (raman) Newsgroups: gmane.emacs.devel Subject: Re: ad-interactive-form vs interactive-form Date: Fri, 27 Jul 2007 07:34:22 -0700 (PDT) Message-ID: <20070727143422.41D2312A4145@localhost> References: <18089.63150.623907.647640@gargle.gargle.HOWL> NNTP-Posting-Host: lo.gmane.org X-Trace: sea.gmane.org 1185558355 27179 80.91.229.12 (27 Jul 2007 17:45:55 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 27 Jul 2007 17:45:55 +0000 (UTC) Cc: emacs-devel@gnu.org To: raman@users.sf.net Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jul 27 19:45:48 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1IETsn-0007iD-7s for ged-emacs-devel@m.gmane.org; Fri, 27 Jul 2007 19:45:45 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IETsm-0005Bi-9X for ged-emacs-devel@m.gmane.org; Fri, 27 Jul 2007 13:45:44 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IEQtc-0007gf-Ei for emacs-devel@gnu.org; Fri, 27 Jul 2007 10:34:24 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IEQtc-0007gM-0n for emacs-devel@gnu.org; Fri, 27 Jul 2007 10:34:24 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IEQtb-0007gF-N6 for emacs-devel@gnu.org; Fri, 27 Jul 2007 10:34:23 -0400 Original-Received: from alnrmhc14.comcast.net ([206.18.177.54]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IEQtb-0004Q2-Cy for emacs-devel@gnu.org; Fri, 27 Jul 2007 10:34:23 -0400 Original-Received: from localhost (c-71-202-191-236.hsd1.ca.comcast.net[71.202.191.236]) by comcast.net (alnrmhc14) with ESMTP id <20070727143422b1400s7ahae>; Fri, 27 Jul 2007 14:34:22 +0000 Original-Received: by localhost (Postfix, from userid 1000) id 41D2312A4145; Fri, 27 Jul 2007 07:34:22 -0700 (PDT) In-Reply-To: <18089.63150.623907.647640@gargle.gargle.HOWL> X-detected-kernel: NetCache Data OnTap 5.x X-Mailman-Approved-At: Fri, 27 Jul 2007 13:44:56 -0400 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:75710 Archived-At: Hi Stefan, This is a follow-up to the message I sent earlier this morning. I spotted the cause of the problem that I was hitting when using interactive-form instead of ad-interactive-form: interactive-form returns the autoload list for autoloaded functions, ad-interactive-form used to return nil. I therefore needed to add a check for (functionp (symbol-function sym)) before allowing Emacspeak to go off and auto-hack interactive functions. Incidentaly, that corner of Emacspeak is a particularly hairy piece of code that does: 0) Find functions that use an interactive spec for declaring their prompts. 1) For those decls that dont use the minibuffer, perform surgery to make those functions use the minibuffer. The above was needed for a large number of functions until Emacs 21 --- since most prompting resulting from interactive decls happened directly through the C code in callint.c -- and consequently, Emacspeak making functions like read-from-minibuffer or read-file-name was not sufficient --- I needed to do the work to perform run-time surgery to functions that used interactive. As of emacs 21, I only need to do this to commands that use either 'c' or 'k' in their interactive spec -- would be nice to make those prompts go through the lisp layer as well -- in which case I could get rid of emacspeak-fix-interactive entirely.