On Thu, Jul 19, 2007 at 12:35:52AM +0300, Dov Feldstern wrote:
> Dov Feldstern wrote:
> > José Matos wrote:
> >> On Wednesday 18 July 2007 01:21:52 Dov Feldstern wrote:
> >>> Also, this has only convinced me even more that it's wrong to apply a
> >>> lyx2lyx fix for this patch: this is a bug fix, there were previously
> >>> .lyx files which were ok, but which lyx was generating incorrect latex
> >>> for, and patch 1820 fixes that. If there are lyx documents out there
> >>> which patch 1820 affects, it can only do them good. All this lyx2lyx
> >>> patch does is to explicitly set the language to the wrong values in all
> >>> kinds of situations.
> >>
> >> OK you convinced me. I will accept the fix to bug 1820 if you add a
> >> comment in release notes. Do we have a deal?
> >>
> > Deal. What exactly should the comment say --- just explain where the
> > problems were, and that they are now hopefully fixed?
> > I actually like Martin's idea of just having a placeholder format change to
> > go along with this --- just in case we do ever decide that some kind of
> > format change is needed, so we can identify what is before and what is
> > after the fix was applied. Does this sound right?
> >> BTW in terms of final output what could it be the difference with and
> >> without this patch applied? Was the previous output always wrong to RTL
> >> users and so people learned to avoid it?
> >>
> >> This type of answer would justify our response to this bug.
> > As far as I can determine, there are two main changes:
> > 1. In certain specific cases, the text inside a footnote is displayed in
> > the wrong language (i.e., in the GUI it shows that it's in Hebrew, but is
> > printed in latex in English characters and in LTR, or vice-versa).
> > 2. A footnote breaks the RTL sequence, so instead of logical
> > {A...M[1]N...Z} being displayed as {Z...N[1]M...A}, it's displayed as
> > {M...A}[1]{Z...N}.
> > Regarding case 1, I doubt that many users were actually creating documents
> > which included these situations. If there are such documents, then I would
> > guess that it's for one of the following reasons:
> > (a) the user did not notice that the latex was generated incorrectly (in
> > the GUI it displays correctly, and maybe the user didn't go over the latex
> > output carefully --- after all, it's only a footnote...);
> > (b) the user knew about this, but assumed that someday the bug would be
> > corrected;
> > (c) the user was generating the document for a non-latex backend, which
> > generates correct output in these situations (I don't really know how the
> > other backends deal with these situations; plaintext output is correct, as
> > far as I can tell).
> > In all these cases, I think that including the lyx2lyx patch would only be
> > detrimental.
> > Regarding case 2, a user could conceivably realize what was happening, and
> > therefore decide to write the text in the wrong logical order:
> > {N...Z[1]A...M}, so that it would be displayed correctly as
> > {Z...N}[1]{M...A}. In this case, they *would* want a lyx2lyx fix. However,
> > creating documents that are logically wrong is bad practice, and could lead
> > to other problems. For example, if such text is broken by a line-break, it
> > gets totally mangled... So it's not a good situation to have gotten into in
> > the first place, and I would argue that we should not perpetuate it by
> > providing a "fix" for it.
> > Regarding non-RTL users, (2) doesn't affect them so much, but (1) does.
> > However, if the languages being mixed are same-alphabet languages (e.g.,
> > European languages), then they may not even notice something is wrong,
> > because it would display more-or-less correctly. So in this case, I don't
> > think that the fix would make much of a difference, nor would the lyx2lyx
> > patch. But I'm not sure about this.
> > So, what's the upshot?
> > 1. Can I commit the patch for 1820 (the patch itself, the cleaned-up
> > version at http://permalink.gmane.org/gmane.editors.lyx.devel/90016)?
> > 2. I provide a comment explaining this (I'll try to make it as shrt as
> > possible) for the release notes.
> > 3. Preferably, also add a placeholder format change to go along with it,
> > but no lyx2lyx for the moment?
> > Thanks!
> > Dov
>
> Attached find a patch which includes:
>
> - a placeholder format change for bug 1820
> - a comment for the release notes explaining the situation
>
> The release notes is done against Jose's patch for them, and also includes
> some minor fixes to that. The only significant change is that I changed the
> "please report to the users list" to "developers list" (I think Abdel also
> suggested that change).
>
> Jose --- can I commit the patch itself, along with these additions?
>
> Dov
I like this solution. Indeed, a behaviour of generating
malformed documents should not be carried forward by lyx2lyx,
as no user can reasonably have relied on it.
- Martin
> Index: lyx-devel/src/Buffer.cpp
> ===================================================================
> --- lyx-devel.orig/src/Buffer.cpp 2007-07-18 23:55:43.000000000 +0300
> +++ lyx-devel/src/Buffer.cpp 2007-07-19 00:01:26.000000000 +0300
> @@ -141,7 +141,7 @@
>
> namespace {
>
> -int const LYX_FORMAT = 276;
> +int const LYX_FORMAT = 277;
>
> } // namespace anon
>
> Index: lyx-devel/development/FORMAT
> ===================================================================
> --- lyx-devel.orig/development/FORMAT 2007-07-18 23:55:43.000000000 +0300
> +++ lyx-devel/development/FORMAT 2007-07-19 00:01:26.000000000 +0300
> @@ -1,6 +1,21 @@
> LyX file-format changes
> -----------------------
>
> +2007-07-19 Dov Feldstern <[EMAIL PROTECTED]>
> +
> + * format incremented to 277: this is just a placeholder format change,
> + to accompany the fix for bug 1820. After much deliberation, we
> have
> + decided that a lyx2lyx patch will not be provided: since LyX's
> old
> + interpretation of the situations fixed by this patch is wrong,
> creating
> + a lyx2lyx patch would mean intentionally creating .lyx files
> which
> + are wrong (e.g., display text in one language, but marked as
> belonging
> + to a different language).
> + However, just in case someone may want to be able to preserve
> the old
> + formatting, we are upgrading the version. An initial lyx2lyx
> patch
> + for this change is actually already available on the newsgroup
> + (http://permalink.gmane.org/gmane.editors.lyx.devel/90061), but
> it
> + should be applied with care, as it may corrupt some files!
> +
> 2007-06-26 Uwe Stöhr <[EMAIL PROTECTED]> and Dov Feldstern <[EMAIL
> PROTECTED]>
>
> * format incremented to 276: switching exsting language 'arabic' to
> Index: lyx-devel/lib/lyx2lyx/LyX.py
> ===================================================================
> --- lyx-devel.orig/lib/lyx2lyx/LyX.py 2007-07-18 23:55:43.000000000 +0300
> +++ lyx-devel/lib/lyx2lyx/LyX.py 2007-07-19 00:01:26.000000000 +0300
> @@ -77,7 +77,7 @@
> ("1_2", [220], generate_minor_versions("1.2" , 4)),
> ("1_3", [221], generate_minor_versions("1.3" , 7)),
> ("1_4", range(222,246), generate_minor_versions("1.4" ,
> 4)),
> - ("1_5", range(246,277), generate_minor_versions("1.5" ,
> 0))]
> + ("1_5", range(246,278), generate_minor_versions("1.5" ,
> 0))]
>
>
> def formats_list():
> Index: lyx-devel/RELEASE-NOTES
> ===================================================================
> --- lyx-devel.orig/RELEASE-NOTES 2007-07-19 00:01:39.000000000 +0300
> +++ lyx-devel/RELEASE-NOTES 2007-07-19 00:28:09.000000000 +0300
> @@ -37,14 +37,30 @@
>
> - Reverting 1.5 LyX documents to previous versions
>
> -Since unicode is supported in version 1.5 the dowgrade option to 1.4
> +Since unicode is supported in version 1.5 the downgrade option to 1.4
> and 1.3 lyx documents may be lossy. In those cases where no meaningful
> -convertion was possible the characters will be replaced by a
> +conversion was possible the characters will be replaced by a
> placeholder ???.
>
> -We have done our best effort to make the transition the smoothest
> -possible, if problems remain please report them to the users mailing
> -list.
> +We have done our best effort to make the transition as smooth possible,
> +if problems remain please report them to the developers mailing list.
> +
> +- Languages/encodings and insets
> +
> +One of the bugs fixed in LyX 1.5.0 is that previously, there were certain
> +specific cases in which the LaTeX generated did not correctly reflect
> +language/encoding transitions in and around insets (footnotes, LyX notes).
> +After much deliberation, it was decided not to change older files such that
> +they will still reflect the old LaTeX output; rather, they will now correctly
> +reflect the situation as it appears in the GUI. This means, however, that if
> +you mangled the text in the GUI in the older versions, in order that it
> +generate the correct LaTeX output, the LaTeX will now generate the mangled
> +text. If this is problematic for you, please get in touch with us on the
> +developers mailing list, we do have some possible solutions for this.
> +
> +The effects of this will be more pronounced for RTL (Hebrew, Arabic, Farsi)
> +users --- though they affect users of other languages as well.
> +
>
> Note: There may later be an updated list of known issues online at
> http://wiki.lyx.org/LyX/ReleaseNotes
> Index: lyx-devel/lib/lyx2lyx/lyx_1_5.py
> ===================================================================
> --- lyx-devel.orig/lib/lyx2lyx/lyx_1_5.py 2007-07-19 00:28:42.000000000
> +0300
> +++ lyx-devel/lib/lyx2lyx/lyx_1_5.py 2007-07-19 00:29:29.000000000 +0300
> @@ -2026,10 +2026,12 @@
> [273, []],
> [274, [normalize_font_whitespace_274]],
> [275, [convert_graphics_rotation]],
> - [276, [convert_arabic]]
> + [276, [convert_arabic]],
> + [277, []],
> ]
>
> revert = [
> + [276, []],
> [275, [revert_arabic]],
> [274, [revert_graphics_rotation]],
> [273, []],