unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#32051: 26.1; grep-regexp-alist on windows
@ 2018-07-04 12:14 Dan Harms
  2018-07-04 16:26 ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Dan Harms @ 2018-07-04 12:14 UTC (permalink / raw)
  To: 32051

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

--text follows this line--

Starting in emacsc 26.1, the grep-regexp-alist stopped matching grep
hits that have a colon in them, which breaks on windows for me, since
the file paths always have a drive letter prepended.

For example,

the grep hit:

c:/Users/my.name/src/project\src\kbhit.hpp:29:#include <termios.h>

used to be matched by prior versions of emacs, but as of 26.1, the
colon in the second character prevents this from being recognized as a
grep match.

I'm wondering if the regexp really needs to explicitly disallow colons
here, since it did not before.




In GNU Emacs 26.1 (build 1, x86_64-w64-mingw32)
of 2018-05-29 built on TPW550S
Windowing system distributor 'Microsoft Corp.', version 6.1.7601
Recent messages:
Grep finished with matches found
compilation-next-error: No grep hit here
Searched 1 buffer; 3 matches for "bits"
Quit
Mark saved where search started
3 matches for "\_<out\_>"
Pattern:
Quit
previous-line: Beginning of buffer
Grep finished with matches found

Configured using:
'configure --without-compress-install --without-dbus --with-modules
'CFLAGS= -O2 -g3''

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND NOTIFY ACL GNUTLS LIBXML2
ZLIB TOOLKIT_SCROLL_BARS MODULES THREADS LCMS2

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1252

Major mode: Grep

Minor modes in effect:
  ace-popup-menu-mode: t
  global-magit-file-mode: t
  global-git-commit-mode: t
  lisp-extra-font-lock-global-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  workgroups-mode: t
  diff-hl-flydiff-mode: t
  global-diff-hl-mode: t
  diff-auto-refine-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  rich-minority-mode: t
  recentf-mode: t
  savehist-mode: t
  global-page-break-lines-mode: t
  page-break-lines-mode: t
  shackle-mode: t
  simpleclip-mode: t
  shx-global-mode: t
  global-yascroll-bar-mode: t
  yascroll-bar-mode: t
  global-flycheck-mode: t
  global-auto-complete-mode: t
  counsel-mode: t
  shell-dirtrack-mode: t
  ivy-mode: t
  delete-selection-mode: t
  show-paren-mode: t
  winner-mode: t
  which-function-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
c:/Users/dan.harms.XRTRADING/.emacs.d/elisp/seq hides c:/emacs-26.1/share/emacs/26.1/lisp/emacs-lisp/seq
c:/Users/dan.harms.XRTRADING/.emacs.d/elisp/let-alist hides c:/emacs-26.1/share/emacs/26.1/lisp/emacs-lisp/let-alist

