+(defcustom gnus-user-agent '(emacs gnus type)
+ "Which information should be exposed in the User-Agent header.
+
+Can be a list of symbols or a string. Valid symbols are `gnus'
+\(show Gnus version\) and `emacs' \(show Emacs version\). In
+addition to the Emacs version, you can add `codename' \(show
+\(S\)XEmacs codename\) or either `config' \(show system
+configuration\) or `type' \(show system type\). If you set it to
+a string, be sure to use a valid format, see RFC 2616."
+
+ :version "22.1"
+ :group 'gnus-message
+ :type '(choice (list (set :inline t
+ (const gnus :tag "Gnus version")
+ (const emacs :tag "Emacs version")
+ (choice :tag "system"
+ (const type :tag "system type")
+ (const config :tag "system configuration"))
+ (const codename :tag "Emacs codename")))
+ (string)))
+
+;; Convert old (< 2005-01-10) symbol type values:
+(when (symbolp gnus-user-agent)
+ (setq gnus-user-agent
+ (cond ((eq gnus-user-agent 'emacs-gnus-config)
+ '(emacs gnus config))
+ ((eq gnus-user-agent 'emacs-gnus-type)
+ '(emacs gnus type))
+ ((eq gnus-user-agent 'emacs-gnus)
+ '(emacs gnus))
+ ((eq gnus-user-agent 'gnus)
+ '(gnus))
+ (t gnus-user-agent)))
+ (gnus-message 1 "Converted `gnus-user-agent' to `%s'." gnus-user-agent)
+ (sit-for 1)
+ (if (get 'gnus-user-agent 'saved-value)
+ (customize-save-variable 'gnus-user-agent gnus-user-agent)
+ (gnus-message 1 "Edit your init file to make this change permanent.")
+ (sit-for 2)))
+