diff options
author | Chia-I Wu <[email protected]> | 2010-12-06 22:21:51 +0800 |
---|---|---|
committer | Chia-I Wu <[email protected]> | 2011-01-20 17:15:49 +0800 |
commit | 7828f554abf59e05a4b4152dabd599fae79d0be8 (patch) | |
tree | 26cc652158ea3317432c5024f61d1c462478fc7f /src/mapi | |
parent | f71a9acf59a2cd6396fb57afe57d7808df0bb82b (diff) |
mapi: Allow prefix to be macro.
Treat prefix as macro when it is all uppercase. Generate PREFIX(name)
instead of PREFIXname when it is a macro.
Diffstat (limited to 'src/mapi')
-rw-r--r-- | src/mapi/mapi/mapi_abi.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/mapi/mapi/mapi_abi.py b/src/mapi/mapi/mapi_abi.py index 1db6cf39119..397e7decdc7 100644 --- a/src/mapi/mapi/mapi_abi.py +++ b/src/mapi/mapi/mapi_abi.py @@ -368,8 +368,11 @@ class ABIPrinter(object): def _c_function(self, ent, prefix, mangle=False, stringify=False): """Return the function name of an entry.""" - formats = { True: '"%s%s"', False: '%s%s' } - fmt = formats[stringify] + formats = { + True: { True: '%s_STR(%s)', False: '%s(%s)' }, + False: { True: '"%s%s"', False: '%s%s' }, + } + fmt = formats[prefix.isupper()][stringify] name = ent.name if mangle and ent.hidden: name = '_dispatch_stub_' + str(ent.slot) @@ -379,7 +382,8 @@ class ABIPrinter(object): """Return the function name used for calling.""" if ent.handcode: # _c_function does not handle this case - fmt = '%s%s' + formats = { True: '%s(%s)', False: '%s%s' } + fmt = formats[prefix.isupper()] name = fmt % (prefix, ent.handcode) elif self.need_entry_point(ent): name = self._c_function(ent, prefix, True) |