Features:
(shadow sort mail-extr emacsbug sendmail tabify misearch multi-isearch
header2 flyspell-popup ace-popup-menu avy-menu avy flyspell ispell
good-word adaptive-wrap hydra lv magit-org-todos magit-bookmark
magit-imenu git-rebase magit-extras magit-ediff ediff-merg ediff-wind
ediff-diff ediff-mult ediff-help ediff-init ediff-util ediff
magit-subtree magit-submodule magit-obsolete magit-blame magit-stash
magit-bisect magit-remote magit-commit magit-sequence magit-notes
magit-worktree magit-tag magit-merge magit-branch magit-reset
magit-collab ghub url-http tls gnutls url-gw nsm url-auth url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
let-alist magit-files magit-refs magit-status magit magit-repos
magit-apply magit-wip magit-log magit-diff magit-core magit-autorevert
autorevert filenotify magit-process magit-margin magit-mode git-commit
magit-git magit-section magit-utils crm magit-popup log-edit message rmc
puny rfc822 mml mml-sec epa epg gnus-util rmail rmail-loaddefs mm-decode
mm-bodies mailabbrev mail-utils gmm-utils mailheader pcvs-util
with-editor server hideif cap-words superword subword iodine-theme
add-log vc-git colir bug-reference jedi-direx direx eieio-compat jedi
jedi-core python-environment epc ctable concurrent deferred
python-switch-quotes sphinx-doc virtualenvwrapper nodejs-repl
lisp-extra-font-lock elf-mode xr-mock use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key
use-package-core remotehost-connect auto-insert-choose+
auto-insert-choose flycheck-popup-tip flycheck-bashate
flycheck-checkbashisms flycheck-package package-lint finder finder-inf
lisp-mnt package epg-config url-handlers quick-peek yasnippet
flymake-proc flymake warnings elec-pair ac-etags auto-complete-config
vlf-setup smerge-mode palette eyedropper hexrgb custom-themes workgroups
windmove framemove shebang diff-hl-flydiff diff-hl-dired diff-hl vc-dir
vc vc-dispatcher diff-mode dired-du find-dired dired-sort dired-sidebar
face-remap dired-subtree dired-filter dired-hacks-utils ls-lisp+ files+
dired+ w32-browser image-dired image-mode image-file dired-aux beginend
ox-md ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util
rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex
ox-icalendar ox-html table ox-ascii ox-publish ox ob-shell ob-sqlite
ob-sql ob-python ob-plantuml ob-dot ob-ditaa ob-C emr-c outrespace
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs org-crypt ssh-deploy ssh-deploy-diff-mode undo-tree diff
smart-mode-line-light-theme rich-minority powerline powerline-separators
powerline-themes smex ido ivy-rich grep-context wgrep ange-ftp tramp-ftp
tramp-cache recentf tree-widget wid-edit savehist page-break-lines
shackle trace simpleclip shx color elnode db web time-stamp browse-url
url-util mailcap mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr fakir dotassoc kv noflet cl-indent ert ewoc debug
copyright yascroll emr-elisp emr-lisp list-utils emr-iedit iedit
iedit-lib multiple-cursors-core rect emr-prog emr
fill-function-arguments aes proviso-frame-title proviso
switch-buffer-functions proviso-include-files auto-complete-clang
flycheck cl-extra rx auto-complete-c-headers auto-complete popup cl
proviso-grep proviso-registers proviso-sml smart-mode-line
proviso-bookmarks f bookmark+ bookmark+-key derived dired-x crosshairs
col-highlight vline hl-line+ hl-line bookmark+-1 bookmark+-bmu help-mode
bookmark+-lit bookmark pp proviso-gentags find-file proviso-tags
proviso-etags-select proviso-etags-table etags proviso-display
proviso-dired proviso-gud realgud realgud-recursive-autoloads
realgud-zshdb realgud:zshdb-track-mode realgud:zshdb-core
realgud:zshdb-init realgud-trepan3k realgud:trepan3k-track-mode
realgud:trepan3k-core realgud:trepan3k-init realgud-trepan2
realgud:trepan2-track-mode realgud:trepan2-core realgud:trepan2-init
realgud-trepanpl realgud:trepanpl-track-mode realgud:trepanpl-core
realgud:trepanpl-init realgud-trepanjs realgud:trepanjs-track-mode
realgud:trepanjs-core realgud:trepanjs-init realgud-trepan
realgud:trepan-track-mode realgud:trepan-core realgud:trepan-init
realgud-remake realgud:remake-track-mode realgud:remake-core
realgud:remake-init realgud-rdebug realgud-rdebug-track-mode
realgud-rdebug-core realgud-rdebug-init realgud-lang-ruby realgud-perldb
realgud:perldb-track-mode realgud:perldb-core realgud:perldb-init
realgud-lang-perl realgud-pdb realgud:pdb-track-mode realgud:pdb-core
realgud:pdb-init python tramp-sh realgud-nodejs
realgud:nodejs-track-mode realgud:nodejs-core realgud:nodejs-init
realgud-lang-js realgud-kshdb realgud:kshdb-track-mode
realgud:kshdb-core realgud:kshdb-init realgud-jdb realgud:jdb-track-mode
realgud:jdb-core realgud:jdb-init realgud-lang-java gud realgud-ipdb
realgud:ipdb-track-mode realgud:ipdb-core realgud:ipdb-init
realgud-lang-python realgud-gub realgud:gub-track-mode realgud:gub-core
realgud:gub-init realgud-gdb realgud:gdb-track-mode realgud:gdb-init
realgud:gdb-core realgud-bashdb realgud:bashdb-track-mode
realgud:bashdb-core realgud:bashdb-init realgud-lang-posix-shell
realgud:run realgud-track-mode realgud-backtrace-mode realgud-track
realgud-shortkey realgud-menu realgud-eval realgud-cmds realgud-send
realgud-window realgud-utils realgud-init realgud-file esh-var esh-io
esh-cmd esh-opt esh-ext esh-proc esh-arg esh-groups eshell esh-module
esh-util esh-mode realgud-core realgud-reset realgud-buffer-helper
realgud-buffer-backtrace realgud-buffer-command realgud-buffer-info
realgud-regexp json map realgud-lochist org-element avl-tree generator
org org-macro org-footnote org-pcomplete org-list org-faces org-entities
noutline outline org-version ob-emacs-lisp ob ob-tangle org-src ob-ref
ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval org-compat
org-macs org-loaddefs find-func cal-menu easymenu calendar cal-loaddefs
realgud-bp realgud-bp-image-data realgud-loc realgud-buffer-source
realgud-key key realgud-follow realgud-lang realgud-fringe
realgud-helper loc-changes realgud-custom load-relative proviso-compile
proviso-dashboard proviso-finder async counsel xref project dired
dired-loaddefs swiper proviso-fulledit proviso-clang-format clang-format
xml proviso-rg proviso-ag s grep compile proviso-defines proviso-regexp
proviso-core tramp tramp-compat tramp-loaddefs trampver ucs-normalize
shell pcomplete comint ansi-color parse-time format-spec advice parsenv
dash choose-font read-file seq seq-25 ivy flx delsel ivy-overlay ffap
thingatpt url-parse auth-source cl-seq eieio byte-opt bytecomp
byte-compile cconv eieio-core cl-macs gv eieio-loaddefs password-cache
url-vars subr-x avoid paren winner ring which-func imenu edmacro kmacro
custom-backups bind-key easy-mmode cl-loaddefs cl-lib time-date
mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win
w32-vars term/common-win 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 w32notify w32 lcms2 multi-tty make-network-process emacs)

