home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-08-11 | 76.4 KB | 5,593 lines |
- Newsgroups: comp.sources.misc
- From: jeff@joyce.cs.su.oz.au (Jeff Kingston)
- Subject: v38i079: lout - Lout document formatting system, v2.05, Part11/35
- Message-ID: <1993Aug8.180918.11792@sparky.sterling.com>
- X-Md4-Signature: c4a1bf64101d5cf649557c3fd32088f4
- Sender: kent@sparky.sterling.com (Kent Landfield)
- Organization: Sterling Software
- Date: Sun, 8 Aug 1993 18:09:18 GMT
- Approved: kent@sparky.sterling.com
-
- Submitted-by: jeff@joyce.cs.su.oz.au (Jeff Kingston)
- Posting-number: Volume 38, Issue 79
- Archive-name: lout/part11
- Environment: UNIX
- Supersedes: lout: Volume 37, Issue 99-128
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then feed it
- # into a shell via "sh file" or similar. To overwrite existing files,
- # type "sh file -c".
- # Contents: include/lout.hyph z14.c z17.c
- # Wrapped by kent@sparky on Sun Aug 8 12:29:24 1993
- PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
- echo If this archive is complete, you will see the following message:
- echo ' "shar: End of archive 11 (of 35)."'
- if test -f 'include/lout.hyph' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'include/lout.hyph'\"
- else
- echo shar: Extracting \"'include/lout.hyph'\" \(27421 characters\)
- sed "s/^X//" >'include/lout.hyph' <<'END_OF_FILE'
- X@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789
- XaA
- XbB
- XcC
- XdD
- XeE
- XfF
- XgG
- XhH
- XiI
- XjJ
- XkK
- XlL
- XmM
- XnN
- XoO
- XpP
- XqQ
- XrR
- XsS
- XtT
- XuU
- XvV
- XwW
- XxX
- XyY
- XzZ
- X
- X.ach4
- X.ad4der
- X.af1t
- X.al3t
- X.am5at
- X.an5c
- X.ang4
- X.ani5m
- X.ant4
- X.an3te
- X.anti5s
- X.ar5s
- X.ar4tie
- X.ar4ty
- X.as3c
- X.as1p
- X.as1s
- X.aster5
- X.atom5
- X.au1d
- X.av4i
- X.awn4
- X.ba4g
- X.ba5na
- X.bas4e
- X.ber4
- X.be5ra
- X.be3sm
- X.be5sto
- X.bri2
- X.but4ti
- X.cam4pe
- X.can5c
- X.capa5b
- X.car5ol
- X.ca4t
- X.ce4la
- X.ch4
- X.chill5i
- X.ci2
- X.cit5r
- X.co3e
- X.co4r
- X.cor5ner
- X.de4moi
- X.de3o
- X.de3ra
- X.de3ri
- X.des4c
- X.dictio5
- X.do4t
- X.du4c
- X.dumb5
- X.earth5
- X.eas3i
- X.eb4
- X.eer4
- X.eg2
- X.el5d
- X.el3em
- X.enam3
- X.en3g
- X.en3s
- X.eq5ui5t
- X.er4ri
- X.es3
- X.eu3
- X.eye5
- X.fes3
- X.for5mer
- X.ga2
- X.ge2
- X.gen3t4
- X.ge5og
- X.gi5a
- X.gi4b
- X.go4r
- X.hand5i
- X.han5k
- X.he2
- X.hero5i
- X.hes3
- X.het3
- X.hi3b
- X.hi3er
- X.hon5ey
- X.hon3o
- X.hov5
- X.id4l
- X.idol3
- X.im3m
- X.im5pin
- X.in1
- X.in3ci
- X.ine2
- X.in2k
- X.in3s
- X.ir5r
- X.is4i
- X.ju3r
- X.la4cy
- X.la4m
- X.lat5er
- X.lath5
- X.le2
- X.leg5e
- X.len4
- X.lep5
- X.lev1
- X.li4g
- X.lig5a
- X.li2n
- X.li3o
- X.li4t
- X.mag5a5
- X.mal5o
- X.man5a
- X.mar5ti
- X.me2
- X.mer3c
- X.me5ter
- X.mis1
- X.mist5i
- X.mon3e
- X.mo3ro
- X.mu5ta
- X.muta5b
- X.ni4c
- X.od2
- X.odd5
- X.of5te
- X.or5ato
- X.or3c
- X.or1d
- X.or3t
- X.os3
- X.os4tl
- X.oth3
- X.out3
- X.ped5al
- X.pe5te
- X.pe5tit
- X.pi4e
- X.pio5n
- X.pi2t
- X.pre3m
- X.ra4c
- X.ran4t
- X.ratio5na
- X.ree2
- X.re5mit
- X.res2
- X.re5stat
- X.ri4g
- X.rit5u
- X.ro4q
- X.ros5t
- X.row5d
- X.ru4d
- X.sci3e
- X.self5
- X.sell5
- X.se2n
- X.se5rie
- X.sh2
- X.si2
- X.sing4
- X.st4
- X.sta5bl
- X.sy2
- X.ta4
- X.te4
- X.ten5an
- X.th2
- X.ti2
- X.til4
- X.tim5o5
- X.ting4
- X.tin5k
- X.ton4a
- X.to4p
- X.top5i
- X.tou5s
- X.trib5ut
- X.un1a
- X.un3ce
- X.under5
- X.un1e
- X.un5k
- X.un5o
- X.un3u
- X.up3
- X.ure3
- X.us5a
- X.ven4de
- X.ve5ra
- X.wil5i
- X.ye4
- X4ab.
- Xa5bal
- Xa5ban
- Xabe2
- Xab5erd
- Xabi5a
- Xab5it5ab
- Xab5lat
- Xab5o5liz
- X4abr
- Xab5rog
- Xab3ul
- Xa4car
- Xac5ard
- Xac5aro
- Xa5ceou
- Xac1er
- Xa5chet
- X4a2ci
- Xa3cie
- Xac1in
- Xa3cio
- Xac5rob
- Xact5if
- Xac3ul
- Xac4um
- Xa2d
- Xad4din
- Xad5er.
- X2adi
- Xa3dia
- Xad3ica
- Xadi4er
- Xa3dio
- Xa3dit
- Xa5diu
- Xad4le
- Xad3ow
- Xad5ran
- Xad4su
- X4adu
- Xa3duc
- Xad5um
- Xae4r
- Xaeri4e
- Xa2f
- Xaff4
- Xa4gab
- Xaga4n
- Xag5ell
- Xage4o
- X4ageu
- Xag1i
- X4ag4l
- Xag1n
- Xa2go
- X3agog
- Xag3oni
- Xa5guer
- Xag5ul
- Xa4gy
- Xa3ha
- Xa3he
- Xah4l
- Xa3ho
- Xai2
- Xa5ia
- Xa3ic.
- Xai5ly
- Xa4i4n
- Xain5in
- Xain5o
- Xait5en
- Xa1j
- Xak1en
- Xal5ab
- Xal3ad
- Xa4lar
- X4aldi
- X2ale
- Xal3end
- Xa4lenti
- Xa5le5o
- Xal1i
- Xal4ia.
- Xali4e
- Xal5lev
- X4allic
- X4alm
- Xa5log.
- Xa4ly.
- X4alys
- X5a5lyst
- X5alyt
- X3alyz
- X4ama
- Xam5ab
- Xam3ag
- Xama5ra
- Xam5asc
- Xa4matis
- Xa4m5ato
- Xam5era
- Xam3ic
- Xam5if
- Xam5ily
- Xam1in
- Xami4no
- Xa2mo
- Xa5mon
- Xamor5i
- Xamp5en
- Xa2n
- Xan3age
- X3analy
- Xa3nar
- Xan3arc
- Xanar4i
- Xa3nati
- X4and
- Xande4s
- Xan3dis
- Xan1dl
- Xan4dow
- Xa5nee
- Xa3nen
- Xan5est.
- Xa3neu
- X2ang
- Xang5ie
- Xan1gl
- Xa4n1ic
- Xa3nies
- Xan3i3f
- Xan4ime
- Xa5nimi
- Xa5nine
- Xan3io
- Xa3nip
- Xan3ish
- Xan3it
- Xa3niu
- Xan4kli
- X5anniz
- Xano4
- Xan5ot
- Xanoth5
- Xan2sa
- Xan4sco
- Xan4sn
- Xan2sp
- Xans3po
- Xan4st
- Xan4sur
- Xantal4
- Xan4tie
- X4anto
- Xan2tr
- Xan4tw
- Xan3ua
- Xan3ul
- Xa5nur
- X4ao
- Xapar4
- Xap5at
- Xap5ero
- Xa3pher
- X4aphi
- Xa4pilla
- Xap5illar
- Xap3in
- Xap3ita
- Xa3pitu
- Xa2pl
- Xapoc5
- Xap5ola
- Xapor5i
- Xapos3t
- Xaps5es
- Xa3pu
- Xaque5
- X2a2r
- Xar3act
- Xa5rade
- Xar5adis
- Xar3al
- Xa5ramete
- Xaran4g
- Xara3p
- Xar4at
- Xa5ratio
- Xar5ativ
- Xa5rau
- Xar5av4
- Xaraw4
- Xarbal4
- Xar4chan
- Xar5dine
- Xar4dr
- Xar5eas
- Xa3ree
- Xar3ent
- Xa5ress
- Xar4fi
- Xar4fl
- Xar1i
- Xar5ial
- Xar3ian
- Xa3riet
- Xar4im
- Xar5inat
- Xar3io
- Xar2iz
- Xar2mi
- Xar5o5d
- Xa5roni
- Xa3roo
- Xar2p
- Xar3q
- Xarre4
- Xar4sa
- Xar2sh
- X4as.
- Xas4ab
- Xas3ant
- Xashi4
- Xa5sia.
- Xa3sib
- Xa3sic
- X5a5si4t
- Xask3i
- Xas4l
- Xa4soc
- Xas5ph
- Xas4sh
- Xas3ten
- Xas1tr
- Xasur5a
- Xa2ta
- Xat3abl
- Xat5ac
- Xat3alo
- Xat5ap
- Xate5c
- Xat5ech
- Xat3ego
- Xat3en.
- Xat3era
- Xater5n
- Xa5terna
- Xat3est
- Xat5ev
- X4ath
- Xath5em
- Xa5then
- Xat4ho
- Xath5om
- X4ati.
- Xa5tia
- Xat5i5b
- Xat1ic
- Xat3if
- Xation5ar
- Xat3itu
- Xa4tog
- Xa2tom
- Xat5omiz
- Xa4top
- Xa4tos
- Xa1tr
- Xat5rop
- Xat4sk
- Xat4tag
- Xat5te
- Xat4th
- Xa2tu
- Xat5ua
- Xat5ue
- Xat3ul
- Xat3ura
- Xa2ty
- Xau4b
- Xaugh3
- Xau3gu
- Xau4l2
- Xaun5d
- Xau3r
- Xau5sib
- Xaut5en
- Xau1th
- Xa2va
- Xav3ag
- Xa5van
- Xave4no
- Xav3era
- Xav5ern
- Xav5ery
- Xav1i
- Xavi4er
- Xav3ig
- Xav5oc
- Xa1vor
- X3away
- Xaw3i
- Xaw4ly
- Xaws4
- Xax4ic
- Xax4id
- Xay5al
- Xaye4
- Xays4
- Xazi4er
- Xazz5i
- X5ba.
- Xbad5ger
- Xba4ge
- Xbal1a
- Xban5dag
- Xban4e
- Xban3i
- Xbarbi5
- Xbari4a
- Xbas4si
- X1bat
- Xba4z
- X2b1b
- Xb2be
- Xb3ber
- Xbbi4na
- X4b1d
- X4be.
- Xbeak4
- Xbeat3
- X4be2d
- Xbe3da
- Xbe3de
- Xbe3di
- Xbe3gi
- Xbe5gu
- X1bel
- Xbe1li
- Xbe3lo
- X4be5m
- Xbe5nig
- Xbe5nu
- X4bes4
- Xbe3sp
- Xbe5str
- X3bet
- Xbet5iz
- Xbe5tr
- Xbe3tw
- Xbe3w
- Xbe5yo
- X2bf
- X4b3h
- Xbi2b
- Xbi4d
- X3bie
- Xbi5en
- Xbi4er
- X2b3if
- X1bil
- Xbi3liz
- Xbina5r4
- Xbin4d
- Xbi5net
- Xbi3ogr
- Xbi5ou
- Xbi2t
- X3bi3tio
- Xbi3tr
- X3bit5ua
- Xb5itz
- Xb1j
- Xbk4
- Xb2l2
- Xblath5
- Xb4le.
- Xblen4
- X5blesp
- Xb3lis
- Xb4lo
- Xblun4t
- X4b1m
- X4b3n
- Xbne5g
- X3bod
- Xbod3i
- Xbo4e
- Xbol3ic
- Xbom4bi
- Xbon4a
- Xbon5at
- X3boo
- X5bor.
- X4b1ora
- Xbor5d
- X5bore
- X5bori
- X5bos4
- Xb5ota
- Xboth5
- Xbo4to
- Xbound3
- X4bp
- X4brit
- Xbroth3
- X2b5s2
- Xbsor4
- X2bt
- Xbt4l
- Xb4to
- Xb3tr
- Xbuf4fer
- Xbu4ga
- Xbu3li
- Xbumi4
- Xbu4n
- Xbunt4i
- Xbu3re
- Xbus5ie
- Xbuss4e
- X5bust
- X4buta
- X3butio
- Xb5uto
- Xb1v
- X4b5w
- X5by.
- Xbys4
- X1ca
- Xcab3in
- Xca1bl
- Xcach4
- Xca5den
- X4cag4
- X2c5ah
- Xca3lat
- Xcal4la
- Xcall5in
- X4calo
- Xcan5d
- Xcan4e
- Xcan4ic
- Xcan5is
- Xcan3iz
- Xcan4ty
- Xcany4
- Xca5per
- Xcar5om
- Xcast5er
- Xcas5tig
- X4casy
- Xca4th
- X4cativ
- Xcav5al
- Xc3c
- Xccha5
- Xcci4a
- Xccompa5
- Xccon4
- Xccou3t
- X2ce.
- X4ced.
- X4ceden
- X3cei
- X5cel.
- X3cell
- X1cen
- X3cenc
- X2cen4e
- X4ceni
- X3cent
- X3cep
- Xce5ram
- X4cesa
- X3cessi
- Xces5si5b
- Xces5t
- Xcet4
- Xc5e4ta
- Xcew4
- X2ch
- X4ch.
- X4ch3ab
- X5chanic
- Xch5a5nis
- Xche2
- Xcheap3
- X4ched
- Xche5lo
- X3chemi
- Xch5ene
- Xch3er.
- Xch3ers
- X4ch1in
- X5chine.
- Xch5iness
- X5chini
- X5chio
- X3chit
- Xchi2z
- X3cho2
- Xch4ti
- X1ci
- X3cia
- Xci2a5b
- Xcia5r
- Xci5c
- X4cier
- X5cific.
- X4cii
- Xci4la
- X3cili
- X2cim
- X2cin
- Xc4ina
- X3cinat
- Xcin3em
- Xc1ing
- Xc5ing.
- X5cino
- Xcion4
- X4cipe
- Xci3ph
- X4cipic
- X4cista
- X4cisti
- X2c1it
- Xcit3iz
- X5ciz
- Xck1
- Xck3i
- X1c4l4
- X4clar
- Xc5laratio
- X5clare
- Xcle4m
- X4clic
- Xclim4
- Xcly4
- Xc5n
- X1co
- Xco5ag
- Xcoe2
- X2cog
- Xco4gr
- Xcoi4
- Xco3inc
- Xcol5i
- X5colo
- Xcol3or
- Xcom5er
- Xcon4a
- Xc4one
- Xcon3g
- Xcon5t
- Xco3pa
- Xcop3ic
- Xco4pl
- X4corb
- Xcoro3n
- Xcos4e
- Xcov1
- Xcove4
- Xcow5a
- Xcoz5e
- Xco5zi
- Xc1q
- Xcras5t
- X5crat.
- X5cratic
- Xcre3at
- X5cred
- X4c3reta
- Xcre4v
- Xcri2
- Xcri5f
- Xc4rin
- Xcris4
- X5criti
- Xcro4pl
- Xcrop5o
- Xcros4e
- Xcru4d
- X4c3s2
- X2c1t
- Xcta4b
- Xct5ang
- Xc5tant
- Xc2te
- Xc3ter
- Xc4ticu
- Xctim3i
- Xctu4r
- Xc4tw
- Xcud5
- Xc4uf
- Xc4ui
- Xcu5ity
- X5culi
- Xcul4tis
- X3cultu
- Xcu2ma
- Xc3ume
- Xcu4mi
- X3cun
- Xcu3pi
- Xcu5py
- Xcur5a4b
- Xcu5ria
- X1cus
- Xcuss4i
- X3c4ut
- Xcu4tie
- X4c5utiv
- X4cutr
- X1cy
- Xcze4
- X1d2a
- X5da.
- X2d3a4b
- Xdach4
- X4daf
- X2dag
- Xda2m2
- Xdan3g
- Xdard5
- Xdark5
- X4dary
- X3dat
- X4dativ
- X4dato
- X5dav4
- Xdav5e
- X5day
- Xd1b
- Xd5c
- Xd1d4
- X2de.
- Xdeaf5
- Xdeb5it
- Xde4bon
- Xdecan4
- Xde4cil
- Xde5com
- X2d1ed
- X4dee.
- Xde5if
- Xdeli4e
- Xdel5i5q
- Xde5lo
- Xd4em
- X5dem.
- X3demic
- Xdem5ic.
- Xde5mil
- Xde4mons
- Xdemor5
- X1den
- Xde4nar
- Xde3no
- Xdenti5f
- Xde3nu
- Xde1p
- Xde3pa
- Xdepi4
- Xde2pu
- Xd3eq
- Xd4erh
- X5derm
- Xdern5iz
- Xder5s
- Xdes2
- Xd2es.
- Xde1sc
- Xde2s5o
- Xdes3ti
- Xde3str
- Xde4su
- Xde1t
- Xde2to
- Xde1v
- Xdev3il
- X4dey
- X4d1f
- Xd4ga
- Xd3ge4t
- Xdg1i
- Xd2gy
- Xd1h2
- X5di.
- X1d4i3a
- Xdia5b
- Xdi4cam
- Xd4ice
- X3dict
- X3did
- X5di3en
- Xd1if
- Xdi3ge
- Xdi4lato
- Xd1in
- X1dina
- X3dine.
- X5dini
- Xdi5niz
- X1dio
- Xdio5g
- Xdi4pl
- Xdir2
- Xdi1re
- Xdirt5i
- Xdis1
- X5disi
- Xd4is3t
- Xd2iti
- X1di1v
- Xd1j
- Xd5k2
- X4d5la
- X3dle.
- X3dled
- X3dles.
- X4dless
- X2d3lo
- X4d5lu
- X2dly
- Xd1m
- X4d1n4
- X1do
- X3do.
- Xdo5de
- X5doe
- X2d5of
- Xd4og
- Xdo4la
- Xdoli4
- Xdo5lor
- Xdom5iz
- Xdo3nat
- Xdoni4
- Xdoo3d
- Xdop4p
- Xd4or
- X3dos
- X4d5out
- Xdo4v
- X3dox
- Xd1p
- X1dr
- Xdrag5on
- X4drai
- Xdre4
- Xdrea5r
- X5dren
- Xdri4b
- Xdril4
- Xdro4p
- X4drow
- X5drupli
- X4dry
- X2d1s2
- Xds4p
- Xd4sw
- Xd4sy
- Xd2th
- X1du
- Xd1u1a
- Xdu2c
- Xd1uca
- Xduc5er
- X4duct.
- X4ducts
- Xdu5el
- Xdu4g
- Xd3ule
- Xdum4be
- Xdu4n
- X4dup
- Xdu4pe
- Xd1v
- Xd1w
- Xd2y
- X5dyn
- Xdy4se
- Xdys5p
- Xe1a4b
- Xe3act
- Xead1
- Xead5ie
- Xea4ge
- Xea5ger
- Xea4l
- Xeal5er
- Xeal3ou
- Xeam3er
- Xe5and
- Xear3a
- Xear4c
- Xear5es
- Xear4ic
- Xear4il
- Xear5k
- Xear2t
- Xeart3e
- Xea5sp
- Xe3ass
- Xeast3
- Xea2t
- Xeat5en
- Xeath3i
- Xe5atif
- Xe4a3tu
- Xea2v
- Xeav3en
- Xeav5i
- Xeav5o
- X2e1b
- Xe4bel.
- Xe4bels
- Xe4ben
- Xe4bit
- Xe3br
- Xe4cad
- Xecan5c
- Xecca5
- Xe1ce
- Xec5essa
- Xec2i
- Xe4cib
- Xec5ificat
- Xec5ifie
- Xec5ify
- Xec3im
- Xeci4t
- Xe5cite
- Xe4clam
- Xe4clus
- Xe2col
- Xe4comm
- Xe4compe
- Xe4conc
- Xe2cor
- Xec3ora
- Xeco5ro
- Xe1cr
- Xe4crem
- Xec4tan
- Xec4te
- Xe1cu
- Xe4cul
- Xec3ula
- X2e2da
- X4ed3d
- Xe4d1er
- Xede4s
- X4edi
- Xe3dia
- Xed3ib
- Xed3ica
- Xed3im
- Xed1it
- Xedi5z
- X4edo
- Xe4dol
- Xedon2
- Xe4dri
- Xe4dul
- Xed5ulo
- Xee2c
- Xeed3i
- Xee2f
- Xeel3i
- Xee4ly
- Xee2m
- Xee4na
- Xee4p1
- Xee2s4
- Xeest4
- Xee4ty
- Xe5ex
- Xe1f
- Xe4f3ere
- X1eff
- Xe4fic
- X5efici
- Xefil4
- Xe3fine
- Xef5i5nite
- X3efit
- Xefor5es
- Xe4fuse.
- X4egal
- Xeger4
- Xeg5ib
- Xeg4ic
- Xeg5ing
- Xe5git5
- Xeg5n
- Xe4go.
- Xe4gos
- Xeg1ul
- Xe5gur
- X5egy
- Xe1h4
- Xeher4
- Xei2
- Xe5ic
- Xei5d
- Xeig2
- Xei5gl
- Xe3imb
- Xe3inf
- Xe1ing
- Xe5inst
- Xeir4d
- Xeit3e
- Xei3th
- Xe5ity
- Xe1j
- Xe4jud
- Xej5udi
- Xeki4n
- Xek4la
- Xe1la
- Xe4la.
- Xe4lac
- Xelan4d
- Xel5ativ
- Xe4law
- Xelaxa4
- Xe3lea
- Xel5ebra
- X5elec
- Xe4led
- Xel3ega
- Xe5len
- Xe4l1er
- Xe1les
- Xel2f
- Xel2i
- Xe3libe
- Xe4l5ic.
- Xel3ica
- Xe3lier
- Xel5igib
- Xe5lim
- Xe4l3ing
- Xe3lio
- Xe2lis
- Xel5ish
- Xe3liv3
- X4ella
- Xel4lab
- Xello4
- Xe5loc
- Xel5og
- Xel3op.
- Xel2sh
- Xel4ta
- Xe5lud
- Xel5ug
- Xe4mac
- Xe4mag
- Xe5man
- Xem5ana
- Xem5b
- Xe1me
- Xe2mel
- Xe4met
- Xem3ica
- Xemi4e
- Xem5igra
- Xem1in2
- Xem5ine
- Xem3i3ni
- Xe4mis
- Xem5ish
- Xe5miss
- Xem3iz
- X5emniz
- Xemo4g
- Xemoni5o
- Xem3pi
- Xe4mul
- Xem5ula
- Xemu3n
- Xe3my
- Xen5amo
- Xe4nant
- Xench4er
- Xen3dic
- Xe5nea
- Xe5nee
- Xen3em
- Xen5ero
- Xen5esi
- Xen5est
- Xen3etr
- Xe3new
- Xen5ics
- Xe5nie
- Xe5nil
- Xe3nio
- Xen3ish
- Xen3it
- Xe5niu
- X5eniz
- X4enn
- X4eno
- Xeno4g
- Xe4nos
- Xen3ov
- Xen4sw
- Xent5age
- X4enthes
- Xen3ua
- Xen5uf
- Xe3ny.
- X4en3z
- Xe5of
- Xeo2g
- Xe4oi4
- Xe3ol
- Xeop3ar
- Xe1or
- Xeo3re
- Xeo5rol
- Xeos4
- Xe4ot
- Xeo4to
- Xe5out
- Xe5ow
- Xe2pa
- Xe3pai
- Xep5anc
- Xe5pel
- Xe3pent
- Xep5etitio
- Xephe4
- Xe4pli
- Xe1po
- Xe4prec
- Xep5reca
- Xe4pred
- Xep3reh
- Xe3pro
- Xe4prob
- Xep4sh
- Xep5ti5b
- Xe4put
- Xep5uta
- Xe1q
- Xequi3l
- Xe4q3ui3s
- Xer1a
- Xera4b
- X4erand
- Xer3ar
- X4erati.
- X2erb
- Xer4bl
- Xer3ch
- Xer4che
- X2ere.
- Xe3real
- Xere5co
- Xere3in
- Xer5el.
- Xer3emo
- Xer5ena
- Xer5ence
- X4erene
- Xer3ent
- Xere4q
- Xer5ess
- Xer3est
- Xeret4
- Xer1h
- Xer1i
- Xe1ria4
- X5erick
- Xe3rien
- Xeri4er
- Xer3ine
- Xe1rio
- X4erit
- Xer4iu
- Xeri4v
- Xe4riva
- Xer3m4
- Xer4nis
- X4ernit
- X5erniz
- Xer3no
- X2ero
- Xer5ob
- Xe5roc
- Xero4r
- Xer1ou
- Xer1s
- Xer3set
- Xert3er
- X4ertl
- Xer3tw
- X4eru
- Xeru4t
- X5erwau
- Xe1s4a
- Xe4sage.
- Xe4sages
- Xes2c
- Xe2sca
- Xes5can
- Xe3scr
- Xes5cu
- Xe1s2e
- Xe2sec
- Xes5ecr
- Xes5enc
- Xe4sert.
- Xe4serts
- Xe4serva
- X4esh
- Xe3sha
- Xesh5en
- Xe1si
- Xe2sic
- Xe2sid
- Xes5iden
- Xes5igna
- Xe2s5im
- Xes4i4n
- Xesis4te
- Xesi4u
- Xe5skin
- Xes4mi
- Xe2sol
- Xes3olu
- Xe2son
- Xes5ona
- Xe1sp
- Xes3per
- Xes5pira
- Xes4pre
- X2ess
- Xes4si4b
- Xestan4
- Xes3tig
- Xes5tim
- X4es2to
- Xe3ston
- X2estr
- Xe5stro
- Xestruc5
- Xe2sur
- Xes5urr
- Xes4w
- Xeta4b
- Xeten4d
- Xe3teo
- Xethod3
- Xet1ic
- Xe5tide
- Xetin4
- Xeti4no
- Xe5tir
- Xe5titio
- Xet5itiv
- X4etn
- Xet5ona
- Xe3tra
- Xe3tre
- Xet3ric
- Xet5rif
- Xet3rog
- Xet5ros
- Xet3ua
- Xet5ym
- Xet5z
- X4eu
- Xe5un
- Xe3up
- Xeu3ro
- Xeus4
- Xeute4
- Xeuti5l
- Xeu5tr
- Xeva2p5
- Xe2vas
- Xev5ast
- Xe5vea
- Xev3ell
- Xevel3o
- Xe5veng
- Xeven4i
- Xev1er
- Xe5verb
- Xe1vi
- Xev3id
- Xevi4l
- Xe4vin
- Xevi4v
- Xe5voc
- Xe5vu
- Xe1wa
- Xe4wag
- Xe5wee
- Xe3wh
- Xewil5
- Xew3ing
- Xe3wit
- X1exp
- X5eyc
- X5eye.
- Xeys4
- X1fa
- Xfa3bl
- Xfab3r
- Xfa4ce
- X4fag
- Xfain4
- Xfall5e
- X4fa4ma
- Xfam5is
- X5far
- Xfar5th
- Xfa3ta
- Xfa3the
- X4fato
- Xfault5
- X4f5b
- X4fd
- X4fe.
- Xfeas4
- Xfeath3
- Xfe4b
- X4feca
- X5fect
- X2fed
- Xfe3li
- Xfe4mo
- Xfen2d
- Xfend5e
- Xfer1
- X5ferr
- Xfev4
- X4f1f
- Xf4fes
- Xf4fie
- Xf5fin.
- Xf2f5is
- Xf4fly
- Xf2fy
- X4fh
- X1fi
- Xfi3a
- X2f3ic.
- X4f3ical
- Xf3ican
- X4ficate
- Xf3icen
- Xfi3cer
- Xfic4i
- X5ficia
- X5ficie
- X4fics
- Xfi3cu
- Xfi5del
- Xfight5
- Xfil5i
- Xfill5in
- X4fily
- X2fin
- X5fina
- Xfin2d5
- Xfi2ne
- Xf1in3g
- Xfin4n
- Xfis4ti
- Xf4l2
- Xf5less
- Xflin4
- Xflo3re
- Xf2ly5
- X4fm
- X4fn
- X1fo
- X5fon
- Xfon4de
- Xfon4t
- Xfo2r
- Xfo5rat
- Xfor5ay
- Xfore5t
- Xfor4i
- Xfort5a
- Xfos5
- X4f5p
- Xfra4t
- Xf5rea
- Xfres5c
- Xfri2
- Xfril4
- Xfrol5
- X2f3s
- X2ft
- Xf4to
- Xf2ty
- X3fu
- Xfu5el
- X4fug
- Xfu4min
- Xfu5ne
- Xfu3ri
- Xfusi4
- Xfus4s
- X4futa
- X1fy
- X1ga
- Xgaf4
- X5gal.
- X3gali
- Xga3lo
- X2gam
- Xga5met
- Xg5amo
- Xgan5is
- Xga3niz
- Xgani5za
- X4gano
- Xgar5n4
- Xgass4
- Xgath3
- X4gativ
- X4gaz
- Xg3b
- Xgd4
- X2ge.
- X2ged
- Xgeez4
- Xgel4in
- Xge5lis
- Xge5liz
- X4gely
- X1gen
- Xge4nat
- Xge5niz
- X4geno
- X4geny
- X1geo
- Xge3om
- Xg4ery
- X5gesi
- Xgeth5
- X4geto
- Xge4ty
- Xge4v
- X4g1g2
- Xg2ge
- Xg3ger
- Xgglu5
- Xggo4
- Xgh3in
- Xgh5out
- Xgh4to
- X5gi.
- X1gi4a
- Xgia5r
- Xg1ic
- X5gicia
- Xg4ico
- Xgien5
- X5gies.
- Xgil4
- Xg3imen
- X3g4in.
- Xgin5ge
- X5g4ins
- X5gio
- X3gir
- Xgir4l
- Xg3isl
- Xgi4u
- X5giv
- X3giz
- Xgl2
- Xgla4
- Xglad5i
- X5glas
- X1gle
- Xgli4b
- Xg3lig
- X3glo
- Xglo3r
- Xg1m
- Xg4my
- Xgn4a
- Xg4na.
- Xgnet4t
- Xg1ni
- Xg2nin
- Xg4nio
- Xg1no
- Xg4non
- X1go
- X3go.
- Xgob5
- X5goe
- X3g4o4g
- Xgo3is
- Xgon2
- X4g3o3na
- Xgondo5
- Xgo3ni
- X5goo
- Xgo5riz
- Xgor5ou
- X5gos.
- Xgov1
- Xg3p
- X1gr
- X4grada
- Xg4rai
- Xgran2
- X5graph.
- Xg5rapher
- X5graphic
- X4graphy
- X4gray
- Xgre4n
- X4gress.
- X4grit
- Xg4ro
- Xgruf4
- Xgs2
- Xg5ste
- Xgth3
- Xgu4a
- X3guard
- X2gue
- X5gui5t
- X3gun
- X3gus
- X4gu4t
- Xg3w
- X1gy
- X2g5y3n
- Xgy5ra
- Xh3ab4l
- Xhach4
- Xhae4m
- Xhae4t
- Xh5agu
- Xha3la
- Xhala3m
- Xha4m
- Xhan4ci
- Xhan4cy
- X5hand.
- Xhan4g
- Xhang5er
- Xhang5o
- Xh5a5niz
- Xhan4k
- Xhan4te
- Xhap3l
- Xhap5t
- Xha3ran
- Xha5ras
- Xhar2d
- Xhard3e
- Xhar4le
- Xharp5en
- Xhar5ter
- Xhas5s
- Xhaun4
- X5haz
- Xhaz3a
- Xh1b
- X1head
- X3hear
- Xhe4can
- Xh5ecat
- Xh4ed
- Xhe5do5
- Xhe3l4i
- Xhel4lis
- Xhel4ly
- Xh5elo
- Xhem4p
- Xhe2n
- Xhena4
- Xhen5at
- Xheo5r
- Xhep5
- Xh4era
- Xhera3p
- Xher4ba
- Xhere5a
- Xh3ern
- Xh5erou
- Xh3ery
- Xh1es
- Xhe2s5p
- Xhe4t
- Xhet4ed
- Xheu4
- Xh1f
- Xh1h
- Xhi5an
- Xhi4co
- Xhigh5
- Xh4il2
- Xhimer4
- Xh4ina
- Xhion4e
- Xhi4p
- Xhir4l
- Xhi3ro
- Xhir4p
- Xhir4r
- Xhis3el
- Xhis4s
- Xhith5er
- Xhi2v
- X4hk
- X4h1l4
- Xhlan4
- Xh2lo
- Xhlo3ri
- X4h1m
- Xhmet4
- X2h1n
- Xh5odiz
- Xh5ods
- Xho4g
- Xhoge4
- Xhol5ar
- X3hol4e
- Xho4ma
- Xhome3
- Xhon4a
- Xho5ny
- X3hood
- Xhoon4
- Xhor5at
- Xho5ris
- Xhort3e
- Xho5ru
- Xhos4e
- Xho5sen
- Xhos1p
- X1hous
- Xhouse3
- Xhov5el
- X4h5p
- X4hr4
- Xhree5
- Xhro5niz
- Xhro3po
- X4h1s2
- Xh4sh
- Xh4tar
- Xht1en
- Xht5es
- Xh4ty
- Xhu4g
- Xhu4min
- Xhun5ke
- Xhun4t
- Xhus3t4
- Xhu4t
- Xh1w
- Xh4wart
- Xhy3pe
- Xhy3ph
- Xhy2s
- X2i1a
- Xi2al
- Xiam4
- Xiam5ete
- Xi2an
- X4ianc
- Xian3i
- X4ian4t
- Xia5pe
- Xiass4
- Xi4ativ
- Xia4tric
- Xi4atu
- Xibe4
- Xib3era
- Xib5ert
- Xib5ia
- Xib3in
- Xib5it.
- Xib5ite
- Xi1bl
- Xib3li
- Xi5bo
- Xi1br
- Xi2b5ri
- Xi5bun
- X4icam
- X5icap
- X4icar
- Xi4car.
- Xi4cara
- Xicas5
- Xi4cay
- Xiccu4
- X4iceo
- X4ich
- X2ici
- Xi5cid
- Xic5ina
- Xi2cip
- Xic3ipa
- Xi4cly
- Xi2c5oc
- X4i1cr
- X5icra
- Xi4cry
- Xic4te
- Xictu2
- Xic4t3ua
- Xic3ula
- Xic4um
- Xic5uo
- Xi3cur
- X2id
- Xi4dai
- Xid5anc
- Xid5d
- Xide3al
- Xide4s
- Xi2di
- Xid5ian
- Xidi4ar
- Xi5die
- Xid3io
- Xidi5ou
- Xid1it
- Xid5iu
- Xi3dle
- Xi4dom
- Xid3ow
- Xi4dr
- Xi2du
- Xid5uo
- X2ie4
- Xied4e
- X5ie5ga
- Xield3
- Xien5a4
- Xien4e
- Xi5enn
- Xi3enti
- Xi1er.
- Xi3esc
- Xi1est
- Xi3et
- X4if.
- Xif5ero
- Xiff5en
- Xif4fr
- X4ific.
- Xi3fie
- Xi3fl
- X4ift
- X2ig
- Xiga5b
- Xig3era
- Xight3i
- X4igi
- Xi3gib
- Xig3il
- Xig3in
- Xig3it
- Xi4g4l
- Xi2go
- Xig3or
- Xig5ot
- Xi5gre
- Xigu5i
- Xig1ur
- Xi3h
- X4i5i4
- Xi3j
- X4ik
- Xi1la
- Xil3a4b
- Xi4lade
- Xi2l5am
- Xila5ra
- Xi3leg
- Xil1er
- Xilev4
- Xil5f
- Xil1i
- Xil3ia
- Xil2ib
- Xil3io
- Xil4ist
- X2ilit
- Xil2iz
- Xill5ab
- X4iln
- Xil3oq
- Xil4ty
- Xil5ur
- Xil3v
- Xi4mag
- Xim3age
- Xima5ry
- Ximenta5r
- X4imet
- Xim1i
- Xim5ida
- Ximi5le
- Xi5mini
- X4imit
- Xim4ni
- Xi3mon
- Xi2mu
- Xim3ula
- X2in.
- Xi4n3au
- X4inav
- Xincel4
- Xin3cer
- X4ind
- Xin5dling
- X2ine
- Xi3nee
- Xiner4ar
- Xi5ness
- X4inga
- X4inge
- Xin5gen
- X4ingi
- Xin5gling
- X4ingo
- X4ingu
- X2ini
- Xi5ni.
- Xi4nia
- Xin3io
- Xin1is
- Xi5nite.
- X5initio
- Xin3ity
- X4ink
- X4inl
- X2inn
- X2i1no
- Xi4no4c
- Xino4s
- Xi4not
- X2ins
- Xin3se
- Xinsur5a
- X2int.
- X2in4th
- Xin1u
- Xi5nus
- X4iny
- X2io
- X4io.
- Xioge4
- Xio2gr
- Xi1ol
- Xio4m
- Xion3at
- Xion4ery
- Xion3i
- Xio5ph
- Xior3i
- Xi4os
- Xio5th
- Xi5oti
- Xio4to
- Xi4our
- X2ip
- Xipe4
- Xiphras4
- Xip3i
- Xip4ic
- Xip4re4
- Xip3ul
- Xi3qua
- Xiq5uef
- Xiq3uid
- Xiq3ui3t
- X4ir
- Xi1ra
- Xira4b
- Xi4rac
- Xird5e
- Xire4de
- Xi4ref
- Xi4rel4
- Xi4res
- Xir5gi
- Xir1i
- Xiri5de
- Xir4is
- Xiri3tu
- X5i5r2iz
- Xir4min
- Xiro4g
- X5iron.
- Xir5ul
- X2is.
- Xis5ag
- Xis3ar
- Xisas5
- X2is1c
- Xis3ch
- X4ise
- Xis3er
- X3isf
- Xis5han
- Xis3hon
- Xish5op
- Xis3ib
- Xisi4d
- Xi5sis
- Xis5itiv
- X4is4k
- Xislan4
- X4isms
- Xi2so
- Xiso5mer
- Xis1p
- Xis2pi
- Xis4py
- X4is1s
- Xis4sal
- Xissen4
- Xis4ses
- Xis4ta.
- Xis1te
- Xis1ti
- Xist4ly
- X4istral
- Xi2su
- Xis5us
- X4ita.
- Xita4bi
- Xi4tag
- X4ita5m
- Xi3tan
- Xi3tat
- X2ite
- Xit3era
- Xi5teri
- Xit4es
- X2ith
- Xi1ti
- X4itia
- X4i2tic
- Xit3ica
- X5i5tick
- Xit3ig
- Xit5ill
- Xi2tim
- X2itio
- X4itis
- Xi4tism
- Xi2t5o5m
- X4iton
- Xi4tram
- Xit5ry
- X4itt
- Xit3uat
- Xi5tud
- Xit3ul
- X4itz.
- Xi1u
- X2iv
- Xiv3ell
- Xiv3en.
- Xi4v3er.
- Xi4vers.
- Xiv5il.
- Xiv5io
- Xiv1it
- Xi5vore
- Xiv3o3ro
- Xi4v3ot
- X4i5w
- Xix4o
- X4iy
- X4izar
- Xizi4
- X5izont
- X5ja
- Xjac4q
- Xja4p
- X1je
- Xjer5s
- X4jestie
- X4jesty
- Xjew3
- Xjo4p
- X5judg
- X3ka.
- Xk3ab
- Xk5ag
- Xkais4
- Xkal4
- Xk1b
- Xk2ed
- X1kee
- Xke4g
- Xke5li
- Xk3en4d
- Xk1er
- Xkes4
- Xk3est.
- Xke4ty
- Xk3f
- Xkh4
- Xk1i
- X5ki.
- X5k2ic
- Xk4ill
- Xkilo5
- Xk4im
- Xk4in.
- Xkin4de
- Xk5iness
- Xkin4g
- Xki4p
- Xkis4
- Xk5ish
- Xkk4
- Xk1l
- X4kley
- X4kly
- Xk1m
- Xk5nes
- X1k2no
- Xko5r
- Xkosh4
- Xk3ou
- Xkro5n
- X4k1s2
- Xk4sc
- Xks4l
- Xk4sy
- Xk5t
- Xk1w
- Xlab3ic
- Xl4abo
- Xlaci4
- Xl4ade
- Xla3dy
- Xlag4n
- Xlam3o
- X3land
- Xlan4dl
- Xlan5et
- Xlan4te
- Xlar4g
- Xlar3i
- Xlas4e
- Xla5tan
- X4lateli
- X4lativ
- X4lav
- Xla4v4a
- X2l1b
- Xlbin4
- X4l1c2
- Xlce4
- Xl3ci
- X2ld
- Xl2de
- Xld4ere
- Xld4eri
- Xldi4
- Xld5is
- Xl3dr
- Xl4dri
- Xle2a
- Xle4bi
- Xleft5
- X5leg.
- X5legg
- Xle4mat
- Xlem5atic
- X4len.
- X3lenc
- X5lene.
- X1lent
- Xle3ph
- Xle4pr
- Xlera5b
- Xler4e
- X3lerg
- X3l4eri
- Xl4ero
- Xles2
- Xle5sco
- X5lesq
- X3less
- X5less.
- Xl3eva
- Xlev4er.
- Xlev4era
- Xlev4ers
- X3ley
- X4leye
- X2lf
- Xl5fr
- X4l1g4
- Xl5ga
- Xlgar3
- Xl4ges
- Xlgo3
- X2l3h
- Xli4ag
- Xli2am
- Xliar5iz
- Xli4as
- Xli4ato
- Xli5bi
- X5licio
- Xli4cor
- X4lics
- X4lict.
- Xl4icu
- Xl3icy
- Xl3ida
- Xlid5er
- X3lidi
- Xlif3er
- Xl4iff
- Xli4fl
- X5ligate
- X3ligh
- Xli4gra
- X3lik
- X4l4i4l
- Xlim4bl
- Xlim3i
- Xli4mo
- Xl4im4p
- Xl4ina
- X1l4ine
- Xlin3ea
- Xlin3i
- Xlink5er
- Xli5og
- X4l4iq
- Xlis4p
- Xl1it
- Xl2it.
- X5litica
- Xl5i5tics
- Xliv3er
- Xl1iz
- X4lj
- Xlka3
- Xl3kal
- Xlka4t
- Xl1l
- Xl4law
- Xl2le
- Xl5lea
- Xl3lec
- Xl3leg
- Xl3lel
- Xl3le4n
- Xl3le4t
- Xll2i
- Xl2lin4
- Xl5lina
- Xll4o
- Xlloqui5
- Xll5out
- Xl5low
- X2lm
- Xl5met
- Xlm3ing
- Xl4mod
- Xlmon4
- X2l1n2
- X3lo.
- Xlob5al
- Xlo4ci
- X4lof
- X3logic
- Xl5ogo
- X3logu
- Xlom3er
- X5long
- Xlon4i
- Xl3o3niz
- Xlood5
- X5lope.
- Xlop3i
- Xl3opm
- Xlora4
- Xlo4rato
- Xlo5rie
- Xlor5ou
- X5los.
- Xlos5et
- X5losophiz
- X5losophy
- Xlos4t
- Xlo4ta
- Xloun5d
- X2lout
- X4lov
- X2lp
- Xlpa5b
- Xl3pha
- Xl5phi
- Xlp5ing
- Xl3pit
- Xl4pl
- Xl5pr
- X4l1r
- X2l1s2
- Xl4sc
- Xl2se
- Xl4sie
- X4lt
- Xlt5ag
- Xltane5
- Xl1te
- Xlten4
- Xltera4
- Xlth3i
- Xl5ties.
- Xltis4
- Xl1tr
- Xltu2
- Xltur3a
- Xlu5a
- Xlu3br
- Xluch4
- Xlu3ci
- Xlu3en
- Xluf4
- Xlu5id
- Xlu4ma
- X5lumi
- Xl5umn.
- X5lumnia
- Xlu3o
- Xluo3r
- X4lup
- Xluss4
- Xlus3te
- X1lut
- Xl5ven
- Xl5vet4
- X2l1w
- X1ly
- X4lya
- X4lyb
- Xly5me
- Xly3no
- X2lys4
- Xl5yse
- X1ma
- X2mab
- Xma2ca
- Xma5chine
- Xma4cl
- Xmag5in
- X5magn
- X2mah
- Xmaid5
- X4mald
- Xma3lig
- Xma5lin
- Xmal4li
- Xmal4ty
- X5mania
- Xman5is
- Xman3iz
- X4map
- Xma5rine.
- Xma5riz
- Xmar4ly
- Xmar3v
- Xma5sce
- Xmas4e
- Xmas1t
- X5mate
- Xmath3
- Xma3tis
- X4matiza
- X4m1b
- Xmba4t5
- Xm5bil
- Xm4b3ing
- Xmbi4v
- X4m5c
- X4me.
- X2med
- X4med.
- X5media
- Xme3die
- Xm5e5dy
- Xme2g
- Xmel5on
- Xmel4t
- Xme2m
- Xmem1o3
- X1men
- Xmen4a
- Xmen5ac
- Xmen4de
- X4mene
- Xmen4i
- Xmens4
- Xmensu5
- X3ment
- Xmen4te
- Xme5on
- Xm5ersa
- X2mes
- X3mesti
- Xme4ta
- Xmet3al
- Xme1te
- Xme5thi
- Xm4etr
- X5metric
- Xme5trie
- Xme3try
- Xme4v
- X4m1f
- X2mh
- X5mi.
- Xmi3a
- Xmid4a
- Xmid4g
- Xmig4
- X3milia
- Xm5i5lie
- Xm4ill
- Xmin4a
- X3mind
- Xm5inee
- Xm4ingl
- Xmin5gli
- Xm5ingly
- Xmin4t
- Xm4inu
- Xmiot4
- Xm2is
- Xmis4er.
- Xmis5l
- Xmis4ti
- Xm5istry
- X4mith
- Xm2iz
- X4mk
- X4m1l
- Xm1m
- Xmma5ry
- X4m1n
- Xmn4a
- Xm4nin
- Xmn4o
- X1mo
- X4mocr
- X5mocratiz
- Xmo2d1
- Xmo4go
- Xmois2
- Xmoi5se
- X4mok
- Xmo5lest
- Xmo3me
- Xmon5et
- Xmon5ge
- Xmoni3a
- Xmon4ism
- Xmon4ist
- Xmo3niz
- Xmonol4
- Xmo3ny.
- Xmo2r
- X4mora.
- Xmos2
- Xmo5sey
- Xmo3sp
- Xmoth3
- Xm5ouf
- X3mous
- Xmo2v
- X4m1p
- Xmpara5
- Xmpa5rab
- Xmpar5i
- Xm3pet
- Xmphas4
- Xm2pi
- Xmpi4a
- Xmp5ies
- Xm4p1in
- Xm5pir
- Xmp5is
- Xmpo3ri
- Xmpos5ite
- Xm4pous
- Xmpov5
- Xmp4tr
- Xm2py
- X4m3r
- X4m1s2
- Xm4sh
- Xm5si
- X4mt
- X1mu
- Xmula5r4
- X5mult
- Xmulti3
- X3mum
- Xmun2
- X4mup
- Xmu4u
- X4mw
- X1na
- X2n1a2b
- Xn4abu
- X4nac.
- Xna4ca
- Xn5act
- Xnag5er.
- Xnak4
- Xna4li
- Xna5lia
- X4nalt
- Xna5mit
- Xn2an
- Xnanci4
- Xnan4it
- Xnank4
- Xnar3c
- X4nare
- Xnar3i
- Xnar4l
- Xn5arm
- Xn4as
- Xnas4c
- Xnas5ti
- Xn2at
- Xna3tal
- Xnato5miz
- Xn2au
- Xnau3se
- X3naut
- Xnav4e
- X4n1b4
- Xncar5
- Xn4ces.
- Xn3cha
- Xn5cheo
- Xn5chil
- Xn3chis
- Xnc1in
- Xnc4it
- Xncour5a
- Xn1cr
- Xn1cu
- Xn4dai
- Xn5dan
- Xn1de
- Xnd5est.
- Xndi4b
- Xn5d2if
- Xn1dit
- Xn3diz
- Xn5duc
- Xndu4r
- Xnd2we
- X2ne.
- Xn3ear
- Xne2b
- Xneb3u
- Xne2c
- X5neck
- X2ned
- Xne4gat
- Xneg5ativ
- X5nege
- Xne4la
- Xnel5iz
- Xne5mi
- Xne4mo
- X1nen
- X4nene
- X3neo
- Xne4po
- Xne2q
- Xn1er
- Xnera5b
- Xn4erar
- Xn2ere
- Xn4er5i
- Xner4r
- X1nes
- X2nes.
- X4nesp
- X2nest
- X4nesw
- X3netic
- Xne4v
- Xn5eve
- Xne4w
- Xn3f
- Xn4gab
- Xn3gel
- Xnge4n4e
- Xn5gere
- Xn3geri
- Xng5ha
- Xn3gib
- Xng1in
- Xn5git
- Xn4gla
- Xngov4
- Xng5sh
- Xn1gu
- Xn4gum
- Xn2gy
- X4n1h4
- Xnha4
- Xnhab3
- Xnhe4
- X3n4ia
- Xni3an
- Xni4ap
- Xni3ba
- Xni4bl
- Xni4d
- Xni5di
- Xni4er
- Xni2fi
- Xni5ficat
- Xn5igr
- Xnik4
- Xn1im
- Xni3miz
- Xn1in
- X5nine.
- Xnin4g
- Xni4o
- X5nis.
- Xnis4ta
- Xn2it
- Xn4ith
- X3nitio
- Xn3itor
- Xni3tr
- Xn1j
- X4nk2
- Xn5kero
- Xn3ket
- Xnk3in
- Xn1kl
- X4n1l
- Xn5m
- Xnme4
- Xnmet4
- X4n1n2
- Xnne4
- Xnni3al
- Xnni4v
- Xnob4l
- Xno3ble
- Xn5ocl
- X4n3o2d
- X3noe
- X4nog
- Xnoge4
- Xnois5i
- Xno5l4i
- X5nologis
- X3nomic
- Xn5o5miz
- Xno4mo
- Xno3my
- Xno4n
- Xnon4ag
- Xnon5i
- Xn5oniz
- X4nop
- X5nop5o5li
- Xnor5ab
- Xno4rary
- X4nosc
- Xnos4e
- Xnos5t
- Xno5ta
- X1nou
- X3noun
- Xnov3el3
- Xnowl3
- Xn1p4
- Xnpi4
- Xnpre4c
- Xn1q
- Xn1r
- Xnru4
- X2n1s2
- Xns5ab
- Xnsati4
- Xns4c
- Xn2se
- Xn4s3es
- Xnsid1
- Xnsig4
- Xn2sl
- Xns3m
- Xn4soc
- Xns4pe
- Xn5spi
- Xnsta5bl
- Xn1t
- Xnta4b
- Xnter3s
- Xnt2i
- Xn5tib
- Xnti4er
- Xnti2f
- Xn3tine
- Xn4t3ing
- Xnti4p
- Xntrol5li
- Xnt4s
- Xntu3me
- Xnu1a
- Xnu4d
- Xnu5en
- Xnuf4fe
- Xn3uin
- X3nu3it
- Xn4um
- Xnu1me
- Xn5umi
- X3nu4n
- Xn3uo
- Xnu3tr
- Xn1v2
- Xn1w4
- Xnym4
- Xnyp4
- X4nz
- Xn3za
- X4oa
- Xoad3
- Xo5a5les
- Xoard3
- Xoas4e
- Xoast5e
- Xoat5i
- Xob3a3b
- Xo5bar
- Xobe4l
- Xo1bi
- Xo2bin
- Xob5ing
- Xo3br
- Xob3ul
- Xo1ce
- Xoch4
- Xo3chet
- Xocif3
- Xo4cil
- Xo4clam
- Xo4cod
- Xoc3rac
- Xoc5ratiz
- Xocre3
- X5ocrit
- Xoctor5a
- Xoc3ula
- Xo5cure
- Xod5ded
- Xod3ic
- Xodi3o
- Xo2do4
- Xodor3
- Xod5uct.
- Xod5ucts
- Xo4el
- Xo5eng
- Xo3er
- Xoe4ta
- Xo3ev
- Xo2fi
- Xof5ite
- Xofit4t
- Xo2g5a5r
- Xog5ativ
- Xo4gato
- Xo1ge
- Xo5gene
- Xo5geo
- Xo4ger
- Xo3gie
- X1o1gis
- Xog3it
- Xo4gl
- Xo5g2ly
- X3ogniz
- Xo4gro
- Xogu5i
- X1ogy
- X2ogyn
- Xo1h2
- Xohab5
- Xoi2
- Xoic3es
- Xoi3der
- Xoiff4
- Xoig4
- Xoi5let
- Xo3ing
- Xoint5er
- Xo5ism
- Xoi5son
- Xoist5en
- Xoi3ter
- Xo5j
- X2ok
- Xo3ken
- Xok5ie
- Xo1la
- Xo4lan
- Xolass4
- Xol2d
- Xold1e
- Xol3er
- Xo3lesc
- Xo3let
- Xol4fi
- Xol2i
- Xo3lia
- Xo3lice
- Xol5id.
- Xo3li4f
- Xo5lil
- Xol3ing
- Xo5lio
- Xo5lis.
- Xol3ish
- Xo5lite
- Xo5litio
- Xo5liv
- Xolli4e
- Xol5ogiz
- Xolo4r
- Xol5pl
- Xol2t
- Xol3ub
- Xol3ume
- Xol3un
- Xo5lus
- Xol2v
- Xo2ly
- Xom5ah
- Xoma5l
- Xom5atiz
- Xom2be
- Xom4bl
- Xo2me
- Xom3ena
- Xom5erse
- Xo4met
- Xom5etry
- Xo3mia
- Xom3ic.
- Xom3ica
- Xo5mid
- Xom1in
- Xo5mini
- X5ommend
- Xomo4ge
- Xo4mon
- Xom3pi
- Xompro5
- Xo2n
- Xon1a
- Xon4ac
- Xo3nan
- Xon1c
- X3oncil
- X2ond
- Xon5do
- Xo3nen
- Xon5est
- Xon4gu
- Xon1ic
- Xo3nio
- Xon1is
- Xo5niu
- Xon3key
- Xon4odi
- Xon3omy
- Xon3s
- Xonspi4
- Xonspir5a
- Xonsu4
- Xonten4
- Xon3t4i
- Xontif5
- Xon5um
- Xonva5
- Xoo2
- Xood5e
- Xood5i
- Xoo4k
- Xoop3i
- Xo3ord
- Xoost5
- Xo2pa
- Xope5d
- Xop1er
- X3opera
- X4operag
- X2oph
- Xo5phan
- Xo5pher
- Xop3ing
- Xo3pit
- Xo5pon
- Xo4posi
- Xo1pr
- Xop1u
- Xopy5
- Xo1q
- Xo1ra
- Xo5ra.
- Xo4r3ag
- Xor5aliz
- Xor5ange
- Xore5a
- Xo5real
- Xor3ei
- Xore5sh
- Xor5est.
- Xorew4
- Xor4gu
- X4o5ria
- Xor3ica
- Xo5ril
- Xor1in
- Xo1rio
- Xor3ity
- Xo3riu
- Xor2mi
- Xorn2e
- Xo5rof
- Xor3oug
- Xor5pe
- X3orrh
- Xor4se
- Xors5en
- Xorst4
- Xor3thi
- Xor3thy
- Xor4ty
- Xo5rum
- Xo1ry
- Xos3al
- Xos2c
- Xos4ce
- Xo3scop
- X4oscopi
- Xo5scr
- Xos4i4e
- Xos5itiv
- Xos3ito
- Xos3ity
- Xosi4u
- Xos4l
- Xo2so
- Xos4pa
- Xos4po
- Xos2ta
- Xo5stati
- Xos5til
- Xos5tit
- Xo4tan
- Xotele4g
- Xot3er.
- Xot5ers
- Xo4tes
- X4oth
- Xoth5esi
- Xoth3i4
- Xot3ic.
- Xot5ica
- Xo3tice
- Xo3tif
- Xo3tis
- Xoto5s
- Xou2
- Xou3bl
- Xouch5i
- Xou5et
- Xou4l
- Xounc5er
- Xoun2d
- Xou5v
- Xov4en
- Xover4ne
- Xover3s
- Xov4ert
- Xo3vis
- Xoviti4
- Xo5v4ol
- Xow3der
- Xow3el
- Xow5est
- Xow1i
- Xown5i
- Xo4wo
- Xoy1a
- X1pa
- Xpa4ca
- Xpa4ce
- Xpac4t
- Xp4ad
- X5pagan
- Xp3agat
- Xp4ai
- Xpain4
- Xp4al
- Xpan4a
- Xpan3el
- Xpan4ty
- Xpa3ny
- Xpa1p
- Xpa4pu
- Xpara5bl
- Xpar5age
- Xpar5di
- X3pare
- Xpar5el
- Xp4a4ri
- Xpar4is
- Xpa2te
- Xpa5ter
- X5pathic
- Xpa5thy
- Xpa4tric
- Xpav4
- X3pay
- X4p1b
- Xpd4
- X4pe.
- X3pe4a
- Xpear4l
- Xpe2c
- X2p2ed
- X3pede
- X3pedi
- Xpedia4
- Xped4ic
- Xp4ee
- Xpee4d
- Xpek4
- Xpe4la
- Xpeli4e
- Xpe4nan
- Xp4enc
- Xpen4th
- Xpe5on
- Xp4era.
- Xpera5bl
- Xp4erag
- Xp4eri
- Xperi5st
- Xper4mal
- Xperme5
- Xp4ern
- Xper3o
- Xper3ti
- Xpe5ru
- Xper1v
- Xpe2t
- Xpe5ten
- Xpe5tiz
- X4pf
- X4pg
- X4ph.
- Xphar5i
- Xphe3no
- Xph4er
- Xph4es.
- Xph1ic
- X5phie
- Xph5ing
- X5phisti
- X3phiz
- Xph2l
- X3phob
- X3phone
- X5phoni
- Xpho4r
- X4phs
- Xph3t
- X5phu
- X1phy
- Xpi3a
- Xpian4
- Xpi4cie
- Xpi4cy
- Xp4id
- Xp5ida
- Xpi3de
- X5pidi
- X3piec
- Xpi3en
- Xpi4grap
- Xpi3lo
- Xpi2n
- Xp4in.
- Xpind4
- Xp4ino
- X3pi1o
- Xpion4
- Xp3ith
- Xpi5tha
- Xpi2tu
- X2p3k2
- X1p2l2
- X3plan
- Xplas5t
- Xpli3a
- Xpli5er
- X4plig
- Xpli4n
- Xploi4
- Xplu4m
- Xplum4b
- X4p1m
- X2p3n
- Xpo4c
- X5pod.
- Xpo5em
- Xpo3et5
- X5po4g
- Xpoin2
- X5point
- Xpoly5t
- Xpo4ni
- Xpo4p
- X1p4or
- Xpo4ry
- X1pos
- Xpos1s
- Xp4ot
- Xpo4ta
- X5poun
- X4p1p
- Xppa5ra
- Xp2pe
- Xp4ped
- Xp5pel
- Xp3pen
- Xp3per
- Xp3pet
- Xppo5site
- Xpr2
- Xpray4e
- X5preci
- Xpre5co
- Xpre3em
- Xpref5ac
- Xpre4la
- Xpre3r
- Xp3rese
- X3press
- Xpre5ten
- Xpre3v
- X5pri4e
- Xprin4t3
- Xpri4s
- Xpris3o
- Xp3roca
- Xprof5it
- Xpro3l
- Xpros3e
- Xpro1t
- X2p1s2
- Xp2se
- Xps4h
- Xp4sib
- X2p1t
- Xpt5a4b
- Xp2te
- Xp2th
- Xpti3m
- Xptu4r
- Xp4tw
- Xpub3
- Xpue4
- Xpuf4
- Xpul3c
- Xpu4m
- Xpu2n
- Xpur4r
- X5pus
- Xpu2t
- X5pute
- Xput3er
- Xpu3tr
- Xput4ted
- Xput4tin
- Xp3w
- Xqu2
- Xqua5v
- X2que.
- X3quer
- X3quet
- X2rab
- Xra3bi
- Xrach4e
- Xr5acl
- Xraf5fi
- Xraf4t
- Xr2ai
- Xra4lo
- Xram3et
- Xr2ami
- Xrane5o
- Xran4ge
- Xr4ani
- Xra5no
- Xrap3er
- X3raphy
- Xrar5c
- Xrare4
- Xrar5ef
- X4raril
- Xr2as
- Xration4
- Xrau4t
- Xra5vai
- Xrav3el
- Xra5zie
- Xr1b
- Xr4bab
- Xr4bag
- Xrbi2
- Xrbi4f
- Xr2bin
- Xr5bine
- Xrb5ing.
- Xrb4o
- Xr1c
- Xr2ce
- Xrcen4
- Xr3cha
- Xrch4er
- Xr4ci4b
- Xrc4it
- Xrcum3
- Xr4dal
- Xrd2i
- Xrdi4a
- Xrdi4er
- Xrdin4
- Xrd3ing
- X2re.
- Xre1al
- Xre3an
- Xre5arr
- X5reav
- Xre4aw
- Xr5ebrat
- Xrec5oll
- Xrec5ompe
- Xre4cre
- X2r2ed
- Xre1de
- Xre3dis
- Xred5it
- Xre4fac
- Xre2fe
- Xre5fer.
- Xre3fi
- Xre4fy
- Xreg3is
- Xre5it
- Xre1li
- Xre5lu
- Xr4en4ta
- Xren4te
- Xre1o
- Xre5pin
- Xre4posi
- Xre1pu
- Xr1er4
- Xr4eri
- Xrero4
- Xre5ru
- Xr4es.
- Xre4spi
- Xress5ib
- Xres2t
- Xre5stal
- Xre3str
- Xre4ter
- Xre4ti4z
- Xre3tri
- Xreu2
- Xre5uti
- Xrev2
- Xre4val
- Xrev3el
- Xr5ev5er.
- Xre5vers
- Xre5vert
- Xre5vil
- Xrev5olu
- Xre4wh
- Xr1f
- Xrfu4
- Xr4fy
- Xrg2
- Xrg3er
- Xr3get
- Xr3gic
- Xrgi4n
- Xrg3ing
- Xr5gis
- Xr5git
- Xr1gl
- Xrgo4n
- Xr3gu
- Xrh4
- X4rh.
- X4rhal
- Xri3a
- Xria4b
- Xri4ag
- Xr4ib
- Xrib3a
- Xric5as
- Xr4ice
- X4rici
- X5ricid
- Xri4cie
- Xr4ico
- Xrid5er
- Xri3enc
- Xri3ent
- Xri1er
- Xri5et
- Xrig5an
- X5rigi
- Xril3iz
- X5riman
- Xrim5i
- X3rimo
- Xrim4pe
- Xr2ina
- X5rina.
- Xrin4d
- Xrin4e
- Xrin4g
- Xri1o
- X5riph
- Xriph5e
- Xri2pl
- Xrip5lic
- Xr4iq
- Xr2is
- Xr4is.
- Xris4c
- Xr3ish
- Xris4p
- Xri3ta3b
- Xr5ited.
- Xrit5er.
- Xrit5ers
- Xrit3ic
- Xri2tu
- Xrit5ur
- Xriv5el
- Xriv3et
- Xriv3i
- Xr3j
- Xr3ket
- Xrk4le
- Xrk4lin
- Xr1l
- Xrle4
- Xr2led
- Xr4lig
- Xr4lis
- Xrl5ish
- Xr3lo4
- Xr1m
- Xrma5c
- Xr2me
- Xr3men
- Xrm5ers
- Xrm3ing
- Xr4ming.
- Xr4mio
- Xr3mit
- Xr4my
- Xr4nar
- Xr3nel
- Xr4ner
- Xr5net
- Xr3ney
- Xr5nic
- Xr1nis4
- Xr3nit
- Xr3niv
- Xrno4
- Xr4nou
- Xr3nu
- Xrob3l
- Xr2oc
- Xro3cr
- Xro4e
- Xro1fe
- Xro5fil
- Xrok2
- Xro5ker
- X5role.
- Xrom5ete
- Xrom4i
- Xrom4p
- Xron4al
- Xron4e
- Xro5n4is
- Xron4ta
- X1room
- X5root
- Xro3pel
- Xrop3ic
- Xror3i
- Xro5ro
- Xros5per
- Xros4s
- Xro4the
- Xro4ty
- Xro4va
- Xrov5el
- Xrox5
- Xr1p
- Xr4pea
- Xr5pent
- Xrp5er.
- Xr3pet
- Xrp4h4
- Xrp3ing
- Xr3po
- Xr1r4
- Xrre4c
- Xrre4f
- Xr4reo
- Xrre4st
- Xrri4o
- Xrri4v
- Xrron4
- Xrros4
- Xrrys4
- X4rs2
- Xr1sa
- Xrsa5ti
- Xrs4c
- Xr2se
- Xr3sec
- Xrse4cr
- Xrs5er.
- Xrs3es
- Xrse5v2
- Xr1sh
- Xr5sha
- Xr1si
- Xr4si4b
- Xrson3
- Xr1sp
- Xr5sw
- Xrtach4
- Xr4tag
- Xr3teb
- Xrten4d
- Xrte5o
- Xr1ti
- Xrt5ib
- Xrti4d
- Xr4tier
- Xr3tig
- Xrtil3i
- Xrtil4l
- Xr4tily
- Xr4tist
- Xr4tiv
- Xr3tri
- Xrtroph4
- Xrt4sh
- Xru3a
- Xru3e4l
- Xru3en
- Xru4gl
- Xru3in
- Xrum3pl
- Xru2n
- Xrunk5
- Xrun4ty
- Xr5usc
- Xruti5n
- Xrv4e
- Xrvel4i
- Xr3ven
- Xrv5er.
- Xr5vest
- Xr3vey
- Xr3vic
- Xrvi4v
- Xr3vo
- Xr1w
- Xry4c
- X5rynge
- Xry3t
- Xsa2
- X2s1ab
- X5sack
- Xsac3ri
- Xs3act
- X5sai
- Xsalar4
- Xsal4m
- Xsa5lo
- Xsal4t
- X3sanc
- Xsan4de
- Xs1ap
- Xsa5ta
- X5sa3tio
- Xsat3u
- Xsau4
- Xsa5vor
- X5saw
- X4s5b
- Xscan4t5
- Xsca4p
- Xscav5
- Xs4ced
- X4scei
- Xs4ces
- Xsch2
- Xs4cho
- X3s4cie
- X5scin4d
- Xscle5
- Xs4cli
- Xscof4
- X4scopy
- Xscour5a
- Xs1cu
- X4s5d
- X4se.
- Xse4a
- Xseas4
- Xsea5w
- Xse2c3o
- X3sect
- X4s4ed
- Xse4d4e
- Xs5edl
- Xse2g
- Xseg3r
- X5sei
- Xse1le
- X5self
- X5selv
- X4seme
- Xse4mol
- Xsen5at
- X4senc
- Xsen4d
- Xs5ened
- Xsen5g
- Xs5enin
- X4sentd
- X4sentl
- Xsep3a3
- X4s1er.
- Xs4erl
- Xser4o
- X4servo
- Xs1e4s
- Xse5sh
- Xses5t
- X5se5um
- X5sev
- Xsev3en
- Xsew4i
- X5sex
- X4s3f
- X2s3g
- Xs2h
- X2sh.
- Xsh1er
- X5shev
- Xsh1in
- Xsh3io
- X3ship
- Xshiv5
- Xsho4
- Xsh5old
- Xshon3
- Xshor4
- Xshort5
- X4shw
- Xsi1b
- Xs5icc
- X3side.
- X5sides
- X5sidi
- Xsi5diz
- X4signa
- Xsil4e
- X4sily
- X2s1in
- Xs2ina
- X5sine.
- Xs3ing
- X1sio
- X5sion
- Xsion5a
- Xsi2r
- Xsir5a
- X1sis
- X3sitio
- X5siu
- X1siv
- X5siz
- Xsk2
- X4ske
- Xs3ket
- Xsk5ine
- Xsk5ing
- Xs1l2
- Xs3lat
- Xs2le
- Xslith5
- X2s1m
- Xs3ma
- Xsmall3
- Xsman3
- Xsmel4
- Xs5men
- X5smith
- Xsmol5d4
- Xs1n4
- X1so
- Xso4ce
- Xsoft3
- Xso4lab
- Xsol3d2
- Xso3lic
- X5solv
- X3som
- X3s4on.
- Xsona4
- Xson4g
- Xs4op
- X5sophic
- Xs5ophiz
- Xs5ophy
- Xsor5c
- Xsor5d
- X4sov
- Xso5vi
- X2spa
- X5spai
- Xspa4n
- Xspen4d
- X2s5peo
- X2sper
- Xs2phe
- X3spher
- Xspho5
- Xspil4
- Xsp5ing
- X4spio
- Xs4ply
- Xs4pon
- Xspor4
- X4spot
- Xsqual4l
- Xs1r
- X2ss
- Xs1sa
- Xssas3
- Xs2s5c
- Xs3sel
- Xs5seng
- Xs4ses.
- Xs5set
- Xs1si
- Xs4sie
- Xssi4er
- Xss5ily
- Xs4sl
- Xss4li
- Xs4sn
- Xsspend4
- Xss2t
- Xssur5a
- Xss5w
- X2st.
- Xs2tag
- Xs2tal
- Xstam4i
- X5stand
- Xs4ta4p
- X5stat.
- Xs4ted
- Xstern5i
- Xs5tero
- Xste2w
- Xstew5a
- Xs3the
- Xst2i
- Xs4ti.
- Xs5tia
- Xs1tic
- X5stick
- Xs4tie
- Xs3tif
- Xst3ing
- X5stir
- Xs1tle
- X5stock
- Xstom3a
- X5stone
- Xs4top
- X3store
- Xst4r
- Xs4trad
- X5stratu
- Xs4tray
- Xs4trid
- X4stry
- X4st3w
- Xs2ty
- X1su
- Xsu1al
- Xsu4b3
- Xsu2g3
- Xsu5is
- Xsuit3
- Xs4ul
- Xsu2m
- Xsum3i
- Xsu2n
- Xsu2r
- X4sv
- Xsw2
- X4swo
- Xs4y
- X4syc
- X3syl
- Xsyn5o
- Xsy5rin
- X1ta
- X3ta.
- X2tab
- Xta5bles
- X5taboliz
- X4taci
- Xta5do
- X4taf4
- Xtai5lo
- Xta2l
- Xta5la
- Xtal5en
- Xtal3i
- X4talk
- Xtal4lis
- Xta5log
- Xta5mo
- Xtan4de
- Xtanta3
- Xta5per
- Xta5pl
- Xtar4a
- X4tarc
- X4tare
- Xta3riz
- Xtas4e
- Xta5sy
- X4tatic
- Xta4tur
- Xtaun4
- Xtav4
- X2taw
- Xtax4is
- X2t1b
- X4tc
- Xt4ch
- Xtch5et
- X4t1d
- X4te.
- Xtead4i
- X4teat
- Xtece4
- X5tect
- X2t1ed
- Xte5di
- X1tee
- Xteg4
- Xte5ger
- Xte5gi
- X3tel.
- Xteli4
- X5tels
- Xte2ma2
- Xtem3at
- X3tenan
- X3tenc
- X3tend
- X4tenes
- X1tent
- Xten4tag
- X1teo
- Xte4p
- Xte5pe
- Xter3c
- X5ter3d
- X1teri
- Xter5ies
- Xter3is
- Xteri5za
- X5ternit
- Xter5v
- X4tes.
- X4tess
- Xt3ess.
- Xteth5e
- X3teu
- X3tex
- X4tey
- X2t1f
- X4t1g
- X2th.
- Xthan4
- Xth2e
- X4thea
- Xth3eas
- Xthe5at
- Xthe3is
- X3thet
- Xth5ic.
- Xth5ica
- X4thil
- X5think
- X4thl
- Xth5ode
- X5thodic
- X4thoo
- Xthor5it
- Xtho5riz
- X2ths
- X1tia
- Xti4ab
- Xti4ato
- X2ti2b
- X4tick
- Xt4ico
- Xt4ic1u
- X5tidi
- X3tien
- Xtif2
- Xti5fy
- X2tig
- X5tigu
- Xtill5in
- X1tim
- X4timp
- Xtim5ul
- X2t1in
- Xt2ina
- X3tine.
- X3tini
- X1tio
- Xti5oc
- Xtion5ee
- X5tiq
- Xti3sa
- X3tise
- Xtis4m
- Xti5so
- Xtis4p
- X5tistica
- Xti3tl
- Xti4u
- X1tiv
- Xtiv4a
- X1tiz
- Xti3za
- Xti3zen
- X2tl
- Xt5la
- Xtlan4
- X3tle.
- X3tled
- X3tles.
- Xt5let.
- Xt5lo
- X4t1m
- Xtme4
- X2t1n2
- X1to
- Xto3b
- Xto5crat
- X4todo
- X2tof
- Xto2gr
- Xto5ic
- Xto2ma
- Xtom4b
- Xto3my
- Xton4ali
- Xto3nat
- X4tono
- X4tony
- Xto2ra
- Xto3rie
- Xtor5iz
- Xtos2
- X5tour
- X4tout
- Xto3war
- X4t1p
- X1tra
- Xtra3b
- Xtra5ch
- Xtraci4
- Xtrac4it
- Xtrac4te
- Xtras4
- Xtra5ven
- Xtrav5es5
- Xtre5f
- Xtre4m
- Xtrem5i
- X5tria
- Xtri5ces
- X5tricia
- X4trics
- X2trim
- Xtri4v
- Xtro5mi
- Xtron5i
- X4trony
- Xtro5phe
- Xtro3sp
- Xtro3v
- Xtru5i
- Xtrus4
- X4t1s2
- Xt4sc
- Xtsh4
- Xt4sw
- X4t3t2
- Xt4tes
- Xt5to
- Xttu4
- X1tu
- Xtu1a
- Xtu3ar
- Xtu4bi
- Xtud2
- X4tue
- X4tuf4
- X5tu3i
- X3tum
- Xtu4nis
- X2t3up.
- X3ture
- X5turi
- Xtur3is
- Xtur5o
- Xtu5ry
- X3tus
- X4tv
- Xtw4
- X4t1wa
- Xtwis4
- X4two
- X1ty
- X4tya
- X2tyl
- Xtype3
- Xty5ph
- X4tz
- Xtz4e
- X4uab
- Xuac4
- Xua5na
- Xuan4i
- Xuar5ant
- Xuar2d
- Xuar3i
- Xuar3t
- Xu1at
- Xuav4
- Xub4e
- Xu4bel
- Xu3ber
- Xu4bero
- Xu1b4i
- Xu4b5ing
- Xu3ble.
- Xu3ca
- Xuci4b
- Xuc4it
- Xucle3
- Xu3cr
- Xu3cu
- Xu4cy
- Xud5d
- Xud3er
- Xud5est
- Xudev4
- Xu1dic
- Xud3ied
- Xud3ies
- Xud5is
- Xu5dit
- Xu4don
- Xud4si
- Xu4du
- Xu4ene
- Xuens4
- Xuen4te
- Xuer4il
- X3ufa
- Xu3fl
- Xugh3en
- Xug5in
- X2ui2
- Xuil5iz
- Xui4n
- Xu1ing
- Xuir4m
- Xuita4
- Xuiv3
- Xuiv4er.
- Xu5j
- X4uk
- Xu1la
- Xula5b
- Xu5lati
- Xulch4
- X5ulche
- Xul3der
- Xul4e
- Xu1len
- Xul4gi
- Xul2i
- Xu5lia
- Xul3ing
- Xul5ish
- Xul4lar
- Xul4li4b
- Xul4lis
- X4ul3m
- Xu1l4o
- X4uls
- Xuls5es
- Xul1ti
- Xultra3
- X4ultu
- Xu3lu
- Xul5ul
- Xul5v
- Xum5ab
- Xum4bi
- Xum4bly
- Xu1mi
- Xu4m3ing
- Xumor5o
- Xum2p
- Xunat4
- Xu2ne
- Xun4er
- Xu1ni
- Xun4im
- Xu2nin
- Xun5ish
- Xuni3v
- Xun3s4
- Xun4sw
- Xunt3ab
- Xun4ter.
- Xun4tes
- Xunu4
- Xun5y
- Xun5z
- Xu4ors
- Xu5os
- Xu1ou
- Xu1pe
- Xuper5s
- Xu5pia
- Xup3ing
- Xu3pl
- Xup3p
- Xupport5
- Xupt5ib
- Xuptu4
- Xu1ra
- X4ura.
- Xu4rag
- Xu4ras
- Xur4be
- Xurc4
- Xur1d
- Xure5at
- Xur4fer
- Xur4fr
- Xu3rif
- Xuri4fic
- Xur1in
- Xu3rio
- Xu1rit
- Xur3iz
- Xur2l
- Xurl5ing.
- Xur4no
- Xuros4
- Xur4pe
- Xur4pi
- Xurs5er
- Xur5tes
- Xur3the
- Xurti4
- Xur4tie
- Xu3ru
- X2us
- Xu5sad
- Xu5san
- Xus4ap
- Xusc2
- Xus3ci
- Xuse5a
- Xu5sia
- Xu3sic
- Xus4lin
- Xus1p
- Xus5sl
- Xus5tere
- Xus1tr
- Xu2su
- Xusur4
- Xuta4b
- Xu3tat
- X4ute.
- X4utel
- X4uten
- Xuten4i
- X4u1t2i
- Xuti5liz
- Xu3tine
- Xut3ing
- Xution5a
- Xu4tis
- X5u5tiz
- Xu4t1l
- Xut5of
- Xuto5g
- Xuto5matic
- Xu5ton
- Xu4tou
- Xuts4
- Xu3u
- Xuu4m
- Xu1v2
- Xuxu3
- Xuz4e
- X1va
- X5va.
- X2v1a4b
- Xvac5il
- Xvac3u
- Xvag4
- Xva4ge
- Xva5lie
- Xval5o
- Xval1u
- Xva5mo
- Xva5niz
- Xva5pi
- Xvar5ied
- X3vat
- X4ve.
- X4ved
- Xveg3
- Xv3el.
- Xvel3li
- Xve4lo
- Xv4ely
- Xven3om
- Xv5enue
- Xv4erd
- X5vere.
- Xv4erel
- Xv3eren
- Xver5enc
- Xv4eres
- Xver3ie
- Xvermi4n
- X3verse
- Xver3th
- Xv4e2s
- X4ves.
- Xves4te
- Xve4te
- Xvet3er
- Xve4ty
- Xvi5ali
- X5vian
- X5vide.
- X5vided
- X4v3iden
- X5vides
- X5vidi
- Xv3if
- Xvi5gn
- Xvik4
- X2vil
- X5vilit
- Xv3i3liz
- Xv1in
- X4vi4na
- Xv2inc
- Xvin5d
- X4ving
- Xvio3l
- Xv3io4r
- Xvi1ou
- Xvi4p
- Xvi5ro
- Xvis3it
- Xvi3so
- Xvi3su
- X4viti
- Xvit3r
- X4vity
- X3viv
- X5vo.
- Xvoi4
- X3vok
- Xvo4la
- Xv5ole
- X5volt
- X3volv
- Xvom5i
- Xvor5ab
- Xvori4
- Xvo4ry
- Xvo4ta
- X4votee
- X4vv4
- Xv4y
- Xw5abl
- X2wac
- Xwa5ger
- Xwag5o
- Xwait5
- Xw5al.
- Xwam4
- Xwar4t
- Xwas4t
- Xwa1te
- Xwa5ver
- Xw1b
- Xwea5rie
- Xweath3
- Xwed4n
- Xweet3
- Xwee5v
- Xwel4l
- Xw1er
- Xwest3
- Xw3ev
- Xwhi4
- Xwi2
- Xwil2
- Xwill5in
- Xwin4de
- Xwin4g
- Xwir4
- X3wise
- Xwith3
- Xwiz5
- Xw4k
- Xwl4es
- Xwl3in
- Xw4no
- X1wo2
- Xwom1
- Xwo5ven
- Xw5p
- Xwra4
- Xwri4
- Xwrita4
- Xw3sh
- Xws4l
- Xws4pe
- Xw5s4t
- X4wt
- Xwy4
- Xx1a
- Xxac5e
- Xx4ago
- Xxam3
- Xx4ap
- Xxas5
- Xx3c2
- Xx1e
- Xxe4cuto
- Xx2ed
- Xxer4i
- Xxe5ro
- Xx1h
- Xxhi2
- Xxhil5
- Xxhu4
- Xx3i
- Xxi5a
- Xxi5c
- Xxi5di
- Xx4ime
- Xxi5miz
- Xx3o
- Xx4ob
- Xx3p
- Xxpan4d
- Xxpecto5
- Xxpe3d
- Xx1t2
- Xx3ti
- Xx1u
- Xxu3a
- Xxx4
- Xy5ac
- X3yar4
- Xy5at
- Xy1b
- Xy1c
- Xy2ce
- Xyc5er
- Xy3ch
- Xych4e
- Xycom4
- Xycot4
- Xy1d
- Xy5ee
- Xy1er
- Xy4erf
- Xyes4
- Xye4t
- Xy5gi
- X4y3h
- Xy1i
- Xy3la
- Xylla5bl
- Xy3lo
- Xy5lu
- Xymbol5
- Xyme4
- Xympa3
- Xyn3chr
- Xyn5d
- Xyn5g
- Xyn5ic
- X5ynx
- Xy1o4
- Xyo5d
- Xy4o5g
- Xyom4
- Xyo5net
- Xy4ons
- Xy4os
- Xy4ped
- Xyper5
- Xyp3i
- Xy3po
- Xy4poc
- Xyp2ta
- Xy5pu
- Xyra5m
- Xyr5ia
- Xy3ro
- Xyr4r
- Xys4c
- Xy3s2e
- Xys3ica
- Xys3io
- X3ysis
- Xy4so
- Xyss4
- Xys1t
- Xys3ta
- Xysur4
- Xy3thin
- Xyt3ic
- Xy1w
- Xza1
- Xz5a2b
- Xzar2
- X4zb
- X2ze
- Xze4n
- Xze4p
- Xz1er
- Xze3ro
- Xzet4
- X2z1i
- Xz4il
- Xz4is
- X5zl
- X4zm
- X1zo
- Xzo4m
- Xzo5ol
- Xzte4
- X4z1z2
- Xz4zy
- END_OF_FILE
- if test 27421 -ne `wc -c <'include/lout.hyph'`; then
- echo shar: \"'include/lout.hyph'\" unpacked with wrong size!
- fi
- # end of 'include/lout.hyph'
- fi
- if test -f 'z14.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'z14.c'\"
- else
- echo shar: Extracting \"'z14.c'\" \(28167 characters\)
- sed "s/^X//" >'z14.c' <<'END_OF_FILE'
- X/*@z14.c:Fill Service:Declarations@*******************************************/
- X/* */
- X/* LOUT: A HIGH-LEVEL LANGUAGE FOR DOCUMENT FORMATTING (VERSION 2.05) */
- X/* COPYRIGHT (C) 1993 Jeffrey H. Kingston */
- X/* */
- X/* Jeffrey H. Kingston (jeff@cs.su.oz.au) */
- X/* Basser Department of Computer Science */
- X/* The University of Sydney 2006 */
- X/* AUSTRALIA */
- X/* */
- X/* This program is free software; you can redistribute it and/or modify */
- X/* it under the terms of the GNU General Public License as published by */
- X/* the Free Software Foundation; either version 1, or (at your option) */
- X/* any later version. */
- X/* */
- X/* This program is distributed in the hope that it will be useful, */
- X/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
- X/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
- X/* GNU General Public License for more details. */
- X/* */
- X/* You should have received a copy of the GNU General Public License */
- X/* along with this program; if not, write to the Free Software */
- X/* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
- X/* */
- X/* FILE: z14.c */
- X/* MODULE: Fill Service */
- X/* EXTERNS: FillObject() */
- X/* */
- X/*****************************************************************************/
- X#include "externs"
- X#define TOO_TIGHT_BAD 1048576 /* 2^20; badness of a too tight line */
- X#define TOO_LOOSE_BAD 65536 /* 2^16; the max badness of a too loose line */
- X#define TIGHT_BAD 4096 /* 2^12; the max badness of a tight line */
- X#define LOOSE_BAD 4096 /* 2^12; the max badness of a loose line */
- X#define HYPH_BAD 2048 /* 2^11; threshold for calling hyphenation */
- X#define SQRT_TOO_LOOSE 256 /* 2^ 8; sqrt(TOO_LOOSE_BAD) */
- X#define SQRT_TIGHT_BAD 64 /* 2^ 6; sqrt(TIGHT_BAD) */
- X#define SQRT_LOOSE_BAD 64 /* 2^ 6; sqrt(LOOSE_BAD) */
- X#define MAX_EXPAND 1
- X#define MAX_SHRINK 3
- X
- X
- Xtypedef struct {
- X OBJECT llink; /* link to gap before left end of interval */
- X OBJECT rlink; /* link to gap before right end of interval */
- X LENGTH nat_width; /* natural width of interval */
- X LENGTH space_width; /* natural width of spaces in the interval */
- X int badness; /* badness of this interval */
- X unsigned char class; /* badness class of this interval */
- X unsigned char tab_count; /* number of gaps with tab mode in interval */
- X LENGTH tab_pos; /* if tab_count > 0, this holds the position */
- X /* of the left edge of the object following */
- X /* the rightmost tab gap in the interval */
- X LENGTH width_to_tab; /* if tab_count > 0, the interval width up */
- X /* to but not including the rightmost tab */
- X} INTERVAL;
- X
- X#define unbreakable(g, hyph_allowed) \
- X(width(g)==0 && (!hyph_allowed || (mode(g)!=HYPH_MODE && mode(g)!=ADD_HYPH)))
- X
- X
- X/*****************************************************************************/
- X/* */
- X/* Badness classes */
- X/* */
- X/*****************************************************************************/
- X
- X#define TOO_LOOSE 0 /* interval is too loose */
- X#define LOOSE 1 /* interval is loose but not too loose */
- X#define TIGHT 2 /* interval is tight but not too tight */
- X#define TOO_TIGHT 3 /* interval is too tight */
- X#define TAB_OVERLAP 4 /* interval has a tab and left part overlaps */
- X#define AT_END 5 /* interval ends at right end of paragraph */
- X#define ZERO_AT_LEFT 6 /* interval has a zero-width gap at left */
- X#define ZERO_AT_RIGHT 7 /* interval has a zero-width gap at right */
- X#define EMPTY_INTERVAL 8 /* interval is empty */
- X
- X/*@::SetIntervalBadness()@****************************************************/
- X/* */
- X/* SetIntervalBadness(I) */
- X/* */
- X/* Private, calculates the badness and badness class of an interval. */
- X/* Does not take into account any zero-width gap at either end. */
- X/* */
- X/*****************************************************************************/
- X
- X#define SetIntervalBadness(I, max_width, etc_width) \
- X{ OBJECT g; int badness; \
- X LENGTH col_width; \
- X if( I.llink == x ) \
- X { col_width = max_width; \
- X I.badness = 0; \
- X } \
- X else \
- X { col_width = etc_width; \
- X Child(g, I.llink); \
- X I.badness = save_badness(g); \
- X } \
- X \
- X if( I.tab_count > 0 && I.width_to_tab > I.tab_pos ) \
- X { I.class = TAB_OVERLAP; \
- X I.badness += TOO_TIGHT_BAD; \
- X } \
- X else if( MAX_EXPAND*(col_width-I.nat_width) > 2*I.space_width ) \
- X { I.class = I.tab_count > 0 ? LOOSE : TOO_LOOSE; \
- X badness = (SQRT_TOO_LOOSE*(col_width - I.nat_width)) / col_width; \
- X I.badness += badness * badness; \
- X } \
- X else if( I.nat_width <= col_width ) \
- X { I.class = LOOSE; \
- X badness = (SQRT_LOOSE_BAD*(col_width - I.nat_width)) / col_width; \
- X I.badness += badness * badness; \
- X } \
- X else if( MAX_SHRINK*(I.nat_width-col_width) <= I.space_width ) \
- X { I.class = TIGHT; \
- X badness = (SQRT_TIGHT_BAD*(col_width - I.nat_width)) / col_width; \
- X I.badness += badness * badness; \
- X } \
- X else { I.class = TOO_TIGHT; I.badness += TOO_TIGHT_BAD; } \
- X} /* end macro SetIntervalBadness */
- X
- X/*@::CorrectOversizeError()@**************************************************/
- X/* */
- X/* CorrectOversizeError(x, link, y, etc_width) */
- X/* */
- X/* Child y of x, whose link is link, has caused an oversize error, either */
- X/* because it is wider than etc_width, or because it is joined by zero- */
- X/* width gaps on the left to other objects with oversize total size. */
- X/* In the first case, the correction is to replace the object by an */
- X/* empty object; in the second case, the correction is to widen the gap. */
- X/* */
- X/*****************************************************************************/
- X
- Xstatic CorrectOversizeError(x, link, y, etc_width, hyph_allowed)
- XOBJECT x, link, y; LENGTH etc_width; BOOLEAN hyph_allowed;
- X{ OBJECT tmp, g; BOOLEAN done = FALSE;
- X
- X if( PrevDown(link) != x ) /* make any preceding unbreakable gap breakable */
- X { Child(g, PrevDown(link));
- X assert( type(g) == GAP_OBJ, "CorrectOversizeError: left gap!" );
- X if( unbreakable(gap(g), hyph_allowed) )
- X { done = TRUE; SetGap(gap(g), FALSE, TRUE, FIXED_UNIT, EDGE_MODE, 1);
- X Error(WARN, &fpos(g), "line break may occur here due to wide object");
- X }
- X }
- X if( !done ) /* else replace the wide object by an empty object */
- X { Error(WARN, &fpos(y), "%s object deleted (too wide for %s paragraph)",
- X EchoLength(size(y, COL)), EchoLength(etc_width));
- X tmp = MakeWord(WORD, STR_EMPTY, &fpos(x));
- X back(tmp, COL) = fwd(tmp, COL) = back(tmp, ROW) = fwd(tmp, ROW) = 0;
- X word_font(tmp) = 0; Link(link, tmp); DisposeChild(link);
- X }
- X} /* end CorrectOversizeError */
- X
- X
- X/*@::MoveRightToGap()@********************************************************/
- X/* */
- X/* MoveRightToGap(I, x, rlink, right, max_width, etc_width, hyph_word) */
- X/* */
- X/* Private. Shared by IntervalInit and IntervalShiftRightEnd, for moving */
- X/* to the next gap to the right, setting save_space(newg), checking for */
- X/* hyphenation case, and setting the interval badness. */
- X/* */
- X/*****************************************************************************/
- X
- X#define MoveRightToGap(I,x,rlink,right,max_width,etc_width,hyph_word) \
- X{ OBJECT newg, foll; \
- X BOOLEAN zero_at_right = FALSE; \
- X \
- X /* search onwards to find newg, the next true breakpoint */ \
- X NextDefiniteWithGap(x, rlink, foll, newg); \
- X \
- X /* set right link and calculate badness of the new interval */ \
- X if( rlink != x ) \
- X { \
- X /* set save_space(newg) now so that it is OK to forget right */ \
- X if( mode(gap(newg)) == TAB_MODE ) \
- X { save_space(newg) = ActualGap(0, back(foll,COL), fwd(foll,COL), \
- X &gap(newg), etc_width, 0) - back(foll, COL); \
- X } \
- X else \
- X { save_space(newg) = ActualGap(fwd(right, COL), back(foll, COL), \
- X fwd(foll,COL), &gap(newg), etc_width, \
- X I.nat_width - fwd(right,COL)) \
- X - back(foll, COL) - fwd(right, COL); \
- X } \
- X \
- X /* if interval ends with hyphen, add hyph_word to nat_width */ \
- X /* NB ADD_HYPH is possible after a restart */ \
- X if( hyph_allowed && \
- X (mode(gap(newg)) == HYPH_MODE || mode(gap(newg)) == ADD_HYPH) ) \
- X { if( is_word(type(right)) && \
- X !(string(right)[StringLength(string(right))-1] == CH_HYPHEN) ) \
- X { \
- X /* make sure hyph_word exists and is of the right font */ \
- X if( hyph_word == nil ) \
- X { hyph_word = MakeWord(WORD, STR_HYPHEN, &fpos(x)); \
- X word_font(hyph_word) = 0; \
- X } \
- X if( word_font(hyph_word) != font(save_style(x)) ) \
- X { word_font(hyph_word) = font(save_style(x)); \
- X FposCopy(fpos(hyph_word), fpos(x)); \
- X FontWordSize(hyph_word); \
- X } \
- X \
- X mode(gap(newg)) = ADD_HYPH; \
- X I.nat_width += size(hyph_word, COL); \
- X debug0(DOF, DD, " adding hyph_word from nat_width\n"); \
- X } \
- X } \
- X else if( unbreakable(gap(newg), hyph_allowed) ) zero_at_right=TRUE; \
- X \
- X I.rlink = Up(newg); \
- X } \
- X else I.rlink = x; \
- X SetIntervalBadness(I, max_width, etc_width); \
- X if( zero_at_right ) I.class = ZERO_AT_RIGHT; \
- X}
- X
- X/*@::IntervalInit(), IntervalShiftRightEnd()@*********************************/
- X/* */
- X/* IntervalInit(I, x, max_width, etc_width, hyph_word) */
- X/* */
- X/* Set I to the first interval of x. */
- X/* */
- X/*****************************************************************************/
- X
- X#define IntervalInit(I, x, max_width, etc_width, hyph_word) \
- X{ OBJECT rlink, right; \
- X I.llink = x; \
- X \
- X FirstDefinite(x, rlink, right); \
- X if( rlink == x ) I.class = AT_END, I.rlink = x; \
- X else \
- X { \
- X /* have first definite object, so set interval width etc. */ \
- X I.nat_width = size(right, COL); \
- X I.space_width = 0; \
- X I.tab_count = 0; \
- X \
- X /* move to gap, check hyphenation there etc. */ \
- X MoveRightToGap(I,x,rlink,right,max_width,etc_width,hyph_word); \
- X } \
- X} /* end macro IntervalInit */
- X
- X
- X/*****************************************************************************/
- X/* */
- X/* IntervalShiftRightEnd(I, x, hyph_word, max_width, etc_width) */
- X/* */
- X/* Shift the right end of interval I one place to the right. */
- X/* */
- X/*****************************************************************************/
- X
- X#define IntervalShiftRightEnd(I, x, hyph_word, max_width, etc_width) \
- X{ OBJECT rlink, g, right; \
- X assert( I.class != AT_END, "IntervalShiftRightEnd: AT_END!" ); \
- X rlink = I.rlink; \
- X if( rlink == x ) I.class = AT_END; \
- X else \
- X { \
- X /* I is optimal here so save its badness and left endpoint */ \
- X Child(g, rlink); \
- X assert( type(g) == GAP_OBJ, "IntervalShiftRightEnd: type(g)!" ); \
- X save_badness(g) = I.badness; \
- X save_prev(g) = I.llink; \
- X \
- X /* if hyphenation case, must take away width of hyph_word */ \
- X if( mode(gap(g)) == ADD_HYPH ) \
- X { I.nat_width -= size(hyph_word,COL); \
- X debug0(DOF, DD, " subtracting hyph_word from nat_width"); \
- X } \
- X \
- X /* find definite object which must lie just to the right of g */ \
- X NextDefinite(x, rlink, right); \
- X assert( rlink != x, "IntervalShiftRightEnd: rlink == x!" ); \
- X \
- X /* modify I to reflect the addition of g and right */ \
- X if( mode(gap(g)) == TAB_MODE ) \
- X { I.tab_count++; \
- X I.tab_pos = save_space(g); \
- X I.width_to_tab = I.nat_width; \
- X I.nat_width = save_space(g) + size(right, COL); \
- X I.space_width = 0; \
- X } \
- X else \
- X { I.nat_width += save_space(g) + size(right, COL); \
- X I.space_width += save_space(g); \
- X } \
- X \
- X /* now shift one step to the right */ \
- X MoveRightToGap(I, x, rlink, right, max_width, etc_width,hyph_word); \
- X } \
- X} /* end macro IntervalShiftRightEnd */
- X
- X
- X/*@::IntervalShiftLeftEnd(), IntervalBadness()@*******************************/
- X/* */
- X/* IntervalShiftLeftEnd(I, x, max_width, etc_width) */
- X/* */
- X/* Shift the left end of interval I one place to the right. */
- X/* */
- X/*****************************************************************************/
- X
- X#define IntervalShiftLeftEnd(I, x, max_width, etc_width) \
- X{ OBJECT llink, left, lgap, y; \
- X debug1(DOF, DDD, "IntervalShiftLeftEnd(%s)", IntervalPrint(I, x)); \
- X assert( I.class != AT_END, "IntervalShiftLeftEnd: AT_END!" ); \
- X \
- X /* find left, the leftmost definite object of I */ \
- X llink = I.llink; \
- X NextDefinite(x, llink, left); \
- X assert( llink != x, "IntervalShiftLeftEnd: llink == x!" ); \
- X \
- X /* find lgap, the first true breakpoint following left */ \
- X NextDefiniteWithGap(x, llink, y, lgap); \
- X assert( llink != x, "IntervalShiftLeftEnd: llink == x!" ); \
- X \
- X /* calculate width and badness of interval minus left and lgap */ \
- X if( mode(gap(lgap)) == TAB_MODE ) \
- X { assert( I.tab_count > 0 || Up(lgap) == I.rlink, \
- X "IntervalShiftLeftEnd: tab_count <= 0!" ); \
- X I.tab_count--; \
- X if( I.tab_count == 0 ) I.nat_width -= save_space(lgap); \
- X } \
- X else /* take from nat_width, or if tab, from width_to_tab */ \
- X { if( I.tab_count == 0 ) \
- X { I.nat_width -= save_space(lgap) + size(left, COL); \
- X I.space_width -= save_space(lgap); \
- X } \
- X else if( I.tab_count == 1 ) \
- X { I.width_to_tab -= save_space(lgap) + size(left, COL); \
- X } \
- X /* else no changes since tabs hide them */ \
- X } \
- X I.llink = Up(lgap); \
- X if( I.llink == I.rlink ) I.class = EMPTY_INTERVAL; \
- X else \
- X { SetIntervalBadness(I, max_width, etc_width); \
- X if( unbreakable(gap(lgap), hyph_allowed) ) I.class = ZERO_AT_LEFT; \
- X } \
- X debug1(DOF, DDD, "IShiftLeftEnd returning %s", IntervalPrint(I, x)); \
- X} /* end macro IntervalShiftLeftEnd */
- X
- X
- X/*****************************************************************************/
- X/* */
- X/* IntervalBadness(I) */
- X/* */
- X/* Return the badness of interval I. */
- X/* */
- X/*****************************************************************************/
- X
- X#define IntervalBadness(I) (I.badness)
- X
- X
- X/*@IntervalClass(), IntervalPrint()@******************************************/
- X/* */
- X/* IntervalClass(I) */
- X/* */
- X/* Return the badness class of interval I. */
- X/* */
- X/*****************************************************************************/
- X
- X#define IntervalClass(I) (I.class)
- X
- X
- X#if DEBUG_ON
- X/*****************************************************************************/
- X/* */
- X/* IntervalPrint(I, x) */
- X/* */
- X/* Return string image of the contents of interval I of ACAT x. */
- X/* */
- X/*****************************************************************************/
- X
- XFULL_CHAR *IntervalPrint(I, x)
- XINTERVAL I; OBJECT x;
- X{ static char *class_name[] =
- X { "TOO_LOOSE", "LOOSE", "TIGHT", "TOO_TIGHT", "TAB_OVERLAP", "AT_END",
- X "ZERO_AT_LEFT", "ZERO_AT_RIGHT" };
- X static FULL_CHAR res[300];
- X OBJECT link, y, g, prev, z; int i;
- X if( I.llink == I.rlink ) return AsciiToFull("[]");
- X StringCopy(res, AsciiToFull("["));
- X g = nil;
- X for( link = NextDown(I.llink); link != I.rlink; link = NextDown(link) )
- X { assert(link != x, "IntervalPrint: link == x!");
- X Child(y, link);
- X assert(y != x, "IntervalPrint: y == x!");
- X if( type(y) == GAP_OBJ )
- X { g = y;
- X if( Down(g) != g )
- X { Child(z, Down(g));
- X StringCat(res, STR_SPACE);
- X StringCat(res, EchoCatOp(ACAT, mark(gap(g)), join(gap(g)))),
- X StringCat(res, is_word(type(z)) ? string(z) : Image(type(z)));
- X StringCat(res, STR_SPACE);
- X }
- X else for( i = 1; i <= hspace(g) + vspace(g); i++ )
- X StringCat(res, STR_SPACE);
- X }
- X else StringCat(res, is_word(type(z)) ? string(z) : Image(type(z)));
- X }
- X StringCat(res, AsciiToFull("] n"));
- X StringCat(res, EchoLength(I.nat_width));
- X StringCat(res, AsciiToFull(", "));
- X StringCat(res, EchoLength(I.space_width));
- X StringCat(res, AsciiToFull(" ("));
- X StringCat(res, AsciiToFull(class_name[I.class]));
- X StringCat(res, AsciiToFull(" "));
- X StringCat(res, StringInt(I.badness));
- X StringCat(res, AsciiToFull(")"));
- X if( I.tab_count > 0 )
- X { StringCat(res, AsciiToFull(" <"));
- X StringCat(res, StringInt(I.tab_count));
- X StringCat(res, STR_SPACE);
- X StringCat(res, EchoLength(I.width_to_tab));
- X StringCat(res, AsciiToFull(":"));
- X StringCat(res, EchoLength(I.tab_pos));
- X StringCat(res, AsciiToFull(">"));
- X }
- X return res;
- X} /* end IntervalPrint */
- X#endif
- X
- X
- X/*@::FillObject()@************************************************************/
- X/* */
- X/* FillObject(x, c) */
- X/* */
- X/* Break ACAT x into lines using optimal breakpoints. */
- X/* */
- X/*****************************************************************************/
- X
- XOBJECT FillObject(x, c)
- XOBJECT x; CONSTRAINT *c;
- X{ INTERVAL I, BestI; OBJECT res, gp, tmp, z, y, link, prev;
- X LENGTH max_width, etc_width, outdent_margin, f;
- X static OBJECT hyph_word = nil;
- X BOOLEAN can_hyphenate; /* TRUE when it is possible to call Hyphenate() */
- X BOOLEAN hyph_allowed; /* TRUE when hyphenation of words is permitted */
- X assert( type(x) == ACAT, "FillObject: type(x) != ACAT!" );
- X
- X /* set max_width (width of 1st line) and etc_width (width of later lines) */
- X max_width = min(fc(*c), bfc(*c));
- X if( display_style(save_style(x)) == DISPLAY_OUTDENT )
- X { outdent_margin = 2 * FontSize(font(save_style(x)), x);
- X etc_width = max_width - outdent_margin;
- X }
- X else etc_width = max_width;
- X assert( size(x, COL) > max_width, "FillObject: initial size!" );
- X
- X /* add &1rt {} to end of paragraph */
- X gp = New(GAP_OBJ); hspace(gp) = 1; vspace(gp) = 0;
- X SetGap(gap(gp), FALSE, TRUE, AVAIL_UNIT, TAB_MODE, 1*FR);
- X tmp = MakeWord(WORD, STR_GAP_RJUSTIFY, &fpos(x));
- X Link(gp, tmp); Link(x, gp);
- X tmp = MakeWord(WORD, STR_EMPTY, &fpos(x));
- X back(tmp, COL) = fwd(tmp, COL) = back(tmp, ROW) = fwd(tmp, ROW) = 0;
- X word_font(tmp) = 0;
- X Link(x, tmp);
- X debug2(DOF, D, "FillObject(x, %s); %s",
- X EchoConstraint(c), EchoStyle(&save_style(x)));
- X ifdebug(DOF, DD, DebugObject(x); fprintf(stderr, "\n\n") );
- X
- X /* initially we can hyphenate if hyphenation is on, but not first pass */
- X if( hyph_style(save_style(x)) == HYPH_UNDEF )
- X Error(FATAL, &fpos(x), "hyphen or nohyphen option missing");
- X can_hyphenate = (hyph_style(save_style(x)) == HYPH_ON);
- X hyph_allowed = FALSE;
- X
- X /* initialize I to first interval, BestI to best ending here, and run */
- X RESTART:
- X IntervalInit(I, x, max_width, etc_width, hyph_word); BestI = I;
- X while( IntervalClass(I) != AT_END )
- X {
- X debug1(DOF, D, "loop: %s", IntervalPrint(I, x));
- X switch( IntervalClass(I) )
- X {
- X
- X case TOO_LOOSE:
- X
- X /* too loose, so save best and shift right end */
- X if( IntervalBadness(BestI) < IntervalBadness(I) ) I = BestI;
- X debug1(DOF, D, "BestI: %s\n", IntervalPrint(I, x));
- X /* NB no break */
- X
- X
- X case ZERO_AT_RIGHT:
- X
- X IntervalShiftRightEnd(I, x, hyph_word, max_width, etc_width);
- X BestI = I;
- X break;
- X
- X
- X case LOOSE:
- X case TIGHT:
- X
- X /* reasonable, so check best and shift left end */
- X if( IntervalBadness(I) < IntervalBadness(BestI) ) BestI = I;
- X /* NB no break */
- X
- X
- X case ZERO_AT_LEFT:
- X case TAB_OVERLAP:
- X case TOO_TIGHT:
- X
- X /* too tight, or zero-width gap at left end, so shift left end */
- X IntervalShiftLeftEnd(I, x, max_width, etc_width);
- X break;
- X
- X
- X case EMPTY_INTERVAL:
- X
- X PrevDefinite(x, I.llink, y);
- X if( can_hyphenate )
- X { x = Hyphenate(x);
- X can_hyphenate = FALSE;
- X hyph_allowed = TRUE;
- X }
- X else CorrectOversizeError(x, I.llink, y, etc_width, hyph_allowed);
- X goto RESTART;
- X break;
- X
- X
- X default:
- X
- X Error(INTERN, &fpos(x), "FillObject: unknown interval class!");
- X break;
- X
- X }
- X }
- X
- X /* do end processing */
- X ifdebug(DOF, D,
- X debug0(DOF, D, "final result:");
- X debug1(DOF, D, "%s", IntervalPrint(BestI, x));
- X while( BestI.llink != x )
- X { BestI.rlink = BestI.llink;
- X Child(gp, BestI.rlink);
- X BestI.llink = save_prev(gp);
- X debug1(DOF, D, "%s", IntervalPrint(BestI, x));
- X }
- X );
- X
- X if( I.llink == x )
- X { /* since line did not fit initally, this must mean either that a large */
- X /* word was discarded, or else that the line was only slightly tight */
- X res = x;
- X back(res, COL) = 0; fwd(res, COL) = max_width;
- X }
- X else if( can_hyphenate && IntervalBadness(BestI) > HYPH_BAD )
- X { x = Hyphenate(x);
- X can_hyphenate = FALSE;
- X hyph_allowed = TRUE;
- X goto RESTART;
- X }
- X else
- X { OBJECT lgap, llink;
- X res = New(VCAT);
- X back(res, COL) = 0; fwd(res, COL) = max_width;
- X ReplaceNode(res, x);
- X llink = I.llink;
- X
- X /* break the lines of x */
- X while( llink != x )
- X { y = New(ACAT);
- X FposCopy(fpos(y), fpos(x));
- X StyleCopy(save_style(y), save_style(x));
- X if( Down(res) != res &&
- X (display_style(save_style(y)) == DISPLAY_ADJUST ||
- X display_style(save_style(y)) == DISPLAY_OUTDENT) )
- X display_style(save_style(y)) = DO_ADJUST;
- X back(y, COL) = 0;
- X fwd(y, COL) = max_width;
- X
- X /* if outdented paragraphs, add 2.0f @Wide & to front of new line */
- X if( display_style(save_style(x)) == DISPLAY_OUTDENT )
- X {
- X OBJECT t1, t2, z;
- X t1 = MakeWord(WORD, STR_EMPTY, &fpos(x));
- X back(t1, COL) = fwd(t1, COL) = back(t1, ROW) = fwd(t1, ROW) = 0;
- X word_font(t1) = 0;
- X t2 = New(WIDE);
- X SetConstraint(constraint(t2), MAX_LEN, outdent_margin, MAX_LEN);
- X back(t2, COL) = 0; fwd(t2, COL) = outdent_margin;
- X Link(t2, t1);
- X Link(y, t2);
- X z = New(GAP_OBJ);
- X hspace(z) = vspace(z) = 0;
- X SetGap(gap(z), FALSE, TRUE, FIXED_UNIT, EDGE_MODE, 0);
- X Link(y, z);
- X }
- X
- X /* move the line to below y */
- X TransferLinks(NextDown(llink), x, y);
- X
- X /* add hyphen to end of previous line, if lgap is ADD_HYPH */
- X Child(lgap, llink);
- X if( mode(gap(lgap)) == ADD_HYPH )
- X { OBJECT z = New(GAP_OBJ);
- X debug0(DOF, DD, " adding hyphen\n");
- X hspace(z) = vspace(z) = 0;
- X SetGap(gap(z), FALSE, TRUE, FIXED_UNIT, EDGE_MODE, 0);
- X Link(x, z);
- X z = MakeWord(WORD, STR_HYPHEN, &fpos(y));
- X word_font(z) = font(save_style(x));
- X FontWordSize(z);
- X Link(x, z);
- X }
- X
- X /* attach y to res, recycle lgap for gap separating the two lines */
- X Link(NextDown(res), y);
- X MoveLink(llink, NextDown(res), PARENT);
- X hspace(lgap) = 0;
- X vspace(lgap) = 1;
- X GapCopy(gap(lgap), line_gap(save_style(x)));
- X
- X /* move on to previous line */
- X llink = save_prev(lgap);
- X }
- X
- X /* attach first line, x, to res */
- X Link(NextDown(res), x);
- X back(x, COL) = 0;
- X fwd(x, COL) = max_width;
- X if( display_style(save_style(x)) == DISPLAY_ADJUST ||
- X display_style(save_style(x)) == DISPLAY_OUTDENT )
- X display_style(save_style(x)) = DO_ADJUST;
- X
- X /* delete the final &1rt {} from the last line, to help clines */
- X Child(y, LastDown(res));
- X assert( Down(y) != LastDown(y), "FillObject: empty last line!" );
- X Child(z, LastDown(y));
- X assert( type(z)==WORD && string(z)[0] == '\0', "FillObject: last word!" );
- X DisposeChild(LastDown(y));
- X Child(z, LastDown(y));
- X assert( type(z) == GAP_OBJ, "FillObject: last gap_obj!" );
- X DisposeChild(LastDown(y));
- X
- X /* recalculate the width of the last line, since it is smaller */
- X FirstDefinite(y, link, z);
- X assert( link != y, "FillObject: last line is empty!" );
- X f = back(z, COL); prev = z;
- X NextDefiniteWithGap(y, link, z, gp);
- X while( link != y )
- X {
- X f += MinGap(fwd(prev, COL), back(y, COL), fwd(y, COL), &gap(gp));
- X prev = z;
- X NextDefiniteWithGap(y, link, z, gp);
- X }
- X fwd(y, COL) = f + fwd(prev, COL);
- X
- X /* make last line DO_ADJUST if it is oversize */
- X if( size(y, COL) > max_width ) display_style(save_style(y)) = DO_ADJUST;
- X }
- X
- X debug0(DOF, D, "FillObject exiting");
- X return res;
- X} /* end FillObject */
- END_OF_FILE
- if test 28167 -ne `wc -c <'z14.c'`; then
- echo shar: \"'z14.c'\" unpacked with wrong size!
- fi
- # end of 'z14.c'
- fi
- if test -f 'z17.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'z17.c'\"
- else
- echo shar: Extracting \"'z17.c'\" \(14510 characters\)
- sed "s/^X//" >'z17.c' <<'END_OF_FILE'
- X/*@z17.c:Gap Widths:GetGap()@*************************************************/
- X/* */
- X/* LOUT: A HIGH-LEVEL LANGUAGE FOR DOCUMENT FORMATTING (VERSION 2.05) */
- X/* COPYRIGHT (C) 1993 Jeffrey H. Kingston */
- X/* */
- X/* Jeffrey H. Kingston (jeff@cs.su.oz.au) */
- X/* Basser Department of Computer Science */
- X/* The University of Sydney 2006 */
- X/* AUSTRALIA */
- X/* */
- X/* This program is free software; you can redistribute it and/or modify */
- X/* it under the terms of the GNU General Public License as published by */
- X/* the Free Software Foundation; either version 1, or (at your option) */
- X/* any later version. */
- X/* */
- X/* This program is distributed in the hope that it will be useful, */
- X/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
- X/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
- X/* GNU General Public License for more details. */
- X/* */
- X/* You should have received a copy of the GNU General Public License */
- X/* along with this program; if not, write to the Free Software */
- X/* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
- X/* */
- X/* FILE: z17.c */
- X/* MODULE: Gap Widths */
- X/* EXTERNS: GetGap(), MinGap(), ExtraGap(), ActualGap(), EchoGap() */
- X/* */
- X/*****************************************************************************/
- X#include "externs"
- X
- X
- X/*****************************************************************************/
- X/* */
- X/* GetGap(x, style, res_gap, res_inc) */
- X/* */
- X/* Object x is expected to be a WORD or QWORD containing a gap: */
- X/* */
- X/* <gap> ::= [ <increment> ] <width> [ <mode> ] */
- X/* ::= */
- X/* <width> ::= <unsigned number> <units> */
- X/* <units> ::= c | i | p | m | f | s */
- X/* ::= v | w | b | r | d */
- X/* <mode> ::= e | h | x | o | k | t */
- X/* <increment> ::= + | - */
- X/* */
- X/* Set *res_gap to the gap in the strings of x; *res_inc is the increment. */
- X/* The gap is calculated using the given style. */
- X/* If the gap is empty, this is a synonym for 0ie. */
- X/* If there is an error, GetGap prints a message and returns 0ie. */
- X/* */
- X/*****************************************************************************/
- X#define setwidths(x, y) w = x; units(*res_gap) = y; break;
- X
- XGetGap(x, style, res_gap, res_inc)
- XOBJECT x; STYLE *style; GAP *res_gap; unsigned *res_inc;
- X{ int w; float num;
- X FULL_CHAR *str;
- X
- X debug2(DGW, D, "GetGap( %s, %s, res_gap, res_inc )",
- X EchoObject(x), EchoStyle(style));
- X
- X width(*res_gap) = 0; units(*res_gap) = FIXED_UNIT;
- X mode(*res_gap) = EDGE_MODE; *res_inc = GAP_ABS;
- X
- X /* make sure we have a WORD or QWORD argument */
- X if( !is_word(type(x)) )
- X { Error(WARN, &fpos(x), "gap is not a simple word");
- X debug1(DGW, D, "GetGap failing (type(x) = %s)", Image(type(x)));
- X return;
- X }
- X str = string(x);
- X
- X /* if word is empty, return 0ie */
- X if( *str == '\0' )
- X { debug0(DGW, D, "GetGap returning (null word)");
- X return;
- X }
- X
- X /* find the gap increment */
- X if( *str == CH_INCGAP ) *res_inc = GAP_INC, str++;
- X else if( *str == CH_DECGAP ) *res_inc = GAP_DEC, str++;
- X
- X /* read the gap width */
- X if( sscanf((char *) str, "%f", &num) != 1 )
- X { Error(WARN, &fpos(x), "width missing from %s", string(x));
- X Error(WARN, &fpos(x), "reminder: /, | and & characters %s",
- X "must be enclosed in double quotes");
- X debug0(DGW, D, "GetGap failing (width missing)");
- X return;
- X }
- X while( numericchar(*str) ) str++;
- X
- X /* find the units, calculate length, and check for reasonableness */
- X switch( *str )
- X {
- X case CH_UNIT_CM: setwidths( num*CM, FIXED_UNIT );
- X case CH_UNIT_IN: setwidths( num*IN, FIXED_UNIT );
- X case CH_UNIT_PT: setwidths( num*PT, FIXED_UNIT );
- X case CH_UNIT_EM: setwidths( num*EM, FIXED_UNIT );
- X case CH_UNIT_FT: setwidths( num*FontSize(font(*style), x), FIXED_UNIT );
- X case CH_UNIT_SP: setwidths( num*width(space_gap(*style)), FIXED_UNIT );
- X case CH_UNIT_VS: setwidths( num*width(line_gap(*style)), FIXED_UNIT );
- X case CH_UNIT_WD: setwidths( num*FR, NEXT_UNIT );
- X case CH_UNIT_BD: setwidths( num*FR, FRAME_UNIT );
- X case CH_UNIT_RL: setwidths( num*FR, AVAIL_UNIT );
- X
- X case CH_UNIT_DG: if( *res_inc == GAP_DEC ) num = - num;
- X *res_inc = GAP_ABS;
- X while( num >= 360.0 ) num -= 360.0;
- X while( num <= -360.0 ) num += 360.0;
- X assert( (num>= -360) && (num<=360), "GetGap: dg!" );
- X setwidths( num*DG, DEG_UNIT );
- X
- X default: Error(WARN, &fpos(x), "units letter missing from %s",string(x));
- X debug0(DGW, D, "GetGap failing (units letter missing)");
- X return;
- X }
- X
- X if( units(*res_gap) == AVAIL_UNIT && w > FR )
- X { Error(WARN, &fpos(x), "%.1fr too large; replaced with 1.0r", num);
- X w = FR;
- X }
- X else if( w > MAX_LEN )
- X { assert( units(*res_gap) != DEG_UNIT, "GetGap: oversize degrees!" );
- X Error(WARN, &fpos(x), "length %s is too large - max (%dc) substituted",
- X string(x), MAX_LEN/CM);
- X w = MAX_LEN;
- X }
- X width(*res_gap) = w;
- X
- X /* find the gap mode */
- X switch( *++str )
- X {
- X case CH_MODE_EDGE:
- X case '\0': mode(*res_gap) = EDGE_MODE; break;
- X case CH_MODE_HYPH: mode(*res_gap) = HYPH_MODE; break;
- X case CH_MODE_MARK: mode(*res_gap) = MARK_MODE; break;
- X case CH_MODE_OVER: mode(*res_gap) = OVER_MODE; break;
- X case CH_MODE_KERN: mode(*res_gap) = KERN_MODE; break;
- X case CH_MODE_TABL: mode(*res_gap) = TAB_MODE; break;
- X
- X default: Error(WARN, &fpos(x), "unknown gap mode in %s",string(x));
- X debug0(DGW, D, "GetGap failing (spacing mode)");
- X return;
- X }
- X
- X if( *str != '\0' && *++str != '\0' )
- X Error(WARN, &fpos(x), "invalid width or gap %s", string(x));
- X
- X debug2(DGW, D, "GetGap returning (res_gap = %s, res_inc = %s)",
- X EchoGap(res_gap), Image( (int) *res_inc) );
- X} /* end GetGap */
- X
- X
- X/*@::MinGap()@****************************************************************/
- X/* */
- X/* LENGTH MinGap(a, b, c, xgap) */
- X/* */
- X/* Returns the minimum possible separation between the marks of two */
- X/* objects with the given intervening gap. */
- X/* The first object has fwd value a, the second has back value b and fwd c. */
- X/* */
- X/*****************************************************************************/
- X
- XLENGTH MinGap(a, b, c, xgap)
- XLENGTH a, b, c; GAP *xgap;
- X{ LENGTH res; int w;
- X switch( units(*xgap) )
- X {
- X case FIXED_UNIT: w = width(*xgap);
- X break;
- X
- X case FRAME_UNIT: w = 0;
- X break;
- X
- X case AVAIL_UNIT: w = 0;
- X break;
- X
- X case NEXT_UNIT: w = width(*xgap) * (b + c) / FR;
- X break;
- X
- X default: Error(INTERN, no_fpos, "MinGap: units = %d",
- X units(*xgap));
- X break;
- X }
- X switch( mode(*xgap) )
- X {
- X case NO_MODE: Error(INTERN, no_fpos, "MinGap: NO_MODE");
- X res = 0;
- X break;
- X
- X case ADD_HYPH:
- X case HYPH_MODE:
- X case EDGE_MODE: res = min(MAX_LEN, a + w + b);
- X break;
- X
- X case MARK_MODE: res = max(w, a + b);
- X break;
- X
- X case OVER_MODE: res = w;
- X break;
- X
- X case KERN_MODE: res = max(max(a, b), w);
- X break;
- X
- X case TAB_MODE: res = a + b;
- X break;
- X
- X default: Error(INTERN, no_fpos, "MinGap: %d", mode(*xgap));
- X res = 0;
- X break;
- X
- X }
- X debug5(DGW, D, "MinGap( _,%s %s %s,%s ) = %s", EchoLength(a),
- X EchoGap(xgap), EchoLength(b), EchoLength(c), EchoLength(res) );
- X return res;
- X} /* end MinGap */
- X
- X
- X/*@::ExtraGap()@**************************************************************/
- X/* */
- X/* LENGTH ExtraGap(a, b, xgap, dir) */
- X/* */
- X/* Consider two objects, the first with forward length a, the second with */
- X/* back length b. The objects are separated by the given gap. */
- X/* If dir == FWD, ExtraGap returns the maximum amount that a could be */
- X/* increased without increasing MinGap(a, b, c, xgap). */
- X/* If dir == BACK, similarly for b. */
- X/* */
- X/*****************************************************************************/
- X
- XLENGTH ExtraGap(a, b, xgap, dir)
- XLENGTH a, b; GAP *xgap; int dir;
- X{ LENGTH tmp, res;
- X LENGTH w = units(*xgap) == FIXED_UNIT ? width(*xgap) : 0;
- X switch( mode(*xgap) )
- X {
- X case NO_MODE: Error(INTERN, no_fpos, "ExtraGap: NO_MODE");
- X res = 0;
- X break;
- X
- X case ADD_HYPH:
- X case HYPH_MODE:
- X case EDGE_MODE: res = 0;
- X break;
- X
- X case MARK_MODE: res = max(0, w - a - b);
- X break;
- X
- X case OVER_MODE: res = MAX_LEN;
- X break;
- X
- X case KERN_MODE: tmp = max(a, max(b, w));
- X res = dir == BACK ? tmp - b : tmp - a;
- X break;
- X
- X case TAB_MODE: res = 0;
- X break;
- X
- X default: Error(INTERN, no_fpos, "ExtraGap: %d", mode(*xgap));
- X res = 0;
- X break;
- X
- X }
- X debug5(DGW, DD, "ExtraGap( %s, %s, %s, %s ) = %s", EchoLength(a),
- X EchoLength(b), EchoGap(xgap), Image(dir), EchoLength(res));
- X return res;
- X} /* end ExtraGap */
- X
- X
- X/*@::ActualGap()@*************************************************************/
- X/* */
- X/* LENGTH ActualGap(a, b, c, xgap, f, mk) */
- X/* */
- X/* Returns the actual separation between the marks of an object of size */
- X/* (?, a) and an object of size (b, c) separated by gap *xgap in a frame */
- X/* of size f; the first object lies at mk in the frame (0 <= mk <= f). */
- X/* */
- X/*****************************************************************************/
- X
- XLENGTH ActualGap(a, b, c, xgap, f, mk)
- XLENGTH a, b, c; GAP *xgap; LENGTH f, mk;
- X{ LENGTH res; int w, w2;
- X switch( units(*xgap) )
- X {
- X case FIXED_UNIT: w = width(*xgap);
- X break;
- X
- X case FRAME_UNIT: w = (width(*xgap) * f) / FR;
- X break;
- X
- X case AVAIL_UNIT: w = (width(*xgap) * (f - b - c)) / FR;
- X w = max(w, 0);
- X break;
- X
- X case NEXT_UNIT: w = width(*xgap) * (b + c) / FR;
- X break;
- X
- X default: Error(INTERN, no_fpos, "ActualGap: units = %d",
- X units(*xgap));
- X break;
- X }
- X switch( mode(*xgap) )
- X {
- X case NO_MODE: Error(INTERN, no_fpos, "ActualGap: NO_MODE");
- X w2 = 0;
- X break;
- X
- X case ADD_HYPH:
- X case HYPH_MODE:
- X case EDGE_MODE: w2 = a + w + b;
- X break;
- X
- X case MARK_MODE: w2 = max( w, a + b );
- X break;
- X
- X case OVER_MODE: w2 = w;
- X break;
- X
- X case KERN_MODE: w2 = max( max(a, b), w);
- X break;
- X
- X case TAB_MODE: w2 = w + b - mk;
- X w2 = max( w2, a + b );
- X break;
- X
- X default: Error(INTERN,no_fpos,"ActualGap: mode %d", mode(*xgap));
- X w2 = 0;
- X break;
- X }
- X res = min(MAX_LEN, w2);
- X debug6(DGW, D, "ActualGap( _,%s %s %s,%s; %s ) = %s",
- X EchoLength(a), EchoGap(xgap), EchoLength(b),
- X EchoLength(c), EchoLength(f), EchoLength(res) );
- X return res;
- X} /* end ActualGap */
- X
- X
- X/*@::EchoGap()@***************************************************************/
- X/* */
- X/* FULL_CHAR *EchoGap(xgap) */
- X/* */
- X/* Returns a static string showing the indicated xgap. */
- X/* */
- X/*****************************************************************************/
- X#if DEBUG_ON
- X
- XFULL_CHAR *EchoGap(xgap)
- XGAP *xgap;
- X{ char *letter = "?ehxokt"; char c;
- X static char buff[20];
- X assert( mode(*xgap) <= 6, "EchoGap: mode(*xgap)" );
- X c = letter[mode(*xgap)];
- X switch( units(*xgap) )
- X {
- X case 0: sprintf(buff, "(none)%c", c);
- X break;
- X
- X case FIXED_UNIT: sprintf(buff, "%.1fc%c", (float) width(*xgap) / CM, c);
- X break;
- X
- X case NEXT_UNIT: sprintf(buff, "%.1fw%c", (float) width(*xgap) / FR, c);
- X break;
- X
- X case FRAME_UNIT: sprintf(buff, "%.1fb%c", (float) width(*xgap) / FR, c);
- X break;
- X
- X case AVAIL_UNIT: sprintf(buff, "%.1fr%c", (float) width(*xgap) / FR, c);
- X break;
- X
- X case DEG_UNIT: sprintf(buff, "%.1fd", (float) width(*xgap) / DG);
- X break;
- X
- X default: Error(INTERN, no_fpos, "EchoGap: %d", units(*xgap));
- X break;
- X
- X }
- X return AsciiToFull(buff);
- X} /* end EchoGap */
- X#endif
- END_OF_FILE
- if test 14510 -ne `wc -c <'z17.c'`; then
- echo shar: \"'z17.c'\" unpacked with wrong size!
- fi
- # end of 'z17.c'
- fi
- echo shar: End of archive 11 \(of 35\).
- cp /dev/null ark11isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 35 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still must unpack the following archives:
- echo " " ${MISSING}
- fi
- exit 0
- exit 0 # Just in case...
-