Hi, thanks to the enormous efforts of Andre, I was able to remove a few math bugs from my list. As usual, I found new bugs at the same time. In particular, I would like to draw your attention to a memory leak concerning "undo". Even though just about hundred bytes are lost each time, the number may increase dramatically if a user edits a document for a long time. This leak may also give some hints on why "undo"/"redo" do not work correctly with (ERT) insets. Kind regards, Michael -- ====================================================================== Michael Schmitt phone: +49 451 500 3725 Institute for Telematics secretary: +49 451 500 3721 Medical University of Luebeck fax: +49 451 500 3722 Ratzeburger Allee 160 eMail: [EMAIL PROTECTED] D-23538 Luebeck, Germany WWW: http://www.itm.mu-luebeck.de ======================================================================
Bug list (with some proposals for simple improvements) Please comment out (//) fixed bugs and send the file back to [EMAIL PROTECTED] ************************************************************************* - Serious memory leak! Add three paragraphs to an empty document, each consisting of only one letter (say "a", "b", and "c"); press "CTRL-Z" -> "c" vanishes; cursor stays in third par (no mem leak); press "CTRL-Z" again -> "b" vanishes; cursor stays in second par (mem leak) New memory leaked: 120 bytes (0.027%); potentially leaked: 0 bytes (0%) MLK: 84 bytes leaked at 0xae5338 This memory was allocated from: malloc [rtlib.o] __bUiLtIn_nEw [new1.cc:84] __builtin_new [rtlib.o] Paragraph::Paragraph(Paragraph*) [paragraph.C:91] Paragraph::breakParagraph(const BufferParams&,int,int) [paragraph.C:859] LyXText::breakParagraph(BufferView*,char) [text.C:1650] BufferView::Pimpl::Dispatch(kb_action,const lyxstring&) [BufferView_pimpl.C:2550] BufferView::Dispatch(kb_action,const lyxstring&) [BufferView.C:294] LyXFunc::dispatch(int,const lyxstring&) [lyxfunc.C:1623] LyXFunc::processKeySym(unsigned long,unsigned int) [lyxfunc.C:353] BufferView::Pimpl::workAreaKeyPress(unsigned long,unsigned int) [BufferView_pimpl.C:515] SigC::ObjectSlot2_<void,unsigned long,unsigned int,BufferView::Pimpl>::callback(void*,unsigned long,unsigned int) [object_slot.h:250] SigC::Signal2<void,unsigned long,unsigned int,SigC::Marshal<void>>::emit(const unsigned long&,const unsigned int&) [slot.h:456] WorkArea::work_area_handler(flobjs_*,int,int,int,int,void*) [basic_signal.h:450] C_WorkArea_work_area_handler [WorkArea.C:58] fl_handle_it [objects.c] fl_handle_object [libforms.a] fl_handle_form [forms.c] do_keyboard [forms.c] do_interaction_step [forms.c] fl_treat_interaction_events [libforms.a] fl_check_forms [libforms.a] GUIRunTime::runTime() [GUIRunTime.C:84] LyXGUI::runTime() [lyx_gui.C:316] LyX::LyX(int*,char**) [lyx_main.C:176] main [main.C:38] _start [crt1.o] MLK: 36 bytes leaked at 0xae5c28 This memory was allocated from: malloc [rtlib.o] __bUiLtIn_nEw [new1.cc:84] __builtin_new [rtlib.o] Paragraph::breakParagraph(const BufferParams&,int,int) [paragraph.C:859] LyXText::breakParagraph(BufferView*,char) [text.C:1650] BufferView::Pimpl::Dispatch(kb_action,const lyxstring&) [BufferView_pimpl.C:2550] BufferView::Dispatch(kb_action,const lyxstring&) [BufferView.C:294] LyXFunc::dispatch(int,const lyxstring&) [lyxfunc.C:1623] LyXFunc::processKeySym(unsigned long,unsigned int) [lyxfunc.C:353] BufferView::Pimpl::workAreaKeyPress(unsigned long,unsigned int) [BufferView_pimpl.C:515] SigC::ObjectSlot2_<void,unsigned long,unsigned int,BufferView::Pimpl>::callback(void*,unsigned long,unsigned int) [object_slot.h:250] SigC::Signal2<void,unsigned long,unsigned int,SigC::Marshal<void>>::emit(const unsigned long&,const unsigned int&) [slot.h:456] WorkArea::work_area_handler(flobjs_*,int,int,int,int,void*) [basic_signal.h:450] C_WorkArea_work_area_handler [WorkArea.C:58] fl_handle_it [objects.c] fl_handle_object [libforms.a] fl_handle_form [forms.c] do_keyboard [forms.c] do_interaction_step [forms.c] fl_treat_interaction_events [libforms.a] fl_check_forms [libforms.a] GUIRunTime::runTime() [GUIRunTime.C:84] LyXGUI::runTime() [lyx_gui.C:316] LyX::LyX(int*,char**) [lyx_main.C:176] main [main.C:38] _start [crt1.o] Pressing CTRL-Z a third time causes additional memory leaks of 240 bytes. - Emphasize a word in plain text by pressing CTRL-e and select the word afterwards; Then open the Character dialog, set all options to "reset" (if possible) and press "Apply" -> the format of the selected word is not reset! - "File->Exit" does not work while editing a math formula; the same holds for opening/closing a file, changing paragraph layout... - Center paragraph with one line of text: UMR: Uninitialized memory read This is occurring while in: Spacing::set(Spacing::Space,const lyxstring&) [Spacing.C:64] FormParagraph::general_apply() [Spacing.h:46] FormParagraph::apply() [FormParagraph.C:168] FormBaseDeprecated::ok() [FormBaseDeprecated.h:91] FormBaseDeprecated::OKCB(flobjs_*,long) [FormBaseDeprecated.C:164] C_FormBaseDeprecatedOKCB [FormBaseDeprecated.C:38] fl_object_qread [libforms.a] fl_check_forms [libforms.a] GUIRunTime::runTime() [GUIRunTime.C:84] LyXGUI::runTime() [lyx_gui.C:316] LyX::LyX(int*,char**) [lyx_main.C:176] main [main.C:38] _start [crt1.o] Reading 4 bytes from 0xffbee74c on the stack. Address 0xffbee74c is local variable "fval" in function Spacing::set(Spacing::Space,const lyxstring&). - In document class "scrreport", the default label width for "labeling" paragraphs is set to "00.00.0000". Does that really make sense? BTW: Wasn't this setting in the paragraph dialog? I cannot find it anymore... Where is it? - When changing the document class for a given document, the screen output is confusing as the class list is not removed from the document layout dialog. In addition, the "Should I set some ..." dialog stays in the background and the document layout dialog might be hidden behind the main LyX window after clicking "yes" in the Question dialog. Confusing, isn'it? :-) - "Language:" is not aligned correctly in the character dialog - Add a table to an empty document; insert a few characters into the table cells; then move the cursor in front of the table and invoke "find" with a search string of your choice. When the end of the table is reached, the cursor is placed _in front_of the table again If you embed a table in some plain text, the cursor is placed at the beginning of the table after "find" even if search started at the very beginning of the document and there is some text after the table!!! - German "ö" (o umlaut) has a strange effect in mathed - CTRL-space should insert a protected blank in mathed (but it doesn't) (#451291) - Menu item "Insert/Special Character/Superscript" should be disabled in mathed since it does not have the desired effect (#451292). - If I start LyX in my document directory, LyX should offer the current directory as default location in the "Open..." dialog. But it always shows the home directory instead. (#451293) - Clicking into the right half of a footnote does not work (wrong cursor placement) if there is some plain text after the footnote in the _same_ paragraph - The "OK" button in the math matrix dialog is not activated if you do not change the settings - malloc and delete do not cooperate! FMM: Freeing mismatched memory This is occurring while in: __builtin_delete [rtlib.o] FormMathsBitmap::~FormMathsBitmap() [utility.hpp:44] FormMathsPanel::~FormMathsPanel() [utility.hpp:44] Dialogs::~Dialogs() [utility.hpp:44] LyXView::~LyXView() [LyXView.C:73] XFormsView::~XFormsView() [XFormsView.C:65] LyXGUI::~LyXGUI() [lyx_gui.C:169] LyX::~LyX() [lyx_main.C:184] main [main.C:39] _start [crt1.o] Attempting to free block at 0x150f2a8 in the heap. Address 0x150f2a8 is at the beginning of a malloc'd block of 264 bytes. This block was allocated from: malloc [rtlib.o] calloc [rtlib.o] fl_make_object [libforms.a] fl_create_bmtable [bmtable.c:53] FormMathsBitmap::addBitmap(int,int,int,int,int,const unsigned char*,bool) [FormMathsBitmap.C:105] FormMathsPanel::build() [FormMathsPanel.C:167] FormBaseDeprecated::show() [FormBaseDeprecated.C:86] SigC::ObjectSlot0_<void,FormBaseDeprecated>::callback(void*) [object_slot.h:56] SigC::Signal0<void,SigC::Marshal<void>>::emit() [slot.h:260] LyXFunc::dispatch(int,const lyxstring&) [basic_signal.h:172] Menubar::Pimpl::MenuCallback(flobjs_*,long) [Menubar_pimpl.C:581] C_Menubar_Pimpl_MenuCallback [Menubar_pimpl.C:529] fl_object_qread [libforms.a] fl_check_forms [libforms.a] GUIRunTime::runTime() [GUIRunTime.C:84] LyXGUI::runTime() [lyx_gui.C:316] LyX::LyX(int*,char**) [lyx_main.C:176] main [main.C:38] _start [crt1.o] This block of memory was obtained using an allocation routine which is not compatible with the routine by which it is being freed. - The scroll button of a wheel mouse does not work with insets as the cursor is blocked ("hangs") at some position; the problem seems to occur if the cursor is set right after an inset (BTW: pressing CursorDown repetitively works! I thought this is equivalent???) - Does configure really support "--with-included-gettext"? It is not listed in the summary at the end of the configure run (but "--with-included-string" is). - autogen.sh still reports the following problem: Building Makefile templates... . configure.in: 969: required file `config/ltconfig' not found This happens with Mandrake Linux 7.2 (which is not that old) and SUN Sparc Solaris (latest libtool) Despite the fact that it does not hurt: Shouldn't this be fixed to support distributions that are older than half a year? - Insert a table into a table into a table. Then undo the last insertion -> the table cell size is not updated correctly (#451273) - Insert/Special character/Linebreak shows a very strange behaviour within mathed especially if you change from math formula to display formula afterwards - Is it possible to make a menu grey if all subitems are grey (as it is the case with Insert/Floats when you are editing a math formula)? - Insert an ERT inside a text paragraph, delete it, undo the deletion and _undo_ once again FMR: Free memory read This is occurring while in: textHandleUndo(BufferView*,Undo*) [undo_funcs.C:166] textUndo(BufferView*) [undo_funcs.C:46] BufferView::menuUndo() [BufferView2.C:232] LyXFunc::dispatch(int,const lyxstring&) [lyxfunc.C:1121] Menubar::Pimpl::MenuCallback(flobjs_*,long) [Menubar_pimpl.C:581] C_Menubar_Pimpl_MenuCallback [Menubar_pimpl.C:529] fl_object_qread [libforms.a] fl_check_forms [libforms.a] GUIRunTime::runTime() [GUIRunTime.C:84] LyXGUI::runTime() [lyx_gui.C:316] LyX::LyX(int*,char**) [lyx_main.C:175] main [main.C:38] _start [crt1.o] Reading 4 bytes from 0x13f143c in the heap. Address 0x13f143c is 116 bytes into a freed block at 0x13f13c8 of 372 bytes. This block was allocated from: malloc [rtlib.o] __bUiLtIn_nEw [new1.cc:84] __builtin_new [rtlib.o] BufferView::Pimpl::Dispatch(kb_action,const lyxstring&) [BufferView_pimpl.C:2710] BufferView::Dispatch(kb_action,const lyxstring&) [BufferView.C:294] LyXFunc::dispatch(int,const lyxstring&) [lyxfunc.C:1597] _GLOBAL_.N.__Q37Toolbar5Pimpl11toolbarItem::ToolbarCB(flobjs_*,long) [Toolbar_pimpl.C:273] C_Toolbar_ToolbarCB [Toolbar_pimpl.C:284] fl_object_qread [libforms.a] fl_check_forms [libforms.a] GUIRunTime::runTime() [GUIRunTime.C:84] LyXGUI::runTime() [lyx_gui.C:316] LyX::LyX(int*,char**) [lyx_main.C:175] main [main.C:38] _start [crt1.o] There have been 15045 frees since this block was freed from: free [rtlib.o] __bUiLtIn_dElEtE [new2.cc:54] __builtin_delete [rtlib.o] InsetERT::~InsetERT() [inset.h:138] Paragraph::Pimpl::erase(int) [paragraph_pimpl.C:158] Paragraph::erase(int) [paragraph.C:468] CutAndPaste::cutSelection(Paragraph*,Paragraph**,int,int&,char,bool) [CutAndPaste.C:95] LyXText::cutSelection(BufferView*,bool) [text2.C:1709] BufferView::cut() [BufferView2.C:303] BufferView::Pimpl::Dispatch(kb_action,const lyxstring&) [BufferView_pimpl.C:2539] BufferView::Dispatch(kb_action,const lyxstring&) [BufferView.C:294] LyXFunc::dispatch(int,const lyxstring&) [lyxfunc.C:1597] LyXFunc::processKeySym(unsigned long,unsigned int) [lyxfunc.C:353] BufferView::Pimpl::workAreaKeyPress(unsigned long,unsigned int) [BufferView_pimpl.C:515] SigC::ObjectSlot2_<void,unsigned long,unsigned int,BufferView::Pimpl>::callback(void*,unsigned long,unsigned int) [object_slot.h:250] SigC::Signal2<void,unsigned long,unsigned int,SigC::Marshal<void>>::emit(const unsigned long&,const unsigned int&) [slot.h:456] WorkArea::work_area_handler(flobjs_*,int,int,int,int,void*) [basic_signal.h:450] C_WorkArea_work_area_handler [WorkArea.C:58] fl_handle_it [objects.c] fl_handle_object [libforms.a] fl_handle_form [forms.c] do_keyboard [forms.c] do_interaction_step [forms.c] fl_treat_interaction_events [libforms.a] fl_check_forms [libforms.a] GUIRunTime::runTime() [GUIRunTime.C:84] LyXGUI::runTime() [lyx_gui.C:316] LyX::LyX(int*,char**) [lyx_main.C:175] main [main.C:38] _start [crt1.o] - Add a note to an empty document; add three lines of text into the note; cut some of the text (in all lines); undo the operation -> note is not drawn correctly ("past the end of the document") (#451286) - Add a footnote to an empty document then add some text into the footnote; undo all operations (-> empty doc again), then redo all operations -> the footnote reappears but the text inside the footnote is lost (#451296) - Remove those creatures from the splash screen for a more professional look'n'feel - The display options in the new graphics inset should be added to the preferences dialog; no distinction between grey-scaled and colored output - Remove the old graphics inset (from GUI and from code if automatic conversion is activated and works satisfyingly) - When selecting plain text with an embedded formula, the formula is not highlighted (in particular check math macros) - Navigate does not work for algorithms and figures (#437181) - Package geometry should be selected automatically in the document layout dialog if "landscape" is chosen (landscape does not work correctly otherwise; why???); Lgb et al.: Geometry button to be removed from dialog - Files in the examples/templates directory cannot be loaded correctly. Reason: "latex" has to be removed from/changed in layout files (#451260) - Display of graphics on screen does not work despite the availability of "convert" - The dots dialog in the math panel is drawn inaccurately; at the right a fine vertical bar is not drawn. (note: all other dialogs look OK) - The math panel should be moved to the "Insert" menu (BTW: The panel does not meet any usability criteria; it should better be replaced by a toolbar or a separate menu for easier access) - After selecting the first few rows of a table, CTRL+Shift+CursorDown corrupts the display output (#451274) - In the label dialog, the buttons should be reordered ("ok"/"clear"/"cancel") - When deleting the last row of a centered table, the table is moved to the right on screen (#451298) - Citation labels should reflect their content, i.e. if only the year is chosen in the citation dialog, then the label should show the year afterwards. - 1. Add a citation to your document; 2. Click at the citation; the dialog pops up 3. Click at the box where you can choose between Author Year, Year, Author, etc. 4. Click OK -> A _new_ citation is added (this shouldn't happen) Unfortunately, hard to reproduce, occurs occasionally. Feature request: - Make data base entries in bibliography references visible in all loaded documents (very useful hack for citation dialog wrt multipart documents)