Subject: Re: bug#53333: Fix for crash in ebrowse
From: Eli Zaretskii <[email-masked]>
To: Jan Stranik <[email-masked]>
Cc: [email-masked]
Date: Thu, 20 Jan 2022 13:45:31 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Jan Stranik <[email-masked]>
> Cc: [email-masked]
> Date: Tue, 18 Jan 2022 20:32:55 -0500
> 
> >
> > Thanks, but can you explain the need for this part:
> >
> >> !           else {
> >> !               s++;
> >> !               break;
> >> !           }
> >> !       }
> >
> > Why do we need to advance the pointer 's' in the 'else' clause? why
> > not leave it alone?
> 
> The identifier is copied from end to the buffer. As we are copying, we
> want to escape quote and backslash characters. Normally if we encounter
> any of these characters we just prepend \ to in front. If there is not
> enough space in the buffer to insert the \, we should increase the s, to
> back-out the character that we wanted to escape.
> 
> If we would not do that, the first character might not be escaped. If
> that character were a quote, it would break the lisp expressions written
> later to the BROWSE file.

Thanks, I installed the change on the emacs-28 branch, and I'm marking
this bug done.