From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Roland Winkler" Newsgroups: gmane.emacs.devel Subject: make read-face-name behave as promised Date: Sun, 31 Mar 2013 20:35:06 -0500 Message-ID: <20824.58442.669086.18298@gargle.gargle.HOWL> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="fIpDGLG4IW" Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1364780117 7978 80.91.229.3 (1 Apr 2013 01:35:17 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 1 Apr 2013 01:35:17 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Apr 01 03:35:45 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UMTew-0007GS-Ce for ged-emacs-devel@m.gmane.org; Mon, 01 Apr 2013 03:35:42 +0200 Original-Received: from localhost ([::1]:41929 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UMTeX-0004Lv-TA for ged-emacs-devel@m.gmane.org; Sun, 31 Mar 2013 21:35:17 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:59566) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UMTeT-0004Kx-7l for emacs-devel@gnu.org; Sun, 31 Mar 2013 21:35:15 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UMTeQ-0003yu-EM for emacs-devel@gnu.org; Sun, 31 Mar 2013 21:35:12 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:35868) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UMTeQ-0003yq-AU for emacs-devel@gnu.org; Sun, 31 Mar 2013 21:35:10 -0400 Original-Received: from adsl-68-77-17-140.dsl.emhril.ameritech.net ([68.77.17.140]:41626 helo=regnitz) by fencepost.gnu.org with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1UMTeO-0002VH-TN for emacs-devel@gnu.org; Sun, 31 Mar 2013 21:35:10 -0400 X-Mailer: VM 8.2 trial under 24.3.1 (x86_64-unknown-linux-gnu) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:158503 Archived-At: --fIpDGLG4IW Content-Type: text/plain; charset=us-ascii Content-Description: message body text Content-Transfer-Encoding: 7bit After fixing a bug in completing-read-multiple (remove empty strings from the list of read strings) I thought I could also clean up read-face-name, which worked around this bug. Yet I got side-tracked by the fact that currently read-face-name does not behave as promised by its doc string: - The arg DEFAULT is treated like a single string, though the doc string says it should be a list of faces. - The arg DEFAULT is ignored if the text at point has a `read-face-name' or `face' property. This appears like a bug to me because it makes the arg DEFAULT useless in this case. - If the thing at point is a face, this is taken as the first element of DEFAULT. The patch below makes read-face-name behave as promised by its doc string. Yet this may cause trouble elsewhere if code relies on the current behavior of read-face-name. So I first wanted to post this patch to emacs-devel. In the emacs trunk, I found only one function (describe-face) that relies on the current behavior of read-face-name. So the patch below fixes this, too. But there might be other emacs packages (not part of the trunk) that I do not know about. --fIpDGLG4IW Content-Type: application/octet-stream; name="faces.patch" Content-Disposition: attachment; filename="faces.patch" Content-Transfer-Encoding: base64 PT09IG1vZGlmaWVkIGZpbGUgJ2xpc3AvZmFjZXMuZWwnCi0tLSBsaXNwL2ZhY2VzLmVsCTIwMTMt MDEtMTAgMDM6NDM6MDIgKzAwMDAKKysrIGxpc3AvZmFjZXMuZWwJMjAxMy0wNC0wMSAwMToyOTow NCArMDAwMApAQCAtOTM1LDgwICs5MzUsNzUgQEAKIAogVGhlIG9wdGlvbmFsIGFyZ3VtZW50IERF RkFVTFQgc3BlY2lmaWVzIHRoZSBkZWZhdWx0IGZhY2UgbmFtZShzKQogdG8gcmV0dXJuIGlmIHRo ZSB1c2VyIGp1c3QgdHlwZXMgUkVULiAgSWYgaXRzIHZhbHVlIGlzIG5vbi1uaWwsCi1pdCBzaG91 bGQgYmUgYSBsaXN0IG9mIGZhY2UgbmFtZXMgKHN5bWJvbHMpOyBpbiB0aGF0IGNhc2UsIHRoZQot ZGVmYXVsdCByZXR1cm4gdmFsdWUgaXMgdGhlIGBjYXInIG9mIERFRkFVTFQgKGlmIHRoZSBhcmd1 bWVudAoraXQgc2hvdWxkIGJlIGEgbGlzdCBvZiBmYWNlIG5hbWVzIChzeW1ib2xzIG9yIHN0cmlu Z3MpOyBpbiB0aGF0IGNhc2UsCit0aGUgZGVmYXVsdCByZXR1cm4gdmFsdWUgaXMgdGhlIGBjYXIn IG9mIERFRkFVTFQgKGlmIHRoZSBhcmd1bWVudAogTVVMVElQTEUgaXMgbm9uLW5pbCksIG9yIERF RkFVTFQgKGlmIE1VTFRJUExFIGlzIG5pbCkuICBTZWUgYmVsb3cKIGZvciB0aGUgbWVhbmluZyBv ZiBNVUxUSVBMRS4KIAogSWYgREVGQVVMVCBpcyBuaWwsIHRoZSBsaXN0IG9mIGRlZmF1bHQgZmFj ZSBuYW1lcyBpcyB0YWtlbiBmcm9tCi10aGUgYHJlYWQtZmFjZS1uYW1lJyBwcm9wZXJ0eSBvZiB0 aGUgdGV4dCBhdCBwb2ludCwgb3IsIGlmIHRoYXQKLWlzIG5pbCwgZnJvbSB0aGUgYGZhY2UnIHBy b3BlcnR5IG9mIHRoZSB0ZXh0IGF0IHBvaW50LgordGhlIHN5bWJvbCBhdCBwb2ludCBhbmQgdGhl IGByZWFkLWZhY2UtbmFtZScgcHJvcGVydHkgb2YgdGhlIHRleHQgYXQgcG9pbnQsCitvciwgaWYg dGhhdCBpcyBuaWwsIGZyb20gdGhlIGBmYWNlJyBwcm9wZXJ0eSBvZiB0aGUgdGV4dCBhdCBwb2lu dC4KIAotVGhpcyBmdW5jdGlvbiB1c2VzIGBjb21wbGV0aW5nLXJlYWQtbXVsdGlwbGUnIHdpdGgg XCIsXCIgYXMgdGhlCi1zZXBhcmF0b3IgY2hhcmFjdGVyLiAgVGh1cywgdGhlIHVzZXIgbWF5IGVu dGVyIG11bHRpcGxlIGZhY2UKK1RoaXMgZnVuY3Rpb24gdXNlcyBgY29tcGxldGluZy1yZWFkLW11 bHRpcGxlJyB3aXRoIFwiWyBcXHRdKixbIFxcdF0qXCIKK2FzIHRoZSBzZXBhcmF0b3IgcmVnZXhw LiAgVGh1cywgdGhlIHVzZXIgbWF5IGVudGVyIG11bHRpcGxlIGZhY2UKIG5hbWVzLCBzZXBhcmF0 ZWQgYnkgY29tbWFzLiAgVGhlIG9wdGlvbmFsIGFyZ3VtZW50IE1VTFRJUExFCiBzcGVjaWZpZXMg dGhlIGZvcm0gb2YgdGhlIHJldHVybiB2YWx1ZS4gIElmIE1VTFRJUExFIGlzIG5vbi1uaWwsCiBy ZXR1cm4gYSBsaXN0IG9mIGZhY2UgbmFtZXM7IGlmIHRoZSB1c2VyIGVudGVyZWQganVzdCBvbmUg ZmFjZQogbmFtZSwgdGhlIHJldHVybiB2YWx1ZSB3b3VsZCBiZSBhIGxpc3Qgb2Ygb25lIGZhY2Ug bmFtZS4KIE90aGVyd2lzZSwgcmV0dXJuIGEgc2luZ2xlIGZhY2UgbmFtZTsgaWYgdGhlIHVzZXIg ZW50ZXJlZCBtb3JlCiB0aGFuIG9uZSBmYWNlIG5hbWUsIHJldHVybiBvbmx5IHRoZSBmaXJzdCBv bmUuIgotICAobGV0ICgoZmFjZXByb3AgKG9yIChnZXQtY2hhci1wcm9wZXJ0eSAocG9pbnQpICdy ZWFkLWZhY2UtbmFtZSkKLQkJICAgICAgKGdldC1jaGFyLXByb3BlcnR5IChwb2ludCkgJ2ZhY2Up KSkKLSAgICAgICAgKGFsaWFzZmFjZXMgbmlsKQotICAgICAgICAobm9uYWxpYXNmYWNlcyBuaWwp Ci0JZmFjZXMpCi0gICAgOzsgVHJ5IHRvIGdldCBhIGZhY2UgbmFtZSBmcm9tIHRoZSBidWZmZXIu Ci0gICAgKGlmIChtZW1xIChpbnRlcm4tc29mdCAodGhpbmctYXQtcG9pbnQgJ3N5bWJvbCkpIChm YWNlLWxpc3QpKQotCShzZXRxIGZhY2VzIChsaXN0IChpbnRlcm4tc29mdCAodGhpbmctYXQtcG9p bnQgJ3N5bWJvbCkpKSkpCi0gICAgOzsgQWRkIHRoZSBuYW1lZCBmYWNlcyB0aGF0IHRoZSBgZmFj ZScgcHJvcGVydHkgdXNlcy4KLSAgICAoaWYgKGFuZCAobGlzdHAgZmFjZXByb3ApCi0JICAgICA7 OyBEb24ndCB0cmVhdCBhbiBhdHRyaWJ1dGUgc3BlYyBhcyBhIGxpc3Qgb2YgZmFjZXMuCi0JICAg ICAobm90IChrZXl3b3JkcCAoY2FyIGZhY2Vwcm9wKSkpCi0JICAgICAobm90IChtZW1xIChjYXIg ZmFjZXByb3ApICcoZm9yZWdyb3VuZC1jb2xvciBiYWNrZ3JvdW5kLWNvbG9yKSkpKQotCShkb2xp c3QgKGYgZmFjZXByb3ApCi0JICAoaWYgKHN5bWJvbHAgZikKLQkgICAgICAocHVzaCBmIGZhY2Vz KSkpCi0gICAgICAoaWYgKHN5bWJvbHAgZmFjZXByb3ApCi0JICAocHVzaCBmYWNlcHJvcCBmYWNl cykpKQotICAgIChkZWxldGUtZHVwcyBmYWNlcykKLQotICAgIDs7IEJ1aWxkIHVwIHRoZSBjb21w bGV0aW9uIHRhYmxlcy4KKyAgKHVubGVzcyBkZWZhdWx0CisgICAgOzsgVHJ5IHRvIGdldCBhIGRl ZmF1bHQgZmFjZSBuYW1lIGZyb20gdGhlIGJ1ZmZlci4KKyAgICAobGV0ICgodGhpbmcgKGludGVy bi1zb2Z0ICh0aGluZy1hdC1wb2ludCAnc3ltYm9sKSkpKQorICAgICAgKGlmIChtZW1xIHRoaW5n IChmYWNlLWxpc3QpKQorICAgICAgICAgIChzZXRxIGRlZmF1bHQgKGxpc3QgdGhpbmcpKSkpCisg ICAgOzsgQWRkIHRoZSBuYW1lZCBmYWNlcyB0aGF0IHRoZSBgcmVhZC1mYWNlLW5hbWUnIG9yIGBm YWNlJyBwcm9wZXJ0eSB1c2VzLgorICAgIDs7IFNob3VsZCB3ZSB1c2UgdGhlIGRlZmF1bHQgZmFj ZSAoYXMgaW4gYGZhY2UtYXQtcG9pbnQnKSBpZiBib3RoCisgICAgOzsgdGhlIGByZWFkLWZhY2Ut bmFtZScgb3IgYGZhY2UnIHByb3BlcnRpZXMgYXJlIG5pbD8KKyAgICAobGV0ICgoZmFjZXByb3Ag KG9yIChnZXQtY2hhci1wcm9wZXJ0eSAocG9pbnQpICdyZWFkLWZhY2UtbmFtZSkKKyAgICAgICAg ICAgICAgICAgICAgICAgIChnZXQtY2hhci1wcm9wZXJ0eSAocG9pbnQpICdmYWNlKSkpKQorICAg ICAgKGlmIChhbmQgKGxpc3RwIGZhY2Vwcm9wKQorICAgICAgICAgICAgICAgOzsgRG9uJ3QgdHJl YXQgYW4gYXR0cmlidXRlIHNwZWMgYXMgYSBsaXN0IG9mIGZhY2VzLgorICAgICAgICAgICAgICAg KG5vdCAoa2V5d29yZHAgKGNhciBmYWNlcHJvcCkpKQorICAgICAgICAgICAgICAgKG5vdCAobWVt cSAoY2FyIGZhY2Vwcm9wKSAnKGZvcmVncm91bmQtY29sb3IgYmFja2dyb3VuZC1jb2xvcikpKSkK KyAgICAgICAgICAoZG9saXN0IChmYWNlIGZhY2Vwcm9wKQorICAgICAgICAgICAgKGlmIChzeW1i b2xwIGZhY2UpCisgICAgICAgICAgICAgICAgKHB1c2ggZmFjZSBkZWZhdWx0KSkpCisgICAgICAg IChpZiAoc3ltYm9scCBmYWNlcHJvcCkKKyAgICAgICAgICAgIChwdXNoIGZhY2Vwcm9wIGRlZmF1 bHQpKSkKKyAgICAgIChkZWxldGUtZHVwcyBkZWZhdWx0KSkpCisKKyAgOzsgSWYgd2Ugb25seSB3 YW50IG9uZSwgYW5kIHRoZSBkZWZhdWx0IGlzIG1vcmUgdGhhbiBvbmUsCisgIDs7IGRpc2NhcmQg dGhlIHVud2FudGVkIG9uZXMgbm93LgorICAoaWYgKGFuZCBkZWZhdWx0IChub3QgbXVsdGlwbGUp KQorICAgICAgKHNldHEgZGVmYXVsdCAobGlzdCAoY2FyIGRlZmF1bHQpKSkpCisKKyAgKGlmIGRl ZmF1bHQKKyAgICAgIChzZXRxIGRlZmF1bHQgKG1hcGNvbmNhdCAobGFtYmRhIChmKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzeW1ib2xwIGYpIChzeW1ib2wtbmFtZSBm KSBmKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0ICIsICIpKSkKKwor ICA7OyBCdWlsZCB1cCB0aGUgY29tcGxldGlvbiB0YWJsZXMuCisgIChsZXQgKGFsaWFzZmFjZXMg bm9uYWxpYXNmYWNlcykKICAgICAobWFwYXRvbXMgKGxhbWJkYSAocykKICAgICAgICAgICAgICAg ICAoaWYgKGN1c3RvbS1mYWNlcCBzKQogICAgICAgICAgICAgICAgICAgICAoaWYgKGdldCBzICdm YWNlLWFsaWFzKQogICAgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggKHN5bWJvbC1uYW1lIHMp IGFsaWFzZmFjZXMpCiAgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggKHN5bWJvbC1uYW1lIHMp IG5vbmFsaWFzZmFjZXMpKSkpKQogCi0gICAgOzsgSWYgd2Ugb25seSB3YW50IG9uZSwgYW5kIHRo ZSBkZWZhdWx0IGlzIG1vcmUgdGhhbiBvbmUsCi0gICAgOzsgZGlzY2FyZCB0aGUgdW53YW50ZWQg b25lcyBub3cuCi0gICAgKHVubGVzcyBtdWx0aXBsZQotICAgICAgKGlmIGZhY2VzCi0JICAoc2V0 cSBmYWNlcyAobGlzdCAoY2FyIGZhY2VzKSkpKSkKLSAgICAocmVxdWlyZSAnY3JtKQotICAgIChs ZXQqICgoaW5wdXQKLQkgICAgOzsgUmVhZCB0aGUgaW5wdXQuCi0JICAgIChjb21wbGV0aW5nLXJl YWQtbXVsdGlwbGUKLQkgICAgIChpZiAob3IgZmFjZXMgZGVmYXVsdCkKLQkJIChmb3JtYXQgIiVz IChkZWZhdWx0IGAlcycpOiAiIHByb21wdAotCQkJIChpZiBmYWNlcyAobWFwY29uY2F0ICdzeW1i b2wtbmFtZSBmYWNlcyAiLCIpCi0JCQkgICBkZWZhdWx0KSkKLQkgICAgICAgKGZvcm1hdCAiJXM6 ICIgcHJvbXB0KSkKLQkgICAgIChjb21wbGV0aW9uLXRhYmxlLWluLXR1cm4gbm9uYWxpYXNmYWNl cyBhbGlhc2ZhY2VzKQotCSAgICAgbmlsIHQgbmlsICdmYWNlLW5hbWUtaGlzdG9yeQotCSAgICAg KGlmIGZhY2VzIChtYXBjb25jYXQgJ3N5bWJvbC1uYW1lIGZhY2VzICIsIikpKSkKLQkgICA7OyBD YW5vbmljYWxpemUgdGhlIG91dHB1dC4KLQkgICAob3V0cHV0Ci0JICAgIChjb25kICgob3IgKGVx dWFsIGlucHV0ICIiKSAoZXF1YWwgaW5wdXQgJygiIikpKQotCQkgICAob3IgZmFjZXMgKHVubGVz cyAoc3RyaW5ncCBkZWZhdWx0KSBkZWZhdWx0KSkpCi0JCSAgKChzdHJpbmdwIGlucHV0KQotCQkg ICAobWFwY2FyICdpbnRlcm4gKHNwbGl0LXN0cmluZyBpbnB1dCAiLCAqIiB0KSkpCi0JCSAgKChs aXN0cCBpbnB1dCkKLQkJICAgKG1hcGNhciAnaW50ZXJuIGlucHV0KSkKLQkJICAoaW5wdXQpKSkp CisgICAgKGxldCAoKGZhY2VzCisgICAgICAgICAgIDs7IFJlYWQgdGhlIGZhY2VzLgorICAgICAg ICAgICAobWFwY2FyICdpbnRlcm4KKyAgICAgICAgICAgICAgICAgICAoY29tcGxldGluZy1yZWFk LW11bHRpcGxlCisgICAgICAgICAgICAgICAgICAgIChpZiBkZWZhdWx0CisgICAgICAgICAgICAg ICAgICAgICAgICAoZm9ybWF0ICIlcyAoZGVmYXVsdCBgJXMnKTogIiBwcm9tcHQgZGVmYXVsdCkK KyAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICIlczogIiBwcm9tcHQpKQorICAgICAgICAg ICAgICAgICAgICAoY29tcGxldGlvbi10YWJsZS1pbi10dXJuIG5vbmFsaWFzZmFjZXMgYWxpYXNm YWNlcykKKyAgICAgICAgICAgICAgICAgICAgbmlsIHQgbmlsICdmYWNlLW5hbWUtaGlzdG9yeSBk ZWZhdWx0KSkpKQogICAgICAgOzsgUmV0dXJuIGVpdGhlciBhIGxpc3Qgb2YgZmFjZXMgb3IganVz dCBvbmUgZmFjZS4KICAgICAgIChpZiBtdWx0aXBsZQotCSAgb3V0cHV0Ci0JKGNhciBvdXRwdXQp KSkpKQorCSAgZmFjZXMKKwkoY2FyIGZhY2VzKSkpKSkKIAogOzsgTm90IGRlZmluZWQgd2l0aG91 dCBYLCBidXQgYmVoaW5kIHdpbmRvdy1zeXN0ZW0gdGVzdC4KIChkZWZ2YXIgeC1iaXRtYXAtZmls ZS1wYXRoKQpAQCAtMTM2Myw3ICsxMzU4LDEwIEBACiBJZiB0aGUgb3B0aW9uYWwgYXJndW1lbnQg RlJBTUUgaXMgZ2l2ZW4sIHJlcG9ydCBvbiBmYWNlIEZBQ0UgaW4gdGhhdCBmcmFtZS4KIElmIEZS QU1FIGlzIHQsIHJlcG9ydCBvbiB0aGUgZGVmYXVsdHMgZm9yIGZhY2UgRkFDRSAoZm9yIG5ldyBm cmFtZXMpLgogSWYgRlJBTUUgaXMgb21pdHRlZCBvciBuaWwsIHVzZSB0aGUgc2VsZWN0ZWQgZnJh bWUuIgotICAoaW50ZXJhY3RpdmUgKGxpc3QgKHJlYWQtZmFjZS1uYW1lICJEZXNjcmliZSBmYWNl IiAnZGVmYXVsdCB0KSkpCisgIChpbnRlcmFjdGl2ZSAobGlzdCAocmVhZC1mYWNlLW5hbWUgIkRl c2NyaWJlIGZhY2UiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChl cSAnZGVmYXVsdCAoZmFjZS1hdC1wb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICcoZGVmYXVsdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdCkpKQogICAobGV0KiAoKGF0dHJzICcoKDpmYW1pbHkgLiAiRmFtaWx5IikKIAkJICAo OmZvdW5kcnkgLiAiRm91bmRyeSIpCiAJCSAgKDp3aWR0aCAuICJXaWR0aCIpCgo= --fIpDGLG4IW--