Subject: 26.3; skip-syntax-forward doesn't work in python-mode

From: Amai Kinono <[email-masked]>
Date: Thu, 19 Sep 2019 03:07:48 +0800

Here's how to reproduce:

- Run `emacs -Q`

- Define a command like this and eval it

  ``` emacs-lisp
  (defun skip-syntax ()
    (interactive)
    (skip-syntax-forward (char-to-string (char-syntax (char-after)))))
  ```

  It gets the syntax of the next char and skip chars with the same syntax.

- M-x python-mode, clear the buffer, type

  ``` python
  print(|'hello')
  ```

  `|` stands for the cursor position.

- Call skip-syntax. The expected behavior is:

  ``` python
  print('|hello')
  ```

  but actually the cursor doesn't move.

I've tried some other modes, and the above command can skip the
quotation mark normally, so this should be a problem of Python mode.

In GNU Emacs 26.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.10)
 of 2019-08-30 built on juergen
Windowing system distributor 'The X.Org Foundation', version 11.0.12005000
System Description: Manjaro Linux

Recent messages:
uncompressing python.el.gz...
uncompressing python.el.gz...done
Note: file is write protected
Quit [2 times]
M-SPC r is undefined

Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --with-x-toolkit=gtk3 --with-xft --with-modules
 '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 IMAGEMAGICK SOUND GPM DBUS GSETTINGS GLIB
NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD LCMS2

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

Major mode: Emacs-Lisp

Minor modes in effect:
  smartparens-global-mode: t
  smartparens-strict-mode: t
  smartparens-mode: t
  diff-auto-refine-mode: t
  which-key-mode: t
  global-whitespace-cleanup-mode: t
  whitespace-cleanup-mode: t
  global-whitespace-mode: t
  global-company-mode: t
  company-mode: t
  show-paren-mode: t
  winum-mode: t
  awesome-tab-mode: t
  ivy-rich-mode: t
  evil-escape-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  shell-dirtrack-mode: t
  evil-mode: t
  evil-local-mode: t
  global-subword-mode: t
  subword-mode: t
  global-auto-revert-mode: t
  awesome-tray-mode: t
  general-override-mode: t
  ivy-mode: t
  delete-selection-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  straight-live-modifications-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  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:
/home/kino/.emacs.d/straight/build/seq/seq hides
/usr/share/emacs/26.3/lisp/emacs-lisp/seq
/home/kino/.emacs.d/straight/build/let-alist/let-alist hides
/usr/share/emacs/26.3/lisp/emacs-lisp/let-alist
/home/kino/.emacs.d/straight/build/cl-lib/cl-lib hides
/usr/share/emacs/26.3/lisp/emacs-lisp/cl-lib
~/.emacs.d/modules/ui/appearance/config hides
~/.emacs.d/modules/ui/file/config
~/.emacs.d/modules/ui/appearance/config hides
~/.emacs.d/modules/ui/edit/config
~/.emacs.d/modules/ui/appearance/config hides
~/.emacs.d/modules/ui/evil/config
~/.emacs.d/modules/ui/appearance/config hides
~/.emacs.d/modules/ui/sexp/config
~/.emacs.d/modules/ui/appearance/config hides
~/.emacs.d/modules/ui/window-buffer/config
~/.emacs.d/modules/ui/appearance/config hides
~/.emacs.d/modules/ide/completion/config
~/.emacs.d/modules/ui/appearance/config hides
~/.emacs.d/modules/ide/checker/config
~/.emacs.d/modules/ui/appearance/config hides
~/.emacs.d/modules/ide/lsp/config
~/.emacs.d/modules/ui/appearance/config hides
~/.emacs.d/modules/ide/help/config
~/.emacs.d/modules/ui/appearance/config hides
~/.emacs.d/modules/ide/ctags/config
~/.emacs.d/modules/ui/appearance/config hides
~/.emacs.d/modules/lang/dart/config
~/.emacs.d/modules/ui/appearance/config hides
~/.emacs.d/modules/lang/web/config
~/.emacs.d/modules/ui/appearance/config hides
~/.emacs.d/modules/lang/elisp/config
~/.emacs.d/modules/ui/appearance/config hides
~/.emacs.d/modules/app/qrcode/config
~/.emacs.d/modules/ui/appearance/config hides
~/.emacs.d/modules/app/esup/config

