* 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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.