Created attachment 64538 [details] Screenshoot with the symbols that appear, and how it's seen in the bibliographic index. Problem description: When you create a new entry in the Bibliographic database, the fields that you don't fill are autofilled with a buggy triangle symbol. Then, if you add a bibliographic entry from the database to the document, and you have an index, the symbols are shown. Appears in both 3.5.5.3 and 3.5.5.2. Steps to reproduce: 1. From Tools -> Bibliographic database, create a new bibliographic entry filling only the Identifier and for example the Type. 2. Click on another entry or close the database navigator. Current behavior: The newly created one will be filled by symbols where there were no data. Inserting into the document a reference to this new entry and updating a default Bibliographic Index will make appear these symbols into the index. It does not happen when adding a new bibliography entry internally to the document and not to the database. You can try to delete the "auto-filled" fields in the database, but it's difficult, you have to do from the leftiest cell to rightest, otherwise it gets filled another time. Expected behavior: Not to fill up the empty fields with symbols. Platform (if different from the browser): Browser: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0 Iceweasel/12.0
Bug also present in newer versions 3.6.x.
This doesn't occur on 3.5.4.2, where a new bibliography entry created via the Table view inserts no strange characters. I will try and reproduce on later versions to confirm. I seem to recall that this was already reported somewhere, but don't know if it got fixed. Alex
Confirming in 3.6.3 rc1 I note however, that the problem seems to have been created by entries made with 3.5.4 or earlier, because the new entry I made in 3.5.4.2 shows up in 3.6.3rc1 with garbled data in the fields which displayed as empty in 3.5.4.2. Alex
Nominating for MAB, only problem is that 3.5 branch will no longer be maintained after 3.5.7 and this most probably won't be fixed for that release (which is at rc2 pending final release). This means that it will go into the 3.6.x MAB list, sigh and who knows when that will get dealt with. Alex
Adding Cedric and Andras to CC. Any chance of taking a look ? Looks like something got screwed up when the bibliography database was updated in source. Alex
Resetting to earliest version identified as problem showing up ==> 3.5.5.3 Alex
This is also a regression on 3.5.4.2 where the problem does not show up (although the garbled data entry seems to have been inserted nonetheless, see comment 2). Alex
Reproduced in base (open file LibOPRofile/database/biblio.odb) in my 3.6 dev tree. Seems to do that only on VARCHAR fields, not on LONGVARCHAR fields.
OK, the problem is that when writing out a NULL value (a concept that the DBF file format does not support), the field in the DBF file is written as all null characters ('\0') instead of blanks ('\0x20'). It should be blanks. This happens in connectivity/source/drivers/dbase/DTable.cxx, function connectivity::dbase::ODbaseTable::UpdateBuffer, line 1826: // If the variable is bound at all? if ( !rRow.get()[nPos]->isBound() ) { // No - the next field. nByteOffset += nLen; continue; } Basically, this function makes a distinction between NULL and "not bound". This distinction is bogus in case of a new row insertion, and an unset value should be treated as a NULL is treated (that is, write out an empty string). But in the case of a row _update_, it makes sense not to touch fields that are not set (they should not be changed!). So either we parametrise UpdateBuffer to make the distinction or not, or InsertRow sets all unbound fields to NULL. I'll fix it. Taking bug.
Fixed in my development tree
Lionel Elie Mamane committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=77e60c005812968af9885c20fac0a098012fbeba fdo#52392 dbase: correctly NULL out non-filled in fields in inserted rows The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Lionel Elie Mamane committed a patch related to this issue. It has been pushed to "libreoffice-3-6": http://cgit.freedesktop.org/libreoffice/core/commit/?id=64b8b060a1496bb8ae85a1ef9fdc0f02f14f2813&g=libreoffice-3-6 fdo#52392 dbase: correctly NULL out non-filled in fields in inserted rows It will be available in LibreOffice 3.6.4. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.