Trying to navigate with C-x p f in an SVN repository fails, because the SVN repository has an ignore property with empty lines. This is the detailed error. Debugger entered--Lisp error: (args-out-of-range "" 0) #f(compiled-function (entry) #<bytecode -0x1726de7462823143>)("") mapcar(#f(compiled-function (entry) #<bytecode -0x1726de7462823143>) ("" "")) #f(compiled-function (project dir) #<bytecode 0x187989c589069892>)((vc SVN "~/project/") "~/project/") apply(#f(compiled-function (project dir) #<bytecode 0x187989c589069892>) (vc SVN "~/project/") "~/project/") project-ignores((vc SVN "~/project/") "~/project/") project--dir-ignores((vc SVN "~/project/") "~/project/") #f(compiled-function (dir) #<bytecode 0x68383878a42445c>)("~/project/") mapcan(#f(compiled-function (dir) #<bytecode 0x68383878a42445c>) ("~/project/")) #f(compiled-function (project &optional dirs) #<bytecode -0x1baeb702532f0340>)((vc SVN "~/project/") ("~/project/")) apply(#f(compiled-function (project &optional dirs) #<bytecode -0x1baeb702532f0340>) (vc SVN "~/project/") ("~/project/")) project-files((vc SVN "~/project/") ("~/project/")) project-find-file-in(#("Flipped90:" 0 10 (fontified t)) ("~/project/") (vc SVN "~/project/") nil) project-find-file(nil) funcall-interactively(project-find-file nil) command-execute(project-find-file) Would someone please take a look at this? In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu) of 2022-10-29 built on trinity Repository revision: f826f56a413a07eee2782655809e1f5e102c6153 Repository branch: HEAD Windowing system distributor 'The X.Org Foundation', version 11.0.100000000000 System Description: Fedora Linux 36 (Workstation Edition) Configured using: 'configure --with-native-compilation --with-x-toolkit=no --without-cairo' Configured features: ACL DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY OLDXMENU PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF WEBP X11 XDBE XFT XIM XINPUT2 XPM ZLIB Important settings: value of $LANG: en_GB.utf8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: C/*l Minor modes in effect: erc-list-mode: t erc-menu-mode: t erc-autojoin-mode: t erc-ring-mode: t erc-pcomplete-mode: t erc-track-mode: t erc-track-minor-mode: t erc-match-mode: t erc-button-mode: t erc-fill-mode: t erc-stamp-mode: t erc-netsplit-mode: t erc-networks-mode: t erc-irccontrols-mode: t erc-noncommands-mode: t erc-move-to-prompt-mode: t erc-readonly-mode: t sly-symbol-completion-mode: t global-edit-server-edit-mode: t global-git-commit-mode: t display-time-mode: t electric-pair-mode: t desktop-save-mode: t telega-active-locations-mode: t shell-dirtrack-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t lost-selection-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t abbrev-mode: t
Hi! On 30.10.2022 09:15, Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors wrote: > Trying to navigate with C-x p f in an SVN repository fails, because the > SVN repository has an ignore property with empty lines. This is the > detailed error. > > Debugger entered--Lisp error: (args-out-of-range "" 0) > #f(compiled-function (entry) #<bytecode -0x1726de7462823143>)("") > mapcar(#f(compiled-function (entry) #<bytecode -0x1726de7462823143>) ("" "")) > #f(compiled-function (project dir) #<bytecode 0x187989c589069892>)((vc SVN "~/project/") "~/project/") > apply(#f(compiled-function (project dir) #<bytecode 0x187989c589069892>) (vc SVN "~/project/") "~/project/") > project-ignores((vc SVN "~/project/") "~/project/") > project--dir-ignores((vc SVN "~/project/") "~/project/") > #f(compiled-function (dir) #<bytecode 0x68383878a42445c>)("~/project/") > mapcan(#f(compiled-function (dir) #<bytecode 0x68383878a42445c>) ("~/project/")) > #f(compiled-function (project &optional dirs) #<bytecode -0x1baeb702532f0340>)((vc SVN "~/project/") ("~/project/")) > apply(#f(compiled-function (project &optional dirs) #<bytecode -0x1baeb702532f0340>) (vc SVN "~/project/") ("~/project/")) > project-files((vc SVN "~/project/") ("~/project/")) > project-find-file-in(#("Flipped90:" 0 10 (fontified t)) ("~/project/") (vc SVN "~/project/") nil) > project-find-file(nil) > funcall-interactively(project-find-file nil) > command-execute(project-find-file) > > Would someone please take a look at this? Does this help? I don't have an SVN repository to test. diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el index 270877041a..f240ebafca 100644 --- a/lisp/vc/vc-svn.el +++ b/lisp/vc/vc-svn.el @@ -366,7 +366,7 @@ vc-svn-ignore-completion-table (with-temp-buffer (when (zerop (vc-svn-command t t nil "propget" "svn:ignore" (expand-file-name directory))) - (split-string (buffer-string) "\n")))) + (split-string (buffer-string) "\n" t)))) (defun vc-svn-find-admin-dir (file) "Return the administrative directory of FILE."
Dmitry Gutov <dgutov@yandex.ru> writes:
> Hi!
>
> On 30.10.2022 09:15, Po Lu via Bug reports for GNU Emacs, the Swiss
> army knife of text editors wrote:
>> Trying to navigate with C-x p f in an SVN repository fails, because the
>> SVN repository has an ignore property with empty lines. This is the
>> detailed error.
>> Debugger entered--Lisp error: (args-out-of-range "" 0)
>> #f(compiled-function (entry) #<bytecode -0x1726de7462823143>)("")
>> mapcar(#f(compiled-function (entry) #<bytecode -0x1726de7462823143>) ("" ""))
>> #f(compiled-function (project dir) #<bytecode 0x187989c589069892>)((vc SVN "~/project/") "~/project/")
>> apply(#f(compiled-function (project dir) #<bytecode 0x187989c589069892>) (vc SVN "~/project/") "~/project/")
>> project-ignores((vc SVN "~/project/") "~/project/")
>> project--dir-ignores((vc SVN "~/project/") "~/project/")
>> #f(compiled-function (dir) #<bytecode 0x68383878a42445c>)("~/project/")
>> mapcan(#f(compiled-function (dir) #<bytecode 0x68383878a42445c>) ("~/project/"))
>> #f(compiled-function (project &optional dirs) #<bytecode -0x1baeb702532f0340>)((vc SVN "~/project/") ("~/project/"))
>> apply(#f(compiled-function (project &optional dirs) #<bytecode -0x1baeb702532f0340>) (vc SVN "~/project/") ("~/project/"))
>> project-files((vc SVN "~/project/") ("~/project/"))
>> project-find-file-in(#("Flipped90:" 0 10 (fontified t)) ("~/project/") (vc SVN "~/project/") nil)
>> project-find-file(nil)
>> funcall-interactively(project-find-file nil)
>> command-execute(project-find-file)
>> Would someone please take a look at this?
>
> Does this help? I don't have an SVN repository to test.
>
> diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el
> index 270877041a..f240ebafca 100644
> --- a/lisp/vc/vc-svn.el
> +++ b/lisp/vc/vc-svn.el
> @@ -366,7 +366,7 @@ vc-svn-ignore-completion-table
> (with-temp-buffer
> (when (zerop (vc-svn-command
> t t nil "propget" "svn:ignore" (expand-file-name
> directory)))
> - (split-string (buffer-string) "\n"))))
> + (split-string (buffer-string) "\n" t))))
>
> (defun vc-svn-find-admin-dir (file)
> "Return the administrative directory of FILE."
This seems to work, thanks.
On 01.11.2022 03:51, Po Lu via Bug reports for GNU Emacs, the Swiss army
knife of text editors wrote:
>> Does this help? I don't have an SVN repository to test.
>>
>> diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el
>> index 270877041a..f240ebafca 100644
>> --- a/lisp/vc/vc-svn.el
>> +++ b/lisp/vc/vc-svn.el
>> @@ -366,7 +366,7 @@ vc-svn-ignore-completion-table
>> (with-temp-buffer
>> (when (zerop (vc-svn-command
>> t t nil "propget" "svn:ignore" (expand-file-name
>> directory)))
>> - (split-string (buffer-string) "\n"))))
>> + (split-string (buffer-string) "\n" t))))
>>
>> (defun vc-svn-find-admin-dir (file)
>> "Return the administrative directory of FILE."
> This seems to work, thanks.
Thanks for testing, pushed to master.
Dmitry Gutov <dgutov@yandex.ru> writes:
> On 01.11.2022 03:51, Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text
> editors wrote:
>>> Does this help? I don't have an SVN repository to test.
>>>
>>> diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el
>>> index 270877041a..f240ebafca 100644
>>> --- a/lisp/vc/vc-svn.el
>>> +++ b/lisp/vc/vc-svn.el
>>> @@ -366,7 +366,7 @@ vc-svn-ignore-completion-table
>>> (with-temp-buffer
>>> (when (zerop (vc-svn-command
>>> t t nil "propget" "svn:ignore" (expand-file-name
>>> directory)))
>>> - (split-string (buffer-string) "\n"))))
>>> + (split-string (buffer-string) "\n" t))))
>>>
>>> (defun vc-svn-find-admin-dir (file)
>>> "Return the administrative directory of FILE."
>> This seems to work, thanks.
>
> Thanks for testing, pushed to master.
I'm therefore closing this bug report.