texlive[64430] trunk: dviasm (18sep22)
commits+karl at tug.org
commits+karl at tug.org
Sun Sep 18 21:43:31 CEST 2022
Revision: 64430
http://tug.org/svn/texlive?view=revision&revision=64430
Author: karl
Date: 2022-09-18 21:43:31 +0200 (Sun, 18 Sep 2022)
Log Message:
-----------
dviasm (18sep22)
Modified Paths:
--------------
trunk/Build/source/texk/texlive/linked_scripts/dviasm/dviasm.py
trunk/Master/texmf-dist/doc/man/man1/dviasm.man1.pdf
trunk/Master/texmf-dist/scripts/dviasm/dviasm.py
Modified: trunk/Build/source/texk/texlive/linked_scripts/dviasm/dviasm.py
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/dviasm/dviasm.py 2022-09-18 19:43:14 UTC (rev 64429)
+++ trunk/Build/source/texk/texlive/linked_scripts/dviasm/dviasm.py 2022-09-18 19:43:31 UTC (rev 64430)
@@ -6,7 +6,7 @@
# Copyright (C) 2007-2008 by Jin-Hwan Cho <chofchof at ktug.or.kr>
# Copyright (C) 2011-2017 by Khaled Hosny <khaledhosny at eglug.org>
# Copyright (C) 2019 by Arthur Reutenauer <arthur at reutenauer.eu>
-# Copyright (C) 2019-2020 by Hironobu Yamashita <h.y.acetaminophen at gmail.com>
+# Copyright (C) 2019-2022 by Hironobu Yamashita <h.y.acetaminophen at gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -72,7 +72,7 @@
DVI_IDS = (DVI_ID, DVIV_ID, XDVI_ID, XDV_ID)
def warning(msg):
- sys.stderr.write('%s\n' % msg)
+ sys.stderr.write('warning: %s\n' % msg)
def ValidID(dvi_id):
if dvi_id not in DVI_IDS:
@@ -606,6 +606,12 @@
# WriteFontDefinitions
self.WriteFontDefinitions(fp)
# WritePages
+ if not self.pages:
+ # dvistd0.pdf, Section A.1:
+ # > A DVI file consists of a ``preamble,'' followed by a sequence of
+ # > one or more "pages," followed by a ``postamble.''
+ warning('one or more pages required!')
+ self.pages.append({'count':[1,0,0,0,0,0,0,0,0,0], 'content':[]})
stackdepth = 0; loc = -1
for page in self.pages:
w = x = y = z = 0; stack = []
@@ -677,7 +683,7 @@
fp.write(b''.join(s))
# WritePostamble
post_loc = fp.tell()
- fp.write(b''.join([bytes.fromhex('%02x' % POST), PutSignedQuad(loc), PutSignedQuad(self.numerator), PutSignedQuad(self.denominator), PutSignedQuad(self.mag), PutSignedQuad(self.max_v), PutSignedQuad(self.max_h), Put2Bytes(stackdepth+1), Put2Bytes(len(self.pages))]))
+ fp.write(b''.join([bytes.fromhex('%02x' % POST), PutSignedQuad(loc), PutSignedQuad(self.numerator), PutSignedQuad(self.denominator), PutSignedQuad(self.mag), PutSignedQuad(self.max_v), PutSignedQuad(self.max_h), Put2Bytes(stackdepth), Put2Bytes(len(self.pages))]))
# WriteFontDefinitions
self.WriteFontDefinitions(fp)
# WritePostPostamble
@@ -937,6 +943,12 @@
fp.write("(%s) " % self.byconv(self.font_def[e]['design_size']))
fp.write("at %s\n" % self.byconv(self.font_def[e]['scaled_size']))
# DumpPages
+ if not self.pages:
+ # dvistd0.pdf, Section A.1:
+ # > A DVI file consists of a ``preamble,'' followed by a sequence of
+ # > one or more "pages," followed by a ``postamble.''
+ warning('one or more pages required!')
+ self.pages.append({'count':[1,0,0,0,0,0,0,0,0,0], 'content':[]})
for page in self.pages:
fp.write("\n[page" + (" %d"*10 % tuple(page['count'])) + "]\n")
indent = 0
@@ -1163,12 +1175,12 @@
Please report bugs to
https://github.com/aminophen/dviasm"""
- version = """This is %prog-20200918
+ version = """This is %prog-20220918
Copyright (C) 2007-2008 by Jin-Hwan Cho <chofchof at ktug.or.kr>
Copyright (C) 2011-2017 by Khaled Hosny <khaledhosny at eglug.org>
Copyright (C) 2019 by Arthur Reutenauer <arthur at reutenauer.eu>
-Copyright (C) 2019-2020 by Hironobu Yamashita <h.y.acetaminophen at gmail.com>
+Copyright (C) 2019-2022 by Hironobu Yamashita <h.y.acetaminophen at gmail.com>
This is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -1249,11 +1261,17 @@
if __name__ == '__main__':
(options, args) = ProcessOptions()
aDVI = DVI(unit=options.unit)
- if IsDVI(args[0]): # dvi -> dump
- aDVI.Load(args[0])
+ if os.path.isfile(args[0]): fname = args[0]
+ elif os.path.isfile(args[0] + '.xdv'): fname = args[0] + '.xdv'
+ elif os.path.isfile(args[0] + '.dvi'): fname = args[0] + '.dvi'
+ else:
+ sys.stderr.write('File %s not found\n' % args[0])
+ sys.exit(1)
+ if IsDVI(fname): # dvi -> dump
+ aDVI.Load(fname)
if options.output: aDVI.Dump(options.output, tabsize=options.tabsize, encoding=options.encoding)
else: aDVI.DumpToFile(sys.stdout, tabsize=options.tabsize, encoding=options.encoding)
else: # dump -> dvi
- aDVI.Parse(args[0], encoding=options.encoding)
+ aDVI.Parse(fname, encoding=options.encoding)
if options.output: aDVI.Save(options.output)
else: aDVI.SaveToFile(sys.stdout.buffer)
Modified: trunk/Master/texmf-dist/doc/man/man1/dviasm.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/scripts/dviasm/dviasm.py
===================================================================
--- trunk/Master/texmf-dist/scripts/dviasm/dviasm.py 2022-09-18 19:43:14 UTC (rev 64429)
+++ trunk/Master/texmf-dist/scripts/dviasm/dviasm.py 2022-09-18 19:43:31 UTC (rev 64430)
@@ -6,7 +6,7 @@
# Copyright (C) 2007-2008 by Jin-Hwan Cho <chofchof at ktug.or.kr>
# Copyright (C) 2011-2017 by Khaled Hosny <khaledhosny at eglug.org>
# Copyright (C) 2019 by Arthur Reutenauer <arthur at reutenauer.eu>
-# Copyright (C) 2019-2020 by Hironobu Yamashita <h.y.acetaminophen at gmail.com>
+# Copyright (C) 2019-2022 by Hironobu Yamashita <h.y.acetaminophen at gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -72,7 +72,7 @@
DVI_IDS = (DVI_ID, DVIV_ID, XDVI_ID, XDV_ID)
def warning(msg):
- sys.stderr.write('%s\n' % msg)
+ sys.stderr.write('warning: %s\n' % msg)
def ValidID(dvi_id):
if dvi_id not in DVI_IDS:
@@ -606,6 +606,12 @@
# WriteFontDefinitions
self.WriteFontDefinitions(fp)
# WritePages
+ if not self.pages:
+ # dvistd0.pdf, Section A.1:
+ # > A DVI file consists of a ``preamble,'' followed by a sequence of
+ # > one or more "pages," followed by a ``postamble.''
+ warning('one or more pages required!')
+ self.pages.append({'count':[1,0,0,0,0,0,0,0,0,0], 'content':[]})
stackdepth = 0; loc = -1
for page in self.pages:
w = x = y = z = 0; stack = []
@@ -677,7 +683,7 @@
fp.write(b''.join(s))
# WritePostamble
post_loc = fp.tell()
- fp.write(b''.join([bytes.fromhex('%02x' % POST), PutSignedQuad(loc), PutSignedQuad(self.numerator), PutSignedQuad(self.denominator), PutSignedQuad(self.mag), PutSignedQuad(self.max_v), PutSignedQuad(self.max_h), Put2Bytes(stackdepth+1), Put2Bytes(len(self.pages))]))
+ fp.write(b''.join([bytes.fromhex('%02x' % POST), PutSignedQuad(loc), PutSignedQuad(self.numerator), PutSignedQuad(self.denominator), PutSignedQuad(self.mag), PutSignedQuad(self.max_v), PutSignedQuad(self.max_h), Put2Bytes(stackdepth), Put2Bytes(len(self.pages))]))
# WriteFontDefinitions
self.WriteFontDefinitions(fp)
# WritePostPostamble
@@ -937,6 +943,12 @@
fp.write("(%s) " % self.byconv(self.font_def[e]['design_size']))
fp.write("at %s\n" % self.byconv(self.font_def[e]['scaled_size']))
# DumpPages
+ if not self.pages:
+ # dvistd0.pdf, Section A.1:
+ # > A DVI file consists of a ``preamble,'' followed by a sequence of
+ # > one or more "pages," followed by a ``postamble.''
+ warning('one or more pages required!')
+ self.pages.append({'count':[1,0,0,0,0,0,0,0,0,0], 'content':[]})
for page in self.pages:
fp.write("\n[page" + (" %d"*10 % tuple(page['count'])) + "]\n")
indent = 0
@@ -1163,12 +1175,12 @@
Please report bugs to
https://github.com/aminophen/dviasm"""
- version = """This is %prog-20200918
+ version = """This is %prog-20220918
Copyright (C) 2007-2008 by Jin-Hwan Cho <chofchof at ktug.or.kr>
Copyright (C) 2011-2017 by Khaled Hosny <khaledhosny at eglug.org>
Copyright (C) 2019 by Arthur Reutenauer <arthur at reutenauer.eu>
-Copyright (C) 2019-2020 by Hironobu Yamashita <h.y.acetaminophen at gmail.com>
+Copyright (C) 2019-2022 by Hironobu Yamashita <h.y.acetaminophen at gmail.com>
This is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -1249,11 +1261,17 @@
if __name__ == '__main__':
(options, args) = ProcessOptions()
aDVI = DVI(unit=options.unit)
- if IsDVI(args[0]): # dvi -> dump
- aDVI.Load(args[0])
+ if os.path.isfile(args[0]): fname = args[0]
+ elif os.path.isfile(args[0] + '.xdv'): fname = args[0] + '.xdv'
+ elif os.path.isfile(args[0] + '.dvi'): fname = args[0] + '.dvi'
+ else:
+ sys.stderr.write('File %s not found\n' % args[0])
+ sys.exit(1)
+ if IsDVI(fname): # dvi -> dump
+ aDVI.Load(fname)
if options.output: aDVI.Dump(options.output, tabsize=options.tabsize, encoding=options.encoding)
else: aDVI.DumpToFile(sys.stdout, tabsize=options.tabsize, encoding=options.encoding)
else: # dump -> dvi
- aDVI.Parse(args[0], encoding=options.encoding)
+ aDVI.Parse(fname, encoding=options.encoding)
if options.output: aDVI.Save(options.output)
else: aDVI.SaveToFile(sys.stdout.buffer)
More information about the tex-live-commits
mailing list.