Subject: show-paren-mode erroneously highlights the left margin
From: Hinrik Örn Sigurðsson <[email-masked]>
To: [email-masked]
Date: Sat, 24 Oct 2015 19:28:24 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi there. I discovered that under certain conditions, show-paren-mode
will highlight the entire left margin of the window when one of the
parentheses is located at the beginning of a line. If you do "M-x
eval-buffer" on the following code, it will reproduce the issue in
emacs -Q (in both the terminal and GUI):

    (linum-mode)
    (custom-set-faces
      '(linum ((t (:foreground "black" :weight bold)))))
    (show-paren-mode)

It happens when linum-mode (or nlinum-mode) is active, but only if the
'linum face has been customized. Attached is a screenshot
demonstrating the overzealous highlighting.

In GNU Emacs 24.4.1 (x86_64-pc-linux-gnu, GTK+ Version 3.14.9)
 of 2015-03-21 on kissel, modified by Debian
System Description:    Ubuntu 15.04

Configured using:
 `configure --build x86_64-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/emacs24:/etc/emacs:/usr/local/share/emacs/24.4/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.4/site-lisp:/usr/share/emacs/site-lisp
 --build x86_64-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/emacs24:/etc/emacs:/usr/local/share/emacs/24.4/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.4/site-lisp:/usr/share/emacs/site-lisp
 --with-x=yes --with-x-toolkit=gtk3 --with-toolkit-scroll-bars
 'CFLAGS=-g -O2 -fstack-protector-strong -Wformat
 -Werror=format-security -Wall' CPPFLAGS=-D_FORTIFY_SOURCE=2
 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro''

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

Major mode: Text

Minor modes in effect:
  global-company-mode: t
  company-mode: t
  guide-key-mode: t
  projectile-global-mode: t
  projectile-mode: t
  helm-mode: t
  shell-dirtrack-mode: t
  helm-autoresize-mode: t
  savehist-mode: t
  global-centered-cursor-mode: t
  centered-cursor-mode: t
  winner-mode: t
  electric-pair-mode: t
  delete-selection-mode: t
  cua-mode: t
  which-function-mode: t
  xterm-title-mode: t
  show-paren-mode: t
  recentf-mode: t
  override-global-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-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
  column-number-mode: t
  line-number-mode: t
  auto-fill-function: do-auto-fill
  transient-mark-mode: t

Recent input:
ESC ] l T e r m i n a l ESC \ ESC ] L T e r m i n a
l ESC \ ESC [ > 1 ; 3 8 0 3 ; 0 c ESC x r e p o r t
RET

Recent messages:
Loading 00debian-vars...done
Loading /etc/emacs/site-start.d/50autoconf.el (source)...done
Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...
Loading debian-ispell...
Loading /var/cache/dictionaries-common/emacsen-ispell-default.el (source)...done
Loading debian-ispell...done
Loading /var/cache/dictionaries-common/emacsen-ispell-dicts.el (source)...done
Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...done
Loading /home/hinrik/.emacs.d/state/recentf...done
Cleaning up the recentf list...done (0 removed)

Load-path shadows:
/home/hinrik/.emacs.d/elpa/helm-20151023.1317/helm-multi-match hides
/home/hinrik/.emacs.d/elpa/helm-core-20151021.628/helm-multi-match
/usr/share/emacs/24.4/site-lisp/debian-startup hides
/usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs24/site-lisp/dictionaries-common/flyspell hides
/usr/share/emacs/24.4/lisp/textmodes/flyspell
/usr/share/emacs24/site-lisp/dictionaries-common/ispell hides
/usr/share/emacs/24.4/lisp/textmodes/ispell

Features:
(shadow sort mail-extr emacsbug message rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mail-utils helm-command xterm
helm-company helm-elisp helm-eval edebug eldoc company-files
company-oddmuse company-keywords company-etags etags company-gtags
company-dabbrev-code company-dabbrev company-capf company-cmake
company-xcode company-clang company-semantic company-eclim
company-template company-css company-nxml company-bbdb company org
org-macro org-footnote org-pcomplete org-list org-faces org-entities
noutline outline org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-src ob-keys ob-comint ob-core ob-eval org-compat
org-macs org-loaddefs find-func cal-menu calendar cal-loaddefs
finder-inf perl6-mode derived perl6-indent smie perl6-font-lock pcase
perl6-detect guide-key s ucs-normalize popwin helm-projectile projectile
grep ibuf-ext ibuffer dash helm-mode helm-files rx image-dired tramp
tramp-compat tramp-loaddefs trampver shell pcomplete format-spec dired-x
dired-aux ffap thingatpt helm-buffers helm-elscreen helm-tags
helm-bookmark helm-adaptive helm-info bookmark pp helm-locate helm-grep
helm-regexp helm-plugin helm-external helm-net browse-url xml url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util url-parse auth-source gnus-util mm-util mail-prsvr
password-cache url-vars mailcap helm-utils compile comint ansi-color
helm-help helm-types helm cl-macs gv helm-source eieio eieio-core
helm-multi-match helm-lib dired saveplace savehist centered-cursor-mode
phi-search phi-search-core byte-opt advice help-fns winner ring
elec-pair delsel cua-base drag-stuff which-func imenu xterm-title
xterm-frobs edmacro kmacro disp-table literal-tango-theme paren recentf
tree-widget wid-edit use-package diminish bytecomp byte-compile cconv
bind-key easy-mmode cl-loaddefs cl-lib slime-autoloads info easymenu
package epg-config time-date tooltip electric uniquify ediff-hook
vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list newcomment lisp-mode prog-mode register
page menu-bar rfn-eshadow timer select scroll-bar 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 minibuffer 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 make-network-process dbusbind
gfilenotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 414985 304942)
 (symbols 48 39860 0)
 (miscs 40 93 258)
 (strings 32 85567 195014)
 (string-bytes 1 2489233)
 (vectors 16 58284)
 (vector-slots 8 1593857 168427)
 (floats 8 212 1024)
 (intervals 56 1169 0)
 (buffers 960 13)
 (heap 1024 71776 39181))