Bug 388892

Summary: Formatting error when saving file ( switching " and } )
Product: [Applications] KBibTeX Reporter: Arnout Boelens <a.m.p.boelens>
Component: Loading/saving filesAssignee: Thomas Fischer <fischer>
Status: RESOLVED FIXED    
Severity: normal CC: turin231
Priority: NOR Keywords: triaged
Version: git (master)   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Bug Depends on:    
Bug Blocks: 401470    
Attachments: Test bib file
attachment-26307-0.html
Test case

Description Arnout Boelens 2018-01-13 02:21:42 UTC
Unfortunately I have not yet been able to consistently reproduce this bug, but every once in a while, when saving a bib file the characters " and } get switched around. Unfortunately when a bibtex label is written "{ label "} instead of "{ label }" latex does not successfully compile the document. I'll report back when I find how to consistently reproduce this issue.
Comment 1 Thomas Fischer 2018-01-14 20:17:52 UTC
(In reply to Arnout Boelens from comment #0)
> Unfortunately I have not yet been able to consistently reproduce this bug,
> but every once in a while, when saving a bib file the characters " and } get
> switched around. Unfortunately when a bibtex label is written "{ label "}
> instead of "{ label }" latex does not successfully compile the document.
> I'll report back when I find how to consistently reproduce this issue.

This is the first time I hear of this problem. I am looking forward to a concrete example case to reproduce this issue.
Comment 2 Arnout Boelens 2018-01-16 05:24:57 UTC
Created attachment 109901 [details]
Test bib file

I think I found a way to reproduce the problem.

* Open the attached test.bib file in kbibtex
* Edit element
* Remove the brackets around title
* Click OK
* Press control W
* Click save

When opening the file in a text editor the title now reads:

"{The dynamics ... fluid sheets"},

instead of:

"{The dynamics ... fluid sheets}",
Comment 3 Thomas Fischer 2018-01-17 16:11:46 UTC
I can confirm this and some related issues. The user is able to enter invalid BibTeX code, which KBibTeX does not prevent and is happy to write into a file.
Comment 4 Thomas Fischer 2018-02-10 21:35:15 UTC
Upon pondering on the problem, I realized it is bigger than the case you reported. A user is able to enter any syntactical nonsense and KBibTeX will be happy to write it to a file.

What is needed is a context-sensitive parser that checks the user's input and validates it for correctness before accepting it. Bare minimum for such a parser is to check for matching opening and closing parenthesises.

Furthermore, this parser has to be applied at any point where BibTeX data can get modified to catch any user error.

Unfortunately, I am a little bit short on time and to reach a 0.8 release anytime soon, I will have to postpone a fix for this bug.
Comment 5 Thomas Fischer 2018-04-05 19:58:32 UTC
I tried to come forward with a fix for this bug. Please have a look at branch 'bugs/kde388892' in Git repository 'clones/kbibtex/thomasfischer/kbibtex.git':
https://commits.kde.org/clones/kbibtex/thomasfischer/kbibtex/3087fa8e1b720b298668fb692616232b4c7d92aa
There is a new family of validation functions which, at various places, check user input before accepting it for further processing. This checking works mostly ok, except for when having the Element Editor is used as a docklet instead of a modal window and "Automatic apply changes" is enabled. If I would enable validation here, the user would get error messages for every keystroke as long as the current edit is not valid.

So, please test this experimental branch and let me know if it solves your problem.
Comment 6 Arnout Boelens 2018-04-07 04:26:54 UTC
Created attachment 111878 [details]
attachment-26307-0.html

Thank you for fixing this. I am trying to clone the repository so I can
build it but I get the error:

fatal: repository '
https://cgit.kde.org/clones/kbibtex/thomasfischer/kbibtex.git/' not found

Do I have permission to clone this repository?

Thanks,

Arnout

On Thu, Apr 5, 2018 at 12:58 PM Thomas Fischer <bugzilla_noreply@kde.org>
wrote:

> https://bugs.kde.org/show_bug.cgi?id=388892
>
> Thomas Fischer <fischer@unix-ag.uni-kl.de> changed:
>
>            What    |Removed                     |Added
>
> ----------------------------------------------------------------------------
>              Status|CONFIRMED                   |NEEDSINFO
>          Resolution|---                         |WAITINGFORINFO
>
> --- Comment #5 from Thomas Fischer <fischer@unix-ag.uni-kl.de> ---
> I tried to come forward with a fix for this bug. Please have a look at
> branch
> 'bugs/kde388892' in Git repository
> 'clones/kbibtex/thomasfischer/kbibtex.git':
>
> https://commits.kde.org/clones/kbibtex/thomasfischer/kbibtex/3087fa8e1b720b298668fb692616232b4c7d92aa
> There is a new family of validation functions which, at various places,
> check
> user input before accepting it for further processing. This checking works
> mostly ok, except for when having the Element Editor is used as a docklet
> instead of a modal window and "Automatic apply changes" is enabled. If I
> would
> enable validation here, the user would get error messages for every
> keystroke
> as long as the current edit is not valid.
>
> So, please test this experimental branch and let me know if it solves your
> problem.
>
> --
> You are receiving this mail because:
> You reported the bug.
Comment 7 Thomas Fischer 2018-04-11 19:57:22 UTC
(In reply to Arnout Boelens from comment #6)
> Thank you for fixing this. I am trying to clone the repository so I can
> build it but I get the error:
> 
> fatal: repository '
> https://cgit.kde.org/clones/kbibtex/thomasfischer/kbibtex.git/' not found
> 
> Do I have permission to clone this repository?

I think for anonymous access, you have to use a mirror that KDE.org uses for load balancing. The following URL should work:
git://anongit.kde.org/clones/kbibtex/thomasfischer/kbibtex.git
Comment 8 Arnout Boelens 2018-04-14 17:38:09 UTC
Created attachment 112026 [details]
Test case
Comment 9 Arnout Boelens 2018-04-14 17:40:31 UTC
I cloned the code and build it. Somehow I am still seeing the same bug. Does it work on your machine?

BTW I just realized that the original file I uploaded already contains the wrong code "{The dynamics ... fluid sheets"}. I just uploaded a new file.
Comment 10 Thomas Fischer 2018-04-18 20:03:08 UTC
(In reply to Arnout Boelens from comment #9)
> I cloned the code and build it. Somehow I am still seeing the same bug. Does
> it work on your machine?
Yes, it is working. I just forced-pushed an updated code that contains the lastest commits from 'master' and has a slightly updated commit message; both changes should not cause functional changes for the bug at hand.

I suspect that you have libraries from another installation of KBibTeX, such as through your package management system, in your filesystem. If those libraries get loaded instead of the newly compiled ones, you won't see the bugfix, of course.
Please see this page for instructions on how to compile and install KBibTeX:
https://userbase.kde.org/KBibTeX/Development
Comment 11 Arnout Boelens 2018-04-27 18:30:31 UTC
Unfortunately I'm still seeing the bug. Just to make sure I'm doing everything correctly. I use the following commands:

git clone -b bugs/kde388892  --single-branch git://anongit.kde.org/clones/kbibtex/thomasfischer/kbibtex.git

git branch -a
* bugs/kde388892
  remotes/origin/bugs/kde388892

cmake -DCMAKE_INSTALL_PREFIX:PATH=~/opt/kbibtex/ ~/src/kbibtex/
nice -n 16 make -j$(nproc)
make install

export QT_PLUGIN_PATH=$QT_PLUGIN_PATH:~/opt/kbibtex/lib/x86_64-linux-gnu/plugins/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/opt/kbibtex/lib/x86_64-linux-gnu/
export XDG_DATA_DIRS=$XDG_DATA_DIRS:~/opt/kbibtex/share/

kbuildsycoca5

~/opt/kbibtex/bin/kbibtex

I also uninstalled(purged) the kbibtex package from my system.
Comment 12 Thomas Fischer 2018-05-01 21:16:08 UTC
(In reply to Arnout Boelens from comment #11)
> Unfortunately I'm still seeing the bug. Just to make sure I'm doing
> everything correctly. I use the following commands:
Hm, unless any of your paths is wrong, it should work. I need to look at this with a fresh eye some time soon ...
Comment 13 Thomas Fischer 2018-05-15 20:19:34 UTC
I have two questions to follow up your problem:

1. When you *compile* this bug fix branch of KBibTeX, do you see an output like this? Which values do you see?

Git revision is XXXXX
Git branch is XXXXXX

2. Once you have set all environment variables and run kbuildsyscoca5, what is the output of running:

ldd ~/opt/kbibtex/bin/kbibtex
Comment 14 Thomas Fischer 2018-05-15 20:24:59 UTC
I have also force-pushed an update to the bug branch to rebase it on 'master'. The patch itself is unchanged.

https://commits.kde.org/clones/kbibtex/thomasfischer/kbibtex/c0dec5c5f26ab17fac219f9c749ef3f1f7f28d22
Comment 15 Arnout Boelens 2018-05-17 00:41:13 UTC
1. When you *compile* this bug fix branch of KBibTeX, do you see an output like this? Which values do you see?

-- Git revision is f61f2372
-- Git branch is bugs/kde388892

2. Once you have set all environment variables and run kbuildsyscoca5, what is the output of running:

ldd ~/opt/kbibtex/bin/kbibtex

linux-vdso.so.1 (0x00007ffdf9dd9000)
	libKF5Crash.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Crash.so.5 (0x00007f9cfed4a000)
	libkbibtexgui.so.0 => /home/arnout/opt/kbibtex/lib/x86_64-linux-gnu/libkbibtexgui.so.0 (0x00007f9cfea1c000)
	libkbibtexnetworking.so.0 => /home/arnout/opt/kbibtex/lib/x86_64-linux-gnu/libkbibtexnetworking.so.0 (0x00007f9cfe764000)
	libKF5KIOFileWidgets.so.5 => /usr/lib/x86_64-linux-gnu/libKF5KIOFileWidgets.so.5 (0x00007f9cfe485000)
	libKF5Bookmarks.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Bookmarks.so.5 (0x00007f9cfe239000)
	libKF5Solid.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Solid.so.5 (0x00007f9cfdf4e000)
	libKF5KIONTLM.so.5 => /usr/lib/x86_64-linux-gnu/libKF5KIONTLM.so.5 (0x00007f9cfdd48000)
	libKF5Wallet.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Wallet.so.5 (0x00007f9cfdb2a000)
	libkbibtexproc.so.0 => /home/arnout/opt/kbibtex/lib/x86_64-linux-gnu/libkbibtexproc.so.0 (0x00007f9cfd8fc000)
	libKF5Parts.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Parts.so.5 (0x00007f9cfd697000)
	libKF5KIOWidgets.so.5 => /usr/lib/x86_64-linux-gnu/libKF5KIOWidgets.so.5 (0x00007f9cfd358000)
	libKF5KIOCore.so.5 => /usr/lib/x86_64-linux-gnu/libKF5KIOCore.so.5 (0x00007f9cfcfd2000)
	libQt5Concurrent.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Concurrent.so.5 (0x00007f9cfcdcb000)
	libKF5JobWidgets.so.5 => /usr/lib/x86_64-linux-gnu/libKF5JobWidgets.so.5 (0x00007f9cfcba6000)
	libkbibtexio.so.0 => /home/arnout/opt/kbibtex/lib/x86_64-linux-gnu/libkbibtexio.so.0 (0x00007f9cfc923000)
	libQt5XmlPatterns.so.5 => /usr/lib/x86_64-linux-gnu/libQt5XmlPatterns.so.5 (0x00007f9cfc37b000)
	libpoppler-qt5.so.1 => /usr/lib/x86_64-linux-gnu/libpoppler-qt5.so.1 (0x00007f9cfc0fa000)
	libpoppler.so.74 => /usr/lib/x86_64-linux-gnu/libpoppler.so.74 (0x00007f9cfbc56000)
	libicuuc.so.57 => /usr/lib/x86_64-linux-gnu/libicuuc.so.57 (0x00007f9cfb8b1000)
	libicui18n.so.57 => /usr/lib/x86_64-linux-gnu/libicui18n.so.57 (0x00007f9cfb43d000)
	libkbibtexdata.so.0 => /home/arnout/opt/kbibtex/lib/x86_64-linux-gnu/libkbibtexdata.so.0 (0x00007f9cfb209000)
	libkbibtexconfig.so.0 => /home/arnout/opt/kbibtex/lib/x86_64-linux-gnu/libkbibtexconfig.so.0 (0x00007f9cfafb4000)
	libKF5XmlGui.so.5 => /usr/lib/x86_64-linux-gnu/libKF5XmlGui.so.5 (0x00007f9cfaca7000)
	libKF5TextWidgets.so.5 => /usr/lib/x86_64-linux-gnu/libKF5TextWidgets.so.5 (0x00007f9cfaa64000)
	libKF5Service.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Service.so.5 (0x00007f9cfa7bb000)
	libKF5IconThemes.so.5 => /usr/lib/x86_64-linux-gnu/libKF5IconThemes.so.5 (0x00007f9cfa57c000)
	libKF5Completion.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Completion.so.5 (0x00007f9cfa341000)
	libKF5SonnetUi.so.5 => /usr/lib/x86_64-linux-gnu/libKF5SonnetUi.so.5 (0x00007f9cfa118000)
	libQt5Network.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Network.so.5 (0x00007f9cf9d88000)
	libKF5ItemViews.so.5 => /usr/lib/x86_64-linux-gnu/libKF5ItemViews.so.5 (0x00007f9cf9b50000)
	libKF5ConfigWidgets.so.5 => /usr/lib/x86_64-linux-gnu/libKF5ConfigWidgets.so.5 (0x00007f9cf98f7000)
	libKF5I18n.so.5 => /usr/lib/x86_64-linux-gnu/libKF5I18n.so.5 (0x00007f9cf96a8000)
	libKF5WidgetsAddons.so.5 => /usr/lib/x86_64-linux-gnu/libKF5WidgetsAddons.so.5 (0x00007f9cf9351000)
	libKF5Codecs.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Codecs.so.5 (0x00007f9cf9116000)
	libKF5ConfigGui.so.5 => /usr/lib/x86_64-linux-gnu/libKF5ConfigGui.so.5 (0x00007f9cf8ef4000)
	libKF5ConfigCore.so.5 => /usr/lib/x86_64-linux-gnu/libKF5ConfigCore.so.5 (0x00007f9cf8c98000)
	libQt5Xml.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Xml.so.5 (0x00007f9cf8a5c000)
	libKF5Auth.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Auth.so.5 (0x00007f9cf8845000)
	libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007f9cf7ff5000)
	libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007f9cf785b000)
	libKF5CoreAddons.so.5 => /usr/lib/x86_64-linux-gnu/libKF5CoreAddons.so.5 (0x00007f9cf75c8000)
	libQt5DBus.so.5 => /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5 (0x00007f9cf733e000)
	libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007f9cf6c3f000)
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9cf68be000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9cf652b000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9cf6313000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9cf5f59000)
	libKF5WindowSystem.so.5 => /usr/lib/x86_64-linux-gnu/libKF5WindowSystem.so.5 (0x00007f9cf5d0b000)
	libQt5X11Extras.so.5 => /usr/lib/x86_64-linux-gnu/libQt5X11Extras.so.5 (0x00007f9cf5b06000)
	libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f9cf57c8000)
	libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007f9cf55aa000)
	libattr.so.1 => /lib/x86_64-linux-gnu/libattr.so.1 (0x00007f9cf53a5000)
	libKF5DBusAddons.so.5 => /usr/lib/x86_64-linux-gnu/libKF5DBusAddons.so.5 (0x00007f9cf5191000)
	libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007f9cf4f88000)
	libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f9cf4cd3000)
	libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f9cf4a91000)
	libjpeg.so.62 => /usr/lib/x86_64-linux-gnu/libjpeg.so.62 (0x00007f9cf4828000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f9cf460a000)
	libnss3.so => /usr/lib/x86_64-linux-gnu/libnss3.so (0x00007f9cf42c1000)
	libsmime3.so => /usr/lib/x86_64-linux-gnu/libsmime3.so (0x00007f9cf4094000)
	libnspr4.so => /usr/lib/x86_64-linux-gnu/libnspr4.so (0x00007f9cf3e55000)
	libopenjp2.so.7 => /usr/lib/x86_64-linux-gnu/libopenjp2.so.7 (0x00007f9cf3bfd000)
	liblcms2.so.2 => /usr/lib/x86_64-linux-gnu/liblcms2.so.2 (0x00007f9cf39a2000)
	libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f9cf376f000)
	libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5 (0x00007f9cf34f6000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9cf32d8000)
	libicudata.so.57 => /usr/lib/x86_64-linux-gnu/libicudata.so.57 (0x00007f9cf185b000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9cf1657000)
	libQt5PrintSupport.so.5 => /usr/lib/x86_64-linux-gnu/libQt5PrintSupport.so.5 (0x00007f9cf13e8000)
	libKF5Attica.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Attica.so.5 (0x00007f9cf1146000)
	libKF5GlobalAccel.so.5 => /usr/lib/x86_64-linux-gnu/libKF5GlobalAccel.so.5 (0x00007f9cf0f25000)
	libKF5SonnetCore.so.5 => /usr/lib/x86_64-linux-gnu/libKF5SonnetCore.so.5 (0x00007f9cf0cf7000)
	libQt5Svg.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Svg.so.5 (0x00007f9cf0aa2000)
	libKF5Archive.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Archive.so.5 (0x00007f9cf0868000)
	libKF5GuiAddons.so.5 => /usr/lib/x86_64-linux-gnu/libKF5GuiAddons.so.5 (0x00007f9cf064e000)
	libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007f9cf03c2000)
	libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f9cf0110000)
	libfam.so.0 => /usr/lib/x86_64-linux-gnu/libfam.so.0 (0x00007f9ceff07000)
	libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f9cefcb6000)
	libpcre2-16.so.0 => /usr/lib/x86_64-linux-gnu/libpcre2-16.so.0 (0x00007f9cefa3f000)
	libdouble-conversion.so.1 => /usr/lib/x86_64-linux-gnu/libdouble-conversion.so.1 (0x00007f9cef82e000)
	libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f9cef518000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f9cff1e4000)
	libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f9cef2f0000)
	libxcb-keysyms.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-keysyms.so.1 (0x00007f9cef0ed000)
	libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f9ceeebb000)
	libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f9ceecb4000)
	libnssutil3.so => /usr/lib/x86_64-linux-gnu/libnssutil3.so (0x00007f9ceea84000)
	libplc4.so => /usr/lib/x86_64-linux-gnu/libplc4.so (0x00007f9cee87f000)
	libplds4.so => /usr/lib/x86_64-linux-gnu/libplds4.so (0x00007f9cee67b000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f9cee473000)
	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f9cee24d000)
	libjbig.so.0 => /usr/lib/x86_64-linux-gnu/libjbig.so.0 (0x00007f9cee03f000)
	libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f9cede2f000)
	libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f9cedbfd000)
	libGLdispatch.so.0 => /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f9ced947000)
	libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f9ced71a000)
	libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f9ced493000)
	libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f9ced221000)
	libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f9ced01d000)
	libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f9cece17000)
	libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f9cecc05000)
	liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f9cec9ee000)
	libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f9cec6d2000)
	libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f9cec4bd000)
	libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f9cec29d000)
