From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/61955 Path: news.gmane.org!not-for-mail From: Katsumi Yamaoka Newsgroups: gmane.emacs.gnus.general Subject: nnoo bug Date: Mon, 13 Feb 2006 16:17:13 +0900 Organization: Emacsen advocacy group Message-ID: NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1139815622 11062 80.91.229.2 (13 Feb 2006 07:27:02 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Mon, 13 Feb 2006 07:27:02 +0000 (UTC) Original-X-From: ding-owner+m10482@lists.math.uh.edu Mon Feb 13 08:26:56 2006 Return-path: Envelope-to: ding-account@gmane.org Original-Received: from malifon.math.uh.edu ([129.7.128.13]) by ciao.gmane.org with esmtp (Exim 4.43) id 1F8Y6e-0006X2-1h for ding-account@gmane.org; Mon, 13 Feb 2006 08:26:44 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu ident=lists) by malifon.math.uh.edu with smtp (Exim 3.20 #1) id 1F8Y6X-00074e-00; Mon, 13 Feb 2006 01:26:37 -0600 Original-Received: from nas01.math.uh.edu ([129.7.128.39]) by malifon.math.uh.edu with esmtp (Exim 3.20 #1) id 1F8Xxb-00074Y-00 for ding@lists.math.uh.edu; Mon, 13 Feb 2006 01:17:23 -0600 Original-Received: from quimby.gnus.org ([80.91.224.244]) by nas01.math.uh.edu with esmtp (Exim 4.52) id 1F8XxZ-0007GB-IQ for ding@lists.math.uh.edu; Mon, 13 Feb 2006 01:17:23 -0600 Original-Received: from washington.hostforweb.net ([66.225.201.13]) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 1F8XxY-0007ES-00 for ; Mon, 13 Feb 2006 08:17:20 +0100 Original-Received: from [205.234.185.198] (port=44298 helo=mail.jpl.org) by washington.hostforweb.net with esmtpa (Exim 4.52) id 1F8Y0Q-00048e-Nc for ding@gnus.org; Mon, 13 Feb 2006 01:20:19 -0600 Original-To: ding@gnus.org X-Face: #kKnN,xUnmKia.'[pp`;Omh}odZK)?7wQSl"4o04=EixTF+V[""w~iNbM9ZL+.b*_CxUmFk B#Fu[*?MZZH@IkN:!"\w%I_zt>[$nm7nQosZ<3eu;B:$Q_:p!',P.c0-_Cy[dz4oIpw0ESA^D*1Lw= L&i*6&( User-Agent: Gnus/5.110004 (No Gnus v0.4) Emacs/22.0.50 (gnu/linux) Cancel-Lock: sha1:2b5EKbcLO9814ATfIIHXMddTdMc= X-Hashcash: 1:20:060213:ding@gnus.org::Rb7qvJJjsCdI9ZVd:00000/5A X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - washington.hostforweb.net X-AntiAbuse: Original Domain - gnus.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - jpl.org X-Source: X-Source-Args: X-Source-Dir: X-Spam-Score: -2.5 (--) Precedence: bulk Original-Sender: ding-owner@lists.math.uh.edu Xref: news.gmane.org gmane.emacs.gnus.general:61955 Archived-At: Hi, There's a mystery of long standing that the `nndraft-directory' variable is sometimes set to the symbol `nndraft-directory'. At that time, the `nnmh-directory' variable is also set to the symbol `nndraft-directory'. It might happen to only people who are interested in debugging and developing Gnus, though. Now I found out the way to reproduce it and the cause of the problem. To reproduce the problem, enter the nndraft:drafts group[1], load the nnmh library or the nndraft library, and exit the group. The cause is that the `nnoo-declare' macro[2] adds the new entry to the variables `nnoo-definition-alist' and `nnoo-state-alist' whenever it is called. When the nnmh module is re-loaded in the nndraft:drafts group, the `nnoo-declare' macro registers the nnmh back end in the `nnoo-state-alist' variable as "*internal-non-initialized-backend*". Because of this, the `(nnmh-directory nndraft-directory)' element in the nndraft entry which is registered in the `nnoo-definition-alist' variable is processed by the `nnoo-change-server' function[3] when exiting the nndraft:drafts group as: (set 'nnmh-directory 'nndraft-directory) even though it should be: (set 'nnmh-directory (symbol-value 'nndraft-directory)) [1] It is required that there is at least one draft in the nndraft:drafts group. [2] All the nn* modules call the `nnoo-declare' macro at the top level. [3] The `nnoo-change-server' function is called by way of the `gnus-close-server' function when exiting the nndraft group. I've fixed the `nnoo-declare' macro so that it might never generate duplicate entries. BTW, does anyone know the reason to use `eval-and-compile' there? I left it.