use of keyword_name instead of directly accessing obj.name

git-svn-id: https://pdfminerr.googlecode.com/svn/trunk/pdfminer@155 1aa58f4a-7d42-0410-adbc-911cccaed67c
pull/1/head
yusuke.shinyama.dummy 2009-11-07 00:58:02 +00:00
parent ddb78e2698
commit d260967d12
1 changed files with 8 additions and 7 deletions

View File

@ -8,7 +8,7 @@ except ImportError:
from StringIO import StringIO
from cmap import CMapDB
from psparser import PSException, PSTypeError, PSEOF
from psparser import PSKeyword, literal_name
from psparser import PSKeyword, literal_name, keyword_name
from psparser import PSStackParser
from psparser import LIT, KWD, STRICT
from pdftypes import PDFException, PDFStream, PDFObjRef
@ -734,23 +734,24 @@ class PDFPageInterpreter(object):
except PSEOF:
break
if isinstance(obj, PSKeyword):
name = 'do_%s' % obj.name.replace('*','_a').replace('"','_w').replace("'",'_q')
if hasattr(self, name):
func = getattr(self, name)
name = keyword_name(obj)
method = 'do_%s' % name.replace('*','_a').replace('"','_w').replace("'",'_q')
if hasattr(self, method):
func = getattr(self, method)
nargs = func.func_code.co_argcount-1
if nargs:
args = self.pop(nargs)
if 1 <= self.debug:
print >>stderr, 'exec: %s %r' % (obj.name, args)
print >>stderr, 'exec: %s %r' % (name, args)
if len(args) == nargs:
func(*args)
else:
if 1 <= self.debug:
print >>stderr, 'exec: %s' % (obj.name)
print >>stderr, 'exec: %s' % (name)
func()
else:
if STRICT:
raise PDFInterpreterError('Unknown operator: %r' % obj.name)
raise PDFInterpreterError('Unknown operator: %r' % name)
else:
self.push(obj)
return