From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: pjb@informatimago.com (Pascal J. Bourguignon) Newsgroups: gmane.emacs.help Subject: Re: variable's documentation string Date: Tue, 30 Jun 2009 10:47:22 +0200 Organization: Anevia SAS Message-ID: <7ctz1yhzvp.fsf@pbourguignon.anevia.com> References: <67ca21fb-4953-4699-b190-df74a1035228@r36g2000vbn.googlegroups.com> <2c6889fe-6935-41d6-8a8e-2b6a07761cd7@j19g2000vbp.googlegroups.com> <7cws6vjsug.fsf@pbourguignon.informatimago.com> <0a97f5cb-d434-4014-ba0b-dd5126095fbf@f10g2000vbf.googlegroups.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1246421301 16579 80.91.229.12 (1 Jul 2009 04:08:21 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 1 Jul 2009 04:08:21 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Jul 01 06:08:14 2009 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1MLr7G-000679-5s for geh-help-gnu-emacs@m.gmane.org; Wed, 01 Jul 2009 06:08:14 +0200 Original-Received: from localhost ([127.0.0.1]:41946 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MLr7F-000183-Iy for geh-help-gnu-emacs@m.gmane.org; Wed, 01 Jul 2009 00:08:13 -0400 Original-Path: news.stanford.edu!headwall.stanford.edu!news.glorb.com!news2.glorb.com!proxad.net!feeder1-2.proxad.net!cleanfeed1-a.proxad.net!nnrp18-2.free.fr!not-for-mail Original-Newsgroups: gnu.emacs.help Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9 033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR mV+hO/VvFAAAAABJRU5ErkJggg== X-Accept-Language: fr, es, en X-Disabled: X-No-Archive: no User-Agent: Gnus/5.101 (Gnus v5.10.10) Emacs/22.2 (gnu/linux) Cancel-Lock: sha1:fYQ3cNIdZOfM+TKPeBWdEE6lqAY= Original-Lines: 50 Original-NNTP-Posting-Date: 30 Jun 2009 10:47:22 MEST Original-NNTP-Posting-Host: 88.170.236.224 Original-X-Trace: 1246351642 news-2.free.fr 19266 88.170.236.224:44223 Original-X-Complaints-To: abuse@proxad.net Original-Xref: news.stanford.edu gnu.emacs.help:170457 X-Mailman-Approved-At: Tue, 30 Jun 2009 23:54:29 -0400 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:65696 Archived-At: TheFlyingDutchman writes: >> >> Here, it works well: >> >> (defvar myVar 2 "This is the documentation string")     ; C-x C-e >> (documentation-property 'myVar 'variable-documentation) ; C-x C-e >> --> "This is the documentation string" > > > Thanks Pascal! You lead me to the error. When I typed (documentation- > property 'some_variable 'variable-documentation) and evaluated it, it > worked. I then compared it to the equivalent part of the message > statement that I was using, and after 15 seconds of looking at it I > realized that I had incorrectly used a dash, instead of an underscore > for the variable name in the documentation-property function call. I > will have to remember to post the exact code I am using and not type > in something equivalent. But I would have expected to have gotten an > error because the symbol-name that I erroneously typed did not exist. > In fact, I would prefer it gave an error to returning nil. In emacs lisp, variable names are symbols and they all already exist. The variable documentation is actually stored in the symbol property list: (symbol-plist 'myVar) --> (variable-documentation "This is the documentation string") (get 'myVar 'variable-documentation) --> "This is the documentation string" and get returns nil when the key doesn't exist: (get 'myVar 'innexistant-key) --> nil So if you want an error instead of nil, you have to ask it yourself: (defun variable-documentation (var) (or (documentation-property var 'variable-documentation) (error "Variable %S has no documentation" var))) (variable-documentation 'xyz) ==> Debugger entered--Lisp error: (error "Variable xyz has no documentation") (variable-documentation 'myVar) --> "This is the documentation string" -- __Pascal Bourguignon__