X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=doclib%2Fpkgdraw;h=010262349e0fcb74c9a697306494e8861a1da4db;hb=3863d46dd898b7bc35ea8c6ccd8563b18762a6b6;hp=804951408ff2208f0dc514cb5d903e9f0375ecba;hpb=2265e2dcc8c6fc6a35f63d68119a795974cf2ee7;p=senf.git diff --git a/doclib/pkgdraw b/doclib/pkgdraw index 8049514..0102623 100755 --- a/doclib/pkgdraw +++ b/doclib/pkgdraw @@ -11,7 +11,6 @@ TEX_HEADER = r"""\documentclass{scrartcl} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage{ae,aecompl} -\usepackage[active]{srcltx} \usepackage{color} \usepackage{bytefield} @@ -63,7 +62,7 @@ def formatSimpleField(width, start, field): namesz = areas[i]['size'] nameix = i areas[nameix]['name'] = field['name'][:int(areas[nameix]['size'] * charsPerBit)] - if len(areas) == 2 and areas[0].get('bottom',True): + if field['name'] and len(areas) == 2 and areas[0].get('bottom',True): if areas[0].get('name','') : ix = 1 else : ix = 0 if 6 <= int(areas[ix]['size'] * charsPerBit): @@ -158,7 +157,7 @@ def makeTex(rows): if sides == "lrtb" : sides = "" else : sides = "[%s]" % sides if area.get('filled', False): - line.append(r"\bitbox%s{%s}{\color[gray]{0.7}\rule{\width}{\height}}" % (sides, area['size'])) + line.append(r"\bitbox%s{%s}{\color[gray]{0.93}\rule{\width}{\height}}" % (sides, area['size'])) elif area.get('skip', False): line.append(r"\skippedwords") elif area.get('dots', False): @@ -355,17 +354,37 @@ PARSER_END_RE = re.compile(r"PKGDRAW_PARSER_FINALIZE\s*\(([^)]*)\)\s*;") PARSER_FIELD_RE = re.compile(r"(?:@@>pkgdraw:(.*)$\s*)?PKGDRAW_PARSER_([A-Z_]+)\s*\(([^;]*)\)\s*;(?:\s*@@ [...] [ -- ...]\n") + sys.stderr.write("Usage: %s
[...] [-- ...]\n" + % sys.argv[0]) sys.exit(1) source = args.pop(0) @@ -416,15 +440,15 @@ target = args.pop(0) while args and args[0] != '--' : names.append(args.pop(0)) if args : gccopts = args[1:] -data = scanPackets(cppExpand(quoteMacros(stripComments(file(source).read())), - gccopts, os.path.dirname(source))) +data, order = scanPackets(cppExpand(quoteMacros(stripComments(file(source).read())), + gccopts, os.path.dirname(source))) texf = file(os.path.join(tmpdir, "fields.tex"),"w") texf.write(TEX_HEADER) if not names: - names = data.keys() - names.sort() + order.reverse() + names = order for name in names: texf.write("\\textbf{%s}\n\\bigskip\\par\n" % texquote(name))