Commits

youngs  committed 2fd7c4c

Sync to 0.2.9

  • Participants
  • Parent commits 74343c7

Comments (0)

Files changed (5)

+2001-03-01  Steve Youngs  <youngs@xemacs.org>
+
+	* Makefile (REQUIRES): Add eicq.
+
+	* eicq.el (eicq-blurb): New
+	(eval-when-compile): Remove require 'eicq-report.
+
+	* udp2tcp.cc (main): Update URL.
+
 2001-02-28  Ben Wing  <ben@xemacs.org>
 
 	* udp2tcp.cc (main): Conditionalize change to third arg to accept
 	on __CYGWIN__, so that all other systems keep size_t -- simply
 	changing the arg makes this not compile under Linux.
-	
 
 2001-02-24  Ben Wing  <ben@xemacs.org>
 
 	Emergency fixes so it compiles. (change bzero to memset; fix type
 	of third arg to accept)
 
+2001-03-01  Steve Youngs  <youngs@xemacs.org>
+
+	* eicq.el (eicq-main-menu): Capitalise entries.
+	(eicq-log-menu): Ditto.
+
+2001-02-21  Steve Youngs  <youngs@xemacs.org>
+
+	* eicq.el: Update all doc strings.
+	(eicq-email-author): Move to eicq-report.el
+
+	* eicq-report.el: New file.
+
 2001-01-25  Steve Youngs  <youngs@xemacs.org>
 
 	* version 0.2.8 released - XEmacs package 1.03
 MAINTAINER = Steve Youngs <youngs@xemacs.org>
 PACKAGE = eicq
 PKG_TYPE = regular
-REQUIRES = xemacs-base mail-lib
+REQUIRES = xemacs-base mail-lib eicq
 CATEGORY = comm
 
 ELCS = eicq.elc eicq-toolbar.elc

File eicq-report.el

+;;; eicq-report.el --- Generate a bug report   -*-Emacs-Lisp-*-
+
+;; Copyright (C) 2001 Steve Youngs
+
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+
+;;; Commentary:
+;; To submit a bug report use: M-x eicq-report-bug
+;; To send general comments/questions use: M-x eicq-email-author
+
+;;; Code:
+(require 'eicq)
+(require 'gnus)
+(require 'gnus-util)
+(require 'reporter)
+
+(defvar reporter-version) ; For the byte-compiler
+
+;;; Variables
+
+(defconst eicq-report-salutations
+  ["Dear bug team:"
+   "Ciao bug team:"
+   "Salut bug team:"
+   "Guten Tag bug team:"
+   "To whom it may concern:"
+   "Fellow eicq'ers:"
+   "Yo bug team:"
+   "G'day bug team:"
+   "Greetings earthlings:"]
+  "A list of salutations used for `eicq-report-bug'.")
+
+(defvar eicq-bug-address
+  "Eicq Bugs <eicq-bugs@lists.sourceforge.net>"
+  "The address used for submitting bug reports.")
+
+(defconst eicq-report-other-vars
+  '(reporter-version
+    features)
+  "A list of variables that aren't generated below.")
+
+(defconst eicq-report-avoid-vars
+  '(eicq-user-password
+    eicq-auto-away-timeout
+    eicq-world-rc-regexp
+    eicq-global-key-prefix)
+  "A list of variables we don't want to see in the bug report.")
+
+(defvar eicq-report-blurb nil)
+;;; Functions
+
+(defun eicq-report-get-versions ()
+  "Return a list of eicq versions variables."
+  (mapcar
+   'intern
+   (sort
+    (let (completion-ignore-case)
+      (all-completions
+       "eicq-" obarray
+       (function
+	(lambda (sym)
+	  (and (boundp sym)
+	       (let ((name (symbol-name sym)))
+		 (and (>= (length name) 8)
+		      (string-equal (substring name -8) "-version"))))))))
+    'string-lessp)))
+
+(defun eicq-report-get-user-vars ()
+  "Return a list of eicq user variables."
+  (mapcar
+   'intern
+   (sort
+    (let (completion-ignore-case)
+      (all-completions "eicq-" obarray 'user-variable-p))
+    'string-lessp)))
+
+(defun eicq-report-pre-hook ()
+  "Pre hook run by report-submit-bug-report."
+  (message-goto-subject)
+  (insert
+   (format "Eicq v%s bug: " eicq-version))
+  (if eicq-report-blurb
+      (progn
+	(mail-text)
+	(insert "\n" eicq-report-blurb "\n"))))
+
+(defun eicq-report-post-hook ()
+  "Post hook run by report-submit-bug-report."
+  (save-excursion
+    (message-goto-subject)
+    (let ((subj (read-string "Subject header: ")))
+      (if (string-equal subj "")
+	  (subst-char-in-region
+	   (point)
+	   (progn
+	     (insert
+	      (if (or (fboundp 'yow) (load "yow" t t)) (yow) ""))
+	     (point))
+	   ?\n ?\ )
+	(insert subj)))))
+
+(defun eicq-gnus-submit-report ()
+  "Mimic `reporter-submit-bug-report', but use Gnus."
+  (unless (gnus-alive-p)
+    (gnus))
+  (gnus-group-mail 1)
+  (message-goto-to)
+  (insert eicq-bug-address)
+  (message-goto-body)
+  (forward-line 1)
+  (setq after-sep-pos (point))
+  (setq final-resting-place (point-marker))
+  (insert "\n\n")
+  (reporter-dump-state
+   "eicq"
+   vars
+   nil nil)
+  (insert "\n\n")
+  (eicq-report-pre-hook)
+  (eicq-report-post-hook)
+  (mail-text)
+  (insert
+   (aref eicq-report-salutations
+	 (% (+ (% (random) 1000) 1000)
+	    (length eicq-report-salutations))) "\n")
+  (goto-char final-resting-place)
+  (set-marker final-resting-place nil)
+  (message "Please enter your report.  Type C-c C-c to send, C-x k to abort."))
+
+;;;###autoload
+(defun eicq-report-bug (&optional blurb no-confirm)
+  "Submit a bug report for eicq.
+Optional argument BLURB is a string that adds a preamble to the bug report.
+Optional argument NO-CONFIRM if 't' will not ask for confirmation."
+  (interactive)
+  (let ((reporter-confirm-p nil)
+	(reporter-prompt-for-summary-p nil)
+	(reporter-package-abbrev "eicq"))
+    ;; Look out for old reporter versions.
+    (or (boundp 'reporter-version)
+	(setq reporter-version
+	      "Your version of reporter is obsolete.  Please upgrade."))
+    (if (or no-confirm
+	    (y-or-n-p "Do you want to submit a bug report on Eicq? "))
+	(let ((eicq-report-blurb blurb)
+	      (vars (nconc (eicq-report-get-versions)
+			   (eicq-report-get-user-vars)
+			   eicq-report-other-vars))
+	      (avoids eicq-report-avoid-vars))
+	  (while avoids
+	    (setq vars (delq (car avoids) vars))
+	    (setq avoids (cdr avoids)))
+	  (if (featurep 'gnus)
+	      (eicq-gnus-submit-report)
+	    (reporter-submit-bug-report
+	     eicq-bug-address
+	     "eicq"
+	     vars
+	     (function eicq-report-pre-hook)
+	     (function eicq-report-post-hook)
+	     (aref eicq-report-salutations
+		   (% (+ (% (random) 1000) 1000)
+		      (length eicq-report-salutations)))))))))
+
+;;; email-author code
+
+(defconst eicq-email-salutations
+  ["Dear Steve,"
+   "Ciao Steve,"
+   "Guten Tag Steve,"
+   "To whom it may concern:"
+   "Bonjour Steve,"
+   "Yo! Eicq Dude!"
+   "G'day Steve,"
+   "Hey Man,"
+   "Greetings Earthlings:"]
+  "A list of salutations used for `eicq-email-author'.")
+
+(defun eicq-prepare-email-author ()
+  "Prepare the mail buffer for `eicq-email-author'."
+  (message-goto-to)
+  (insert "Steve Youngs <youngs@xemacs.org>")
+  (message-goto-cc)
+  (insert "Eicq-Users <eicq-users@lists.sourceforge.net>")
+  (message-goto-subject)
+  (insert
+   (format "Eicq v%s: " eicq-version))
+  (let ((subj (read-string "Subject header: ")))
+    (if (string-equal subj "")
+	(subst-char-in-region
+	 (point)
+	 (progn
+	   (insert
+	    (if (or (fboundp 'yow) (load "yow" t t)) (yow) ""))
+	   (point))
+	 ?\n ?\ )
+      (insert subj)))
+  (message-goto-body)
+  (insert
+   ";; Bug reports, feature requests, patches, thank-you cards... are all welcome.")
+  (insert "\n;; Flammage is automagically > /dev/null.\n")
+  (insert ";; *** I don't need to read these 3 lines, please delete them. ***\n\n")
+  (insert
+   (aref eicq-email-salutations
+	 (% (+ (% (random) 1000) 1000)
+	    (length eicq-email-salutations))) "\n\n\n")
+  (forward-line -1))
+
+;;;###autoload
+(defun eicq-email-author ()
+  "Email comments or money to author."
+  (interactive)
+  (if (y-or-n-p "Do you want to send comments to the Eicq author? ")
+      (progn
+	(if (featurep 'gnus)
+	    (progn
+	      (unless (gnus-alive-p)
+		(gnus))
+	      (gnus-group-mail 1)
+	      (eicq-prepare-email-author))
+	  (mail)
+	  (eicq-prepare-email-author)))))
+
+(provide 'eicq-report)
+
+;;; eicq-report.el ends here
 
 
 ;; Created: Aug 08, 1998
-;; Updated: Jan 25, 2001
-
-;; Version: 0.2.8
-;; Homepage: http://users.ozlinx.com.au/~youngs_s/eicq/
+;; Updated: Feb 17, 2001
+
+;; Version: 0.2.9
+;; Homepage: http://eicq.sourceforge.net/
 ;; Keywords: comm ICQ
 
 ;;; Commentary:
 ;;   eicq-customize
 ;;
 ;;
-;; See README which comes with this file or at
-;;  http://users.ozlinx.com.au/~youngs_s/eicq/README
+;; See README which comes with this file
 ;;
 ;; This project is done without the consent of Mirabilis.
 ;;
 
 (eval-when-compile
   (require 'browse-url)
-  (require 'reporter)
   (require 'outline))
 
-(defconst eicq-version "0.2.8"
+(defconst eicq-version "0.2.9"
   "Version of eicq you are currently using.")
 
 (defgroup eicq nil
 ;;; Code - user meta info:
 
 (defcustom eicq-user-meta-nickname "e-i-c-q"
-  "*User info stored in ICQ server.
+  "*Your nickname stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable.
 ICQ server refuses any string containing substring \"icq\"."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-firstname "XEmacs"
-  "*User info stored in ICQ server.
+  "*Your first name stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable.
 ICQ server refuses any string containing substring \"icq\"."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-lastname "Linux"
-  "*User info stored in ICQ server.
+  "*Your last name stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable.
 ICQ server refuses any string containing substring \"icq\"."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-primary-email "emacs@home.com"
-  "*User info stored in ICQ server.
+  "*Your primary email address stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable.
 ICQ server refuses any string containing substring \"icq\"."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-secondary-email "eicq@home.com"
-  "*User info stored in ICQ server.
+  "*Your secondary email address stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-old-email "eicq@home.com"
-  "*User info stored in ICQ server.
+  "*Your old email address stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-city nil
-  "*User info stored in ICQ server.
+  "*Your city stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-state nil
-  "*User info stored in ICQ server.
+  "*Your state stored on the ICQ server.
+We're talking 'address' here, not online state.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-phone nil
-  "*User info stored in ICQ server.
+  "*Your phone number stored on the ICQ server.
+Do you really want to divulge this information?
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-fax nil
-  "*User info stored in ICQ server.
+  "*Your fax number stored on the ICQ server.
+Do you really want to divulge this information?
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-street nil
-  "*User info stored in ICQ server.
+  "*Your street name and number stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-cell-phone nil
-  "*User info stored in ICQ server.
+  "*Your cell phone number stored on the ICQ server.
+Do you really want to divulge this information?
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-zipcode nil
-  "*User info stored in ICQ server.
+  "*Your zip code/postal code stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-country nil
-  "*User info stored in ICQ server.
+  "*Your country stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-web-aware t
-  "*User info stored in ICQ server.
+  "*Set this to 't' if you want your presence know on the web.
+This doesn't appear to work. :-(
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-hide-ip nil
-  "*User info stored in ICQ server.
+  "*Set to 't' if you want to hide your IP.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-authorization t
-  "*User info stored in ICQ server.
+  "*Authorization needed to add you to others' contact lists..
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
   and he can hack for a night;
 Teach a man to make new Emacs commands,
   and he can hack for a life time."
-  "*User info stored in ICQ server.
+  "*User 'about' info stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-homepage 
-  "http://users.ozlinx.com.au/~youngs_s/eicq/"
-  "*User info stored in ICQ server.
+  "http://eicq.sourceforge.net/"
+  "*User homepage stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
-(defcustom eicq-user-meta-age nil
-  "*User info stored in ICQ server.
+(defcustom eicq-user-meta-age 65535
+  "*Your age stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable.
 65535 = not entered."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-sex 'not-entered
-  "*User info stored in ICQ server.
+  "*Your sex stored on the ICQ server.
+No, it's not an invitation.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta
   :type '(choice (item male) (item female)
                  (item not-entered)))
 
 (defcustom eicq-user-meta-birth-year nil
-  "*User info stored in ICQ server.
+  "*Your birth year (YYYY) stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-birth-month nil
-  "*User info stored in ICQ server.
+  "*Your birth month (MM) stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-birth-day nil
-  "*User info stored in ICQ server.
+  "*Your birth day (DD) stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-language-1 0
-  "*User info stored in ICQ server.
+  "*User 1st language stored on the ICQ server.
+Possible values are:
+
+ 0 Unspecified 7 Chinese   17 French     27 Japanese   36 Portuguese 46 Tagalog
+55 Afrikaans   8 Croatian  18 Gaelic     28 Khmer      37 Romanian   47 Tatar
+58 Albanian    9 Czech     19 German     29 Korean     38 Russian    48 Thai
+ 1 Arabic     10 Danish    20 Greek      30 Lao        39 Serbian    49 Turkish
+59 Armenian   11 Dutch     21 Hebrew     31 Latvian    40 Slovak     50 Ukrainian
+ 2 Bhojpuri   12 English   22 Hindi      32 Lithuanian 41 Slovenian  51 Urdu
+ 3 Bulgarian  13 Esperanto 23 Hungarian  33 Malay      42 Somali     52 Vietnamese
+ 4 Burmese    14 Estonian  24 Icelandic  34 Norwegian  43 Spanish    53 Yiddish
+ 5 Cantonese  15 Farsi     25 Indonesian 57 Persian    44 Swahili    54 Yoruba
+ 6 Catalan    16 Finnish   26 Italian    35 Polish     45 Swedish
+
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-language-2 0
-  "*User info stored in ICQ server.
+  "*User 2nd language stored on the ICQ server.
+Possible values are:
+
+ 0 Unspecified 7 Chinese   17 French     27 Japanese   36 Portuguese 46 Tagalog
+55 Afrikaans   8 Croatian  18 Gaelic     28 Khmer      37 Romanian   47 Tatar
+58 Albanian    9 Czech     19 German     29 Korean     38 Russian    48 Thai
+ 1 Arabic     10 Danish    20 Greek      30 Lao        39 Serbian    49 Turkish
+59 Armenian   11 Dutch     21 Hebrew     31 Latvian    40 Slovak     50 Ukrainian
+ 2 Bhojpuri   12 English   22 Hindi      32 Lithuanian 41 Slovenian  51 Urdu
+ 3 Bulgarian  13 Esperanto 23 Hungarian  33 Malay      42 Somali     52 Vietnamese
+ 4 Burmese    14 Estonian  24 Icelandic  34 Norwegian  43 Spanish    53 Yiddish
+ 5 Cantonese  15 Farsi     25 Indonesian 57 Persian    44 Swahili    54 Yoruba
+ 6 Catalan    16 Finnish   26 Italian    35 Polish     45 Swedish
+
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-language-3 0
-  "*User info stored in ICQ server.
+  "*User 3rd language stored on the ICQ server.
+Possible values are:
+
+ 0 Unspecified 7 Chinese   17 French     27 Japanese   36 Portuguese 46 Tagalog
+55 Afrikaans   8 Croatian  18 Gaelic     28 Khmer      37 Romanian   47 Tatar
+58 Albanian    9 Czech     19 German     29 Korean     38 Russian    48 Thai
+ 1 Arabic     10 Danish    20 Greek      30 Lao        39 Serbian    49 Turkish
+59 Armenian   11 Dutch     21 Hebrew     31 Latvian    40 Slovak     50 Ukrainian
+ 2 Bhojpuri   12 English   22 Hindi      32 Lithuanian 41 Slovenian  51 Urdu
+ 3 Bulgarian  13 Esperanto 23 Hungarian  33 Malay      42 Somali     52 Vietnamese
+ 4 Burmese    14 Estonian  24 Icelandic  34 Norwegian  43 Spanish    53 Yiddish
+ 5 Cantonese  15 Farsi     25 Indonesian 57 Persian    44 Swahili    54 Yoruba
+ 6 Catalan    16 Finnish   26 Italian    35 Polish     45 Swedish
+
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-work-city nil
-  "*User info stored in ICQ server.
+  "*User work city stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-work-state nil
-  "*User info stored in ICQ server.
+  "*User work state stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-work-phone nil
-  "*User info stored in ICQ server.
+  "*User work phone number stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-work-fax nil
-  "*User info stored in ICQ server.
+  "*User work fax number stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-work-address nil
-  "*User info stored in ICQ server.
+  "*User work address stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-work-company nil
-  "*User info stored in ICQ server.
+  "*User company stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-work-department nil
-  "*User info stored in ICQ server.
+  "*User work department stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
 (defcustom eicq-user-meta-work-position nil
-  "*User info stored in ICQ server.
+  "*User work position stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
-(defcustom eicq-user-meta-work-homepage nil
-  "*User info stored in ICQ server.
+(defcustom eicq-user-meta-work-homepage "http://eicq.sourceforge.net/"
+  "*User work homepage stored on the ICQ server.
 Run `eicq-update-meta-info' after modifying this variable."
   :group 'eicq-meta)
 
   :tag "eicq-sound-directory")
 
 (defcustom eicq-message-sound nil
-  "*Incoming message sound"
+  "*Incoming message sound."
   :group 'eicq-sound
   :type 'file
   :tag "Message Sound")
 
 (defcustom eicq-chat-sound nil
-  "*Incoming chat request sound"
+  "*Incoming chat request sound."
   :group 'eicq-sound
   :type 'file
   :tag "Chat Request Sound")
 
 (defcustom eicq-url-sound nil
-  "*Incoming URL sound"
+  "*Incoming URL sound."
   :group 'eicq-sound
   :type 'file
   :tag "Incoming URL Sound")
 
 (defcustom eicq-buddy-sound nil
-  "*Buddy online notify sound"
+  "*Buddy online notify sound."
   :group 'eicq-sound
   :type 'file
   :tag "Online Notify Sound")
 
 (defcustom eicq-auth-sound nil
-  "*Buddy online notify sound"
+  "*Authorize sound."
   :group 'eicq-sound
   :type 'file
   :tag "Authorize Sound")
 
 (defcustom eicq-emailx-sound nil
-  "*Buddy online notify sound"
+  "*Email Express sound."
   :group 'eicq-sound
   :type 'file
   :tag "Email Express Sound")
 
 (defcustom eicq-pager-sound nil
-  "*Buddy online notify sound"
+  "*Pager sound."
   :group 'eicq-sound
   :type 'file
   :tag "Pager Sound")
    predicate require-match initial-contents history))
 
 ;;;###autoload
-
 (defun eicq-customize ()
   "Interactively customize settings and preferences."
   (interactive)
   (customize-group 'eicq))
 
-;;;###autoload
-
-(defun eicq-email-author ()
-  "Email comments or money to author."
-  (interactive)
-  (let ((reporter-prompt-for-summary-p t)
-        (salutation "
-;; Bug report, feature request, patch, thank-you card... are all welcome.
-;; Flammage is automagically > /dev/null.
-
-
-
-Dear Steve,
-"))
-    (reporter-submit-bug-report
-     "youngs@xemacs.org"
-     (format "eicq v%s" eicq-version) nil nil nil salutation)))
-
 (defun eicq-browse-homepage ()
   "Browse eicq homepage for news and files."
   (interactive)
-  (browse-url "http://users.ozlinx.com.au/~youngs_s/eicq/"))
+  (browse-url "http://eicq.sourceforge.net/"))
 
 (defcustom eicq-coding-system nil
   "*Coding for incoming and outgoing messages.
 
 ;;; Code - system main:
 
+(defvar eicq-blurb 
+  "`eicq-report-bug' is not yet fully implemented, so some stuff may
+be missing from this report.  Please send your bug report anyway.\n
+As succinctly as possible, tell us:-\n
+\tWhat happened.
+\tWhat you thought should happen.
+\tAnything else that you think is relevant.\n
+*** Please delete these instructions before submit the report. ***
+======================================================================\n"
+  "Preamble to the bug report.")
+
 (defvar eicq-main-menu
-  '("eicq"
-    ["Show window" eicq-show-window t]
-    ["Hide window" eicq-hide-window t]
-    ["Register new UIN" eicq-register-new-user t]
-    ["Change password" eicq-change-password t]
+  '("Eicq"
+    ["Show Window" eicq-show-window t]
+    ["Hide Window" eicq-hide-window t]
+    ["Register New UIN" eicq-register-new-user t]
+    ["Change Password" eicq-change-password t]
     ["Login" eicq-login t]
     ["Logout" eicq-logout t]
     ["Disconnect" eicq-disconnect t]
     "---"
     ["Select" eicq-group-select-aliases t]
-    ["Send message" eicq-send-message t]
+    ["Send Message" eicq-send-message t]
     ["Send URL" eicq-send-url t]
     ["Authorize" eicq-authorize t]
-    ["Change status" eicq-change-status t]
+    ["Change Status" eicq-change-status t]
     ["Search" eicq-search t]
-    ["Update meta info" eicq-update-meta-info t]
+    ["Update Meta Info" eicq-update-meta-info t]
     "---"
     ["alias -> uin" eicq-alias-uin t]
     ["uin -> alias" eicq-uin-alias t]
-    ["Redo packet" eicq-redo-hex t]
-    ["Resend contact list" eicq-send-contact-list t]
-    ["Buddy buffer" eicq-buddy-show-buffer t]
-    ["Log buffer" eicq-log-show-buffer t]
-    ["Bridge buffer" eicq-bridge-show-buffer t]
+    ["Redo Packet" eicq-redo-hex t]
+    ["Resend Contact List" eicq-send-contact-list t]
+    ["Buddy Buffer" eicq-buddy-show-buffer t]
+    ["Log Buffer" eicq-log-show-buffer t]
+    ["Bridge Buffer" eicq-bridge-show-buffer t]
     "---"
-    ["Email author" eicq-email-author t]
+    ["Email Author" eicq-email-author t]
+    ["Submit Bug Report" (eicq-report-bug eicq-blurb) t]
     ["Customize" eicq-customize t])
   "Menu for both `eicq-log-mode' and `eicq-buddy-mode'.")
 
 (easy-menu-define
- eicq-main-easymenu nil "eicq main" eicq-main-menu)
+ eicq-main-easymenu nil "Eicq Main" eicq-main-menu)
 
 ;;;###autoload
 
     (eicq-log-show-buffer nil 'no-select)
     (eicq-connect)
     (when (eicq-connected-p)
-      (message "Logging in ICQ server...")
+      (message "Logging on the ICQ server...")
       (eicq-send (eicq-pack-login)))))
 
 (defun eicq-logout (&optional kill)
   (eicq-send (eicq-pack-set-random-group group)))
 
 (defun eicq-update-meta-info ()
-  "Update user meta info in ICQ server.
+  "Update user meta info on the ICQ server.
 Run this after changing any meta user info variables."
   (interactive)
   (eicq-send (eicq-pack-update-authorization))
   "Buffer for log.")
 
 (defvar eicq-log-menu
-  '("e-log"
-    ["Select around" eicq-select-alias-around t]
-    ["Send message around" eicq-send-message-alias-around t]
-    ["Send URL around" eicq-send-url-alias-around t]
-    ["Authorize around" eicq-authorize-alias-around t]
-    ["Forward message" eicq-forward-message-around t]
-    ["Query around" eicq-query-info-alias-around t]
+  '("Eicq-log"
+    ["Select Around" eicq-select-alias-around t]
+    ["Send Message Around" eicq-send-message-alias-around t]
+    ["Send URL Around" eicq-send-url-alias-around t]
+    ["Authorize Around" eicq-authorize-alias-around t]
+    ["Forward Message" eicq-forward-message-around t]
+    ["Query Around" eicq-query-info-alias-around t]
     "---"
-    ["New log file" eicq-log-new-file t]
-    ["Contract log" eicq-log-contract t]
-    ["Expand log" eicq-log-expand t]
-    ["Previous log" eicq-log-previous t]
-    ["Next log" eicq-log-next t]
+    ["New Log File" eicq-log-new-file t]
+    ["Contract Log" eicq-log-contract t]
+    ["Expand Log" eicq-log-expand t]
+    ["Previous Log" eicq-log-previous t]
+    ["Next Log" eicq-log-next t]
     "---"
-    ["Mark read" eicq-log-mark-read t]
-    ["Mark unread" eicq-log-mark-unread t])
+    ["Mark Read" eicq-log-mark-read t]
+    ["Mark Unread" eicq-log-mark-unread t])
   "Menu for `eicq-log-mode'.")
 
 (easy-menu-define
- eicq-buddy-easymenu nil "eicq buddy" eicq-log-menu)
+ eicq-buddy-easymenu nil "Eicq Buddy" eicq-log-menu)
 
 (defvar eicq-log-outline-regexp "^...:.. "
   "Regexp for log header.
   "Buffer for contact list.")
 
 (defvar eicq-buddy-menu
-  '("e-buddy"
-    ["Select here" eicq-select-alias-here t]
-    ["Select by status" eicq-buddy-select-all-in-view-by-status t]
-    ["Select by regexp" eicq-buddy-select-all-in-view-by-regexp t]
-    ["Send message here" eicq-send-message-alias-here t]
-    ["Send URL here" eicq-send-url-alias-here t]
-    ["Authorize here" eicq-authorize-alias-here t]
-    ["Query info here" eicq-query-info-alias-here t]
+  '("Eicq-Buddy"
+    ["Select Here" eicq-select-alias-here t]
+    ["Select By Status" eicq-buddy-select-all-in-view-by-status t]
+    ["Select By Regexp" eicq-buddy-select-all-in-view-by-regexp t]
+    ["Send Message Here" eicq-send-message-alias-here t]
+    ["Send URL Here" eicq-send-url-alias-here t]
+    ["Authorize Here" eicq-authorize-alias-here t]
+    ["Query Info Here" eicq-query-info-alias-here t]
     "---"
-    ["View connected" eicq-buddy-view-connected t]
-    ["View active" eicq-buddy-view-active t]
-    ["View all" eicq-buddy-view-all t])
+    ["View Connected" eicq-buddy-view-connected t]
+    ["View Active" eicq-buddy-view-active t]
+    ["View All" eicq-buddy-view-all t])
   "Menu for `eicq-buddy-mode'.")
 
 (easy-menu-define
- eicq-log-easymenu nil "eicq log" eicq-buddy-menu)
+ eicq-log-easymenu nil "Eicq Log" eicq-buddy-menu)
 
 (defadvice display-buffer
   (after eicq-buddy-avoid-window-select last activate)
  * Maintainer: Steve Youngs <youngs@xemacs.org>
  * License: GPL
  * Created: Aug 08, 1998
- * Version: 0.2.6
- * Where: http://users.ozlinx.com.au/~youngs_s/eicq/
+ * Version: 0.2.9
+ * Where: http://eicq.sourceforge.net/
  * Keywords: udp, tcp, network, bridge, icq, emacs
  * 
  * 
     struct sockaddr_in udp_local_addr, udp_remote_addr, 
 	tcp_local_addr, tcp_remote_addr;
 
-    printf("UDP <-> TCP bridge v0.2.6\n\
+    printf("UDP <-> TCP bridge v0.2.9\n\
 \n\
-http://users.ozlinx.com.au/~youngs_s/eicq/\n\n");
+http://eicq.sourceforge.net/\n\n");
   
     if (argc != 4) {
 	printf("Invalid number of parameters.\n\