Author ggenellina
Recipients ggenellina
Date 2011-06-07.06:16:06
SpamBayes Score 5.41224e-07
Marked as misclassified No
Message-id <>
On Windows, IDLE closes all open windows and exits completely, without any error message, when selecting the "Print window" menu command.

Starting IDLE from inside a console, one can see the error message:

Exception in Tkinter callback
Traceback (most recent call last):
  File "D:\apps\python32\lib\tkinter\", line 1399, in __call__
    return self.func(*args)
  File "D:\apps\python32\lib\idlelib\", line 453, in print_window
    command = idleConf.GetOption('main','General','print-command-win')
  File "D:\apps\python32\lib\idlelib\", line 245, in GetOption
    type=type, raw=raw)
  File "D:\apps\python32\lib\idlelib\", line 54, in Get
    return self.get(section, option, raw=raw)
  File "D:\apps\python32\lib\", line 789, in get
  File "D:\apps\python32\lib\", line 391, in before_get
    self._interpolate_some(parser, option, L, value, section, defaults, 1)
  File "D:\apps\python32\lib\", line 440, in _interpolate_some
    "found: %r" % (rest,))
configparser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found
: '%s'

It is trying to read this entry from the config-main.def file:

print-command-posix=lpr %s
print-command-win=start /min notepad /p %s

For a ConfigParser file, those %s should be %%s instead. Previous IDLE versions (2.7 and 3.1) read the same entry without problem; I suspect they were using a RawConfigParser or processing the entry in a different way.

As a workaround, replacing %s with %%s in config-main.def is enough, until the code gets fixed.
Date User Action Args
2011-06-07 06:16:07ggenellinasetrecipients: + ggenellina
2011-06-07 06:16:07ggenellinasetmessageid: <>
2011-06-07 06:16:07ggenellinalinkissue12274 messages
2011-06-07 06:16:06ggenellinacreate