Features:
(shadow sort mail-extr emacsbug message rmc puny format-spec rfc822 mml
mml-sec password-cache epa derived epg epg-config gnus-util rmail
rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils two-column smartparens-config
smartparens-text smartparens elec-pair vc-mtn vc-hg vc-git diff-mode
vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc vc-dispatcher jka-compr
cursor-sensor which-key whitespace-cleanup-mode disp-table whitespace
company-oddmuse company-keywords company-etags company-gtags
company-dabbrev-code company-dabbrev company-files company-capf
company-cmake company-xcode company-clang company-semantic company-eclim
company-template company-bbdb company pcase flycheck json map find-func
rx seq seq-25 paren winum dash awesome-tab easy-mmode which-func imenu
counsel-etags ivy-rich counsel xdg dired dired-loaddefs compile swiper
etags xref project eieio eieio-core eieio-loaddefs evil-escape evil
evil-integration undo-tree diff evil-maps evil-commands reveal flyspell
ispell evil-jumps evil-command-window evil-types evil-search evil-ex
shell pcomplete comint ansi-color evil-macros evil-repeat evil-states
evil-core byte-opt advice evil-common windmove thingatpt rect
evil-digraphs evil-vars toki-app/esup esup-autoloads toki-app/qrcode
toki-lang/elisp toki-lang/web web-mode-autoloads toki-lang/dart
dart-mode-autoloads toki-ide/ctags counsel-etags-autoloads toki-ide/help
toki-ide/lsp lsp-mode-autoloads markdown-mode-autoloads
spinner-autoloads ht-autoloads f-autoloads s-autoloads
dash-functional-autoloads toki-ide/checker flycheck-autoloads
let-alist-autoloads pkg-info-autoloads epl-autoloads toki-ide/completion
company-autoloads toki-ui/window-buffer awesome-tab-autoloads
winum-autoloads toki-ui/sexp smartparens-autoloads dash-autoloads
toki-ui/evil term-cursor-autoloads evil-escape-autoloads evil-autoloads
goto-chg-autoloads toki-ui/edit whitespace-cleanup-mode-autoloads
avy-autoloads cap-words superword subword undo-tree-autoloads
toki-ui/file autorevert filenotify toki-ui/appearance beacon-autoloads
seq-autoloads awesome-tray awesome-tray-autoloads all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons memoize
all-the-icons-autoloads memoize-autoloads doom-gruvbox-theme
doom-themes-ext-org doom-themes doom-themes-base doom-themes-autoloads
ns-auto-titlebar-autoloads cl toki-core toki-core-keybind hydra lv
hydra-autoloads lv-autoloads which-key-autoloads edmacro kmacro general
general-autoloads toki-core-os exec-path-from-shell-autoloads
osx-clipboard-autoloads xclip-autoloads toki-core-packages
ivy-rich-autoloads counsel-autoloads swiper-autoloads ivy delsel ring
colir color ivy-overlay ivy-autoloads no-littering
no-littering-autoloads cl-lib-autoloads cl-seq use-package-core
use-package-autoloads bind-key-autoloads straight-autoloads info
cl-extra help-mode easymenu straight subr-x bytecomp byte-compile cconv
toki-core-defaults toki-core-helpers cl-macs gv cl-loaddefs cl-lib
time-date mule-util china-util 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 menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame 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 minibuffer 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 move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 324283 285642)
 (symbols 48 36062 15)
 (miscs 40 111 410)
 (strings 32 82193 35731)
 (string-bytes 1 2537074)
 (vectors 16 34096)
 (vector-slots 8 746877 160936)
 (floats 8 768 1220)
 (intervals 56 3869 1417)
 (buffers 992 14))