summaryrefslogtreecommitdiffstats
path: root/sig2code.py
diff options
context:
space:
mode:
Diffstat (limited to 'sig2code.py')
-rw-r--r--sig2code.py129
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()
-