Issue 4515, Check and Repair replaces illegal cntrl char with space.
svn: r16343
This commit is contained in:
parent
76e66f6104
commit
dc0cd05ef8
@ -66,6 +66,10 @@ from QuestionDialog import OkDialog, MissingMediaDialog
|
|||||||
from gen.display.name import displayer as _nd
|
from gen.display.name import displayer as _nd
|
||||||
from glade import Glade
|
from glade import Glade
|
||||||
|
|
||||||
|
# table for handling control chars in notes.
|
||||||
|
# All except 09, 0A, 0D are replaced with space.
|
||||||
|
strip_dict = dict.fromkeys(range(9)+range(11,13)+range(14, 32), u" ")
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Low Level repair
|
# Low Level repair
|
||||||
@ -170,6 +174,7 @@ class Check(Tool.BatchTool):
|
|||||||
self.db.disable_signals()
|
self.db.disable_signals()
|
||||||
checker = CheckIntegrity(dbstate, uistate, trans)
|
checker = CheckIntegrity(dbstate, uistate, trans)
|
||||||
checker.fix_encoding()
|
checker.fix_encoding()
|
||||||
|
checker.fix_ctrlchars_in_notes()
|
||||||
checker.check_dates()
|
checker.check_dates()
|
||||||
checker.cleanup_missing_photos(cli)
|
checker.cleanup_missing_photos(cli)
|
||||||
checker.cleanup_deleted_name_formats()
|
checker.cleanup_deleted_name_formats()
|
||||||
@ -347,6 +352,21 @@ class CheckIntegrity(object):
|
|||||||
self.db.commit_media_object(obj, self.trans)
|
self.db.commit_media_object(obj, self.trans)
|
||||||
self.progress.step()
|
self.progress.step()
|
||||||
|
|
||||||
|
def fix_ctrlchars_in_notes(self):
|
||||||
|
self.progress.set_pass(_('Looking for ctrl characters in notes'),
|
||||||
|
self.db.get_number_of_notes())
|
||||||
|
for handle in self.db.note_map.keys():
|
||||||
|
note = self.db.get_note_from_handle(handle)
|
||||||
|
stext = note.get_styledtext()
|
||||||
|
old_text = unicode(stext)
|
||||||
|
new_text = old_text.translate(strip_dict)
|
||||||
|
if old_text != new_text:
|
||||||
|
print "Note=", self.db.note_map[handle][1], " had control character"
|
||||||
|
# Commit only if ctrl char found.
|
||||||
|
note.set_styledtext(gen.lib.StyledText(text=new_text, tags=stext.get_tags()))
|
||||||
|
self.db.commit_note(note, self.trans)
|
||||||
|
self.progress.step()
|
||||||
|
|
||||||
def check_for_broken_family_links(self):
|
def check_for_broken_family_links(self):
|
||||||
# Check persons referenced by the family objects
|
# Check persons referenced by the family objects
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user