Memory information:
((conses 16 622139 207914)
(symbols 56 62786 1)
(miscs 48 612 1715)
(strings 32 172225 26299)
(string-bytes 1 5662131)
(vectors 16 96222)
(vector-slots 8 1464831 151578)
(floats 8 612 891)
(intervals 56 2725 1677)
(buffers 992 32))
This e-mail and any materials attached hereto, including, without limitation, all content hereof and thereof (collectively, "XR Content") are confidential and proprietary to XR Trading LLC ("XR") and/or its affiliates, and are protected by intellectual property laws.  Without the prior written consent of XR, the XR Content may not (i) be disclosed to any third party or (ii) be reproduced or otherwise used by anyone other than current employees of XR or its affiliates, on behalf of XR or its affiliates.

THE XR CONTENT IS PROVIDED AS IS, WITHOUT REPRESENTATIONS OR WARRANTIES OF ANY KIND. TO THE MAXIMUM EXTENT PERMISSIBLE UNDER APPLICABLE LAW, XR HEREBY DISCLAIMS ANY AND ALL WARRANTIES, EXPRESSED AND IMPLIED, RELATING TO THE XR CONTENT, AND NEITHER XR NOR ANY OF ITS AFFILIATES SHALL IN ANY EVENT BE LIABLE FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, INCLUDING, BUT NOT LIMITED TO, DIRECT, INDIRECT, CONSEQUENTIAL, SPECIAL AND PUNITIVE DAMAGES, LOSS OF PROFITS AND TRADING LOSSES, RESULTING FROM ANY PERSON'S USE OR RELIANCE UPON, OR INABILITY TO USE, ANY XR CONTENT, EVEN IF XR IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES OR IF SUCH DAMAGES WERE FORESEEABLE

