program fix
character*132 line
character*20 fname
logical isopen
open(unit=1,file='help.txt',status='old',
1 carriagecontrol='none')
open(unit=6,file='index.html',status='new',
1 carriagecontrol='list')
write(6,100)
100 format('
')
write(6,101)
write(6,*) ''
write(6,*) ''
write(6,*) ''
101 format('RT-11 5.7 Help index')
write(6,102)
102 format('')
write(6,103)
103 format('')
write(6,104)
104 format('RT-11 5.7 Help index
')
write(6,105)
105 format('')
isopen=.false.
10 read(1,1,end=999) l,line
1 format(q,a132)
call htmlify(l,line)
if (index(line,'.ENDM').ne.0) then
write(10,76)
WRITE(10,*) '
'
WRITE(10,*) 'Tim Shoppa
'
WRITE(10,*) '7328 Bradley Blvd
'
WRITE(10,*) 'Bethesda, MD 20817
'
WRITE(10,*) 'Voice:+1 301 767 5917
'
WRITE(10,*) 'Fax:+1 301 767 5927
'
WRITE(10,*) 'Email:shoppa@trailing-edge.com'
WRITE(10,*) ''
76 format(' ')
close(10)
isopen=.false.
end if
if (index(line,'.MACRO').ne.0) go to 11
if (isopen) write(10,2) line
go to 10
11 if (index(line,'9999').ne.0) go to 10
2 format(a)
read(1,1,end=999) l,line
call htmlify(l,line)
do l2=1,l
ic=ichar(line(l2:l2))
if (ic.eq.9 .or. ic.eq.32) go to 290
end do
go to 10
c290 write(6,*) '- ',line(1:l2-1)
290 fname=line(1:l2-1)//'.html'
do i=1,l2+4
ic=ichar(fname(i:i))
if (ic.le.ichar('Z') .and. ic.ge.ichar('A')) ic=ic+32
fname(i:i)=char(ic)
end do
write(6,*) '
- ',
1 line(1:l2-1),''
close(10)
open(unit=10,file=fname,carriagecontrol='list',status='new')
isopen=.true.
write(10,*) ''
write(10,*) ' Help for ',line(1:l2-1),
1 ''
write(10,*) ''
write(10,*) ''
write(10,*) ''
write(10,*) '
'
write(10,2) line
do l3=l2+1,l
ic=ICHAR(line(l3:l3))
if (ic.ne.9 .and. ic.ne.32) go to 300
end do
write(10,*)
go to 10
300 write(6,*) '
- ',line(l3:l)
305 read(1,1,end=999) l,line
call htmlify(l,line)
l2=1
do l3=l2,l
ic=ICHAR(line(l3:l3))
if (ic.ne.9 .and. ic.ne.32) go to 310
end do
write(10,*)
go to 10
310 write(6,*) ' ',line(l3:l)
write(10,2) line
go to 305
999 write(6,*) '
'
WRITE(6,*) '
'
WRITE(6,*) ''
WRITE(6,*) 'Tim Shoppa
'
WRITE(6,*) '7328 Bradley Blvd
'
WRITE(6,*) 'Bethesda, MD 20817
'
WRITE(6,*) 'Voice:+1 301 767 5917
'
WRITE(6,*) 'Fax:+1 301 767 5927
'
WRITE(6,*) 'Email:shoppa@trailing-edge.com'
WRITE(6,*) ''
write(6,*) ''
close(6)
close(10)
end
subroutine htmlify(l,line)
character*(*) line
character c
integer l
c convert characters & < > " into their HTML-ized equivs
i=1
10 c=line(i:i)
if (c.eq.'<') then
type *,line
line(i+4:)=line(i+1:)
line(i:i+3)='<'
l=l+3
i=i+3
else if (c.eq.'>') then
type *,line
line(i+4:)=line(i+1:)
line(i:i+3)='>'
l=l+3
i=i+3
else if (c.eq.'&') then
type *,line
line(i+5:)=line(i+1:)
line(i:i+4)='&'
l=l+4
i=i+4
else if (c.eq.'"') then
type *,line
line(i+6:)=line(i+1:)
line(i:i+5)='"'
l=l+5
i=i+5
end if
i=i+1
if (i.le.l) go to 10
return
end