Convert the stderr spam into a gtk.MessageDialog. Format and localise the error.
Handle unterminated quoted string errors better
This commit is contained in:
parent
a89f18e095
commit
9baf905cab
|
@ -210,7 +210,21 @@ class TerminatorConfValuestoreRC (TerminatorConfValuestore):
|
||||||
try:
|
try:
|
||||||
ini.parse()
|
ini.parse()
|
||||||
except ParsedWithErrors, e:
|
except ParsedWithErrors, e:
|
||||||
sys.stderr.write(str(e))
|
import gtk
|
||||||
|
from cgi import escape
|
||||||
|
msg = _("""Errors were encountered while parsing terminator_config(5) file:
|
||||||
|
|
||||||
|
<b>%s</b>
|
||||||
|
|
||||||
|
Some lines have been ignored.""") % escape(repr(self.rcfilename))
|
||||||
|
errs = "\n\n".join(map(lambda error:
|
||||||
|
_(" * %(message)s, line %(lnum)d:\n <tt>%(line)s</tt>\n <tt>%(pad)s^</tt>") % {
|
||||||
|
'message': error.message, 'file': escape(error.file), 'lnum': error.lnum,
|
||||||
|
'line': escape(error.line.rstrip()), 'pad': '-' * error.pos}, e.errors))
|
||||||
|
dialog = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK)
|
||||||
|
dialog.set_markup(msg + "\n\n" + errs)
|
||||||
|
dialog.run()
|
||||||
|
dialog.destroy()
|
||||||
|
|
||||||
for key in ini.settings:
|
for key in ini.settings:
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -89,7 +89,8 @@ class ConfigFile:
|
||||||
while True:
|
while True:
|
||||||
mo = QuotedStrings[chr].match(self._line, self._pos)
|
mo = QuotedStrings[chr].match(self._line, self._pos)
|
||||||
if mo is None:
|
if mo is None:
|
||||||
raise ConfigSyntaxError("Unterminated quoted string", self)
|
self.parse_error(_("Unterminated quoted string"))
|
||||||
|
return False
|
||||||
self._pos = mo.end()
|
self._pos = mo.end()
|
||||||
if self._line[self._pos - 2] == '\\':
|
if self._line[self._pos - 2] == '\\':
|
||||||
string += mo.group(1)[0:-1] + chr
|
string += mo.group(1)[0:-1] + chr
|
||||||
|
@ -142,13 +143,13 @@ class ConfigFile:
|
||||||
if not self._call_if_match(Colourvalue, self._value, 1):
|
if not self._call_if_match(Colourvalue, self._value, 1):
|
||||||
# bare value
|
# bare value
|
||||||
if not self._call_if_match(Barevalue, self._value, 1):
|
if not self._call_if_match(Barevalue, self._value, 1):
|
||||||
self.parse_error("Setting without a value")
|
self.parse_error(_("Setting without a value"))
|
||||||
continue
|
continue
|
||||||
|
|
||||||
self._call_if_match(Ignore, lambda junk: dbg("Ignoring: %s" % junk))
|
self._call_if_match(Ignore, lambda junk: dbg("Ignoring: %s" % junk))
|
||||||
|
|
||||||
if self._line[self._pos:] != '':
|
if self._line[self._pos:] != '':
|
||||||
self.parse_error("Unexpected token")
|
self.parse_error(_("Unexpected token"))
|
||||||
|
|
||||||
if self.errors:
|
if self.errors:
|
||||||
raise ParsedWithErrors(self.filename, self.errors)
|
raise ParsedWithErrors(self.filename, self.errors)
|
||||||
|
|
Loading…
Reference in New Issue