GNU bug report logs - #15941
24.2; Shell-script mode's syntax highligting gets confused by shift (<<) operator like in '$((1 << 32))

Previous Next

Package: emacs;

Reported by: Ilya Tatar <ilya.tatar <at> hds.com>

Date: Wed, 20 Nov 2013 22:15:02 UTC

Severity: normal

Merged with 8632

Found in versions 23.2, 24.2

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: Ben Wong <bug-gnu-emacs+gnu.org <at> wongs.net>
Subject: bug#8632: closed (Re: bug#15941: 24.2; Shell-script mode's syntax
 highligting gets confused by shift (<<) operator like in '$((1 << 32)))
Date: Thu, 21 Nov 2013 01:42:04 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#15941: 23.2; shell-script[bash] doesn't handle bitshift $(( 1 << 16 ))

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 8632 <at> debbugs.gnu.org.

-- 
15941: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15941
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Ilya Tatar <ilya.tatar <at> hds.com>
Cc: 15941-done <at> debbugs.gnu.org
Subject: Re: bug#15941: 24.2;
 Shell-script mode's syntax highligting gets confused by shift (<<)
 operator like in '$((1 << 32))
Date: Wed, 20 Nov 2013 20:41:00 -0500
> 2. add this line to it
> echo $((1 << 32))
> everything that follows this line will be highlighted as though it
> is a comment
[...]
> In GNU Emacs 24.2.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.6.4)

Thank you.  This is already fixed in 24.3.


        Stefan

[Message part 3 (message/rfc822, inline)]
From: Ben Wong <bug-gnu-emacs+gnu.org <at> wongs.net>
To: bug-gnu-emacs <at> gnu.org
Subject: 23.2; shell-script[bash] doesn't handle bitshift $(( 1 << 16 ))
Date: Fri, 06 May 2011 15:38:05 -0700
In shell-script mode (bash minor mode) Emacs 23.2 incorrectly parses the
following line as a HERE DOCUMENT.

	echo $(( 1 << 16 ))

It is confused because sh-font-lock-open-heredoc (in sh-script.el)
does not know about bash's ARITHMETIC EXPANSION. There should be a
function, similar to sh-in-comment-or-string, which parses the
script looking for arithmetic expansion.

As a temporary workaround for users, I believe it is legal to put double
quotes around any arithmetic expansion to force emacs to view it as a
string.


In GNU Emacs 23.2.1 (i486-pc-linux-gnu, GTK+ Version 2.20.0)
 of 2010-12-11 on raven, modified by Debian
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.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.2/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.2/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: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Shell-script

Minor modes in effect:
  shell-dirtrack-mode: t
  gpm-mouse-mode: t
  which-function-mode: t
  show-paren-mode: t
  display-time-mode: t
  recentf-mode: t
  iswitchb-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-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
  size-indication-mode: t
  line-number-mode: t




This bug report was last modified 11 years and 187 days ago.

Previous Next


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