Comment 16 Thomas Fischer 2018-05-19 21:23:21 UTC
(In reply to Arnout Boelens from comment #15)
> 1. When you *compile* this bug fix branch of KBibTeX, do you see an output
> like this? Which values do you see?
> 
> -- Git revision is f61f2372
> -- Git branch is bugs/kde388892
> 
> 2. Once you have set all environment variables and run kbuildsyscoca5, what
> is the output of running:
> 
> ldd ~/opt/kbibtex/bin/kbibtex

Everything looks fine. Let's go one step back. If you open your example file of attachment 109901 [details], but with correc title ("{..}"), this should load and save without problems.
The problem occurs if you remove the closing curly bracket of the title ("{..") and save this file. Previously, this would have resulted in a broken .bib file, now you should get an error message which gives you the opportunity to fix this problem.
Does this describe your issue and the current behaviour?

BTW, I may forgot to ask earlier. Do you edit the bibliography entries by opening the editor window after double-clicking on an entry in the mail list or do you used the panel/docket with or without automatically applying changes?
Comment 17 Arnout Boelens 2018-05-30 18:04:54 UTC
A file with the correct title ("{..}"), loads and saves without problems.

If I remove one bracket I indeed get an error message prompting me to fix the problem.

When I remove both brackets, press OK, and ctrl W, and click save, the file is saved wrongly as title = "{..."} .

