[MacPorts] #51287: Inkscape crashes on startup if enchant is installed with +applespell
noreply at macports.org
Mon May 23 03:19:51 PDT 2016
#51287: Inkscape crashes on startup if enchant is installed with +applespell
Reporter: jo.vanoost@… | Owner: jeremyhu@…
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords: lion
Port: inkscape enchant |
Comment (by devans@…):
I guess I'm not being clear
inkscape will not enable the spellchecking item in the Text menu if aspell
is not available at build time. See configure.ac. Thus aspell needs to
be a dependency of inkscape.
inkscape uses gtkspell which uses enchant to spellcheck words in a text
object. This part will work with any enchant backend. Mispelled words are
highlighted (outlined) in red.
However, the code that allows you to add words to a dictionary bypasses
enchant and uses aspell api directly. Thus, new words added are added to
the aspell dictionary only and have no effect on the spellcheck
highlighting via enchant unless enchant is using aspell as the backend.
This can be demonstrated as follows:
select spellchecking in the text box so that you have the inkscape
workspace on the left and the spellcheck dialog on the right.
create a text box in the workspace and enter a mispelled word (e.g.
libertee). When you hit the start button in the spellcheck dialog the
word will be highlighted in red.
Then using the dialog try to add the word to the dictionary. If enchant
+aspell is active, the highlighting of the word will immediately disappear
since the word is now in the dictionary. Subsequent usages of this word
will not be highlighted. This is the proper behavior.
However, if enchant does not have +aspell selected then this will have no
effect, the word will still be highlighted because the word was added to
an aspell dictionary not the one enchant is using. Only aspell will work
here as the code is using the aspell api directly.
Thus there are two requirements for full functionality: inkscape must
depend on aspell to enable the spellcheck item in the text menu and
enchant +aspell must be installed so that the spellchecking code and the
code for adding words to the dictionary are using the same dictionary
(which has to be aspell).
I admit that this is a poor way to write the spellchecking code but this
is the way it is.
There is other funny things as well. For instance, although the
appearance of the spellcheck item in text menu is dependent upon having
aspell available at build time, the spellcheck dialog is still enabled in
the code. So if you use a properly configured version of inkscape to
display the spellcheck dialog using the text menu item and then quit and
run a version built without aspell, the spellcheck dialog will appear on
startup because inkscape remembers the window configuration from the
previous run but if you close the dialog there is no way to open it again
because the text menu item is missing. This can make you think it's
working without aspell but its really not (or only partially).
This all needs work upstream.
Ticket URL: <https://trac.macports.org/ticket/51287#comment:18>
Ports system for OS X
More information about the macports-tickets