From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Simon Stapleton Newsgroups: gmane.emacs.bugs Subject: bug#15088: 24.3; Hard crash on OSX when editing header files Date: Tue, 13 Aug 2013 18:01:25 +0200 Message-ID: <870CD9DB-455F-4BA4-9B00-CEC4C4B9229E@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1376410877 9446 80.91.229.3 (13 Aug 2013 16:21:17 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 13 Aug 2013 16:21:17 +0000 (UTC) To: 15088@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Aug 13 18:21:18 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1V9HLR-0007ZG-NL for geb-bug-gnu-emacs@m.gmane.org; Tue, 13 Aug 2013 18:21:18 +0200 Original-Received: from localhost ([::1]:53794 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V9HLR-0002zO-7s for geb-bug-gnu-emacs@m.gmane.org; Tue, 13 Aug 2013 12:21:17 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49708) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V9HLI-0002yA-AV for bug-gnu-emacs@gnu.org; Tue, 13 Aug 2013 12:21:13 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V9HLC-0005Wa-Jd for bug-gnu-emacs@gnu.org; Tue, 13 Aug 2013 12:21:08 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:34207) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V9HLC-0005WW-HT for bug-gnu-emacs@gnu.org; Tue, 13 Aug 2013 12:21:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1V9HLC-000892-0S for bug-gnu-emacs@gnu.org; Tue, 13 Aug 2013 12:21:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Simon Stapleton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 13 Aug 2013 16:21:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 15088 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.137641085531288 (code B ref -1); Tue, 13 Aug 2013 16:21:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 13 Aug 2013 16:20:55 +0000 Original-Received: from localhost ([127.0.0.1]:56756 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1V9HL3-00088Y-LA for submit@debbugs.gnu.org; Tue, 13 Aug 2013 12:20:54 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:43682) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1V9H2k-0007eA-Vd for submit@debbugs.gnu.org; Tue, 13 Aug 2013 12:02:00 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V9H2X-0006sa-WA for submit@debbugs.gnu.org; Tue, 13 Aug 2013 12:01:53 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:33720) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V9H2X-0006sU-Sj for submit@debbugs.gnu.org; Tue, 13 Aug 2013 12:01:45 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45318) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V9H2S-00079t-FC for bug-gnu-emacs@gnu.org; Tue, 13 Aug 2013 12:01:45 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V9H2I-0006nt-R4 for bug-gnu-emacs@gnu.org; Tue, 13 Aug 2013 12:01:40 -0400 Original-Received: from mail-wg0-x229.google.com ([2a00:1450:400c:c00::229]:53640) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V9H2I-0006nk-J9 for bug-gnu-emacs@gnu.org; Tue, 13 Aug 2013 12:01:30 -0400 Original-Received: by mail-wg0-f41.google.com with SMTP id l18so2775872wgh.0 for ; Tue, 13 Aug 2013 09:01:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:content-type:content-transfer-encoding:subject:message-id:date :to:mime-version; bh=MzgaWsmvlkNTv30RDfOoCSA+iTnqTuULzvGI3FLEAnU=; b=SROt2Vqb6akCzi8mVn7uyCXak1tGRhC3QR5yZPGZNOvw7d5ymAJeq5yZNRAQNWqfY8 zjWWR3Or+51++MioNxZXCRw6w3lj+XfsnuyPSoUnphtA3g9IsXl/VMBJVu5YYJsxA76K NSOnLhvSindfLB6BX/LrCoSWftVBDqOWd9KwWiy0/5XAw1oN4lSxlxPMMQvIDR+OMc7X GHjwj02NRlHcTOd2y9edZoi681dRzA7BB2eyaRWXDs3aetyb/phg1XoifVB71Zey2AlO rDIzg428O1NYVYtIZUF+8IITY4p/Dous4IEK9JdmZAjKviHiT5XX0zBmAnuzdlmY1tOB i6cw== X-Received: by 10.180.37.239 with SMTP id b15mr2808871wik.2.1376409689587; Tue, 13 Aug 2013 09:01:29 -0700 (PDT) Original-Received: from [192.168.1.4] (AGrenoble-552-1-246-74.w92-129.abo.wanadoo.fr. [92.129.77.74]) by mx.google.com with ESMTPSA id fz8sm4323955wic.0.2013.08.13.09.01.27 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 13 Aug 2013 09:01:28 -0700 (PDT) X-Mailer: Apple Mail (2.1508) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Mailman-Approved-At: Tue, 13 Aug 2013 12:20:51 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:77320 Archived-At: This bug report will be sent to the Bug-GNU-Emacs mailing list and the GNU bug tracker at debbugs.gnu.org. Please check that the From: line contains a valid email address. After a delay of up to one day, you should receive an acknowledgment at that address. Please write in English if possible, as the Emacs maintainers usually do not have translators for other languages. Please describe exactly what actions triggered the bug, and the precise symptoms of the bug. If you can, give a recipe starting from `emacs -Q': I'm seeing repeatable crashes when editing header files, specifically when adding include guards. Recipe : - start emacs c-x c-f /tmp/foo.h #ifndef FOO_H If I manage to get in fast enough to add a #endif afterwards, the crash doesn't happen (to get this to work I usually have to reopen emacs, do a M-x recover-this-file, type *really fast*, suffer another crash anyway, and I can then restart emacs, M-x recover-this-file and I'm away. Running under gdb, I get the following backtrace. Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000030 0x00000001001691a1 in add_properties () (gdb) bt #0 0x00000001001691a1 in add_properties () #1 0x00000001001672e2 in Fadd_text_properties () #2 0x0000000100116ebb in Ffuncall () #3 0x000000010014f488 in exec_byte_code () #4 0x000000010011a0d2 in funcall_lambda () #5 0x0000000100116f67 in Ffuncall () #6 0x000000010014f488 in exec_byte_code () #7 0x000000010011a0d2 in funcall_lambda () #8 0x0000000100116f67 in Ffuncall () #9 0x000000010014f488 in exec_byte_code () #10 0x000000010011a0d2 in funcall_lambda () #11 0x0000000100116f67 in Ffuncall () #12 0x000000010014f488 in exec_byte_code () #13 0x000000010011a0d2 in funcall_lambda () #14 0x0000000100116f67 in Ffuncall () #15 0x0000000100116812 in Fapply () #16 0x0000000100116f80 in Ffuncall () #17 0x000000010014f488 in exec_byte_code () #18 0x00000001001198c7 in eval_sub () #19 0x000000010011a4c8 in internal_lisp_condition_case () #20 0x0000000100150091 in exec_byte_code () #21 0x000000010011a0d2 in funcall_lambda () #22 0x0000000100116f67 in Ffuncall () #23 0x000000010011a27e in call1 () #24 0x00000001000a812f in timer_check () #25 0x00000001000a81a5 in readable_events () #26 0x00000001000a9018 in detect_input_pending_run_timers () #27 0x000000010015ae96 in wait_reading_process_output () #28 0x0000000100005abc in sit_for () #29 0x00000001000acdda in read_char () #30 0x00000001000b012f in read_key_sequence () #31 0x00000001000b1ba8 in command_loop_1 () #32 0x00000001001188b9 in internal_condition_case () #33 0x00000001000b077e in command_loop_2 () #34 0x00000001001189b5 in internal_catch () #35 0x00000001000b21b0 in recursive_edit_1 () #36 0x00000001000a2bad in Frecursive_edit () #37 0x000000010009fa42 in main () (gdb) xbacktrace Undefined command: "xbacktrace". Try "help". xbacktrace doesn't do anything on my gdb. Go figure. My suspicion is that pabbrev is triggering the issue, but quite how, I = don't know. If Emacs crashed, and you have the Emacs process in the gdb debugger, please include the output from the following gdb commands: `bt full' and `xbacktrace'. For information about debugging Emacs, please read the file /Applications/Emacs.app/Contents/Resources/etc/DEBUG. In GNU Emacs 24.3.1 (x86_64-apple-darwin12.3.0, NS apple-appkit-1187.37) of 2013-05-20 on insurgent.local Windowing system distributor `Apple', version 10.3.1187 Configured using: `configure '--with-ns'' Important settings: locale-coding-system: nil default enable-multibyte-characters: t Major mode: Fundamental Minor modes in effect: global-git-gutter-mode: t shell-dirtrack-mode: t global-pabbrev-mode: t tooltip-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent input: M-x r e p o r t - e m a c s - b u g Recent messages: Updating Scheme Mode buffers...done Updating Scheme Mode buffers...done For information about GNU Emacs and the GNU system, type C-h C-a. Load-path shadows: /Applications/Emacs.app/Contents/Resources/lisp/vc hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/vc /Applications/Emacs.app/Contents/Resources/lisp/vc-svn hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/vc-svn /Applications/Emacs.app/Contents/Resources/lisp/vc-sccs hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/vc-sccs /Applications/Emacs.app/Contents/Resources/lisp/vc-rcs hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/vc-rcs /Applications/Emacs.app/Contents/Resources/lisp/vc-mtn hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/vc-mtn /Applications/Emacs.app/Contents/Resources/lisp/vc-hooks hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/vc-hooks /Applications/Emacs.app/Contents/Resources/lisp/vc-hg hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/vc-hg /Applications/Emacs.app/Contents/Resources/lisp/vc-git hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/vc-git /Applications/Emacs.app/Contents/Resources/lisp/vc-dispatcher hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/vc-dispatcher /Applications/Emacs.app/Contents/Resources/lisp/vc-dir hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/vc-dir /Applications/Emacs.app/Contents/Resources/lisp/vc-dav hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/vc-dav /Applications/Emacs.app/Contents/Resources/lisp/vc-cvs hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/vc-cvs /Applications/Emacs.app/Contents/Resources/lisp/vc-bzr hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/vc-bzr /Applications/Emacs.app/Contents/Resources/lisp/vc-arch hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/vc-arch /Applications/Emacs.app/Contents/Resources/lisp/vc-annotate hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/vc-annotate /Applications/Emacs.app/Contents/Resources/lisp/smerge-mode hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/smerge-mode /Applications/Emacs.app/Contents/Resources/lisp/pcvs hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/pcvs /Applications/Emacs.app/Contents/Resources/lisp/pcvs-util hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/pcvs-util /Applications/Emacs.app/Contents/Resources/lisp/pcvs-parse hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/pcvs-parse /Applications/Emacs.app/Contents/Resources/lisp/pcvs-info hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/pcvs-info /Applications/Emacs.app/Contents/Resources/lisp/pcvs-defs hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/pcvs-defs /Applications/Emacs.app/Contents/Resources/lisp/log-view hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/log-view /Applications/Emacs.app/Contents/Resources/lisp/log-edit hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/log-edit /Applications/Emacs.app/Contents/Resources/lisp/emerge hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/emerge /Applications/Emacs.app/Contents/Resources/lisp/ediff hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/ediff /Applications/Emacs.app/Contents/Resources/lisp/ediff-wind hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/ediff-wind /Applications/Emacs.app/Contents/Resources/lisp/ediff-vers hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/ediff-vers /Applications/Emacs.app/Contents/Resources/lisp/ediff-util hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/ediff-util /Applications/Emacs.app/Contents/Resources/lisp/ediff-ptch hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/ediff-ptch /Applications/Emacs.app/Contents/Resources/lisp/ediff-mult hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/ediff-mult /Applications/Emacs.app/Contents/Resources/lisp/ediff-merg hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/ediff-merg /Applications/Emacs.app/Contents/Resources/lisp/ediff-init hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/ediff-init /Applications/Emacs.app/Contents/Resources/lisp/ediff-hook hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/ediff-hook /Applications/Emacs.app/Contents/Resources/lisp/ediff-help hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/ediff-help /Applications/Emacs.app/Contents/Resources/lisp/ediff-diff hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/ediff-diff /Applications/Emacs.app/Contents/Resources/lisp/diff hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/diff /Applications/Emacs.app/Contents/Resources/lisp/diff-mode hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/diff-mode /Applications/Emacs.app/Contents/Resources/lisp/cvs-status hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/cvs-status /Applications/Emacs.app/Contents/Resources/lisp/compare-w hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/compare-w /Applications/Emacs.app/Contents/Resources/lisp/add-log hides = /Applications/Emacs.app/Contents/Resources/lisp/vc/add-log /Users/simon/.emacs.d/elpa/magit-20130526.1746/.dir-locals hides = /Applications/Emacs.app/Contents/Resources/lisp/gnus/.dir-locals /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/sregex hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/sregex /Applications/Emacs.app/Contents/Resources/lisp/textmodes/spell hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/spell /Applications/Emacs.app/Contents/Resources/lisp/s-region hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/s-region /Applications/Emacs.app/Contents/Resources/lisp/pgg hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/pgg /Applications/Emacs.app/Contents/Resources/lisp/pgg-pgp5 hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/pgg-pgp5 /Applications/Emacs.app/Contents/Resources/lisp/pgg-pgp hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/pgg-pgp /Applications/Emacs.app/Contents/Resources/lisp/pgg-parse hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/pgg-parse /Applications/Emacs.app/Contents/Resources/lisp/pgg-gpg hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/pgg-gpg /Applications/Emacs.app/Contents/Resources/lisp/pgg-def hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/pgg-def /Applications/Emacs.app/Contents/Resources/lisp/emulation/pc-select = hides /Applications/Emacs.app/Contents/Resources/lisp/obsolete/pc-select /Applications/Emacs.app/Contents/Resources/lisp/emulation/pc-mode hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/pc-mode /Applications/Emacs.app/Contents/Resources/lisp/patcomp hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/patcomp /Applications/Emacs.app/Contents/Resources/lisp/mouse-sel hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/mouse-sel /Applications/Emacs.app/Contents/Resources/lisp/mail/mailpost hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/mailpost /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/lmenu hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/lmenu /Applications/Emacs.app/Contents/Resources/lisp/ledit hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/ledit /Applications/Emacs.app/Contents/Resources/lisp/erc/erc-hecomplete hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/erc-hecomplete /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/cust-print = hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/cust-print /Applications/Emacs.app/Contents/Resources/lisp/complete hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/complete /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/cl-compat = hides /Applications/Emacs.app/Contents/Resources/lisp/obsolete/cl-compat /Applications/Emacs.app/Contents/Resources/lisp/play/bruce hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/bruce /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/assoc hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/assoc /Applications/Emacs.app/Contents/Resources/lisp/abbrevlist hides = /Applications/Emacs.app/Contents/Resources/lisp/obsolete/abbrevlist Features: (shadow sort mail-extr emacsbug message rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mail-utils wombat-theme git-gutter tramp tramp-compat auth-source gnus-util mm-util mail-prsvr password-cache tramp-loaddefs cl-macs gv shell pcomplete format-spec switch-window quail help-mode cl pabbrev quack warnings thingatpt compile cmuscheme comint ansi-color ring scheme advice help-fns cl-lib advice-preload gist-autoloads gh-autoloads eieio byte-opt bytecomp byte-compile cconv git-gutter-autoloads logito-autoloads magit-autoloads info easymenu markdown-mode+-autoloads markdown-mode-autoloads pabbrev-autoloads paredit-autoloads pcache-autoloads finder-inf quack-autoloads ruby-tools-autoloads scheme-complete-autoloads subatomic-enhanced-theme-autoloads switch-window-autoloads package time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel ns-win tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process ns multi-tty emacs)