GNU bug report logs - #9333
23.3; shell script mode: "<<" starts here doc even on comment line

Previous Next

Package: emacs;

Reported by: Ryo Furue <furue <at> hawaii.edu>

Date: Sat, 20 Aug 2011 02:56:02 UTC

Severity: minor

Found in version 23.3

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#9333: closed (23.3; shell script mode: "<<" starts here doc
 even on comment line)
Date: Mon, 22 Aug 2011 22:14:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Mon, 22 Aug 2011 18:11:30 -0400
with message-id <jwvipppqeq8.fsf-monnier+emacs <at> gnu.org>
and subject line Re: bug#9333: 23.3; shell script mode: "<<" starts here doc even on comment line
has caused the GNU bug report #9333,
regarding 23.3; shell script mode: "<<" starts here doc even on comment line
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
9333: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9333
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Ryo Furue <furue <at> hawaii.edu>
To: bug-gnu-emacs <at> gnu.org
Subject: 23.3; shell script mode: "<<" starts here doc even on comment line
Date: Fri, 19 Aug 2011 16:52:40 -1000 (HST)
Hi,

In the shell-script mode, typing "<<" on a comment line starts
a here document.  I use "<< . . ." in comments as a personal
style in many computer languages including shell.

1) Open (C-x C-f) a new shell script, say, "tmp.sh";
2) Type "#<<" or "# <<";
3  Then, you immediately get

  # <<EOF

  EOF

Regards,
Ryo

In GNU Emacs 23.3.1 (i486-pc-linux-gnu, GTK+ Version 2.24.3)
 of 2011-04-10 on raven, modified by Debian
Windowing system distributor `The X.Org Foundation', version 
11.0.11003000
configured using `configure  '--build' 'i486-linux-gnu' '--build' 
'i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' 
'--libexecdir=/usr/lib' '--localstatedir=/var/lib' 
'--infodir=/usr/share/info' '--mandir=/usr/share/man' 
'--with-pop=yes' 
'--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.3/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.3/leim' 
'--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 
'build_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 
'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: C
  value of $XMODIFIERS: @im=none
  locale-coding-system: nil
  default enable-multibyte-characters: t

Major mode: Info

Minor modes in effect:
  show-paren-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
C-e C-b C-p C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f
C-f <return> C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f <return> C-n
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n
C-n C-n C-n C-n C-n C-n C-f C-f C-f C-f C-f C-f C-SPC
C-e C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-w <help-echo>
C-x C-b C-n <return> C-x C-f t m p / t m p . s h <return>
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-n C-n C-k C-k
C-a C-x C-q C-p C-k C-k C-k C-k C-k C-k C-k C-k C-k
C-k C-k C-k C-k # < < C-p C-k C-k C-k C-k C-k <help-echo>
C-x C-b C-n <return> C-a C-n C-n C-n C-n C-n C-n C-n
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-SPC
C-e C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b
C-b C-b C-b C-b C-b C-b C-b C-b C-w <help-echo> <help-echo>
C-n C-n C-n C-n C-v C-p C-p C-p C-p C-p C-p C-p C-p
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-n C-n
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n
u C-n C-n C-f C-f C-n <return> C-n C-n C-n C-n C-n
C-n C-n C-n C-n C-n C-n C-n C-f C-f C-f C-f C-f C-f
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f
<escape> x r e p o r TAB e m TAB b u TAB <return>

Recent messages:
uncompressing emacs-8.gz...done
Mark set
Updating buffer list...done
Commands: m, u, t, RET, g, k, S, D, Q; q to quit; h for help
byte-code: Buffer is read-only: #<buffer tmp.sh> [2 times]
kill-line: End of buffer [3 times]
Updating buffer list...done
Commands: m, u, t, RET, g, k, S, D, Q; q to quit; h for help
Mark set
Auto-saving...done

Load-path shadows:
/usr/share/emacs/23.3/site-lisp/auctex/tex-jp hides 
/usr/share/emacs/site-lisp/auctex/tex-jp
/usr/share/emacs/23.3/site-lisp/auctex/bib-cite hides 
/usr/share/emacs/site-lisp/auctex/bib-cite
/usr/share/emacs/23.3/site-lisp/auctex/tex-fptex hides 
/usr/share/emacs/site-lisp/auctex/tex-fptex
/usr/share/emacs/23.3/site-lisp/auctex/multi-prompt hides 
/usr/share/emacs/site-lisp/auctex/multi-prompt
/usr/share/emacs/23.3/site-lisp/auctex/tex-bar hides 
/usr/share/emacs/site-lisp/auctex/tex-bar
/usr/share/emacs/23.3/site-lisp/auctex/tex-info hides 
/usr/share/emacs/site-lisp/auctex/tex-info
/usr/share/emacs/23.3/site-lisp/auctex/font-latex hides 
/usr/share/emacs/site-lisp/auctex/font-latex
/usr/share/emacs/23.3/site-lisp/auctex/tex-font hides 
/usr/share/emacs/site-lisp/auctex/tex-font
/usr/share/emacs/23.3/site-lisp/auctex/tex-style hides 
/usr/share/emacs/site-lisp/auctex/tex-style
/usr/share/emacs/23.3/site-lisp/auctex/toolbar-x hides 
/usr/share/emacs/site-lisp/auctex/toolbar-x
/usr/share/emacs/23.3/site-lisp/auctex/texmathp hides 
/usr/share/emacs/site-lisp/auctex/texmathp
/usr/share/emacs/23.3/site-lisp/auctex/context hides 
/usr/share/emacs/site-lisp/auctex/context
/usr/share/emacs/23.3/site-lisp/auctex/latex hides 
/usr/share/emacs/site-lisp/auctex/latex
/usr/share/emacs/23.3/site-lisp/auctex/context-en hides 
/usr/share/emacs/site-lisp/auctex/context-en
/usr/share/emacs/23.3/site-lisp/auctex/tex hides 
/usr/share/emacs/site-lisp/auctex/tex
/usr/share/emacs/23.3/site-lisp/auctex/tex-mik hides 
/usr/share/emacs/site-lisp/auctex/tex-mik
/usr/share/emacs/23.3/site-lisp/auctex/context-nl hides 
/usr/share/emacs/site-lisp/auctex/context-nl
/usr/share/emacs/23.3/site-lisp/auctex/tex-buf hides 
/usr/share/emacs/site-lisp/auctex/tex-buf
/usr/share/emacs/23.3/site-lisp/auctex/tex-fold hides 
/usr/share/emacs/site-lisp/auctex/tex-fold
/usr/share/emacs/site-lisp/haskell-mode/haskell-site-file hides 
/usr/share/emacs/23.3/site-lisp/haskell-mode/haskell-site-file
/usr/share/emacs/site-lisp/haskell-mode/haskell-indent hides 
/usr/share/emacs/23.3/site-lisp/haskell-mode/haskell-indent
/usr/share/emacs/site-lisp/haskell-mode/haskell-doc hides 
/usr/share/emacs/23.3/site-lisp/haskell-mode/haskell-doc
/usr/share/emacs/site-lisp/haskell-mode/haskell-indentation hides 
/usr/share/emacs/23.3/site-lisp/haskell-mode/haskell-indentation
/usr/share/emacs/site-lisp/haskell-mode/haskell-ghci hides 
/usr/share/emacs/23.3/site-lisp/haskell-mode/haskell-ghci
/usr/share/emacs/site-lisp/haskell-mode/haskell-decl-scan hides 
/usr/share/emacs/23.3/site-lisp/haskell-mode/haskell-decl-scan
/usr/share/emacs/site-lisp/haskell-mode/haskell-cabal hides 
/usr/share/emacs/23.3/site-lisp/haskell-mode/haskell-cabal
/usr/share/emacs/site-lisp/haskell-mode/haskell-c hides 
/usr/share/emacs/23.3/site-lisp/haskell-mode/haskell-c
/usr/share/emacs/site-lisp/haskell-mode/haskell-mode hides 
/usr/share/emacs/23.3/site-lisp/haskell-mode/haskell-mode
/usr/share/emacs/site-lisp/haskell-mode/haskell-font-lock hides 
/usr/share/emacs/23.3/site-lisp/haskell-mode/haskell-font-lock
/usr/share/emacs/site-lisp/haskell-mode/inf-haskell hides 
/usr/share/emacs/23.3/site-lisp/haskell-mode/inf-haskell
/usr/share/emacs/site-lisp/haskell-mode/haskell-simple-indent hides 
/usr/share/emacs/23.3/site-lisp/haskell-mode/haskell-simple-indent
/usr/share/emacs/site-lisp/haskell-mode/haskell-hugs hides 
/usr/share/emacs/23.3/site-lisp/haskell-mode/haskell-hugs
/usr/share/emacs/23.3/site-lisp/debian-startup hides 
/usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs23/site-lisp/flim/hex-util hides 
/usr/share/emacs/23.3/lisp/hex-util
/usr/share/emacs23/site-lisp/flim/md4 hides 
/usr/share/emacs/23.3/lisp/md4
/usr/share/emacs23/site-lisp/flim/sha1 hides 
/usr/share/emacs/23.3/lisp/sha1
/usr/share/emacs/site-lisp/rst hides 
/usr/share/emacs/23.3/lisp/textmodes/rst
/usr/share/emacs23/site-lisp/dictionaries-common/flyspell hides 
/usr/share/emacs/23.3/lisp/textmodes/flyspell
/usr/share/emacs23/site-lisp/dictionaries-common/ispell hides 
/usr/share/emacs/23.3/lisp/textmodes/ispell
/usr/share/emacs23/site-lisp/ruby1.8-elisp/ruby-mode hides 
/usr/share/emacs/23.3/lisp/progmodes/ruby-mode
/usr/share/emacs23/site-lisp/flim/ntlm hides 
/usr/share/emacs/23.3/lisp/net/ntlm
/usr/share/emacs23/site-lisp/flim/hmac-md5 hides 
/usr/share/emacs/23.3/lisp/net/hmac-md5
/usr/share/emacs23/site-lisp/flim/hmac-def hides 
/usr/share/emacs/23.3/lisp/net/hmac-def
/usr/share/emacs23/site-lisp/flim/sasl hides 
/usr/share/emacs/23.3/lisp/net/sasl
/usr/share/emacs23/site-lisp/flim/sasl-digest hides 
/usr/share/emacs/23.3/lisp/net/sasl-digest
/usr/share/emacs23/site-lisp/flim/sasl-ntlm hides 
/usr/share/emacs/23.3/lisp/net/sasl-ntlm
/usr/share/emacs23/site-lisp/flim/sasl-cram hides 
/usr/share/emacs/23.3/lisp/net/sasl-cram

Features:
(shadow emacsbug info debian-bug rfc2047 rfc2045 ietf-drums time-date
qp mm-util mail-prsvr skeleton sh-script executable w3m-form inf-ruby
compile comint ring ruby-mode pp mew-varsx mew-browse mew-w3m w3m
browse-url doc-view jka-compr dired image-mode timezone w3m-hist
w3m-fb bookmark-w3m w3m-ems wid-edit w3m-ccl ccl w3m-favicon w3m-image
w3m-proc w3m-util mew-auth mew-config mew-imap2 mew-imap mew-nntp2
mew-nntp mew-pop mew-smtp mew-ssl mew-ssh mew-net mew-highlight
mew-sort mew-fib mew-ext mew-refile mew-demo mew-attach mew-draft
mew-message mew-thread mew-virtual mew-summary4 mew-summary3
mew-summary2 mew-summary mew-search mew-pick mew-passwd mew-scan
mew-syntax mew-bq mew-smime mew-pgp mew-header mew-exec mew-mark
mew-mime mew-edit mew-decode mew-encode mew-cache mew-minibuf
mew-complete mew-addrbook mew-local mew-unix mew-vars3 mew-vars2
mew-vars mew-env mew-lang-jp mew-mule3 mew-mule mew-gemacs mew-key
mew-func mew-blvs mew-const mew newcomment multi-isearch texmathp
preview prv-emacs byte-opt warnings tex-buf noutline outline
font-latex bytecomp byte-compile latex tex-style tex regexp-opt
flyspell ispell latexenc edmacro kmacro help-mode easymenu view
ibuf-ext ibuffer server mozc cl cl-19 japan-util saveplace advice
help-fns advice-preload paren debian-el debian-el-loaddefs w3m-load
muse-autoloads emacs-goodies-el emacs-goodies-custom
emacs-goodies-loaddefs easy-mmode preview-latex tex-site auto-loads
tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd
font-setting tool-bar dnd fontset image fringe lisp-mode register page
menu-bar rfn-eshadow timer select scroll-bar mldrag 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 loaddefs button
minibuffer faces cus-face files text-properties overlay md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind system-font-setting
font-render-setting gtk x-toolkit x multi-tty emacs)


[Message part 3 (message/rfc822, inline)]
From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Ryo Furue <furue <at> hawaii.edu>
Cc: 9333-done <at> debbugs.gnu.org
Subject: Re: bug#9333: 23.3;
	shell script mode: "<<" starts here doc even on comment line
Date: Mon, 22 Aug 2011 18:11:30 -0400
> In the shell-script mode, typing "<<" on a comment line starts
> a here document.  I use "<< . . ." in comments as a personal
> style in many computer languages including shell.

I've installed the patch below which should fix this issue.


        Stefan


=== modified file 'lisp/ChangeLog'
--- lisp/ChangeLog	2011-08-22 21:16:46 +0000
+++ lisp/ChangeLog	2011-08-22 22:09:55 +0000
@@ -1,5 +1,8 @@
 2011-08-22  Stefan Monnier  <monnier <at> iro.umontreal.ca>
 
+	* progmodes/sh-script.el (sh-maybe-here-document): Disable magic in
+	strings and comments (bug#9333).
+
 	* emacs-lisp/debug.el (debug-arglist): New function.
 	(debug-convert-byte-code): Use it.  Handle lexical byte-codes.
 	(debug-on-entry-1): Handle interpreted closures (bug#9120).

=== modified file 'lisp/progmodes/sh-script.el'
--- lisp/progmodes/sh-script.el	2011-08-04 00:58:07 +0000
+++ lisp/progmodes/sh-script.el	2011-08-22 22:08:26 +0000
@@ -460,6 +460,7 @@
     (define-key map "\C-c+" 'sh-add)
     (define-key map "\C-\M-x" 'sh-execute-region)
     (define-key map "\C-c\C-x" 'executable-interpret)
+    ;; FIXME: Use post-self-insert-hook.
     (define-key map "<" 'sh-maybe-here-document)
     (define-key map "(" 'skeleton-pair-insert-maybe)
     (define-key map "{" 'skeleton-pair-insert-maybe)
@@ -3659,6 +3660,7 @@
       (save-excursion
 	(backward-char 2)
 	(sh-quoted-p))
+      (nth 8 (syntax-ppss))
       (let ((tabs (if (string-match "\\`-" sh-here-document-word)
                       (make-string (/ (current-indentation) tab-width) ?\t)
                     ""))



This bug report was last modified 13 years and 275 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.