Subject: Re: bug#24017: 24.5; vc-dir-mark loop infinitely when region is active and cursor position in last blank line.
From: [email-masked] (Charles A. Roelli)
To: 綾小路剛志 <[email-masked]>
Cc: [email-masked]
Date: Mon, 18 Dec 2017 20:59:07 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: 綾小路剛志 <[email-masked]>
> Date: Sun, 17 Jul 2016 19:07:50 +0900
> 
> How to reproduce bug.
> 
> 1. Create a directory and move there.
> 
> mkdir BUG
> cd BUG
> 
> 2. Create files and start emacs.
> 
> $ echo foo > foo.txt 
> $ echo bar > bar.txt 
> $ LANG=C emacs -Q
> 
> 3. Open a file.
> 
> C-x C-f foo.txt
> 
> 4. Create repository (this example use SVN for VC backend).
> 
> C-x v v SVN <RET> <RET>
> 
> 5. Open *vc-dir* buffer
> 
> C-x v d <RET>
> At now, vc-dir buffer displays directory contents like bellow.
> 
> VC backend : SVN
> Working dir: ~/BUG/
> Repository : file:///home/h1r0s/BUG/SVN
> 
> ./
> unregistered SVN
> unregistered bar.txt
> added foo.txt
> 
> 6. Select last file's line entirely.
> 
> C-s <RET> foo.txt C-a S-<Down>
> 
> 7. Mark the region
> 
> M-x vc-dir-mark (or hit 'm')
> 
> ... And this will never return.
> 
> Thanks.
> ---
> Ayanokoji Takesi <[email-masked]>
> 
> In GNU Emacs 24.5.1 (i686-pc-linux-gnu, GTK+ Version 3.4.4)
> of 2015-04-27 on himawari
> Windowing system distributor `Fedora Project', version 11.0.11203000
> System Description: Fedora release 17 (Beefy Miracle)

Thanks, I think I've fixed this now.

  commit 9685774e38dc6f5670c8e57dc9f49335f4f738b6
  Date:   Mon Dec 18 20:51:30 2017 +0100

  Fix infinite loop in vc-dir-mark-unmark

  * lisp/vc/vc-dir.el (vc-dir-mark-unmark): Prevent from getting
  stuck on the same line in an infinite loop.  (Bug#24017)