I edit entries by double-clicking on them.
Comment 18 Andrew Crouthamel 2018-09-28 03:17:05 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days, the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information.

For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please set the bug status as REPORTED so that the KDE team knows that the bug is ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 19 Arnout Boelens 2018-10-01 02:49:37 UTC
As far as I understand it the author of kbibtex, Thomas Fischer, is still working on this issue.
Comment 20 Thomas Fischer 2018-10-02 18:42:23 UTC
Sorry for my late reply ...

(In reply to Arnout Boelens from comment #17)
> When I remove both brackets, press OK, and ctrl W, and click save, the file
> is saved wrongly as title = "{..."} .
The need to remove both brackets gave me the decisive hint on how to track down this bug. 
I force-pushed a new fix for you to test. Same private git repo, same branch, commit 29106c5570292.
Let me know if the problem is fixed now, then I'll backport it both to 0.8.2 and 0.9.
Comment 21 Arnout Boelens 2018-10-11 23:09:02 UTC
I just recompiled kbibtex, but unfortunately when I press ctrl-W kibtex crashes: 

Thread 1 "kbibtex" received signal SIGSEGV, Segmentation fault.
QString::QString (other=..., this=0x7fffffffd2b8) at ../../include/QtCore/../../src/corelib/tools/qstring.h:953
953     ../../include/QtCore/../../src/corelib/tools/qstring.h: No such file or directory.