[-- Attachment #2: Type: text/html, Size: 22640 bytes --]

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

* bug#32051: 26.1; grep-regexp-alist on windows
  2018-07-04 12:14 bug#32051: 26.1; grep-regexp-alist on windows Dan Harms
@ 2018-07-04 16:26 ` Eli Zaretskii
  2018-07-04 19:57   ` Noam Postavsky
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2018-07-04 16:26 UTC (permalink / raw)
  To: Dan Harms; +Cc: 32051

> From: Dan Harms <Dan.Harms@xrtrading.com>
> Date: Wed, 4 Jul 2018 12:14:41 +0000
> 
> Starting in emacsc 26.1, the grep-regexp-alist stopped matching grep
> hits that have a colon in them, which breaks on windows for me, since
> the file paths always have a drive letter prepended.
>  
> For example,
>  
> the grep hit:
>  
> c:/Users/my.name/src/project\src\kbhit.hpp:29:#include <termios.h>
>  
> used to be matched by prior versions of emacs, but as of 26.1, the
> colon in the second character prevents this from being recognized as a
> grep match.

I don't think I can reproduce this.  I've just ran a Grep command
whose hits look like this:

  d:/gnu/emacs/branch/src/callproc.c:214:#ifdef DOS_NT

and they seem to exhibit all the traits of a Grep hit.

What exactly do you mean by "prevents from being recognized as a grep
match"?  What doesn't happen that you expected to happen and that was
happening with prior versions of Emacs?  Also, does the problem go
away if you invoke Emacs as "emacs -Q"?





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

* bug#32051: 26.1; grep-regexp-alist on windows
  2018-07-04 16:26 ` Eli Zaretskii
@ 2018-07-04 19:57   ` Noam Postavsky
  2018-07-06  8:51     ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Noam Postavsky @ 2018-07-04 19:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 32051, Dan Harms

On 4 July 2018 at 12:26, Eli Zaretskii <eliz@gnu.org> wrote:

> I don't think I can reproduce this.  I've just ran a Grep command
> whose hits look like this:
>
>   d:/gnu/emacs/branch/src/callproc.c:214:#ifdef DOS_NT
>
> and they seem to exhibit all the traits of a Grep hit.

Looking at the grep-regexp-alist, it is the case that a filename with
a colon will not be matched when grep doesn't support --null. In the
case where grep does support --null, the NUL byte is displayed like a
colon, so the difference might not leap out at you.

I think the patch below would fix it:

--- i/lisp/progmodes/grep.el
+++ w/lisp/progmodes/grep.el
@@ -381,3 +381,5 @@ grep-regexp-alist
               ;; [0-9]+ so as to accept ":034:" in file names.
-              "\\(?1:[^\n:]+?[^\n/:]\\):[\t ]*\\(?2:[1-9][0-9]*\\)[\t ]*:"
+              "\\(?1:"
+              "\\(?:[a-zA-Z]:\\)?" ; Allow "C:..." for w32.
+              "[^\n:]+?[^\n/:]\\):[\t ]*\\(?2:[1-9][0-9]*\\)[\t ]*:"
               "\\)")





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

* bug#32051: 26.1; grep-regexp-alist on windows
  2018-07-04 19:57   ` Noam Postavsky
@ 2018-07-06  8:51     ` Eli Zaretskii
  2018-07-09 21:08       ` Noam Postavsky
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2018-07-06  8:51 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 32051, Dan.Harms

> From: Noam Postavsky <npostavs@gmail.com>
> Date: Wed, 4 Jul 2018 15:57:53 -0400
> Cc: Dan Harms <Dan.Harms@xrtrading.com>, 32051@debbugs.gnu.org
> 
> Looking at the grep-regexp-alist, it is the case that a filename with
> a colon will not be matched when grep doesn't support --null. In the
> case where grep does support --null, the NUL byte is displayed like a
> colon, so the difference might not leap out at you.

Right, thanks.

> I think the patch below would fix it:

Looks reasonable.  Can we have a test for this use case, so that we
never again regress like that?





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

* bug#32051: 26.1; grep-regexp-alist on windows
  2018-07-06  8:51     ` Eli Zaretskii
