summaryrefslogtreecommitdiffstats
path: root/src/libnrtype
diff options
context:
space:
mode:
authorRichard Hughes <cyreve@gmail.com>2008-09-16 22:08:41 +0000
committercyreve <cyreve@users.sourceforge.net>2008-09-16 22:08:41 +0000
commitd3e7484d437a25fecb1c6ba7c2c22d98424f9d39 (patch)
tree7d95a4bbd7bb6d64e7b58d7b191d09c83e4817be /src/libnrtype
parentFix some bugs introduced by the preferences rewrite. (diff)
downloadinkscape-d3e7484d437a25fecb1c6ba7c2c22d98424f9d39.tar.gz
inkscape-d3e7484d437a25fecb1c6ba7c2c22d98424f9d39.zip
bug 202103: crash then putting text containing a soft hyphen character (u00AD) onto a path
(bzr r6827)
Diffstat (limited to 'src/libnrtype')
-rw-r--r--src/libnrtype/Layout-TNG-Output.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/libnrtype/Layout-TNG-Output.cpp b/src/libnrtype/Layout-TNG-Output.cpp
index d4df3ee37..a93993c56 100644
--- a/src/libnrtype/Layout-TNG-Output.cpp
+++ b/src/libnrtype/Layout-TNG-Output.cpp
@@ -450,9 +450,10 @@ void Layout::fitToPathAlign(SVGLength const &startOffset, Path const &path)
double character_advance;
Span const &span = _characters[char_index].span(this);
- for (next_cluster_char_index = char_index + 1 ;
- next_cluster_char_index < _characters.size() && !_characters[next_cluster_char_index].char_attributes.is_cursor_position;
- next_cluster_char_index++);
+ for (next_cluster_char_index = char_index + 1 ; next_cluster_char_index < _characters.size() ; next_cluster_char_index++) {
+ if (_characters[next_cluster_char_index].in_glyph != -1 && _characters[next_cluster_char_index].char_attributes.is_cursor_position)
+ break;
+ }
if (next_cluster_char_index == _characters.size()) {
next_cluster_glyph_index = _glyphs.size();