Package: emacs;
Reported by: Richard Tollerton <rich.tollerton <at> ni.com>
Date: Mon, 14 Jul 2014 20:19:02 UTC
Severity: minor
Tags: fixed
Found in version 24.3
Fixed in version 24.4
Done: npostavs <at> users.sourceforge.net
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Richard Tollerton <rich.tollerton <at> ni.com> To: 18020 <at> debbugs.gnu.org Subject: bug#18020: 24.3; sh-script comment indent failure involving apostrophes in comments/heredocs on previous lines Date: Mon, 14 Jul 2014 15:16:18 -0500
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': 1. Create a file test.sh with the following contents. (The file variable is for convenience in reproducing the issue; the point is to set sh-indent-command to t.) # -*- mode: sh-script; sh-indent-comment: t; -*- cat <<EOF {} can't EOF testfunc () { # don't # do this } 2. Set point to the line "# do this" and hit TAB. The line remains incorrectly indented at offset 0. 3. Remove the apostrophe from the previous line so that it reads "# dont". Move point back to "# do this" and hit TAB. This time, the line becomes correctly indented. Suggested workaround follows. Note, reproducing this seems to require the heredoc, so I'm pretty sure this is a bandaid fix, not "the" fix. From b08b383fccad22032a3db17bb912c564497fe2f4 Mon Sep 17 00:00:00 2001 From: Richard Tollerton <rich.tollerton <at> ni.com> Date: Mon, 14 Jul 2014 14:49:52 -0500 Subject: [PATCH] * lisp/progmodes/sh-script.el (sh-get-indent-info): Inhibit quotation marks in comments from affecting indentation. --- lisp/progmodes/sh-script.el | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index dd1057e..315ac66 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -2883,10 +2883,13 @@ STRING This is ignored for the purposes of calculating (if prev-line-end (save-excursion - ;; We start off at beginning of this line. - ;; Scan previous statements while this is <= - ;; start of previous line. + ;; We start off at beginning of this line. Scan previous statements + ;; while this is <= start of previous line. Comments at the end of + ;; the previous line are skipped; we don't want quotation marks in + ;; comments to affect indentation. (goto-char prev-line-end) + (let ((ppss (syntax-ppss))) + (when (nth 4 ppss) (goto-char (nth 8 ppss)))) (setq x t) (while (and x (setq x (sh-prev-thing))) (sh-debug "at %d x is: %s result is: %s" (point) x result) -- 2.0.1 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 /usr/share/emacs/24.3/etc/DEBUG. In GNU Emacs 24.3.1 (x86_64-unknown-linux-gnu, X toolkit) of 2014-07-01 on weregild Configured using: `configure '--prefix=/usr' '--sysconfdir=/etc' '--libexecdir=/usr/lib' '--localstatedir=/var' '--without-all' '--with-xml2' '--with-x-toolkit=athena' '--with-link-time-optimization' '--with-makeinfo' '--with-compress-info' 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4' 'LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'' Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix default enable-multibyte-characters: t Major mode: Shell-script Minor modes in effect: sh-electric-here-document-mode: t shell-dirtrack-mode: t xterm-mouse-mode: t diff-auto-refine-mode: t winner-mode: t recentf-mode: t show-paren-mode: t global-whitespace-newline-mode: t global-whitespace-mode: t electric-layout-mode: t tooltip-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent input: B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC [ 6 ~ C-s c o m m e n t RET ESC O H C-c ESC [ 1 ; 5 D ESC : s h - i n d e n t - c o m TAB RET ESC [ < 0 ; 1 4 0 ; 5 6 M ESC [ < 0 ; 1 4 0 ; 5 6 m ESC [ 1 ; 5 H C-y ESC ] 5 2 ; s ; I y A t K i 0 g b W 9 k Z T o g c 2 g t c 2 N y a X B 0 O y B z a C 1 p b m R l b n Q t Y 2 9 t b W V u d D o g d D s g L S o t ESC \ RET ESC O B ESC O B ESC O B ESC O D ESC O C ESC O A ESC O A ESC O B ESC O B ESC O B ESC O D ESC O C C-x C-s ESC x e DEL r e p o TAB r t - e m TAB b g DEL TAB RET Recent messages: Wrote /home/rtollert/penguin/user/rtollert/nilrats/trunk/1.0/source/tests/base/testproc_RepoDebug.sh Mark set [2 times] Making completion list... [4 times] Mark set Mark saved where search started t Mark set [2 times] Saving file /home/rtollert/test.sh... Wrote /home/rtollert/test.sh Making completion list... Load-path shadows: /home/rtollert/mnt/conf/emacs/site-lisp/color-theme-6.6.0/color-theme hides /usr/share/emacs/site-lisp/color-theme /home/rtollert/mnt/conf/emacs/site-lisp/color-theme-6.6.0/themes/color-theme-library hides /usr/share/emacs/site-lisp/themes/color-theme-library /home/rtollert/mnt/conf/emacs/site-lisp/color-theme-6.6.0/themes/color-theme-example hides /usr/share/emacs/site-lisp/themes/color-theme-example ~/mnt/conf/emacs/site-lisp/ox-confluence hides /usr/share/emacs/site-lisp/org_contrib/lisp/ox-confluence /usr/share/emacs/site-lisp/flim/hex-util hides /usr/share/emacs/24.3/lisp/hex-util /usr/share/emacs/site-lisp/flim/md4 hides /usr/share/emacs/24.3/lisp/md4 /usr/share/emacs/site-lisp/org/ob-clojure hides /usr/share/emacs/24.3/lisp/org/ob-clojure /usr/share/emacs/site-lisp/org/ob-asymptote hides /usr/share/emacs/24.3/lisp/org/ob-asymptote /usr/share/emacs/site-lisp/org/ob-lisp hides /usr/share/emacs/24.3/lisp/org/ob-lisp /usr/share/emacs/site-lisp/org/ob-lob hides /usr/share/emacs/24.3/lisp/org/ob-lob /usr/share/emacs/site-lisp/org/ob-gnuplot hides /usr/share/emacs/24.3/lisp/org/ob-gnuplot /usr/share/emacs/site-lisp/org_contrib/lisp/org-mew hides /usr/share/emacs/24.3/lisp/org/org-mew /usr/share/emacs/site-lisp/org/org-bibtex hides /usr/share/emacs/24.3/lisp/org/org-bibtex /usr/share/emacs/site-lisp/org/ob-haskell hides /usr/share/emacs/24.3/lisp/org/ob-haskell /usr/share/emacs/site-lisp/org/ob-C hides /usr/share/emacs/24.3/lisp/org/ob-C /usr/share/emacs/site-lisp/org/ob-js hides /usr/share/emacs/24.3/lisp/org/ob-js /usr/share/emacs/site-lisp/org/org-mhe hides /usr/share/emacs/24.3/lisp/org/org-mhe /usr/share/emacs/site-lisp/org/ob-matlab hides /usr/share/emacs/24.3/lisp/org/ob-matlab /usr/share/emacs/site-lisp/org/ob-fortran hides /usr/share/emacs/24.3/lisp/org/ob-fortran /usr/share/emacs/site-lisp/org/org-protocol hides /usr/share/emacs/24.3/lisp/org/org-protocol /usr/share/emacs/site-lisp/org/org-ctags hides /usr/share/emacs/24.3/lisp/org/org-ctags /usr/share/emacs/site-lisp/org/ob-scala hides /usr/share/emacs/24.3/lisp/org/ob-scala /usr/share/emacs/site-lisp/org_contrib/lisp/org-wl hides /usr/share/emacs/24.3/lisp/org/org-wl /usr/share/emacs/site-lisp/org/ob-picolisp hides /usr/share/emacs/24.3/lisp/org/ob-picolisp /usr/share/emacs/site-lisp/org/org-entities hides /usr/share/emacs/24.3/lisp/org/org-entities /usr/share/emacs/site-lisp/org/org-eshell hides /usr/share/emacs/24.3/lisp/org/org-eshell /usr/share/emacs/site-lisp/org/org-clock hides /usr/share/emacs/24.3/lisp/org/org-clock /usr/share/emacs/site-lisp/org/org-w3m hides /usr/share/emacs/24.3/lisp/org/org-w3m /usr/share/emacs/site-lisp/org/org-src hides /usr/share/emacs/24.3/lisp/org/org-src /usr/share/emacs/site-lisp/org/org-crypt hides /usr/share/emacs/24.3/lisp/org/org-crypt /usr/share/emacs/site-lisp/org/ob-ditaa hides /usr/share/emacs/24.3/lisp/org/ob-ditaa /usr/share/emacs/site-lisp/org/ob-css hides /usr/share/emacs/24.3/lisp/org/ob-css /usr/share/emacs/site-lisp/org/ob-ocaml hides /usr/share/emacs/24.3/lisp/org/ob-ocaml /usr/share/emacs/site-lisp/org/org-compat hides /usr/share/emacs/24.3/lisp/org/org-compat /usr/share/emacs/site-lisp/org/ob-exp hides /usr/share/emacs/24.3/lisp/org/ob-exp /usr/share/emacs/site-lisp/org/org-attach hides /usr/share/emacs/24.3/lisp/org/org-attach /usr/share/emacs/site-lisp/org/org-agenda hides /usr/share/emacs/24.3/lisp/org/org-agenda /usr/share/emacs/site-lisp/org/org-timer hides /usr/share/emacs/24.3/lisp/org/org-timer /usr/share/emacs/site-lisp/org/ob-screen hides /usr/share/emacs/24.3/lisp/org/ob-screen /usr/share/emacs/site-lisp/org/ob-table hides /usr/share/emacs/24.3/lisp/org/ob-table /usr/share/emacs/site-lisp/org/ob-octave hides /usr/share/emacs/24.3/lisp/org/ob-octave /usr/share/emacs/site-lisp/org/ob hides /usr/share/emacs/24.3/lisp/org/ob /usr/share/emacs/site-lisp/org/org-footnote hides /usr/share/emacs/24.3/lisp/org/org-footnote /usr/share/emacs/site-lisp/org/org-capture hides /usr/share/emacs/24.3/lisp/org/org-capture /usr/share/emacs/site-lisp/org/ob-mscgen hides /usr/share/emacs/24.3/lisp/org/ob-mscgen /usr/share/emacs/site-lisp/org/org-feed hides /usr/share/emacs/24.3/lisp/org/org-feed /usr/share/emacs/site-lisp/org/ob-plantuml hides /usr/share/emacs/24.3/lisp/org/ob-plantuml /usr/share/emacs/site-lisp/org/org-inlinetask hides /usr/share/emacs/24.3/lisp/org/org-inlinetask /usr/share/emacs/site-lisp/org/ob-latex hides /usr/share/emacs/24.3/lisp/org/ob-latex /usr/share/emacs/site-lisp/org/ob-scheme hides /usr/share/emacs/24.3/lisp/org/ob-scheme /usr/share/emacs/site-lisp/org/org-mobile hides /usr/share/emacs/24.3/lisp/org/org-mobile /usr/share/emacs/site-lisp/org/ob-comint hides /usr/share/emacs/24.3/lisp/org/ob-comint /usr/share/emacs/site-lisp/org/ob-sh hides /usr/share/emacs/24.3/lisp/org/ob-sh /usr/share/emacs/site-lisp/org/ob-ledger hides /usr/share/emacs/24.3/lisp/org/ob-ledger /usr/share/emacs/site-lisp/org/org-plot hides /usr/share/emacs/24.3/lisp/org/org-plot /usr/share/emacs/site-lisp/org/ob-sql hides /usr/share/emacs/24.3/lisp/org/ob-sql /usr/share/emacs/site-lisp/org/org-id hides /usr/share/emacs/24.3/lisp/org/org-id /usr/share/emacs/site-lisp/org/ob-sqlite hides /usr/share/emacs/24.3/lisp/org/ob-sqlite /usr/share/emacs/site-lisp/org/org-element hides /usr/share/emacs/24.3/lisp/org/org-element /usr/share/emacs/site-lisp/org/ob-R hides /usr/share/emacs/24.3/lisp/org/ob-R /usr/share/emacs/site-lisp/org/org-mouse hides /usr/share/emacs/24.3/lisp/org/org-mouse /usr/share/emacs/site-lisp/org/ob-io hides /usr/share/emacs/24.3/lisp/org/ob-io /usr/share/emacs/site-lisp/org/org-colview hides /usr/share/emacs/24.3/lisp/org/org-colview /usr/share/emacs/site-lisp/org/org-indent hides /usr/share/emacs/24.3/lisp/org/org-indent /usr/share/emacs/site-lisp/org/ob-eval hides /usr/share/emacs/24.3/lisp/org/ob-eval /usr/share/emacs/site-lisp/org/ob-emacs-lisp hides /usr/share/emacs/24.3/lisp/org/ob-emacs-lisp /usr/share/emacs/site-lisp/org/org-macs hides /usr/share/emacs/24.3/lisp/org/org-macs /usr/share/emacs/site-lisp/org/ob-calc hides /usr/share/emacs/24.3/lisp/org/ob-calc /usr/share/emacs/site-lisp/org/org-docview hides /usr/share/emacs/24.3/lisp/org/org-docview /usr/share/emacs/site-lisp/org/ob-ruby hides /usr/share/emacs/24.3/lisp/org/ob-ruby /usr/share/emacs/site-lisp/org/ob-lilypond hides /usr/share/emacs/24.3/lisp/org/ob-lilypond /usr/share/emacs/site-lisp/org/ob-org hides /usr/share/emacs/24.3/lisp/org/ob-org /usr/share/emacs/site-lisp/org/org-rmail hides /usr/share/emacs/24.3/lisp/org/org-rmail /usr/share/emacs/site-lisp/org/org-info hides /usr/share/emacs/24.3/lisp/org/org-info /usr/share/emacs/site-lisp/org/org-list hides /usr/share/emacs/24.3/lisp/org/org-list /usr/share/emacs/site-lisp/org/org-datetree hides /usr/share/emacs/24.3/lisp/org/org-datetree /usr/share/emacs/site-lisp/org/ob-maxima hides /usr/share/emacs/24.3/lisp/org/ob-maxima /usr/share/emacs/site-lisp/org/org hides /usr/share/emacs/24.3/lisp/org/org /usr/share/emacs/site-lisp/org/ob-java hides /usr/share/emacs/24.3/lisp/org/ob-java /usr/share/emacs/site-lisp/org/org-bbdb hides /usr/share/emacs/24.3/lisp/org/org-bbdb /usr/share/emacs/site-lisp/org/ob-tangle hides /usr/share/emacs/24.3/lisp/org/ob-tangle /usr/share/emacs/site-lisp/org_contrib/lisp/org-vm hides /usr/share/emacs/24.3/lisp/org/org-vm /usr/share/emacs/site-lisp/org/ob-awk hides /usr/share/emacs/24.3/lisp/org/ob-awk /usr/share/emacs/site-lisp/org/ob-sass hides /usr/share/emacs/24.3/lisp/org/ob-sass /usr/share/emacs/site-lisp/org/org-archive hides /usr/share/emacs/24.3/lisp/org/org-archive /usr/share/emacs/site-lisp/org/ob-shen hides /usr/share/emacs/24.3/lisp/org/ob-shen /usr/share/emacs/site-lisp/org/ob-dot hides /usr/share/emacs/24.3/lisp/org/ob-dot /usr/share/emacs/site-lisp/org/org-gnus hides /usr/share/emacs/24.3/lisp/org/org-gnus /usr/share/emacs/site-lisp/org/org-pcomplete hides /usr/share/emacs/24.3/lisp/org/org-pcomplete /usr/share/emacs/site-lisp/org/ob-python hides /usr/share/emacs/24.3/lisp/org/ob-python /usr/share/emacs/site-lisp/org/ob-ref hides /usr/share/emacs/24.3/lisp/org/ob-ref /usr/share/emacs/site-lisp/org/ob-keys hides /usr/share/emacs/24.3/lisp/org/ob-keys /usr/share/emacs/site-lisp/org/org-faces hides /usr/share/emacs/24.3/lisp/org/org-faces /usr/share/emacs/site-lisp/org/org-habit hides /usr/share/emacs/24.3/lisp/org/org-habit /usr/share/emacs/site-lisp/org/org-irc hides /usr/share/emacs/24.3/lisp/org/org-irc /usr/share/emacs/site-lisp/org/org-table hides /usr/share/emacs/24.3/lisp/org/org-table /usr/share/emacs/site-lisp/org/ob-perl hides /usr/share/emacs/24.3/lisp/org/ob-perl /usr/share/emacs/site-lisp/org/org-version hides /usr/share/emacs/24.3/lisp/org/org-version /usr/share/emacs/site-lisp/org/org-install hides /usr/share/emacs/24.3/lisp/org/org-install /usr/share/emacs/site-lisp/org/org-loaddefs hides /usr/share/emacs/24.3/lisp/org/org-loaddefs /usr/share/emacs/site-lisp/flim/hmac-md5 hides /usr/share/emacs/24.3/lisp/net/hmac-md5 /usr/share/emacs/site-lisp/flim/sasl-cram hides /usr/share/emacs/24.3/lisp/net/sasl-cram /usr/share/emacs/site-lisp/flim/hmac-def hides /usr/share/emacs/24.3/lisp/net/hmac-def /usr/share/emacs/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/24.3/lisp/net/sasl-ntlm /usr/share/emacs/site-lisp/flim/sasl-digest hides /usr/share/emacs/24.3/lisp/net/sasl-digest /usr/share/emacs/site-lisp/flim/sasl hides /usr/share/emacs/24.3/lisp/net/sasl /usr/share/emacs/site-lisp/flim/ntlm hides /usr/share/emacs/24.3/lisp/net/ntlm /usr/share/emacs/site-lisp/semi/smime hides /usr/share/emacs/24.3/lisp/gnus/smime /usr/share/emacs/site-lisp/semi/pgg-pgp hides /usr/share/emacs/24.3/lisp/obsolete/pgg-pgp /usr/share/emacs/site-lisp/semi/pgg-gpg hides /usr/share/emacs/24.3/lisp/obsolete/pgg-gpg /usr/share/emacs/site-lisp/semi/pgg-parse hides /usr/share/emacs/24.3/lisp/obsolete/pgg-parse /usr/share/emacs/site-lisp/semi/pgg-pgp5 hides /usr/share/emacs/24.3/lisp/obsolete/pgg-pgp5 /usr/share/emacs/site-lisp/semi/pgg hides /usr/share/emacs/24.3/lisp/obsolete/pgg /usr/share/emacs/site-lisp/semi/pgg-def hides /usr/share/emacs/24.3/lisp/obsolete/pgg-def Features: (shadow emacsbug time debug vhdl-mode hippie-exp assoc verilog-mode diff vera-mode tcl simula sieve sieve-mode sieve-manage ruby-mode prolog perl-mode pascal octave-mod modula2 meta-mode m4-mode ld-script js json info-look idlwave idlwave-help idlw-help icon hideshow fortran f90 delphi css-mode cperl-mode cfengine cfengine3 asm-mode antlr-mode ada-mode which-func imenu align find-file sql ps-mode apropos gud tramp-cache tramp-sh tramp tramp-compat tramp-loaddefs tabify pcmpl-unix dired-aux autoconf autoconf-mode sh-script smie executable tmm cus-edit cc-langs cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ibuf-ext ibuffer url-handlers git-commit-mode python shell view two-column iso-transl rebase-mode rx sgml-mode nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok dcl-mode tempo mailalias smtpmail sendmail qp vc-git conf-mode make-mode misearch multi-isearch sort mail-extr network-stream starttls url-http tls url-gw url-auth url-queue url-cache url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util shr-color color shr gnus-art mm-uu mml2015 epg-config gnus-sum nnoo gnus-group gnus-undo nnmail mail-source gnus-start gnus-spec gnus-int gnus-range gnus-win gnus gnus-ems nnheader mm-archive windmove help-mode mule-util cal-move parse-time flyspell ispell org-rmail org-mhe org-irc org-info org-gnus org-docview org-bibtex bibtex org-bbdb org-w3m pp server git-commit-mode-autoloads magit-autoloads info package mime-w3m cl-macs gv mime eword-decode mime-parse std11 luna calist w3m browse-url doc-view jka-compr dired image-mode timezone w3m-hist w3m-fb bookmark-w3m w3m-ems w3m-ccl ccl w3m-favicon w3m-image w3m-proc w3m-util ox-confluence ox-latex ox-icalendar ox-html ox-ascii ox-publish ox org-element org org-macro org-footnote org-pcomplete pcomplete org-list org-faces org-entities noutline outline org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval org-compat org-macs org-loaddefs find-func xt-mouse notmuch hl-line notmuch-version notmuch-message notmuch-maildir-fcc notmuch-hello notmuch-tree notmuch-parser notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-address notmuch-wash diff-mode easy-mmode coolj notmuch-query goto-addr thingatpt icalendar diary-lib diary-loaddefs cal-menu calendar cal-loaddefs notmuch-tag crm notmuch-lib warnings cl message idna format-spec rfc822 mml mailabbrev mail-utils gmm-utils mailheader mm-view mml-smime mml-sec smime mel mime-def alist mcharset mcs-20 mcs-e20 pces pces-e20 pces-20 broken pcustom path-util poe pym static apel-ver product mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231 rfc2047 rfc2045 ietf-drums woman man winner ffap url-parse auth-source eieio byte-opt bytecomp byte-compile cconv gnus-util mm-util mail-prsvr password-cache url-vars ascope edmacro kmacro vc-p4 derived p4-lowlevel ediff-merg ediff-diff ediff-wind ediff-help ediff-util ediff-mult ediff-init ediff vc vc-dispatcher recentf tree-widget wid-edit easymenu advice help-fns cl-lib advice-preload disp-table time-date paren grep compile comint ansi-color ring whitespace electric cus-start cus-load xterm-frobs tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd 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 dynamic-setting x-toolkit x multi-tty emacs) -- Richard Tollerton <rich.tollerton <at> ni.com>
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.