summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/generic/xypic/doc2tex.com
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/generic/xypic/doc2tex.com')
-rw-r--r--Master/texmf-dist/source/generic/xypic/doc2tex.com114
1 files changed, 114 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/generic/xypic/doc2tex.com b/Master/texmf-dist/source/generic/xypic/doc2tex.com
new file mode 100644
index 00000000000..c8d8f04f8be
--- /dev/null
+++ b/Master/texmf-dist/source/generic/xypic/doc2tex.com
@@ -0,0 +1,114 @@
+$!+++
+$!
+$! DOC2TEX.COM
+$!
+$! This procedure creates the *.TEX files from the *.DOC files of the XYpic
+$! package. It must be run from the XYpic source directory.
+$!
+$! R.Gaertner, based on personal communication with K.H.Rose
+$!
+$!---
+$ set noon
+$!
+$! loop over all files
+$!
+$file_loop:
+$ file = f$search("*.doc",1)
+$ if file .nes. ""
+$ then
+$ write sys$output "processing ''file' ..."
+$ !
+$ ! get the filename and open a temporary work file
+$ !
+$ name = f$parse(file,,,"NAME")
+$ open/write tmp 'name'.tmp
+$ open/read src 'file'
+$ !
+$ ! set control flags
+$ !
+$ hdr = "TRUE"
+$ skip = "FALSE"
+$ !
+$ ! loop through the source file
+$ !
+$ line = ""
+$loop:
+$ read/end=end_loop src line
+$ if hdr
+$ then ! copy the lines from start to the first "\DOCMODE" line
+$ if (f$length(line) .ge. 8) .and. (f$extract(0,8,line) .eqs. "\DOCMODE")
+$ then hdr = "FALSE"
+$ skip = "TRUE" ! stop copying
+$ goto loop
+$ endif
+$ ! the first \DOCMODE-line may also indicate the start of the body part
+$ if (f$length(line) .ge. 9) .and. (f$extract(0,9,line) .eqs. "\DOCMODE(")
+$ then skip = "FALSE" ! start copying
+$ goto loop
+$ endif
+$ else ! extract the lines between "\DOCMODE(" and "\DOCMODE)"
+$ if (f$length(line) .ge. 9) .and. (f$extract(0,9,line) .eqs. "\DOCMODE(")
+$ then skip = "FALSE" ! start copying
+$ goto loop
+$ endif
+$ if (f$length(line) .ge. 9) .and. (f$extract(0,9,line) .eqs. "\DOCMODE)")
+$ then skip = "TRUE" ! stop copying
+$ goto loop
+$ endif
+$ endif
+$ !
+$ ! skip empty lines
+$ !
+$ if f$edit(line,"COLLAPSE") .eqs. "" then goto loop
+$ !
+$ ! skip comment lines (starting with a single percent character)
+$ !
+$ if (line .eqs. "%") .or. -
+ ((f$length(line) .ge. 2) .and. -
+ (f$extract(0,1,line) .eqs. "%") .and. -
+ (f$extract(1,1,line) .nes. "%")) then goto loop
+$ !
+$ ! all preprocessing & checks done, copy the input line
+$ !
+$ if .not. skip then write tmp line
+$ goto loop
+$ !
+$ ! close source & work file
+$ !
+$end_loop:
+$ close tmp
+$ close src
+$ !
+$ ! convert the work file to standard text format and delete the work file
+$ !
+$ if f$search("text.fdl",2) .eqs. ""
+$ then create text.fdl
+SYSTEM
+ SOURCE OpenVMS
+
+FILE
+ ORGANIZATION sequential
+
+RECORD
+ BLOCK_SPAN yes
+ CARRIAGE_CONTROL carriage_return
+ FORMAT variable
+ SIZE 0
+
+$ endif
+$ convert/fdl=text.fdl 'name'.tmp 'name'.tex
+$ delete/nolog 'name'.tmp;*
+$ !
+$ ! process the next source
+$ !
+$ goto file_loop
+$ endif
+$ write sys$output "all done"
+$!
+$! clean up
+$!
+$ delete/nolog text.fdl;*
+$
+$ exit
+$!
+$! End of DOC2TEX.COM