Follow-up Comment #1, bug #18156 (project freeciv):

When I load this into head-of-S2_2 on Linux (r19533, more or less equivalent
to 2.2.5), I don't get a crash, but I do see the following:

When the client displays the map view, I see two cities with similar names --
"Perpinyà" on the right of size 3, and "Perpiny[]" on the left of size 4,
where "[]" represents a box with a cross through it (indicating an invalid
character, I think) -- see screenshot.

Looking into the savefile, there's one city name ending with the octets C3
A0, which is a valid UTF-8 encoding of LATIN SMALL LETTER A WITH GRAVE (the
correct character), and one ending with just C3, which is an incomplete UTF-8
sequence (and in ISO 8859-1 is LATIN CAPITAL LETTER A WITH TILDE, which is
clearly wrong for this city).

Since I believe save files are always encoded in UTF-8, I think this is the
root of your problem. Looks like Windows Gtk crashes where Linux just shrugs
and carries on.

Question is, how did the badly-encoded city name end up in your save file?
The current S2_2 catalan.ruleset only has one city of that name, correctly
encoded, as does 2.2.0. The "bad" city looks was founded considerably earlier
than the "good" one, so perhaps it was caused by a bug in an earlier version
of Freeciv.

...aha, yes, it looks like bug #15377 was the culprit. And bug #15658 reports
exactly the same problem (with the same city!)

Those bugs are fixed, but ideally we would be more robust by sanitising this
sort of thing when loading it from savefiles -- your city name wouldn't be as
intended, but at least it wouldn't crash.

For the record:

On initially displaying the map view and rendering the city names on the map,
the following warnings show up on the client's console (presumably
corresponding to the "[]" it drew):


Encodings: Data=UTF-8, Local=UTF-8, Internal=UTF-8
1: Invalid string conversion from UTF-8 to UTF-8.

(freeciv-gtk2:4894): Pango-WARNING **: Invalid UTF-8 string passed to
pango_layout_set_text()

(freeciv-gtk2:4894): Pango-WARNING **: Invalid UTF-8 string passed to
pango_layout_set_text()


When I click on the dubious city to open it, the resulting dialog has no
title bar, and I have the following additional warnings:


(freeciv-gtk2:4894): Gtk-WARNING **: Failed to set text from markup due to
error parsing markup: Error on line 1 char 20: Invalid UTF-8 encoded text in
name — not valid 'Perpinyxc3'

(freeciv-gtk2:4894): Gtk-WARNING **: Failed to set text from markup due to
error parsing markup: Error on line 1 char 20: Invalid UTF-8 encoded text in
name — not valid 'Perpinyxc3'

(freeciv-gtk2:4894): Gtk-WARNING **: Failed to set text from markup due to
error parsing markup: Error on line 1 char 20: Invalid UTF-8 encoded text in
name — not valid 'Perpinyxc3'

(freeciv-gtk2:4894): Gtk-WARNING **: Failed to set text from markup due to
error parsing markup: Error on line 1 char 20: Invalid UTF-8 encoded text in
name — not valid 'Perpinyxc3'


    _______________________________________________________

Reply to this item at:

  <http://gna.org/bugs/?18156>

_______________________________________________
  Message sent via/by Gna!
  http://gna.org/


_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to