@ 2018-07-09 21:08       ` Noam Postavsky
  2018-07-10 15:57         ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Noam Postavsky @ 2018-07-09 21:08 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 32051, Dan Harms

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

On 6 July 2018 at 04:51, Eli Zaretskii <eliz@gnu.org> wrote:

> Looks reasonable.  Can we have a test for this use case, so that we
> never again regress like that?

Sure, here's a full patch with testcases.

[-- Attachment #2: v1-0001-Match-w32-paths-in-grep-sans-null-hits-Bug-32051.patch --]
[-- Type: application/octet-stream, Size: 4731 bytes --]

From 0cac6938f4fa2b453a4ed5d1cc17a082a7ecf289 Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs@gmail.com>
Date: Mon, 9 Jul 2018 16:56:47 -0400
Subject: [PATCH v1] Match w32 paths in grep sans --null hits (Bug#32051)

* lisp/progmodes/grep.el (grep-regexp-alist): Add an optional part to
match paths starting with C: (other drive letters).
* test/lisp/progmodes/compile-tests.el
(compile-tests--grep-regexp-testcases)
(compile-tests--grep-regexp-tricky-testcases)
(compile-test-grep-regexps): New tests.
(compile--test-error-line): Return `compilation-message'.
---
 lisp/progmodes/grep.el               |  4 +++-
 test/lisp/progmodes/compile-tests.el | 46 +++++++++++++++++++++++++++++++++++-
 2 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index da09c90..0bfabd5 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -379,7 +379,9 @@ grep-regexp-alist
               ;; to handle weird file names (with colons in them) as
               ;; well as possible.  E.g., use [1-9][0-9]* rather than
               ;; [0-9]+ so as to accept ":034:" in file names.
-              "\\(?1:[^\n:]+?[^\n/:]\\):[\t ]*\\(?2:[1-9][0-9]*\\)[\t ]*:"
+              "\\(?1:"
+              "\\(?:[a-zA-Z]:\\)?" ; Allow "C:..." for w32.
+              "[^\n:]+?[^\n/:]\\):[\t ]*\\(?2:[1-9][0-9]*\\)[\t ]*:"
               "\\)")
      1 2
      ;; Calculate column positions (col . end-col) of first grep match on a line
diff --git a/test/lisp/progmodes/compile-tests.el b/test/lisp/progmodes/compile-tests.el
index a106030..4e2dc86 100644
--- a/test/lisp/progmodes/compile-tests.el
+++ b/test/lisp/progmodes/compile-tests.el
@@ -343,6 +343,29 @@ compile-tests--test-regexps-data
 END-LINE, if that matched.  TYPE can be left out, in which case
 any message type is accepted.")
 
+(defconst compile-tests--grep-regexp-testcases
+  ;; Bug#32051.
+  '(("c:/Users/my.name/src/project\\src\\kbhit.hpp\0\ 29:#include <termios.h>"
+     1 nil 29 "c:/Users/my.name/src/project\\src\\kbhit.hpp")
+    ("d:/gnu/emacs/branch/src/callproc.c\0\ 214:#ifdef DOS_NT"
+     1 nil 214 "d:/gnu/emacs/branch/src/callproc.c")
+    ("/gnu/emacs/branch/src/callproc.c\0\ 214:#ifdef DOS_NT"
+     1 nil 214 "/gnu/emacs/branch/src/callproc.c"))
+  "List of tests for `grep-regexp-list'.
+The format is the same as `compile-tests--test-regexps-data', but
+the match is expected to be the same when NUL bytes are replaced
+with colon.")
+
+(defconst compile-tests--grep-regexp-tricky-testcases
+  ;; Bug#7378.
+  '(("./x11-libs---nx/3.4.0:0:C.30253.1289557929.792611.C/nx-3.4.0.exheres-0\0\ 42:some text"
+     1 nil 42 "./x11-libs---nx/3.4.0:0:C.30253.1289557929.792611.C/nx-3.4.0.exheres-0")
+    ("2011-08-31_11:57:03_1\0\ 7:Date: Wed, 31 Aug 2011 11:57:03 +0000"
+     1 nil 7 "2011-08-31_11:57:03_1"))
+  "List of tricky tests for `grep-regexp-list'.
+Same as `compile-tests--grep-regexp-testcases', but these cases
+can only work with the NUL byte to disambiguate colons.")
+
 (defun compile--test-error-line (test)
   (erase-buffer)
   (setq compilation-locs (make-hash-table))
@@ -370,7 +393,8 @@ compile--test-error-line
       (should (equal (car (nth 2 (compilation--loc->file-struct loc)))
                      (or end-line line)))
       (when type
-        (should (equal type (compilation--message->type msg)))))))
+        (should (equal type (compilation--message->type msg)))))
+    msg))
 
 (ert-deftest compile-test-error-regexps ()
   "Test the `compilation-error-regexp-alist' regexps.
