On Wednesday 30 January 2002 22:06, Peter Bieringer wrote:
> Hi,
>
> during writing a LDP howto I ran into a strange bug.
> I've subscribed to the users-list because I don't want to get all the
> dev-traffic - hopefully someone can help me here also.
>
> Version 1.1.6fix4 is rebuilded today from available SRPMS.
>
> Topic: LyX doesn't "escape" "&" chars in exported URLs, but nsgmls
> don't like this:
Thanks for reporting that bug. Actually I think that nsgmls only outputs a
warning.
[bug report]
> possible fix:
>
> manual replace of "&" with "&"
The correct fix is to escape all the chars inside the url, usually the only
one that gives trouble is &, as I don't expect < and > to be present inside
any url. Actually I think that & is not allowed also, but I know lots of url
that use them so...
> But no idea for an automatic fix, because it's difficult to differ
> between standalone "&" and "&" of starting entinites.
>
> Any hints?
Try this patch, it should fix that:
diff -u -p -r1.33 inseturl.C
--- inseturl.C 2000/11/04 10:00:11 1.33
+++ inseturl.C 2002/02/01 10:09:38
@@ -10,6 +10,7 @@
#include "LyXView.h"
#include "debug.h"
#include "frontends/Dialogs.h"
+#include "support/lstrings.h"
using std::ostream;
@@ -76,8 +77,8 @@ int InsetUrl::Linuxdoc(Buffer const *, o
int InsetUrl::DocBook(Buffer const *, ostream & os) const
{
- os << "<ulink url=\"" << getContents() << "\">"
- << getOptions() << "</ulink>";
+ os << "<ulink url=\"" << subst(getContents(),"&","&")
+ << "\">" << getOptions() << "</ulink>";
return 0;
}
> Peter
--
Jos� Ab�lio