unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#49733: 27.2; Syntax Highlighting (Bash) Issue
@ 2021-07-25 13:02 [
  2021-07-26 18:32 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 4+ messages in thread
From: [ @ 2021-07-25 13:02 UTC (permalink / raw)
  To: 49733


[-- Attachment #1.1: Type: text/plain, Size: 4133 bytes --]

I could not find any report of this issue in the GNU Bug Tracker or the
PROBLEMS file, but I apologize if maybe syntax highlighting errors do not
count as bugs.

That said, emacs on my machine at least seems to have an issue with
string literals in Bash. I have attached an image of the text below so
that the color can be represented. However, an example of faulty
highlighting in text is:

#!/bin/bash
partiallyquotedword=$'hello\''
echo "$partiallyquotedword"
partialword=$'hello\''
echo "$partialword"
echo sample text
echo hi\'
echo highlighting finished

The above will, from the escaped single quote in the second line,
be highlighted as a string until
the next single quote. That is, the final line of the provided example text
is correctly not treated as part of a string.

To be more concise, (my version of)
emacs does not seem to treat an
escaped single quote in a string literal as actually being escaped,
though this works in Bash.

(Build and system information below)

In GNU Emacs 27.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.27,
cairo version 1.17.4)
 of 2021-03-26 built on orion
System Description: Artix Linux

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --with-x-toolkit=gtk3 --with-xft --with-wide-int
 --with-modules --with-cairo --with-harfbuzz 'CFLAGS=-march=x86-64
 -mtune=generic -O2 -pipe -fno-plt' CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'

Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GSETTINGS GLIB NOTIFY
INOTIFY ACL GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD JSON
PDUMPER LCMS2 GMP

Important settings:
  value of $LC_MONETARY: en_US.UTF-8
  value of $LC_NUMERIC: en_US.UTF-8
  value of $LC_TIME: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=fcitx
  locale-coding-system: utf-8-unix

Major mode: Fundamental

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg
epg-config gnus-util rmail rmail-loaddefs text-property-search time-date
subr-x seq mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader cl-loaddefs cl-lib sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils term/xterm xterm byte-opt gv
bytecomp byte-compile cconv tooltip eldoc electric uniquify ediff-hook
vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode elisp-mode lisp-mode prog-mode register page
tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse
jit-lock font-lock syntax facemenu font-core term/tty-colors frame
minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite charscript charprop case-table epa-hook jka-cmpr-hook help
simple abbrev obarray cl-preloaded nadvice loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
threads dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 49841 8635)
 (symbols 48 6117 1)
 (strings 32 15752 1794)
 (string-bytes 1 506502)
 (vectors 16 8128)
 (vector-slots 8 83328 7170)
 (floats 8 22 271)
 (intervals 56 191 0)
 (buffers 1000 12))

[-- Attachment #1.2: Type: text/html, Size: 6660 bytes --]

[-- Attachment #2: Screenshot_20210725_085230.png --]
[-- Type: image/png, Size: 10256 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#49733: 27.2; Syntax Highlighting (Bash) Issue
  2021-07-25 13:02 bug#49733: 27.2; Syntax Highlighting (Bash) Issue [
@ 2021-07-26 18:32 ` Lars Ingebrigtsen
  2021-09-18 20:55   ` Daniel Fleischer
  0 siblings, 1 reply; 4+ messages in thread
From: Lars Ingebrigtsen @ 2021-07-26 18:32 UTC (permalink / raw)
  To: [; +Cc: 49733

"[" <mwkazban@gmail.com> writes:

> To be more concise, (my version of) 
> emacs does not seem to treat an
> escaped single quote in a string literal as actually being escaped,
> though this works in Bash.

I think it looks like the mode doesn't know about the $'foo' construct,
which allows quoting single quotes (while the normal 'foo' doesn't)?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#49733: 27.2; Syntax Highlighting (Bash) Issue
  2021-07-26 18:32 ` Lars Ingebrigtsen
@ 2021-09-18 20:55   ` Daniel Fleischer
  2021-09-19 15:08     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 4+ messages in thread
From: Daniel Fleischer @ 2021-09-18 20:55 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: [, 49733

Lars Ingebrigtsen [2021-07-26 Mon 20:32] wrote:

> "[" <mwkazban@gmail.com> writes:
>
>> To be more concise, (my version of) 
>> emacs does not seem to treat an
>> escaped single quote in a string literal as actually being escaped,
>> though this works in Bash.
>
> I think it looks like the mode doesn't know about the $'foo' construct,
> which allows quoting single quotes (while the normal 'foo' doesn't)?

There is special font-locking treatment for '...' strings that assumes
they don't have escaped characters. It's correct however there are the
$'...' constructs which allow escaped-characters expansion which is not
implemented as seen by OP.

Instead of dealing with these two types how about we just fontify '...'
always by removing the restriction:

diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index cccd70f06c..e5f8a3755f 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1070,8 +1070,6 @@ sh-syntax-propertize-function
     ;; (e.g. `foo(#q/)' and `(#b)foo' in zsh)
     ("[^|&;<>(`\\\"' \t\n](\\(#+\\)" (1 "_"))
     ("(\\(#\\)[^)]+?)[^|&;<>)`\\\"' \t\n]" (1 "_"))
-    ;; In a '...' the backslash is not escaping.
-    ("\\(\\\\\\)'" (1 (sh-font-lock-backslash-quote)))
     ;; Make sure $@ and $? are correctly recognized as sexps.
     ("\\$\\([?@]\\)" (1 "_"))
     ;; Distinguish the special close-paren in `case'.

-- 

Daniel Fleischer





^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#49733: 27.2; Syntax Highlighting (Bash) Issue
  2021-09-18 20:55   ` Daniel Fleischer
@ 2021-09-19 15:08     ` Lars Ingebrigtsen
  0 siblings, 0 replies; 4+ messages in thread
From: Lars Ingebrigtsen @ 2021-09-19 15:08 UTC (permalink / raw)
  To: Daniel Fleischer; +Cc: [, 49733

[-- Attachment #1: Type: text/plain, Size: 206 bytes --]

Daniel Fleischer <danflscr@gmail.com> writes:

> Instead of dealing with these two types how about we just fontify '...'
> always by removing the restriction:

But that makes this fontify

echo 'foo\'bar'


[-- Attachment #2: Type: image/png, Size: 2608 bytes --]

[-- Attachment #3: Type: text/plain, Size: 177 bytes --]


i.e., as if it's one string, which is what that code is trying to fix. 

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-09-19 15:08 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-25 13:02 bug#49733: 27.2; Syntax Highlighting (Bash) Issue [
2021-07-26 18:32 ` Lars Ingebrigtsen
2021-09-18 20:55   ` Daniel Fleischer
2021-09-19 15:08     ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).