From unknown Sat Aug 16 21:01:12 2025 X-Loop: don@donarmstrong.com Subject: bug#553: 23.0.60; Unknown button type `quail-keyboard-layout-button' Reply-To: Juri Linkov , 553@debbugs.gnu.org Resent-From: Juri Linkov Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Sat, 12 Jul 2008 22:15:03 +0000 Resent-Message-ID: Resent-Sender: don@donarmstrong.com X-Emacs-PR-Message: report 553 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by submit@emacsbugs.donarmstrong.com id=B.121590034413051 (code B ref -1); Sat, 12 Jul 2008 22:15:03 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.3-bugs.debian.org_2005_01_02 (2007-08-08) on rzlab.ucr.edu X-Spam-Level: X-Spam-Status: No, score=-6.1 required=4.0 tests=AWL,BAYES_00, RCVD_IN_DNSWL_MED,SUBJECT_FUZZY_TION autolearn=ham version=3.2.3-bugs.debian.org_2005_01_02 Received: (at submit) by emacsbugs.donarmstrong.com; 12 Jul 2008 22:05:44 +0000 Received: from fencepost.gnu.org (fencepost.gnu.org [140.186.70.10]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id m6CM5ZG9013045 for ; Sat, 12 Jul 2008 15:05:36 -0700 Received: from mx10.gnu.org ([199.232.76.166]:38362) by fencepost.gnu.org with esmtp (Exim 4.67) (envelope-from ) id 1KHnDE-0002Ak-Vi for emacs-pretest-bug@gnu.org; Sat, 12 Jul 2008 18:05:05 -0400 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1KHnDf-0002Tr-9E for emacs-pretest-bug@gnu.org; Sat, 12 Jul 2008 18:05:34 -0400 Received: from relay03.kiev.sovam.com ([62.64.120.201]:57026) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KHnDe-0002Tj-Pz for emacs-pretest-bug@gnu.org; Sat, 12 Jul 2008 18:05:31 -0400 Received: from [83.170.232.243] (helo=smtp.svitonline.com) by relay03.kiev.sovam.com with esmtp (Exim 4.67) (envelope-from ) id 1KHnDd-000Ozo-3J for emacs-pretest-bug@gnu.org; Sun, 13 Jul 2008 01:05:29 +0300 From: Juri Linkov To: emacs-pretest-bug@gnu.org Organization: JURTA Date: Sun, 13 Jul 2008 01:04:42 +0300 Message-ID: <87d4likbd1.fsf@jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanner-Signature: 8fcfa5a562f326ba64a474cd1db6e25e X-DrWeb-checked: yes X-SpamTest-Envelope-From: juri@jurta.org X-SpamTest-Group-ID: 00000000 X-SpamTest-Header: Trusted X-SpamTest-Info: Profiles 4292 [July 12 2008] X-SpamTest-Info: {received from trusted relay: common white list} X-SpamTest-Info: {HEADERS: header Content-Type found without required header Content-Transfer-Encoding} X-SpamTest-Method: white ip list X-SpamTest-Rate: 10 X-SpamTest-Status: Trusted X-SpamTest-Status-Extended: trusted X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0278], KAS30/Release X-detected-kernel: by monty-python.gnu.org: FreeBSD 6.x (1) 1. `emacs -Q' 2. `M-: (require 'help-mode) RET' or run any Help command that loads this mode 3. Activate an input method by C-\ 4. Click `mouse-3' on the input method's indicator on the mode-line It fills the *Help* buffer with the text only until it tries to create a button, and fails with the error "make-text-button: Unknown button type `quail-keyboard-layout-button'". This is because `quail-help-init' fails to define new button types. It currently has the form: (defun quail-help-init () (unless (featurep 'help-mode) (require 'help-mode) (define-button-type 'quail-keyboard-layout-button :supertype 'help-xref 'help-function '(lambda (layout) (help-setup-xref `(quail-keyboard-layout-button ,layout) nil) (quail-show-keyboard-layout layout)) 'help-echo (purecopy "mouse-2, RET: show keyboard layout")) (define-button-type 'quail-keyboard-customize-button :supertype 'help-customize-variable 'help-echo (purecopy "mouse-2, RET: customize keyboard layout")))) So it doesn't define two button types if `help-mode' is already loaded. I guess it was done to define them only once, and not redefine on next invocations. Instead of checking for (featurep 'help-mode) it could check if these buttons were already defined. I can't find a function like `button-defined-p' to do this. But the following check seems to work: (get 'quail-keyboard-layout-button 'button-category-symbol) -- Juri Linkov http://www.jurta.org/emacs/ From unknown Sat Aug 16 21:01:12 2025 X-Loop: don@donarmstrong.com Subject: bug#553: 23.0.60; Unknown button type `quail-keyboard-layout-button' Reply-To: Chong Yidong , 553@debbugs.gnu.org Resent-From: Chong Yidong Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Thu, 21 Aug 2008 23:50:02 +0000 Resent-Message-ID: Resent-Sender: don@donarmstrong.com X-Emacs-PR-Message: report 553 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by 553-submit@emacsbugs.donarmstrong.com id=B553.12193620422916 (code B ref 553); Thu, 21 Aug 2008 23:50:02 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.3-bugs.debian.org_2005_01_02 (2007-08-08) on rzlab.ucr.edu X-Spam-Level: X-Spam-Status: No, score=-3.5 required=4.0 tests=AWL,BAYES_00, SUBJECT_FUZZY_TION autolearn=no version=3.2.3-bugs.debian.org_2005_01_02 Received: (at 553) by emacsbugs.donarmstrong.com; 21 Aug 2008 23:40:42 +0000 Received: from cyd.mit.edu (CYD.MIT.EDU [18.115.2.24]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id m7LNedit002910 for <553@emacsbugs.donarmstrong.com>; Thu, 21 Aug 2008 16:40:40 -0700 Received: by cyd.mit.edu (Postfix, from userid 1000) id B391257E33F; Thu, 21 Aug 2008 19:41:58 -0400 (EDT) To: Kenichi Handa Cc: Juri Linkov , 553@debbugs.gnu.org From: Chong Yidong Date: Thu, 21 Aug 2008 19:41:58 -0400 Message-ID: <87d4k27x6h.fsf@cyd.mit.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Hi Handa-san, > 1. `emacs -Q' > 2. `M-: (require 'help-mode) RET' > or run any Help command that loads this mode > 3. Activate an input method by C-\ > 4. Click `mouse-3' on the input method's indicator > on the mode-line > > It fills the *Help* buffer with the text only until > it tries to create a button, and fails with the error > "make-text-button: Unknown button type `quail-keyboard-layout-button'". > > This is because `quail-help-init' fails to define new button types. > It currently has the form: > > (defun quail-help-init () > (unless (featurep 'help-mode) > (require 'help-mode) > (define-button-type 'quail-keyboard-layout-button > :supertype 'help-xref > 'help-function '(lambda (layout) > (help-setup-xref `(quail-keyboard-layout-button ,layout) > nil) > (quail-show-keyboard-layout layout)) > 'help-echo (purecopy "mouse-2, RET: show keyboard layout")) > > (define-button-type 'quail-keyboard-customize-button > :supertype 'help-customize-variable > 'help-echo (purecopy "mouse-2, RET: customize keyboard layout")))) > > So it doesn't define two button types if `help-mode' is already loaded. > > I guess it was done to define them only once, and not redefine on next > invocations. Do you remember why you wrote quail-help-init this way? It seems unnecessary; why not define the button types directly at the top level of quail.el? From unknown Sat Aug 16 21:01:12 2025 X-Loop: don@donarmstrong.com Subject: bug#553: 23.0.60; Unknown button type `quail-keyboard-layout-button' Reply-To: Juri Linkov , 553@debbugs.gnu.org Resent-From: Juri Linkov Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Mon, 25 Aug 2008 16:00:03 +0000 Resent-Message-ID: Resent-Sender: don@donarmstrong.com X-Emacs-PR-Message: report 553 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by 553-submit@emacsbugs.donarmstrong.com id=B553.121967965720478 (code B ref 553); Mon, 25 Aug 2008 16:00:03 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.3-bugs.debian.org_2005_01_02 (2007-08-08) on rzlab.ucr.edu X-Spam-Level: X-Spam-Status: No, score=-5.3 required=4.0 tests=AWL,BAYES_00, SUBJECT_FUZZY_TION autolearn=no version=3.2.3-bugs.debian.org_2005_01_02 Received: (at 553) by emacsbugs.donarmstrong.com; 25 Aug 2008 15:54:17 +0000 Received: from anti-4.kiev.sovam.com (anti-4.kiev.sovam.com [62.64.120.202]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id m7PFsAEo020465 for <553@emacsbugs.donarmstrong.com>; Mon, 25 Aug 2008 08:54:12 -0700 Received: from [83.170.232.243] (helo=smtp.svitonline.com) by anti-4.kiev.sovam.com with esmtp (Exim 4.67) (envelope-from ) id 1KXeOO-0000by-IL; Mon, 25 Aug 2008 18:54:08 +0300 From: Juri Linkov To: Chong Yidong Cc: Kenichi Handa , 553@debbugs.gnu.org Organization: JURTA References: <87d4k27x6h.fsf@cyd.mit.edu> Date: Mon, 25 Aug 2008 18:52:09 +0300 In-Reply-To: <87d4k27x6h.fsf@cyd.mit.edu> (Chong Yidong's message of "Thu, 21 Aug 2008 19:41:58 -0400") Message-ID: <87y72lay8m.fsf@jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanner-Signature: 485d3c07c5d69b41d1cad5b5ab8b481e X-DrWeb-checked: yes X-SpamTest-Envelope-From: juri@jurta.org X-SpamTest-Group-ID: 00000000 X-SpamTest-Header: Trusted X-SpamTest-Info: Profiles 4896 [Aug 24 2008] X-SpamTest-Info: {received from trusted relay: common white list} X-SpamTest-Info: {HEADERS: header Content-Type found without required header Content-Transfer-Encoding} X-SpamTest-Method: white ip list X-SpamTest-Rate: 10 X-SpamTest-Status: Trusted X-SpamTest-Status-Extended: trusted X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0278], KAS30/Release > Do you remember why you wrote quail-help-init this way? It seems > unnecessary; why not define the button types directly at the top level > of quail.el? I don't know the reason of writing quail-help-init this way, but it seems it was to not load `help-mode' after loading `quail.el'. `help-mode' is not necessary for quail's operations, so its loading should be postponed for rare cases when the user needs to see the help buffer with keyboard layouts. -- Juri Linkov http://www.jurta.org/emacs/ From unknown Sat Aug 16 21:01:12 2025 X-Loop: don@donarmstrong.com Subject: bug#553: 23.0.60; Unknown button type `quail-keyboard-layout-button' Reply-To: Chong Yidong , 553@debbugs.gnu.org Resent-From: Chong Yidong Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Tue, 26 Aug 2008 21:15:03 +0000 Resent-Message-ID: Resent-Sender: don@donarmstrong.com X-Emacs-PR-Message: report 553 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by 553-submit@emacsbugs.donarmstrong.com id=B553.12197850047844 (code B ref 553); Tue, 26 Aug 2008 21:15:03 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.3-bugs.debian.org_2005_01_02 (2007-08-08) on rzlab.ucr.edu X-Spam-Level: X-Spam-Status: No, score=-3.5 required=4.0 tests=AWL,BAYES_00, SUBJECT_FUZZY_TION autolearn=no version=3.2.3-bugs.debian.org_2005_01_02 Received: (at 553) by emacsbugs.donarmstrong.com; 26 Aug 2008 21:10:04 +0000 Received: from cyd.mit.edu (CYD.MIT.EDU [18.115.2.24]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id m7QL9xbx007798 for <553@emacsbugs.donarmstrong.com>; Tue, 26 Aug 2008 14:10:00 -0700 Received: by cyd.mit.edu (Postfix, from userid 1000) id 2FF5B57E34B; Tue, 26 Aug 2008 17:11:44 -0400 (EDT) To: Juri Linkov Cc: Kenichi Handa , 553@debbugs.gnu.org From: Chong Yidong Date: Tue, 26 Aug 2008 17:11:44 -0400 Message-ID: <87prnvscq7.fsf@cyd.mit.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii > > Do you remember why you wrote quail-help-init this way? It seems > > unnecessary; why not define the button types directly at the top level > > of quail.el? > > I don't know the reason of writing quail-help-init this way, but it seems > it was to not load `help-mode' after loading `quail.el'. `help-mode' is > not necessary for quail's operations, so its loading should be postponed > for rare cases when the user needs to see the help buffer with keyboard > layouts. Right, but why do we have to put the button definitions inside quail-help-init? In other words, why not the following? *** trunk/lisp/international/quail.el.~1.164.~ 2008-05-06 00:18:15.000000000 -0400 --- trunk/lisp/international/quail.el 2008-08-26 17:09:39.000000000 -0400 *************** *** 2424,2450 **** (insert ?\n)) (insert ?\n)))) ! (defun quail-help-init () ! (unless (featurep 'help-mode) ! (require 'help-mode) ! (define-button-type 'quail-keyboard-layout-button ! :supertype 'help-xref ! 'help-function '(lambda (layout) ! (help-setup-xref `(quail-keyboard-layout-button ,layout) ! nil) ! (quail-show-keyboard-layout layout)) ! 'help-echo (purecopy "mouse-2, RET: show keyboard layout")) ! ! (define-button-type 'quail-keyboard-customize-button ! :supertype 'help-customize-variable ! 'help-echo (purecopy "mouse-2, RET: customize keyboard layout")))) (defun quail-help (&optional package) "Show brief description of the current Quail package. Optional arg PACKAGE specifies the name of alternative Quail package to describe." (interactive) ! (quail-help-init) (let ((help-xref-mule-regexp help-xref-mule-regexp-template) (mb enable-multibyte-characters) (package-def --- 2424,2447 ---- (insert ?\n)) (insert ?\n)))) ! (define-button-type 'quail-keyboard-layout-button ! :supertype 'help-xref ! 'help-function '(lambda (layout) ! (help-setup-xref `(quail-keyboard-layout-button ,layout) ! nil) ! (quail-show-keyboard-layout layout)) ! 'help-echo (purecopy "mouse-2, RET: show keyboard layout")) ! ! (define-button-type 'quail-keyboard-customize-button ! :supertype 'help-customize-variable ! 'help-echo (purecopy "mouse-2, RET: customize keyboard layout")) (defun quail-help (&optional package) "Show brief description of the current Quail package. Optional arg PACKAGE specifies the name of alternative Quail package to describe." (interactive) ! (require 'help-mode) (let ((help-xref-mule-regexp help-xref-mule-regexp-template) (mb enable-multibyte-characters) (package-def From unknown Sat Aug 16 21:01:12 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.420 (Entity 5.420) X-Loop: don@donarmstrong.com From: help-debbugs@gnu.org (Emacs bug Tracking System) To: Juri Linkov Subject: bug#553 closed by Chong Yidong (Re: 23.0.60; Unknown button type `quail-keyboard-layout-button') Message-ID: References: <871vzyjl39.fsf@cyd.mit.edu> <87d4likbd1.fsf@jurta.org> X-Emacs-PR-Message: they-closed 553 X-Emacs-PR-Package: emacs Reply-To: 553@debbugs.gnu.org Content-Type: multipart/mixed; boundary="----------=_1220653203-31261-1" This is a multi-part message in MIME format... ------------=_1220653203-31261-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This is an automatic notification regarding your bug report which was filed against the emacs package: #553: 23.0.60; Unknown button type `quail-keyboard-layout-button' It has been closed by Chong Yidong . Their explanation is attached below along with your original report. If this explanation is unsatisfactory and you have not received a better one in a separate message then please contact Chong Yidong by replying to this email. --=20 553: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D553 Emacs Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1220653203-31261-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit >From cyd@stupidchicken.com Fri Sep 5 15:12:47 2008 X-Spam-Checker-Version: SpamAssassin 3.2.3-bugs.debian.org_2005_01_02 (2007-08-08) on rzlab.ucr.edu X-Spam-Level: X-Spam-Status: No, score=-3.7 required=4.0 tests=AWL,BAYES_00, SUBJECT_FUZZY_TION autolearn=no version=3.2.3-bugs.debian.org_2005_01_02 Received: (at 553-done) by emacsbugs.donarmstrong.com; 5 Sep 2008 22:12:47 +0000 Received: from cyd.mit.edu (CYD.MIT.EDU [18.115.2.24]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id m85MCiuK029318 for <553-done@emacsbugs.donarmstrong.com>; Fri, 5 Sep 2008 15:12:45 -0700 Received: by cyd.mit.edu (Postfix, from userid 1000) id D5FD257E18A; Fri, 5 Sep 2008 18:15:22 -0400 (EDT) From: Chong Yidong To: Juri Linkov Cc: 553-done@debbugs.gnu.org Subject: Re: 23.0.60; Unknown button type `quail-keyboard-layout-button' Date: Fri, 05 Sep 2008 18:15:22 -0400 Message-ID: <871vzyjl39.fsf@cyd.mit.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii > I don't know the reason of writing quail-help-init this way, but it > seems it was to not load `help-mode' after loading `quail.el'. > `help-mode' is not necessary for quail's operations, so its loading > should be postponed for rare cases when the user needs to see the help > buffer with keyboard layouts. I don't think it's a big deal to just load help-mode, so I changed quail.el to do that. ------------=_1220653203-31261-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit >From juri@jurta.org Sat Jul 12 15:05:44 2008 X-Spam-Checker-Version: SpamAssassin 3.2.3-bugs.debian.org_2005_01_02 (2007-08-08) on rzlab.ucr.edu X-Spam-Level: X-Spam-Status: No, score=-6.1 required=4.0 tests=AWL,BAYES_00, RCVD_IN_DNSWL_MED,SUBJECT_FUZZY_TION autolearn=ham version=3.2.3-bugs.debian.org_2005_01_02 Received: (at submit) by emacsbugs.donarmstrong.com; 12 Jul 2008 22:05:44 +0000 Received: from fencepost.gnu.org (fencepost.gnu.org [140.186.70.10]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id m6CM5ZG9013045 for ; Sat, 12 Jul 2008 15:05:36 -0700 Received: from mx10.gnu.org ([199.232.76.166]:38362) by fencepost.gnu.org with esmtp (Exim 4.67) (envelope-from ) id 1KHnDE-0002Ak-Vi for emacs-pretest-bug@gnu.org; Sat, 12 Jul 2008 18:05:05 -0400 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1KHnDf-0002Tr-9E for emacs-pretest-bug@gnu.org; Sat, 12 Jul 2008 18:05:34 -0400 Received: from relay03.kiev.sovam.com ([62.64.120.201]:57026) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KHnDe-0002Tj-Pz for emacs-pretest-bug@gnu.org; Sat, 12 Jul 2008 18:05:31 -0400 Received: from [83.170.232.243] (helo=smtp.svitonline.com) by relay03.kiev.sovam.com with esmtp (Exim 4.67) (envelope-from ) id 1KHnDd-000Ozo-3J for emacs-pretest-bug@gnu.org; Sun, 13 Jul 2008 01:05:29 +0300 From: Juri Linkov To: emacs-pretest-bug@gnu.org Subject: 23.0.60; Unknown button type `quail-keyboard-layout-button' Organization: JURTA Date: Sun, 13 Jul 2008 01:04:42 +0300 Message-ID: <87d4likbd1.fsf@jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanner-Signature: 8fcfa5a562f326ba64a474cd1db6e25e X-DrWeb-checked: yes X-SpamTest-Envelope-From: juri@jurta.org X-SpamTest-Group-ID: 00000000 X-SpamTest-Header: Trusted X-SpamTest-Info: Profiles 4292 [July 12 2008] X-SpamTest-Info: {received from trusted relay: common white list} X-SpamTest-Info: {HEADERS: header Content-Type found without required header Content-Transfer-Encoding} X-SpamTest-Method: white ip list X-SpamTest-Rate: 10 X-SpamTest-Status: Trusted X-SpamTest-Status-Extended: trusted X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0278], KAS30/Release X-detected-kernel: by monty-python.gnu.org: FreeBSD 6.x (1) 1. `emacs -Q' 2. `M-: (require 'help-mode) RET' or run any Help command that loads this mode 3. Activate an input method by C-\ 4. Click `mouse-3' on the input method's indicator on the mode-line It fills the *Help* buffer with the text only until it tries to create a button, and fails with the error "make-text-button: Unknown button type `quail-keyboard-layout-button'". This is because `quail-help-init' fails to define new button types. It currently has the form: (defun quail-help-init () (unless (featurep 'help-mode) (require 'help-mode) (define-button-type 'quail-keyboard-layout-button :supertype 'help-xref 'help-function '(lambda (layout) (help-setup-xref `(quail-keyboard-layout-button ,layout) nil) (quail-show-keyboard-layout layout)) 'help-echo (purecopy "mouse-2, RET: show keyboard layout")) (define-button-type 'quail-keyboard-customize-button :supertype 'help-customize-variable 'help-echo (purecopy "mouse-2, RET: customize keyboard layout")))) So it doesn't define two button types if `help-mode' is already loaded. I guess it was done to define them only once, and not redefine on next invocations. Instead of checking for (featurep 'help-mode) it could check if these buttons were already defined. I can't find a function like `button-defined-p' to do this. But the following check seems to work: (get 'quail-keyboard-layout-button 'button-category-symbol) -- Juri Linkov http://www.jurta.org/emacs/ ------------=_1220653203-31261-1--