--- com32/cmenu/Makefile +++ com32/cmenu/Makefile @@ -37,7 +37,7 @@ .PRECIOUS: %.c %.c: %.menu adv_menu.tpl - python menugen.py --input=$< --output=$@ --template=adv_menu.tpl + python3 menugen.py --input=$< --output=$@ --template=adv_menu.tpl all: menus --- com32/cmenu/menugen.py +++ com32/cmenu/menugen.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import sys, re, getopt @@ -100,27 +100,27 @@ if not self.entry["info"]: self.entry["info"] = self.entry["data"] if not self.menus: - print "Error before line %d" % self.lineno - print "REASON: menu must be declared before a menu item is declared" + print("Error before line %d" % self.lineno) + print("REASON: menu must be declared before a menu item is declared") sys.exit(1) self.menus[-1][1].append(self.entry) self.init_entry() def set_item(self,name,value): - if not self.entry.has_key(name): + if not name in self.entry: msg = ["Unknown attribute %s in line %d" % (name,self.lineno)] msg.append("REASON: Attribute must be one of %s" % self.vattrs) return "\n".join(msg) - if name=="type" and not self.types.has_key(value): + if name=="type" and not value in self.types: msg = [ "Unrecognized type %s in line %d" % (value,self.lineno)] msg.append("REASON: Valid types are %s" % self.vtypes) return "\n".join(msg) if name=="shortcut": - if (value <> "-1") and not re.match("^[A-Za-z0-9]$",value): + if (value != "-1") and not re.match("^[A-Za-z0-9]$",value): msg = [ "Invalid shortcut char '%s' in line %d" % (value,self.lineno) ] msg.append("REASON: Valid values are [A-Za-z0-9]") return "\n".join(msg) - elif value <> "-1": value = "'%s'" % value + elif value != "-1": value = "'%s'" % value elif name in ["state","helpid","ipappend"]: try: value = int(value) @@ -131,14 +131,14 @@ return "" def set_menu(self,name,value): - if not self.menu.has_key(name): + if not name in self.menu: return "Error: Unknown keyword %s" % name self.menu[name] = value self.menu["_updated"] = 1 return "" def set_system(self,name,value): - if not self.system.has_key(name): + if not name in self.system: return "Error: Unknown keyword %s" % name if name == "skipcondn": try: # is skipcondn a number? @@ -169,7 +169,7 @@ if not err: return # all errors so return item's error message - print err + print(err) sys.exit(1) def print_entry(self,entry,fd): @@ -211,9 +211,9 @@ missing = None for x in self.reqd_templates: - if not self.templates.has_key(x): missing = x + if not x in self.templates: missing = x if missing: - print "Template %s required but not defined in %s" % (missing,self.code_template_filename) + print("Template %s required but not defined in %s" % (missing,self.code_template_filename)) if filename == "-": fd = sys.stdout @@ -227,8 +227,8 @@ fd.write(self.templates["footer"]) fd.close() if not self.foundmain: - print "main menu not found" - print self.menus + print("main menu not found") + print(self.menus) sys.exit(1) def input(self,filename): @@ -259,26 +259,26 @@ # add property of current entry pos = line.find("=") # find the first = in string if pos < 0: - print "Syntax error in line %d" % self.lineno - print "REASON: non-section lines must be of the form ATTRIBUTE=VALUE" + print("Syntax error in line %d" % self.lineno) + print("REASON: non-section lines must be of the form ATTRIBUTE=VALUE") sys.exit(1) attr = line[:pos].strip().lower() value = line[pos+1:].strip() self.set(attr,value) except: - print "Error while parsing line %d: %s" % (self.lineno,line) + print("Error while parsing line %d: %s" % (self.lineno,line)) raise fd.close() self.add_item() def usage(): - print sys.argv[0]," [options]" - print "--input= is the name of the .menu file declaring the menu structure" - print "--output= is the name of generated C source" - print "--template= is the name of template to be used" - print - print "input and output default to - (stdin and stdout respectively)" - print "template defaults to adv_menu.tpl" + print(sys.argv[0]," [options]") + print("--input= is the name of the .menu file declaring the menu structure") + print("--output= is the name of generated C source") + print("--template= is the name of template to be used") + print() + print("input and output default to - (stdin and stdout respectively)") + print("template defaults to adv_menu.tpl") sys.exit(1) def main(): @@ -287,7 +287,7 @@ ofile = "-" opts,args = getopt.getopt(sys.argv[1:], "hi:o:t:",["input=","output=","template=","help"]) if args: - print "Unknown options %s" % args + print("Unknown options %s" % args) usage() for o,a in opts: if o in ["-i","--input"]: