From unknown Wed Jun 18 22:58:02 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#9333 <9333@debbugs.gnu.org> To: bug#9333 <9333@debbugs.gnu.org> Subject: Status: 23.3; shell script mode: "<<" starts here doc even on comment line Reply-To: bug#9333 <9333@debbugs.gnu.org> Date: Thu, 19 Jun 2025 05:58:02 +0000 retitle 9333 23.3; shell script mode: "<<" starts here doc even on comment = line reassign 9333 emacs submitter 9333 Ryo Furue severity 9333 minor thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 19 22:55:07 2011 Received: (at submit) by debbugs.gnu.org; 20 Aug 2011 02:55:07 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QubiE-000166-Ja for submit@debbugs.gnu.org; Fri, 19 Aug 2011 22:55:07 -0400 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Qubi9-00015m-CW for submit@debbugs.gnu.org; Fri, 19 Aug 2011 22:55:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qubg3-0003xf-Qo for submit@debbugs.gnu.org; Fri, 19 Aug 2011 22:52:53 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([140.186.70.17]:35645) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qubg3-0003xb-PM for submit@debbugs.gnu.org; Fri, 19 Aug 2011 22:52:51 -0400 Received: from eggs.gnu.org ([140.186.70.92]:58480) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qubg2-0002Cr-45 for bug-gnu-emacs@gnu.org; Fri, 19 Aug 2011 22:52:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qubg0-0003wF-2O for bug-gnu-emacs@gnu.org; Fri, 19 Aug 2011 22:52:50 -0400 Received: from mta10.its.hawaii.edu ([128.171.224.146]:42161) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qubfz-0003sX-OD for bug-gnu-emacs@gnu.org; Fri, 19 Aug 2011 22:52:48 -0400 MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: Text/Plain; charset=us-ascii; format=flowed Received: from pmxchannel-daemon.mta10.its.hawaii.edu by mta10.its.hawaii.edu (Sun Java(tm) System Messaging Server 6.3-11.01 (built Feb 12 2010; 32bit)) id <0LQ700H00HBV9D00@mta10.its.hawaii.edu>; Fri, 19 Aug 2011 16:52:43 -1000 (HST) Received: from localhost (amakihi.soest.hawaii.edu [128.171.156.62]) by mta10.its.hawaii.edu (Sun Java(tm) System Messaging Server 6.3-11.01 (built Feb 12 2010; 32bit)) with ESMTP id <0LQ700B55HBSNAC0@mta10.its.hawaii.edu>; Fri, 19 Aug 2011 16:52:41 -1000 (HST) Date: Fri, 19 Aug 2011 16:52:40 -1000 (HST) From: Ryo Furue Subject: 23.3; shell script mode: "<<" starts here doc even on comment line To: bug-gnu-emacs@gnu.org Message-id: <20110819.165240.490214280.furue@hawaii.edu> X-Mailer: Mew version 6.3 on Emacs 23.3 / Mule 6.0 (HANACHIRUSATO) X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -4.4 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.5 (----) 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 # < 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-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 C-x C-b C-n C-x C-f t m p / t m p . s h 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 C-x C-b C-n 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 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 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 x r e p o r TAB e m TAB b u TAB 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: # [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) From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 22 18:13:57 2011 Received: (at 9333-done) by debbugs.gnu.org; 22 Aug 2011 22:13:57 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Qvckn-0002rr-Ez for submit@debbugs.gnu.org; Mon, 22 Aug 2011 18:13:57 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181] helo=ironport2-out.pppoe.ca) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Qvckl-0002rh-9w for 9333-done@debbugs.gnu.org; Mon, 22 Aug 2011 18:13:55 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAMDSUk5Ld+HZ/2dsb2JhbABBDqgKeIFAAQEFViMFCws0EhQYDSQTvWqGSASfcYNiVA X-IronPort-AV: E=Sophos;i="4.68,266,1312171200"; d="scan'208";a="132246526" Received: from 75-119-225-217.dsl.teksavvy.com (HELO ceviche.home) ([75.119.225.217]) by ironport2-out.pppoe.ca with ESMTP/TLS/ADH-AES256-SHA; 22 Aug 2011 18:11:30 -0400 Received: by ceviche.home (Postfix, from userid 20848) id 416336610A; Mon, 22 Aug 2011 18:11:30 -0400 (EDT) From: Stefan Monnier To: Ryo Furue Subject: Re: bug#9333: 23.3; shell script mode: "<<" starts here doc even on comment line Message-ID: References: <20110819.165240.490214280.furue@hawaii.edu> Date: Mon, 22 Aug 2011 18:11:30 -0400 In-Reply-To: <20110819.165240.490214280.furue@hawaii.edu> (Ryo Furue's message of "Fri, 19 Aug 2011 16:52:40 -1000 (HST)") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.0 (--) X-Debbugs-Envelope-To: 9333-done Cc: 9333-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.0 (--) > 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 + * 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) "")) From unknown Wed Jun 18 22:58:02 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 20 Sep 2011 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator