Jean-Marc Lasgouttes <[EMAIL PROTECTED]> writes:

| >>>>> "Emmanuel" == Emmanuel GUREGHIAN <[EMAIL PROTECTED]> writes:
| 
| Emmanuel> Hello As I am getting back in lyx business ;-) , excuse me
| Emmanuel> if the bug was already referenced.
| 
| Emmanuel> I have a main document wich input other lyx documents which
| Emmanuel> are placed in sub directories. But as soon as I have done
| Emmanuel> one ps rendering or saved the document, the / sign which
| Emmanuel> delimit the directory name in the input inset is changed in
| Emmanuel> an @.
| 
| Emmanuel> Anyone has a clue about it ?
| 
| It is due to a change done by Lars in the insetinclude.C code (I
| think). The relevant part of the code is
|       // Use += to force a copy of contents (JMarc)
|       // How does that force anything? (Lgb)
|       string incfile(contents);


| 
| The old code was something like
|       // Use += to force a copy of contents (JMarc)
|       string incfile
|       incfile += contents;
| 
| I think this is related to a bug in lyxstring, but I am not sure about
| that. Emmanuel, what string version do you use (what is the value of
| USE_INCLUDED_STRING in your src/config.h file)?
| 
| Lars, it seems to me that, at least with lyxstring, the construct you
| use means that modifying incfile also modifies contents.

If that is true then there is a _severe_ bug in lyxstring.

Ok, found it.

The bug was in lyxstring::begin() where we don't ensure that this
lyxstring is the sole owner of this string rep.

Check if this patch fixes the problem:

--- lyx-devel/src/support/lyxstring.C   Thu Mar 16 05:29:22 2000
+++ lyx-devel-experiment/src/support/lyxstring.C        Wed May 31 19:43:43 2000@@ 
+-460,6 +460,7 @@
 
 lyxstring::iterator lyxstring::begin()
 {
+       rep = rep->get_own_copy();
        return rep->s;
 }
 
@@ -472,6 +473,7 @@
 
 lyxstring::iterator lyxstring::end()
 {
+       rep = rep->get_own_copy();
        return rep->s + rep->sz;
 }                                     

        Lgb

Reply via email to