Subject: bug#50861: Bug in kexport:html

From: Robert Weiner <[email-masked]>
Date: Wed, 29 Sep 2021 08:41:12 -0400

Yes, this has been fixed in the pre-releases available from the Hyperbole git repo, master branch.  Please close the issue when you have a chance.  — Bob

-- Bob

> On Sep 27, 2021, at 9:11 PM, Hugo Thunnissen <[email-masked]> wrote:
> 
> 
> Hi there,
> 
> I am using hyperbole version 7.1.3.
> On GNU Emacs 27.2 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.25)
> 
> When exporting a kotl-mode file using `kexport:html' I encountered a
> problem with the regex that is used to replace klinks with a HTML anchor
> tag. The problem seemed to stem from the use of the \\0 back
> reference. 
> 
> Relevant part of the backtrace:
> 
>    Debugger entered--Lisp error: (error "Invalid use of ‘\\’ in replacement text")
>    replace-match("<A HREF=\"#k\\1\">\\0</A>" nil nil "&lt;@ 5a&gt;" nil)
> 
> 
> I was able to fix the problem with the following code:
> 
>    (eval-after-load 'kotl-mode
>      (let ((klink-replacement
>             (cons (format "&lt;\\s-*@\\s-*\\(%s\\)[^=&>]*&gt;"
>                           kexport:kcell-partial-reference-regexp)
>                   "<A HREF=\"#k\\1\">\\1</A>")))
>        (setf (alist-get (car klink-replacement) kexport:html-replacement-alist nil nil 'string=)
>              (cdr klink-replacement))))
> 
> which essentially just replaces the \0 reference in the replacement
> text with a \1 reference. I can't find documentation of a \0
> back-reference in the elisp regexp manual, as the \N references are
> 1-based according to it
> (https://www.gnu.org/software/emacs/manual/html_node/elisp/Regexp-Backslash.html). Is
> there something I'm missing?
> 
> If there is something I can do to help or give you more information, let
> me know.
> 
> -Hugo
> 
> 
> 
> _______________________________________________
> Bug-hyperbole mailing list
> [email-masked]
> https://lists.gnu.org/mailman/listinfo/bug-hyperbole