I looked for qstring.h on my system and it is at the location:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h
Comment 22 GS 2018-10-26 09:26:53 UTC
If it helps in any way to detect the bug I also experience the same thing consistently when trying to import bib entries from publisher site (like IEEE or ACM). I usually bring up the entries and just copy paste them into kbibtex the entry is added normally but usually these entries do not have {}. The moment I save kbibtex add the brackets incorrectly and break the entry. I am on Mint 19 and using the version from the main repos.
Comment 23 Thomas Fischer 2018-10-26 20:11:20 UTC
(In reply to Arnout Boelens from comment #21)
> I just recompiled kbibtex, but unfortunately when I press ctrl-W kibtex
> crashes: 
> 
> Thread 1 "kbibtex" received signal SIGSEGV, Segmentation fault.
> QString::QString (other=..., this=0x7fffffffd2b8) at
> ../../include/QtCore/../../src/corelib/tools/qstring.h:953
> 953     ../../include/QtCore/../../src/corelib/tools/qstring.h: No such file
> or directory.
> 
> I looked for qstring.h on my system and it is at the location:
> /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h

Unfortunately, this is too litte information to know what happened.
Please have a look at
https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
to see how to get more information about the crash.
Comment 24 Thomas Fischer 2018-10-26 20:15:48 UTC
(In reply to GS from comment #22)
> If it helps in any way to detect the bug I also experience the same thing
> consistently when trying to import bib entries from publisher site (like
> IEEE or ACM). I usually bring up the entries and just copy paste them into
> kbibtex the entry is added normally but usually these entries do not have
> {}. The moment I save kbibtex add the brackets incorrectly and break the
> entry. I am on Mint 19 and using the version from the main repos.
I am quite sure that I have fixed this issue in a special branch dedicated to this bug. Please test and confirm that it actually fixes the bug for you. However, you will have to compile and install the software yourself.

https://commits.kde.org/clones/kbibtex/thomasfischer/kbibtex/3c79dc91b579fbac30a3e200f800419f367f7c93
Comment 25 Thomas Fischer 2018-10-27 19:18:22 UTC
For another bug, I wrote a small shell script that should make it easier to test KBibTeX from Git.
Please fetch the script of attachment 115924 [details] (https://bugs.kde.org/attachment.cgi?id=115924). Then, run it as follows:

./run-kbibtex.sh https://anongit.kde.org/clones/kbibtex/thomasfischer/kbibtex.git bugs/kde388892

To successfully compile the code, you may have to install various additional programs or libraries through your Linux distribution's package management system first.
Comment 26 Thomas Fischer 2018-11-17 20:39:32 UTC
Hello Arnout, have you been able to verify that the problem has been fixed for you?

I put the latest version of the run-kbibtex.sh script into a Git repository. Details are available here:
https://userbase.kde.org/KBibTeX/Development#Quick_Start_to_Run_KBibTeX_from_Git


(In reply to Thomas Fischer from comment #25)
> For another bug, I wrote a small shell script that should make it easier to
> test KBibTeX from Git.
> Please fetch the script of attachment 115924 [details]
> (https://bugs.kde.org/attachment.cgi?id=115924). Then, run it as follows:
> 
> ./run-kbibtex.sh
> https://anongit.kde.org/clones/kbibtex/thomasfischer/kbibtex.git
> bugs/kde388892
> 
> To successfully compile the code, you may have to install various additional
> programs or libraries through your Linux distribution's package management
> system first.
Comment 27 Arnout Boelens 2018-11-22 21:03:40 UTC
Hello Thomas,

I just ran:

./run-kbibtex.sh https://anongit.kde.org/clones/kbibtex/thomasfischer/kbibtex.git bugs/kde388892

But I am still seeing the same issue. Am I missing an option or a flag in the script?
Comment 28 Thomas Fischer 2018-12-04 18:32:07 UTC
> But I am still seeing the same issue. Am I missing an option or a flag in
> the script?
Can you please restate which steps exactly you are performing and which data you are entering to reproduce your issue?
Maybe I fixed a different issue or did not completely fixed the original issue ...
Comment 29 Arnout Boelens 2018-12-07 03:52:34 UTC
Hello Thomas,

I just ran the same command with run-kbibtex.sh again and everything seems to be working now. Thanks for fixing this!

Cheers,

Arnout
Comment 30 Thomas Fischer 2018-12-07 21:26:47 UTC
Git commit 669c24a7f053302b680303ffc5a1d35df2f4e053 by Thomas Fischer.
Committed on 07/12/2018 at 21:26.
Pushed by thomasfischer into branch 'master'.

Correctly positioning closing curly bracket

Fixing 'one off' bug when a closing curly bracket gets insert
into a title's text.

M  +1    -1    src/io/fileexporterbibtex.cpp

https://commits.kde.org/kbibtex/669c24a7f053302b680303ffc5a1d35df2f4e053
Comment 31 Thomas Fischer 2018-12-07 21:26:47 UTC
Git commit c4905d542a4bfd37388490a5ff8d12b83a68aaca by Thomas Fischer.
Committed on 07/12/2018 at 21:26.
Pushed by thomasfischer into branch 'master'.

Automated test for BibTeX title case protection

Adding automated test to check if case protection for titles is
correctly set and removed when exporting to BibTeX documents.

M  +84   -2    src/test/kbibtexiotest.cpp

https://commits.kde.org/kbibtex/c4905d542a4bfd37388490a5ff8d12b83a68aaca
Comment 32 Thomas Fischer 2018-12-07 21:27:10 UTC
Git commit 1fd05729910608ffbe298bcaaef6c585db271cea by Thomas Fischer.
Committed on 06/12/2018 at 19:45.
Pushed by thomasfischer into branch 'kbibtex/0.8'.

Correctly positioning closing curly bracket

Fixing 'one off' bug when a closing curly bracket gets insert
into a title's text.

Manual cherry-pick of commit d71005f9272d2f06218b58fc957af1f
from branch 'master'.

M  +1    -1    src/io/fileexporterbibtex.cpp

https://commits.kde.org/kbibtex/1fd05729910608ffbe298bcaaef6c585db271cea