diff options
author | Christopher Davis <loafier@gmail.com> | 2006-06-26 04:20:50 +0000 |
---|---|---|
committer | Christopher Davis <loafier@gmail.com> | 2006-06-26 04:20:50 +0000 |
commit | 96280edc8fda9cc591bc0833398e576bf680931d (patch) | |
tree | 53dad5721b3fa530a7a69b0169fe4d5d0b614a3e /sig2code.py | |
parent | 3b04cf6a1210f97d8144ee1ba646186aca4912ef (diff) | |
download | irssi-python-96280edc8fda9cc591bc0833398e576bf680931d.tar.gz irssi-python-96280edc8fda9cc591bc0833398e576bf680931d.tar.xz irssi-python-96280edc8fda9cc591bc0833398e576bf680931d.zip |
working on new provision for constants and changed sig2code script
git-svn-id: http://svn.irssi.org/repos/irssi-python@4292 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'sig2code.py')
-rw-r--r-- | sig2code.py | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/sig2code.py b/sig2code.py deleted file mode 100644 index c0f2353..0000000 --- a/sig2code.py +++ /dev/null @@ -1,129 +0,0 @@ -import re -import sys - -code_text = """ - Conversion codes notes - I = int *arg IN/OUT - G = string GList **arg IN/OUT (list must be reconstructed) - L = list of nicks - - Scalars - s -> char * - u -> ulong * - I -> int * - i -> int - - Lists of things (completion.c and massjoin.c) - G -> GList * of char* - L -> GSList of NICK_RECs - - Chat objects - c -> CHATNET_REC - S -> SERVER_REC - C -> CHANNEL_REC - q -> QUERY_REC - n -> NICK_REC - W -> WI_ITEM_REC - - Irssi objects - d -> DCC_REC - - Other objects - r -> RECONNECT_REC - o -> COMMAND_REC - l -> LOG_REC - a -> RAWLOG_REC - g -> IGNORE_REC - ? -> MODULE_REC - b -> BAN_REC - N -> NETSPLIT_REC - e -> NETSPLIT_SERVER_REC - ? -> AUTOIGNORE_REC - O -> NOTIFYLIST_REC - ? -> THEME_REC - ? -> KEYINFO_REC - p -> PROCESS_REC - t -> TEXT_DEST_REC - w -> WINDOW_REC -""" - -#generate body of transcode function from the list of codes above -def prepair(): - lines = code_text.split('\n') - codes = [] - for ln in lines: - m = re.match('^.*([a-zA-Z\?]) -> (.*)$', ln) - if not m: continue - code, match = m.groups() - code = code.strip() - match = match.strip() - - assert code == '?' or code not in codes, "dupe code, " + code - codes.append(code) - - print "if arg.startswith('%s'): return '%s'" % (match, code) - -def transcode(arg): - if arg.startswith('char *'): return 's' - if arg.startswith('ulong *'): return 'u' - if arg.startswith('int *'): return 'I' - if arg.startswith('int'): return 'i' - if arg.startswith('GList * of char*'): return 'G' - if arg.startswith('GSList of NICK_RECs'): return 'L' - if arg.startswith('CHATNET_REC'): return 'c' - if arg.startswith('SERVER_REC'): return 'S' - if arg.startswith('RECONNECT_REC'): return 'r' - if arg.startswith('CHANNEL_REC'): return 'C' - if arg.startswith('QUERY_REC'): return 'q' - if arg.startswith('COMMAND_REC'): return 'o' - if arg.startswith('NICK_REC'): return 'n' - if arg.startswith('LOG_REC'): return 'l' - if arg.startswith('RAWLOG_REC'): return 'a' - if arg.startswith('IGNORE_REC'): return 'g' - if arg.startswith('MODULE_REC'): return '?' - if arg.startswith('BAN_REC'): return 'b' - if arg.startswith('NETSPLIT_REC'): return 'N' - if arg.startswith('NETSPLIT_SERVER_REC'): return 'e' - if arg.startswith('DCC_REC'): return 'd' - if arg.startswith('AUTOIGNORE_REC'): return '?' - if arg.startswith('NOTIFYLIST_REC'): return 'O' - if arg.startswith('THEME_REC'): return '?' - if arg.startswith('KEYINFO_REC'): return '?' - if arg.startswith('PROCESS_REC'): return 'p' - if arg.startswith('TEXT_DEST_REC'): return 't' - if arg.startswith('WINDOW_REC'): return 'w' - if arg.startswith('WI_ITEM_REC'): return 'W' - return '?' - -def main(): - - print "/* Include in your C module */" - print "static PY_SIGNAL_SPEC_REC py_sigmap[] = {" - - for ln in sys.stdin: - ln = ln.strip() - m = re.match('^\"([^\"]+)\"[^,]*,(.*)$', ln) - if not m: continue - - signal, args = m.groups() - - if signal.startswith('script '): continue - #if signal == 'command ': continue - - argv = [transcode(a.strip()) for a in args.split(',')] - argv = ''.join(argv) - - is_var = 0 - if signal[-1] == ' ': - is_var = 1 - - print ' {"%s", "%s", 0, 0, %d},' % (signal, argv, is_var) - - print " {NULL}" - print "};" - print - print "#define py_sigmap_len() (sizeof(py_sigmap) / sizeof(py_sigmap[0]) - 1)" - -if __name__ == '__main__': - main() - |