Gnus development mailing list
 help / color / mirror / Atom feed
From: Andreas Seltenreich <andreas+ding@gate450.dyndns.org>
To: ding@gnus.org
Cc: xavier@maillard.mobi, xma@gnu.org
Subject: Re: gnus-subscribe-topics
Date: Mon, 23 Feb 2009 01:29:16 +0100	[thread overview]
Message-ID: <8763j2uhb7.fsf@gate450.dyndns.org> (raw)
In-Reply-To: <87fxjymztn.fsf@gnu.org> (Xavier Maillard's message of "Mon, 05 Jan 2009 00:11:32 +0100")

[-- Attachment #1: Type: text/plain, Size: 1504 bytes --]

Xavier Maillard writes:

> Reiner Steib <reinersteib+gmane@imap.cc> writes:
>
>> ,----[ (info "(gnus)Subscription Methods") ]
>> | What Gnus does when it encounters a new group is determined by the
>> | `gnus-subscribe-newsgroup-method' variable.
>> `----
>>
>> "when it encounters a new group" is not the case in your situation.
>> This variable is relevant only if a new newsgroup is created on the
>> server.
>
> Can't this behaviour be changed for any group (new or existing
> but never subscribed) ? What is the workaround ? Currently, I did
> not subcribe to any nnimap groups (I have 4 dozens of them
> pending) since I do not want to manually fill them under the
> right topic.

I've modified my copy of Gnus to use gnus-subscribe-newsgroup-method
when subscribing from a Browse Server buffer a long time ago.  I didn't
propose to include this patch though because the default value of
g-s-n-m is rather inappropriate for explicitly subscribing groups.

Attached is a version that introduces a
gnus-browse-subscribe-newsgroup-method variable instead.  OK to commit
to No Gnus?  I vaguely remeber some discussion about a feature freeze
(Reiner?).

>>> P.S: please keep me in the Cc as I am not subscribed to this list yet.
>>
>> Hint: Gnus honors Mail-Followup-To. :-)
>
> Done (hope it is correct).

The comma looks like a typo to me.  You can avoid this by letting
Message Mode generate the header.  C-c C-f C-a runs the command
message-generate-unsubscribed-mail-followup-to.

regards,
andreas

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: gnus-srvr.diff --]
[-- Type: text/x-diff, Size: 3984 bytes --]

Index: gnus-srvr.el
===================================================================
RCS file: /usr/local/cvsroot/gnus/lisp/gnus-srvr.el,v
retrieving revision 7.36
diff -c -r7.36 gnus-srvr.el
*** gnus-srvr.el	22 Jan 2009 07:02:16 -0000	7.36
--- gnus-srvr.el	23 Feb 2009 00:09:45 -0000
***************
*** 635,640 ****
--- 635,663 ----
  ;;; Browse Server Mode
  ;;;
  
+ (defcustom gnus-browse-subscribe-newsgroup-method
+   'gnus-subscribe-alphabetically
+   "Function(s) called when subscribing groups in the Browse Server Buffer
+ A few pre-made functions are supplied: `gnus-subscribe-randomly'
+ inserts new groups at the beginning of the list of groups;
+ `gnus-subscribe-alphabetically' inserts new groups in strict
+ alphabetic order; `gnus-subscribe-hierarchically' inserts new groups
+ in hierarchical newsgroup order; `gnus-subscribe-interactively' asks
+ for your decision; `gnus-subscribe-killed' kills all new groups;
+ `gnus-subscribe-zombies' will make all new groups into zombies;
+ `gnus-subscribe-topics' will enter groups into the topics that
+ claim them."
+   :group 'gnus-server
+   :type '(radio (function-item gnus-subscribe-randomly)
+ 		(function-item gnus-subscribe-alphabetically)
+ 		(function-item gnus-subscribe-hierarchically)
+ 		(function-item gnus-subscribe-interactively)
+ 		(function-item gnus-subscribe-killed)
+ 		(function-item gnus-subscribe-zombies)
+ 		(function-item gnus-subscribe-topics)
+ 		function
+ 		(repeat function)))
+ 
  (defvar gnus-browse-menu-hook nil
    "*Hook run after the creation of the browse mode menu.")
  
***************
*** 885,891 ****
    (gnus-browse-next-group (- n)))
  
  (defun gnus-browse-unsubscribe-current-group (arg)
!   "(Un)subscribe to the next ARG groups."
    (interactive "p")
    (when (eobp)
      (error "No group at current line"))
--- 908,916 ----
    (gnus-browse-next-group (- n)))
  
  (defun gnus-browse-unsubscribe-current-group (arg)
!   "(Un)subscribe to the next ARG groups.
! The variable `gnus-browse-subscribe-newsgroup-method' determines
! how new groups will be entered into the group buffer."
    (interactive "p")
    (when (eobp)
      (error "No group at current line"))
***************
*** 934,955 ****
  	    ;; subscribe to it.
   	    (if (gnus-ephemeral-group-p group)
  		(gnus-kill-ephemeral-group group))
! 	    ;; We need to discern between killed/zombie groups and
! 	    ;; just unsubscribed ones.
! 	    (gnus-group-change-level
! 	     (or (gnus-group-entry group)
! 		 (list t group gnus-level-default-subscribed
! 		       nil nil (if (gnus-server-equal
! 				    gnus-browse-current-method "native")
! 				   nil
! 				 (gnus-method-simplify
! 				  gnus-browse-current-method))))
! 	     gnus-level-default-subscribed (gnus-group-level group)
! 	     (and (car (nth 1 gnus-newsrc-alist))
! 		  (gnus-group-entry (car (nth 1 gnus-newsrc-alist))))
! 	     (null (gnus-group-entry group)))
  	    (delete-char 1)
! 	    (insert ? ))
  	(gnus-group-change-level
  	 group gnus-level-unsubscribed gnus-level-default-subscribed)
  	(delete-char 1)
--- 959,982 ----
  	    ;; subscribe to it.
   	    (if (gnus-ephemeral-group-p group)
  		(gnus-kill-ephemeral-group group))
! 	    (let ((entry (gnus-group-entry group)))
! 	      (if entry
! 		  ;; Just change the subscription level if it is an
! 		  ;; unsubscribed group.
! 		  (gnus-group-change-level entry
! 					   gnus-level-default-subscribed)
! 		;; If it is a killed group or a zombie, feed it to the
! 		;; mechanism for new group subscription.
! 		(gnus-call-subscribe-functions
! 		 gnus-browse-subscribe-newsgroup-method
! 		 group)))
  	    (delete-char 1)
! 	    (insert (let ((lvl (gnus-group-level group)))
! 		      (cond
! 		       ((< lvl gnus-level-unsubscribed) ? )
! 		       ((< lvl gnus-level-zombie) ?U)
! 		       ((< lvl gnus-level-killed) ?Z)
! 		       (t ?K)))))
  	(gnus-group-change-level
  	 group gnus-level-unsubscribed gnus-level-default-subscribed)
  	(delete-char 1)

  reply	other threads:[~2009-02-23  0:29 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-04 21:41 gnus-subscribe-topics Xavier Maillard
2009-01-04 22:29 ` gnus-subscribe-topics Reiner Steib
2009-01-04 23:11   ` gnus-subscribe-topics Xavier Maillard
2009-02-23  0:29     ` Andreas Seltenreich [this message]
2010-09-26  2:19       ` gnus-subscribe-topics Andreas Seltenreich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8763j2uhb7.fsf@gate450.dyndns.org \
    --to=andreas+ding@gate450.dyndns.org \
    --cc=ding@gnus.org \
    --cc=xavier@maillard.mobi \
    --cc=xma@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).