@@ -379,4 +403,24 @@ compile--test-error-line
     (font-lock-mode -1)
     (mapc #'compile--test-error-line compile-tests--test-regexps-data)))
 
+(ert-deftest compile-test-grep-regexps ()
+  "Test the `grep-regexp-alist' regexps.
+The test data is in `compile-tests--grep-regexp-testcases'."
+  (with-temp-buffer
+    (grep-mode)
+    (setq buffer-read-only nil)
+    (font-lock-mode -1)
+    (dolist (testcase compile-tests--grep-regexp-testcases)
+      (let (msg1 msg2)
+        (setq msg1 (ert-info ((format "%S" testcase) :prefix "testcase: ")
+                     (compile--test-error-line testcase)))
+        ;; Make sure replacing the NUL character with a colon still matches.
+        (setf (car testcase) (replace-regexp-in-string "\0" ":" (car testcase)))
+        (setq msg2 (ert-info ((format "%S" testcase) :prefix "testcase: ")
+                     (compile--test-error-line testcase)))
+        (should (equal msg1 msg2))))
+    (dolist (testcase compile-tests--grep-regexp-tricky-testcases)
+      (ert-info ((format "%S" testcase) :prefix "testcase: ")
+        (compile--test-error-line testcase)))))
+
 ;;; compile-tests.el ends here
-- 
2.6.2.windows.1


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

* bug#32051: 26.1; grep-regexp-alist on windows
  2018-07-09 21:08       ` Noam Postavsky
@ 2018-07-10 15:57         ` Eli Zaretskii
  2018-07-13  1:51           ` Noam Postavsky
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2018-07-10 15:57 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 32051, Dan.Harms

> From: Noam Postavsky <npostavs@gmail.com>
> Date: Mon, 9 Jul 2018 17:08:29 -0400
> Cc: Dan Harms <Dan.Harms@xrtrading.com>, 32051@debbugs.gnu.org
> 
> On 6 July 2018 at 04:51, Eli Zaretskii <eliz@gnu.org> wrote:
> 
> > Looks reasonable.  Can we have a test for this use case, so that we
> > never again regress like that?
> 
> Sure, here's a full patch with testcases.

Thanks, LGTM.





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

* bug#32051: 26.1; grep-regexp-alist on windows
  2018-07-10 15:57         ` Eli Zaretskii
@ 2018-07-13  1:51           ` Noam Postavsky
  0 siblings, 0 replies; 7+ messages in thread
From: Noam Postavsky @ 2018-07-13  1:51 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 32051, Dan.Harms

tags 32051 fixed
close 32051 26.2
quit

Eli Zaretskii <eliz@gnu.org> writes:

>> Sure, here's a full patch with testcases.
>
> Thanks, LGTM.

Pushed to emacs-26.

[1: 3eb4603b0d]: 2018-07-12 21:49:50 -0400
  Match w32 paths in grep sans --null hits (Bug#32051)
  https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=3eb4603b0d432740ff4e8deb637cca2f35cf5fee





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

end of thread, other threads:[~2018-07-13  1:51 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-04 12:14 bug#32051: 26.1; grep-regexp-alist on windows Dan Harms
2018-07-04 16:26 ` Eli Zaretskii
2018-07-04 19:57   ` Noam Postavsky
2018-07-06  8:51     ` Eli Zaretskii
2018-07-09 21:08       ` Noam Postavsky
2018-07-10 15:57         ` Eli Zaretskii
2018-07-13  1:51           ` Noam Postavsky

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).