texlive[42925] Master/texmf-dist: sanskrit (11jan17)

commits+karl at tug.org commits+karl at tug.org
Thu Jan 12 00:05:38 CET 2017


Revision: 42925
          http://tug.org/svn/texlive?view=revision&revision=42925
Author:   karl
Date:     2017-01-12 00:05:37 +0100 (Thu, 12 Jan 2017)
Log Message:
-----------
sanskrit (11jan17)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/sanskrit/sktdoc.skt
    trunk/Master/texmf-dist/source/latex/sanskrit/skt.c

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/sanskrit/README.md
    trunk/Master/texmf-dist/doc/latex/sanskrit/README.pdf
    trunk/Master/texmf-dist/doc/latex/sanskrit/build-ctan-dist.sh
    trunk/Master/texmf-dist/doc/latex/sanskrit/sktdoc.pdf

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/sanskrit/readme.txt

Added: trunk/Master/texmf-dist/doc/latex/sanskrit/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/sanskrit/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/sanskrit/README.md	2017-01-11 23:05:37 UTC (rev 42925)
@@ -0,0 +1,141 @@
+Introduction
+============
+
+The package contains the font files and pre-processor for printing
+Sanskrit in both devanagari and transliterated roman with diacritics.
+
+Some features of the devanagari are:
+
+-   Font available in three weights and two slopes.
+
+-   The i-hooks connect to the consonant at the correct position.
+
+-   Accents for all Vedas (23 symbols).
+
+-   Accent marking in colour or grey shading.
+
+-   Choice of basic character forms, and samyoga.
+
+-   Dynamic option selection.
+
+-   Range of inter- and intra-syllable spacing.
+
+-   Vedic anusvaara and jihvaamuuliiya/upadhmaaniiya.
+
+-   Crisper characters (to look good at poster size of 150mm/6-inches).
+
+Some features of the transliterated roman:
+
+-   Transliterated output in roman script with diacritics, using the
+    same encoding scheme as for producing devanaagarii.
+
+-   Technical transliterated output using four 'cases', following the
+    style of S.M.Katre in his translation of the A.s.taadhyaayii.
+
+-   Each transliteration mode has four styles: roman/italic x bold/normal.
+
+The font and supporting files are designed for use with LaTeX2e; it is a
+bitmap font using Metafont.
+
+Installation
+============
+
+If `sktbugxx.txt` files exist, you may want to implement any changes or
+patches first.
+
+Run the metafont program on the eight font source files (the typical
+command would be `mf "\mode=ljfour; mag=1; input skt8;"` to produce the
+`.tfm` files. If you are using `dvips`, then the `.pk` files will be
+produced automatically on demand; if not, then you will need to
+
+1.  Convert the .gf files with the command `gftopk skt8.600gf` (the
+    number '600' depends upon your printer resolution and
+    the magnification) to produce `skt8.pk` which must be copied to the
+    appropriate subdirectory.
+2.  Repeat this process with all eight fonts.
+3.  For the six `skt*10.mf` files the whole process needs to be repeated
+    with the mag value in the `mf` command set to 1.095, 1.2, 1.44,
+    1.728, 2.074 and 2.488.
+
+The `mf_inputs` path needs to point to the files with a `.mf` extension;
+the `tex_fonts` path should point to the `.tfm` files; the `tex_inputs`
+path should point to the files `skt.sty`, `ot1skt.fd`. The `tex_exe` (or
+other appropriate) path should point to `skt.exe`.
+
+To test the setup on the documentation file: first run the pre-processor
+`skt sktdoc` and then `latex sktdoc`. The files `ifthen.sty`,
+`relsize.sty`, `xcolor.sty` and `multicol.sty` are also required.
+
+The files that you should have are:
+
+`readme.txt`  
+This file.
+
+`skt.sty`  
+Style file (LaTeX2e) for the skt-series fonts.
+
+`ot1skt.fd`  
+Font descriptor file for the skt-series fonts.
+
+`skt.c`  
+Pre-processor source program in ANSI C.
+
+`sktdoc.skt`  
+Source file of documentation and samples.
+
+`sktdoc.ps`  
+Print file of documentation and samples.
+
+`sktdefs.mf`  
+Common definitions of pens, macros, etc. for skt-series fonts.
+
+`sktchars.mf`  
+Common character source file for skt-series fonts.
+
+`sktligs.mf`  
+Ligature codes (in fact access codes for non-printing ASCII
+code characters) for skt-series fonts.
+
+`skt8.mf`  
+Metafont source file for skt font at 8pt upright.
+
+`skt9.mf`  
+Metafont source file for skt font at 9pt upright.
+
+`skt10.mf`  
+Metafont source file for skt font at 10pt upright.
+
+`sktb10.mf`  
+Metafont source file for skt font at 10pt upright bold.
+
+`sktf10.mf`  
+Metafont source file for skt font at 10pt upright feint.
+
+`skts10.mf`  
+Metafont source file for skt font at 10pt slanted.
+
+`sktbs10.mf`  
+Metafont source file for skt font at 10pt bold slant.
+
+`sktfs10.mf`  
+Metafont source file for skt font at 10pt feint slant.
+
+`skt*.tfm`  
+Eight .tfm font files for above.
+
+`sktbugxx.txt`  
+There may be a series of such files, where ‘xx’ is a two-digit number,
+listing reported bugs and (possibly) fixes or patches.
+
+History
+=======
+
+-   Revision 1.0 1996/02/13 Charles Wikner wikner at nacdh4.nac.ac.za
+-   Revision 2.0 1996/11/27 Charles Wikner wikner at nacdh4.nac.ac.za
+-   Revision 2.2 2002/01/02 Charles Wikner wikner at nac.ac.za
+-   Revision 2.2.1 2016/09/01 Václav Haisman vhaisman at gmail.com
+
+I, Václav Haisman, am only a maintainer pro tempore. If you are reading this
+and you have patches to submit and actual interest in and knowledge of
+Sanskrit and LaTeX, do not hesitate to ask for maintainership of this
+package. I will gladly pass the baton over to you.

Added: trunk/Master/texmf-dist/doc/latex/sanskrit/README.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/sanskrit/README.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/sanskrit/README.pdf	2017-01-11 01:34:07 UTC (rev 42924)
+++ trunk/Master/texmf-dist/doc/latex/sanskrit/README.pdf	2017-01-11 23:05:37 UTC (rev 42925)

Property changes on: trunk/Master/texmf-dist/doc/latex/sanskrit/README.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/sanskrit/build-ctan-dist.sh
===================================================================
--- trunk/Master/texmf-dist/doc/latex/sanskrit/build-ctan-dist.sh	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/sanskrit/build-ctan-dist.sh	2017-01-11 23:05:37 UTC (rev 42925)
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+set -e
+set -x
+
+command_exists() {
+    type "$1" &> /dev/null ;
+}
+
+if command_exists pandoc ; then
+    pandoc --smart \
+           --verbose \
+           -f markdown-raw_tex \
+           -t latex \
+           -o README.pdf \
+           README.md
+fi
+
+${CC:-cc} -o skt skt.c
+
+./skt sktdoc.skt sktdoc.tex
+
+latexmk -gg -ps sktdoc.tex
+
+latexmk -g -pdf sktdoc.tex
+
+rm -f ./ps-type1/sktdoc.pdf
+ln ./sktdoc.pdf ./ps-type1/sktdoc.pdf
+
+chmod -R +r .
+
+list_files() {
+    find ./ps-type1 -type f \
+         \( -name '*.pfb' \
+         -o -name '*.map' \
+         -o -name 'sktdoc.pdf' \
+         -o -name 'README' \
+         \) -print
+
+    find . -maxdepth 1 -type f \
+         \( -name '*.sh' \
+         -o -name '*.mf' \
+         -o -name '*.tfm' \
+         -o -name '*.fd' \
+         -o -name '*.sty' \
+         -o -name '*.c' \
+         -o -name 'sktdoc.ps' \
+         -o -name 'sktdoc.pdf' \
+         -o -name 'sktdoc.skt' \
+         -o -name 'README.md' \
+         -o -name 'README.pdf' \
+         \) -print
+}
+
+list_files | sort | \
+    tar -cvvzf sanskrit.tar.gz \
+        -T - \
+        --transform 's,^\./,sanskrit/,' \
+        --owner=sanskrit \
+        --group=ctan


Property changes on: trunk/Master/texmf-dist/doc/latex/sanskrit/build-ctan-dist.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/latex/sanskrit/readme.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/sanskrit/readme.txt	2017-01-11 01:34:07 UTC (rev 42924)
+++ trunk/Master/texmf-dist/doc/latex/sanskrit/readme.txt	2017-01-11 23:05:37 UTC (rev 42925)
@@ -1,105 +0,0 @@
-%
-% README.TXT
-%
-% Revision 1.0 1996/02/13 Charles Wikner wikner at nacdh4.nac.ac.za
-% Revision 2.0 1996/11/27 Charles Wikner wikner at nacdh4.nac.ac.za
-% Revision 2.2 2002/01/02 Charles Wikner wikner at nac.ac.za
-%
-
-The package contains the font files and pre-processor for printing
-Sanskrit in both devanagari and transliterated roman with diacritics.
-
-Some features of the devanagari are:
-
- o  Font available in three weights and two slopes.
-
- o  The i-hooks connect to the consonant at the correct position.
-
- o  Accents for all Vedas (23 symbols).
-
- o  Accent marking in colour or grey shading.
-
- o  Choice of basic character forms, and samyoga.
-
- o  Dynamic option selection.
-
- o  Range of inter- and intra-syllable spacing.
-
- o  Vedic anusvaara and jihvaamuuliiya/upadhmaaniiya.
-
- o  Crisper characters (to look good at poster size of 150mm/6-inches).
-
-Some features of the transliterated roman:
-
- o  Transliterated output in roman script with diacritics, using the 
-    same encoding scheme as for producing devanaagarii.
-
- o  Technical transliterated output using four `cases', following the
-    style of S.M.Katre in his translation of the A.s.taadhyaayii.
-
- o  Each transliteration mode has four styles: roman/italic x bold/normal.
-
-The font and supporting files are designed for use with LaTeX2e; it is 
-a bitmap font using Metafont.
-
-INSTALLATION
-
-If sktbugxx.txt files exist, you may want to implement any changes or 
-patches first.
-
-Run the metafont program on the eight font source files (the typical 
-command would be mf "\mode=ljfour; mag=1; input skt8;" to produce 
-the .tfm files. If you are using dvips, then the .pk files will be 
-produced automatically on demand; if not, then you will need to 
-(1) Convert the .gf files with the command gftopk skt8.600gf 
-(the number `600' depends upon your printer resolution and the 
-magnification) to produce skt8.pk which must be copied to the 
-appropriate subdirectory. 
-(2) Repeat this process with all eight fonts.
-(3) For the six skt*10.mf files the whole process needs 
-to be repeated with the mag value in the mf command set 
-to 1.095, 1.2, 1.44, 1.728, 2.074 and 2.488.
-
-The mf_inputs path needs to point to the files with a .mf extension; 
-the tex_fonts path should point to the .tfm files; the tex_inputs
-path should point to the files skt.sty ot1skt.fd. The tex_exe 
-(or other appropriate) path should point to skt.exe.
-
-To test the setup on the documentation file: first run the pre-processor 
-skt sktdoc and then latex sktdoc. The files ifthen.sty, relsize.sty,
-and multicol.sty are also required. If you are not using dvips and
-pstricks then first comment out line 12 in sktdoc.skt.
-
-The files that you should have are:
-
-readme.txt   This file.
-skt.sty      Style file (LaTeX2e) for the skt-series fonts.
-ot1skt.fd    Font descriptor file for the skt-series fonts.
-skt.c        Pre-processor source program in ANSI C.
-sktdoc.skt   Source file of documentation and samples.
-sktdoc.ps    Print file of documentation and samples.
-sktdefs.mf   Common definitions of pens, macros, etc. for skt-series fonts.
-sktchars.mf  Common character source file for skt-series fonts.
-sktligs.mf   Ligature codes (in fact access codes for non-printing
-                      ASCII code characters) for skt-series fonts.
-skt8.mf      Metafont source file for skt font at 8pt upright.
-skt9.mf      Metafont source file for skt font at 9pt upright.
-skt10.mf     Metafont source file for skt font at 10pt upright.
-sktb10.mf    Metafont source file for skt font at 10pt upright bold.
-sktf10.mf    Metafont source file for skt font at 10pt upright feint.
-skts10.mf    Metafont source file for skt font at 10pt slanted.
-sktbs10.mf   Metafont source file for skt font at 10pt bold slant.
-sktfs10.mf   Metafont source file for skt font at 10pt feint slant.
-skt*.tfm     Eight .tfm font files for above.
-sktbugxx.txt There may be a series of such files, where `xx' is a 
-                      two-digit number, listing reported bugs and 
-                      (possibly) fixes or patches.
-
-Suggestions and bug reports to:
-wikner at nacdh4.nac.ac.za
-02 January 2002.
-
-P.S.
-I shall be retiring from the world at the end of March 2002,
-and shall not be available on the Net.
-

Added: trunk/Master/texmf-dist/doc/latex/sanskrit/sktdoc.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/sanskrit/sktdoc.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/sanskrit/sktdoc.pdf	2017-01-11 01:34:07 UTC (rev 42924)
+++ trunk/Master/texmf-dist/doc/latex/sanskrit/sktdoc.pdf	2017-01-11 23:05:37 UTC (rev 42925)

Property changes on: trunk/Master/texmf-dist/doc/latex/sanskrit/sktdoc.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/sanskrit/sktdoc.skt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/sanskrit/sktdoc.skt	2017-01-11 01:34:07 UTC (rev 42924)
+++ trunk/Master/texmf-dist/doc/latex/sanskrit/sktdoc.skt	2017-01-11 23:05:37 UTC (rev 42925)
@@ -4,6 +4,7 @@
 % Revision 1.0 1996/02/13 Charles Wikner wikner at nacdh4.nac.ac.za
 % Revision 1.1 1996/03/05 added skt*.tfm files to distribution
 % Revision 2.0 1996/11/27 major upgrade.
+% Revision 2.2.1 2016/09/01 compilation fixes and modernization
 %
 % Copyright 1996 & 2002 Charles Wikner
 % This program can be redistributed and/or modified under the terms
@@ -17,14 +18,28 @@
 
 \documentclass[12pt]{article}
 \usepackage[larger,iitalic,uitalic]{skt}
+% Page size compatible both with Letter and A4 papers.
+\usepackage[paperheight=279.4mm, paperwidth=210mm]{geometry}
 \usepackage{multicol}
-\usepackage{pstricks} % If not using pstricks, then comment out this line
-%                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+\usepackage{xcolor}
+\usepackage{mflogo}
+\providecommand{\lightgray}{\color{lightgray}}
+\usepackage{microtype}
+\usepackage{titlesec}
 
-\providecommand{\lightgray}{}  % default when pstricks not used
+% Tweak section title format to conserve space.
+\titleformat{\section}{\large\bfseries}{\thesection}{\parskip}{}
+% Make \section*s unnumbered.
+\setcounter{secnumdepth}{0}
 
-\font\bigskt=skt10 at 46mm
+\DeclareFixedFont{\bigskt}{OT1}{skt}{m}{n}{46mm}
 
+% Dotted hrule.
+\makeatletter
+\newcommand{\Dotfill}{\leavevmode \cleaders \hb at xt@ .9em{\hss .\hss }\hfill \kern \z@}
+\makeatother
+\newcommand{\dotrule}{\hspace*{\fill}\parbox{0.3\textwidth}{\Dotfill}\hspace*{\fill}}
+
 \pagenumbering{skt}
 
 {\skt [0- 1+ 2+ 6+ 7+ 8+ 9+ 10+]}
@@ -51,14 +66,21 @@
    {\mbox{\entrynumber{#1} \makebox[14mm][l]{#2}{#3}}\par%
     \hspace*{23.5mm}\mbox{#4}\par}
 
+\title{Sanskrit for \LaTeXe{}\\Version 2}
+\author{Charles Wikner}
+\date{}
+
 \begin{document}
 
-{\Large \textbf{Sanskrit for \LaTeXe \hfill Version 2}\par}%%%
-\vfill
-\vspace{1mm}
+\begin{titlepage}
+  \maketitle
+\end{titlepage}
 
-{\large \textbf{Introduction}\par}
+\tableofcontents
+\clearpage
 
+\section{Introduction}%
+%
 The package contains the font files and pre-processor for printing
 Sanskrit text in both {\skti devanaagarii} and transliterated Roman
 with diacritics.
@@ -86,7 +108,7 @@
 \makebox[8mm][c]{$\bullet$}
       Full accent marking and stacking in basic transliteration mode.\\
 \makebox[8mm][c]{$\bullet$}
-      Four `cases' (as per S\,M\,Katre) in technical transliteration mode.\\
+      Four `cases' (as per S.\,M.\,Katre) in technical transliteration mode.\\
 \makebox[8mm][c]{$\bullet$}
       Each transliteration mode has four styles: Roman/italic $\times$\ 
       bold/normal. 
@@ -93,10 +115,9 @@
 
 Indebtedness to the earlier work of Frans Velthuis and Dominik Wujastyk is
 acknowledged: the overall structure and encoding is based upon theirs.
-\vspace{3.5mm}
 
-{\large \textbf{Upgrading from Version 1}\par}
-
+\section{Upgrading from Version 1}%
+%
 Every file in this package differs greatly from the Version~1 release,
 so all need to be replaced, and all related pixel files (e.g.~\verb+skt*.pk+)
 should be deleted.
@@ -108,7 +129,7 @@
       The accent marking symbols, \verb+<+ and \verb+>+, have changed.\\
 \makebox[8mm][c]{$\bullet$}
       The punctuation marks \verb+! ` ' [ ]+ no longer pass through as 
-      Roman.\newline\hspace*{8mm}\ (But see page 12 for producing them 
+      Roman.\newline\hspace*{8mm}\ (But see page~\pageref{ref:punct} for producing them
       in version 2.)\\
 \makebox[8mm][c]{$\bullet$}
       The option file (\verb+skt.opt+) is no longer used; instead the 
@@ -124,8 +145,8 @@
       should be checked against their new definitions.
 \vspace{5mm}
 
-{\large \textbf{Illustrations of Input and {\sktX Devanaagarii} Output}\par}
-
+\section{Illustrations of Input and {\sktX Devanaagarii} Output}%
+%
 The following brief samples demonstrate the available styles of 
 {\skti devanaagarii\/} font and their encoding. In this mode upper 
 case characters are disallowed. 
@@ -154,10 +175,10 @@
 {\skt [1- 2- 3-] naiva ki.mcitkaromiiti yukto manyeta tattvavit|}\\[2mm]
 {\skt [1+ 2+ 3+] naiva ki.mcitkaromiiti yukto manyeta tattvavit|[1- 2- 3-]}
 \end{center}
-\vspace{-1mm}
 
-{\large\bf Illustrations of Basic Transliteration\par}
 
+\section{Illustrations of Basic Transliteration}%
+%
 The same input may also be used to produce transliterated output.
 Note that the `\verb+iitalic+' option is selected, but not `\verb+xitalic+'.
 
@@ -193,8 +214,8 @@
                    {\sktI  Bhaarate Raamo vasati}
 \vspace{4mm}
 
-{\large\bf Illustrations of Technical Transliteration\par}
-
+\section{Illustrations of Technical Transliteration}%
+%
 As in the basic transliteration mode, there are four font styles selected
 through \verb+sktt/T+ or \verb+sktu/U+; however, in this mode only the
 Western accent marking is allowed. This technical (grammatical) mode
@@ -224,12 +245,9 @@
 This translates as: A substitute {\sktT kU\/} replaces {\sktT c\/} or 
 {\sktT j\/} before {\sktT .NyaT\/} or [affixes]\newline\hspace*{35mm}with 
 {\sktT GH\/} as an {\sktT _I_T\/} marker.
-\vspace{5mm}
 
-\clearpage
-
-{\large \textbf{Vedic Accent Marking}\par}
-
+\section{Vedic Accent Marking}%
+%
 Since the significance of the {\skti devanaagarii} accent marking may
 differ between {\skti Veda\/}s (e.g.~{\skt a!} is {\skti svarita} in
 {\skti .Rgveda}, but {\skti udaatta} in {\skti Kaa.thaka\/}), the character
@@ -302,7 +320,7 @@
 colour (red is the tradition) or grey. This actually makes the text easier 
 to read: the sample text from the {\skti .Rgveda} on page~\pageref{rgtext}
 has the accents in the first four verses the default black, and in the next 
-four verses they are `lightgray' (using \verb+pstricks+).
+four verses they are `lightgray' (using \verb+xcolor+).
 To set the accent colour redefine the \verb+\ZK+ command anywhere in the 
 \verb+.skt+~file as \verb+\renewcommand{\ZK}[1]{{\lightgray #1}}+ for example.
 
@@ -310,10 +328,9 @@
 italics, e.g.:\\
 {\sktt [38+]_.r.r'#} and {\sktu _.r.r'#[38-]} (signifying a long or short 
 {\skti udaatta .r} used for pronunciation only).
-\vspace{5mm}
 
-{\large \textbf{Dynamic Option Selection}\par}
-
+\section{Dynamic Option Selection}%
+%
 The selection and deselection of options may occur anywhere in the preamble
 (but after \verb+\usepackage{skt}+) or in the body of the text. 
 By default all options are deselected
@@ -348,12 +365,11 @@
 Note that once an option is selected (anywhere in the file), it remains
 in effect until explicitly deselected, irrespective of \verb+{+\verb+\skt...}+
 groupings.
-\vspace{5mm}
 
 \clearpage
 
-{\large \textbf{Control Options (0--11)}\par}
-
+\section{Control Options (0--11)}%
+%
 The control options are all those that do not affect character shapes in
 transliteration or {\skti devanaagarii}.
 \vfill
@@ -512,10 +528,9 @@
 
 The auto-hyphenation is extremely crude (it adds a discretionary hyphen
 after every vowel!), and should only be used for drafts.
-\vspace{3mm}
 
-{\large \textbf{Transliteration Options (20--38)}\par}
-
+\section{Transliteration Options (20--38)}%
+%
 The following table illustrates the transliteration options available:\\[2mm]
 \renewcommand{\arraystretch}{1}
 \begin{tabular}{|c|c|c|c|c|}
@@ -558,12 +573,11 @@
 between the macron and the tilde (i.e.~{\skti aa a# [38+]a#[38-]\/}); and
 secondly, it may be used in technical grammar to indicate an explicit
 short vowel ({\sktt [38+]a#[38-]}) or long or short ({\sktt [38+]aa#[38-]})
-\vspace{5mm}
 
 \pagebreak
 
-{\large \textbf{{\sktX Devanaagarii} Character Options(40--79)}\par}
-
+\section{{\sktX Devanaagarii} Character Options (40--79)}%
+%
 The table illustrates the basic character forms available: where multiple
 options apply to the same input (e.g.~65 and~75) the selected option
 with the highest value will apply. Although {\sktX k.sa} and {\sktX j~na}
@@ -606,8 +620,8 @@
 \end{tabular}
 \vfill
 
-{\large \textbf{{\sktX Devanaagarii Sa.myoga\/} Options (100--199)}\par}
-
+\section{{\sktX Devanaagarii Sa.myoga\/} Options (100--199)}%
+%
 The table illustrates the basic {\skti sa.myoga\/} options available.
 In general, the default {\skti sa.myoga\/} is the most compact, and the 
 options use a looser form: the latter may be easier to read, particularly
@@ -812,8 +826,8 @@
 
 \clearpage
 
-{\large \textbf{The Pre-processor: skt.c}\par}
-
+\section{The Pre-processor: skt.c}%
+%
 This ANSI C program processes the source text file (with a default \verb+.skt+
 filename extension) to produce a file suitable for \LaTeXe\ (with a default
 \verb+.tex+ extension). For example, the command \verb+skt test+ will convert
@@ -833,7 +847,7 @@
 The cycle is then repeated.
 
 Within the \verb+skt+ text, the following punctuation characters will be
-passed to the output as roman:
+passed to the output as roman:\label{ref:punct}
 
 \begin{center}
 \framebox{\texttt{ ( ) * + , - / : ; = ? }}
@@ -869,8 +883,8 @@
 
 \pagebreak
 
-{\large \textbf{The skt package: skt.sty}\par}
-
+\section{The skt package: skt.sty}%
+%
 The following statement needs to be in the preamble of the document:\\
 \verb+\usepackage[options]{skt}+\\
 where `options' may be any or all or none of the following:
@@ -904,8 +918,8 @@
 \verb+relsize.sty+ which you may need to get from the CTAN archives.
 \vspace{5mm}
 
-{\large \textbf{Supplementary Notes}\par}
-
+\section{Supplementary Notes}%
+%
 The program can be simply `fooled' when necessary by inserting a 
 \LaTeX\ null string `\verb+{}+': for example `\verb+{{}\skt >}+' will
 not be `seen' by the pre-processor and thus passed to the output unchanged.
@@ -917,12 +931,7 @@
 the pre-processor requires that there be a vowel before an accent or
 {\skti anusvaara}.
 
-\begin{center}
-\vspace{-1mm}
-$\cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot$
-\vspace{-1mm}
-\end{center}
-
+\dotrule
 %\pagebreak
 
 For those rare words that have two successive vowels in {\skti devanaagarii\/} 
@@ -950,11 +959,7 @@
 that what is either side of the \verb+{}+ is still valid, for example:\\
 \verb+{+\verb+\skt tha t{}ha}+ produces \ {\skt tha t{}ha}.
 
-\begin{center}
-\vspace{-1mm}
-$\cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot$
-\vspace{-1mm}
-\end{center}
+\dotrule
 
 Some \LaTeX\ commands are `fragile' and balk at having {\bf skt} commands within
 their arguments, e.g.~\verb+\section{\+\verb+skt bahuvriihi}+ produces the 
@@ -964,29 +969,22 @@
 \verb+\newcommand{\bahuvriihi}{\+\verb+skt bahuvriihi}+\\
 \verb+\section{\protect\bahuvriihi}+
 
-\begin{center}
-\vspace{-1mm}
-$\cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot\ \cdot$
-\vspace{-1mm}
-\end{center}
+\dotrule
 
 Finally, the simplest method of producing larger sizes of the font is to
-add the command \verb+\font\bigskt=skt10 at 46mm+ for example, in the
+add the command \verb+\DeclareFixedFont{\bigskt}{OT1}{skt}{m}{n}{46mm}+ for example, in the
 preamble to the document, and then use \verb+{+\verb+\skt \bigskt tattvamasi}+
 in the text body. The result (in `lightgray' to save ink) is:
 \vfill
-
+\nopagebreak%
 {\skt [1- 2- 3+]{\lightgray \bigskt tattvamasi[1+ 2+ 3-]}}
-\vfill
 
-\clearpage
-
-{\large \textbf{Installation}\par}
-
+\section{Installation}%
+%
 If \verb+sktbugxx.txt+ files exist, you may want to implement
 any changes or patches first.
 
-Run the {\sc metafont} program on the eight font source files (the typical 
+Run the \MF{} program on the eight font source files (the typical 
 command would be \verb+mf "\mode=ljfour; mag=1; input skt8;"+)
 to produce the \verb+.tfm+ files. 
 If you are using \verb+dvips+, then the \verb+.pk+ files will be produced 
@@ -1009,8 +1007,6 @@
 \verb+skt sktdoc+ and then \verb+latex sktdoc+. 
 The files \verb+ifthen.sty+, \verb+relsize.sty+ and \verb+multicol.sty+ 
 are also required.
-(If you are not using \verb+dvips+ and \verb+pstricks+ then comment out 
-line~12 in \verb+sktdoc.skt+ first.)
 
 The files in this package are:
 
@@ -1034,21 +1030,21 @@
                     ASCII code\newline\hspace*{22mm}characters) for 
                     the skt-series fonts.
 
-\textbf{skt8.mf} {\sc metafont} source file for skt font at 8pt upright.
+\textbf{skt8.mf} \MF{} source file for skt font at 8pt upright.
 
-\textbf{skt9.mf} {\sc metafont} source file for skt font at 9pt upright.
+\textbf{skt9.mf} \MF{} source file for skt font at 9pt upright.
 
-\textbf{skt10.mf} {\sc metafont} source file for skt font at 10pt upright.
+\textbf{skt10.mf} \MF{} source file for skt font at 10pt upright.
 
-\textbf{sktb10.mf} {\sc metafont} source file for skt font at 10pt bold upright.
+\textbf{sktb10.mf} \MF{} source file for skt font at 10pt bold upright.
 
-\textbf{sktf10.mf} {\sc metafont} source file for skt font at 10pt feint upright.
+\textbf{sktf10.mf} \MF{} source file for skt font at 10pt feint upright.
 
-\textbf{skts10.mf} {\sc metafont} source file for skt font at 10pt slanted.
+\textbf{skts10.mf} \MF{} source file for skt font at 10pt slanted.
 
-\textbf{sktbs10.mf} {\sc metafont} source file for skt font at 10pt bold slanted.
+\textbf{sktbs10.mf} \MF{} source file for skt font at 10pt bold slanted.
 
-\textbf{sktfs10.mf} {\sc metafont} source file for skt font at 10pt feint slanted.
+\textbf{sktfs10.mf} \MF{} source file for skt font at 10pt feint slanted.
 
 \textbf{skt*.tfm} Eight \verb+.tfm+ font files for above.
 
@@ -1057,22 +1053,10 @@
                       reported bugs and (possibly) fixes or patches.
 \vspace{5mm}
 
-Suggestions and bug reports to:\\
-\verb+wikner at nacdh4.nac.ac.za+\\
-17 February 1997.
+Suggestions and bug reports to: \verb+vhaisman at gmail.com+
 
 \vfill
-{\small
-A 600 kbyte 600dpi PostScript print file of the documentation and samples 
-is available by anonymous ftp from
-\verb+ftp.nac.ac.za/wikner/sktdoc.ps600+.
 
-Beware: there is a very thin piece of wire to South Africa, 
-and it is stretched rather taut, so the best time to ftp 
-would be Sunday morning local time (GMT+2:00).
-}
-\vspace{5mm}
-
 \clearpage
 
 \setlength{\unitlength}{1mm}
@@ -1229,7 +1213,7 @@
 \addtolength{\parskip}{2mm}
 \renewcommand{\baselinestretch}{1.1}
 
-{\large \textbf{Sample Text from {\sktX .Rgveda 10..125..}}\par}
+\section{Sample Text from {\sktX .Rgveda 10..125..}}
 \vspace{10mm}
 
 \label{rgtext}
@@ -1295,7 +1279,7 @@
 \addtolength{\parskip}{4mm}
 \renewcommand{\baselinestretch}{1.2}
 
-{\large \textbf{ Sample Text from {\sktX Saamaveda}}\par}
+\section{Sample Text from {\sktX Saamaveda}}
 \vspace{6mm}
 
 {\sktI Saamaveda Sa.mhitaa} ({\skti Kauthuma\/}), verses 523--528.
@@ -1954,24 +1938,24 @@
 
 \hspace*{17mm}\begin{minipage}{137mm}
 \addtolength{\parskip}{2mm}
-{\Large\bf {\sktX Sa.myoga} Table\par}
-
+\section{{\sktX Sa.myoga} Table}%
+%
 This lists the {\skti sa.myoga} tested by the font: the first shown is the
 default; where it is affected by user-selectable options, all the possible 
 forms are shown.
 The sources used in compiling this table, in order consulted, are:\\
 \makebox[2mm][l]{\textsuperscript{c}}
-Michael Coulson, \emph{Teach Yourself Sanskrit}, pp 22-24.\\
+Michael Coulson, \emph{Teach Yourself Sanskrit}, pp.~22--24.\\
 \makebox[2mm][l]{\textsuperscript{m}}
-Monier-Williams, \emph{A Practical Grammar of the Sanskrit Language}, p 2.\\
+Monier-Williams, \emph{A Practical Grammar of the Sanskrit Language}, p.~2.\\
 \makebox[2mm][l]{\textsuperscript{p}}
-S.C.Vasu, {\skti A.s.taadhyaayii} \emph{of} {\skti Paa.nini},
+S.\,C.\,Vasu, {\skti A.s.taadhyaayii} \emph{of} {\skti Paa.nini},
            (Riddled with typo's.)\\
 \makebox[2mm][l]{\textsuperscript{a}}
-J~E~Agenbroad, \emph{Difficult Characters: A Collection of Devanagari 
+J.\,E.\,Agenbroad, \emph{Difficult Characters: A Collection of Devanagari 
            Conjunct\newline\hspace*{2mm} 
            Consonants}, Int.~Assoc.~of Orientalist Librarians, 
-           Bulletin 38, pp.~17--53.
+           Bulletin~38, pp.~17--53.
 \addtolength{\parskip}{-2mm}
 \end{minipage}
 

Modified: trunk/Master/texmf-dist/source/latex/sanskrit/skt.c
===================================================================
--- trunk/Master/texmf-dist/source/latex/sanskrit/skt.c	2017-01-11 01:34:07 UTC (rev 42924)
+++ trunk/Master/texmf-dist/source/latex/sanskrit/skt.c	2017-01-11 23:05:37 UTC (rev 42925)
@@ -1,4 +1,3 @@
-
 /******************************************************************************/
 /*                                                                            */
 /*      SKT.C                                                                 */
@@ -15,6 +14,7 @@
 /*      Revision 2.0 1996/11/27 major upgrade: add/change many features       */
 /*      Revision 2.1 1997/02/11 minor corrections; add more accents           */
 /*      Revision 2.2 2002/01/02 minor corrections; tidy                       */
+/*      Revision 2.2.1 2016-08-31 compilation and other fixes                 */
 /*                                                                            */
 /*      Copyright 1996 & 2002 Charles Wikner                                  */
 /*      This program can be redistributed and/or modified under the terms     */
@@ -43,7 +43,7 @@
 void   write_outbuf(void);
 void   write_line  (char *);
 char * str_find    (char *, char *);
-void   getline     (void);
+void   get_line    (void);
 char * command     (char *);
 void   error       (char *, int);
 void   process     (void);
@@ -63,6 +63,7 @@
 FILE *infile, *outfile, *fopen();
 char infilename[80];
 char outfilename[80];
+#define FILENAME_SCANF "%79s"
 
 #define TRUE 1
 #define FALSE 0
@@ -136,9 +137,9 @@
 /*                       MAIN                                                 */
 /******************************************************************************/
 
-main(argc,argv)
-int argc;
-char *argv[];
+int
+main(int argc,
+     char *argv[])
 { char *p; int k;
 
 /* INITIALIZATION */
@@ -151,7 +152,7 @@
   o_ptr = outbuf; *o_ptr = '\0';
   for (k=0; k<total_options+1; k++) option[k] = FALSE; /* disable everything  */
 
-  printf("SKT.C Version 2.2 02-Jan-2002\n");
+  printf("SKT.C Version 2.2.1 2016-08-31\n");
 
 #if (DEBUG == 0)
 
@@ -165,11 +166,11 @@
              strcpy(outfilename,"");
              break;
     default: while(strlen(infilename) == 0)
-                   { printf("Input file: "); scanf(infilename); }
+               { printf("Input file: "); scanf(FILENAME_SCANF, infilename); }
              printf("Output file: ");
-             scanf(outfilename);
+             scanf(FILENAME_SCANF, outfilename);
   }
-  if (strlen(outfilename) == 0) 
+  if (strlen(outfilename) == 0)
     { strcpy (outfilename,infilename);   /* default output file name */
       p = strchr(outfilename,'.');
       if (p != 0) *p = '\0';   /* delete out file name extension */
@@ -186,7 +187,7 @@
   printf("Enter text (blank line terminates program) :\n");
 #endif
 
-  getline(); if (eof_flag) { printf("No input text.\n"); exit(1); }
+  get_line(); if (eof_flag) { printf("No input text.\n"); exit(1); }
 
 #if (DEBUG == 0)
 
@@ -199,7 +200,7 @@
          { printf("Too many (%d) errors, aborting program\n",err_cnt); break; }
     }
   if ((err_cnt < err_max) && (nest_cnt != 0))
-     printf("Brace mismatch within \\skt = %d\n",nest_cnt); 
+     printf("Brace mismatch within \\skt = %d\n",nest_cnt);
   fclose(infile);
   fclose(outfile);
   exit(0);
@@ -214,7 +215,7 @@
     }
   exit(0);
 
-#endif 
+#endif
 
 }
 
@@ -238,8 +239,8 @@
       if (p == 0)
         { if (sktline == TRUE) { strcat(outbuf,i_ptr); write_outbuf(); }
           else { write_line(inbuf); o_ptr = outbuf; *o_ptr = '\0';  }
-          getline(); 
-          continue; 
+          get_line();
+          continue;
         }
       q = i_ptr; i_ptr = p;
       if ((p = command(p)) == 0)        /* test command string \skt..         */
@@ -250,7 +251,7 @@
       i_ptr = q;
       nest_cnt++; c = *p; *p = '\0';    /* skip over '{\skt'                  */
       strcat(outbuf,i_ptr);             /* append partial line to outbuf      */
-      *p = c; i_ptr = p; 
+      *p = c; i_ptr = p;
       sktmode = TRUE; sktline = TRUE;   /* now comes the fun!                 */
       break;
     }
@@ -263,19 +264,19 @@
 /* Function: write outbuf in 80 char lines                                    */
 
 void write_outbuf(void)
-{ 
+{
 char c, d, e;
   while(1)
-  { c = '\0'; 
+  { c = '\0';
     if (strlen(outbuf) < 81) { write_line(outbuf); break; }
     if (option[9])                                  /* if obey-lines enabled */
-      { if (strlen(outbuf) > 250) 
-         { printf("Line %4d    Warning: Very long output line: %d characters\n",
-                   line_cnt, strlen(outbuf) );
+      { if (strlen(outbuf) > 250)
+         { printf("Line %4d    Warning: Very long output line: %u characters\n",
+                  line_cnt, (unsigned)strlen(outbuf) );
          }
         write_line(outbuf); break;
       }
-    for (o_ptr = outbuf + 78;     o_ptr > outbuf + 50;     o_ptr--) 
+    for (o_ptr = outbuf + 78;     o_ptr > outbuf + 50;     o_ptr--)
         { if (*o_ptr == ' ') break; }
     if (*o_ptr != ' ') { for (o_ptr = outbuf+78; o_ptr > outbuf + 50; o_ptr--)
                               if ((*o_ptr=='\\') && (*(o_ptr-1)!='\\')) break;
@@ -282,15 +283,15 @@
                          if (o_ptr == outbuf+50) o_ptr = outbuf+78;
                          c = *o_ptr; *o_ptr++ = '%'; d = *o_ptr;
                        }
-    *o_ptr++ = '\n'; e = *o_ptr; *o_ptr = '\0'; 
-    write_line(outbuf); 
+    *o_ptr++ = '\n'; e = *o_ptr; *o_ptr = '\0';
+    write_line(outbuf);
     *o_ptr = e;
     if (c!='\0') { *--o_ptr = d; *--o_ptr = c; } /* restore displaced chars */
-    strcpy(outbuf,o_ptr); 
+    strcpy(outbuf,o_ptr);
   }
   o_ptr = outbuf;
   *o_ptr = '\0';
-} 
+}
 
 /******************************************************************************/
 /*                       WRITE_LINE                                           */
@@ -301,11 +302,11 @@
 void write_line(char *p)
 {
 #if (DEBUG == 0)
-  if (err_cnt == 0) fputs(p,outfile); 
+  if (err_cnt == 0) fputs(p,outfile);
 #else
   printf("%s\n",p);
 #endif
-} 
+}
 
 /******************************************************************************/
 /*                       STR_FIND                                             */
@@ -324,14 +325,14 @@
 }
 
 /******************************************************************************/
-/*                       GETLINE                                              */
+/*                       GET_LINE                                              */
 /******************************************************************************/
 
 /* Function: get another line from input file; reset i_ptr, increments        */
 /*           line_cnt, and sets eof_flag if EOF.                              */
 
-void getline(void)
-{ 
+void get_line(void)
+{
 char *p;
   i_ptr = inbuf;
   *i_ptr = '\0';
@@ -360,11 +361,11 @@
   switch (c)
   {  case ' ': break;                                /* for \skt              */
      case 'X': xbold = TRUE;                         /* for \sktx or \sktX    */
-     case 'x': xlit = TRUE; 
+     case 'x': xlit = TRUE;
                if (*p++ != ' ') p = 0;
                break;
      case 'I': xbold = TRUE;                         /* for \sktx or \sktX    */
-     case 'i': xlit = TRUE; 
+     case 'i': xlit = TRUE;
                if (*p++ != ' ') p = 0;
                break;
      case 'T': xbold = TRUE;                         /* for \sktt or \sktT    */
@@ -383,7 +384,7 @@
                break;
      case 'f': c= *p++; if (c == 's') c = *p++;      /* for \sktf or \sktfs   */
                if (c != ' ') p = 0;
-               else feint = TRUE; 
+               else feint = TRUE;
                break;
      default:  p = 0;
   }
@@ -402,13 +403,13 @@
 { char err_str[80]; int j;
   if (++err_cnt <= err_max)
     { if (n > 0)  { for (j=0; j<n; j++) err_str[j] = *(i_ptr+j);
-                    err_str[j] = '\0'; 
+                    err_str[j] = '\0';
                   }
       if (n == 0) { strcpy(err_str,"oct(");
                     chrcat(err_str,'0' + (*i_ptr/64));
-                    chrcat(err_str,'0' + ((*i_ptr/8)&&7));
+                    chrcat(err_str,'0' + ((*i_ptr/8)&7));
                     chrcat(err_str,'0' + (*i_ptr & 7));
-                    strcat(err_str,")"); 
+                    strcat(err_str,")");
                   }
       if (n < 0)  { err_str[0] = '\0'; }
     }
@@ -436,21 +437,21 @@
 #define CR ac_flag=svara_flag=ylv_flag=underscore=cap_flag=nasal_vowel=n_flag=vedic=FALSE;
 #define CI i_ptr++; CC
 
- CF; 
+ CF;
  sktcont(); /* reset cont_begin flag */
  while(1)
   { if (eof_flag) return;
-    if (err_cnt >= err_max) 
+    if (err_cnt >= err_max)
        { sktmode = FALSE; xlit = feint = bold = tech = FALSE; return; }
     c = *i_ptr; d = *(i_ptr+1);
 /* END OF LINE */
     if ((c == '\0') || (c == '\n'))
-      { sktword(); strcat (outbuf,i_ptr); write_outbuf(); getline(); CC; }
+      { sktword(); strcat (outbuf,i_ptr); write_outbuf(); get_line(); CC; }
 /* COMMENT DELIMITER */
     if (c == '%')
     { if (*(i_ptr+1) == '\n') sktcont();
       else sktword();
-      strcat(outbuf,i_ptr); write_outbuf(); getline(); CC;
+      strcat(outbuf,i_ptr); write_outbuf(); get_line(); CC;
     }
 /* ILLEGAL CHARS */
     if (strchr("&fqwxzFQWXZ\177",c))
@@ -462,15 +463,15 @@
     { error("Illegal control character: ",0); CI; }
 /* ADDED IMBEDDED ROMAN */
     if ( (strchr("[`']",c) && c==d) || ((c == '.') && (d == '!')) )
-    { if (sktbuf[0]) sktword(); 
+    { if (sktbuf[0]) sktword();
       if (!xlit) { if (feint) strcat(outbuf,"\\ZF{");
                    if (bold)  strcat(outbuf,"\\ZB{");
                    if (!feint && !bold) strcat(outbuf,"\\ZN{");
                    roman_flag = TRUE;
                  }
-      chrcat(outbuf,d); 
+      chrcat(outbuf,d);
       if (!xlit) strcat(outbuf,"}");
-      i_ptr+=2; 
+      i_ptr+=2;
       CR; continue;
     }
 /* UNEXPECTED > or ] */
@@ -479,7 +480,7 @@
 /* IMBEDDED ROMAN */
     if (strchr("()*+,-/:;=?",c) || ((c == '.') && (d == '.')))
     { if (c == '.') i_ptr++;
-      if (sktbuf[0]) sktword(); 
+      if (sktbuf[0]) sktword();
       if (!xlit) { if (feint) strcat(outbuf,"\\ZF{");
                    if (bold)  strcat(outbuf,"\\ZB{");
                    if (!feint && !bold) strcat(outbuf,"\\ZN{");
@@ -500,7 +501,7 @@
     if (c == '\\')
     { if (d == '-')                 /* imbedded discretionary hyphen */
          { strcat(sktbuf,"-"); i_ptr++; CI; }
-      sktword(); 
+      sktword();
       if (isalpha(d) == 0)
          { chrcat(outbuf,c); chrcat(outbuf,*++i_ptr); CI; }
       else
@@ -510,15 +511,15 @@
       CC;
     }
 /* $$-SPACE (treated as vowel): used for printing accent notation alone */
-    if (c == '$') { if (d!='$') 
+    if (c == '$') { if (d!='$')
                        { error("Illegal Sanskrit character: ",1); CI; }
-                    i_ptr++; d = *(i_ptr+1); 
-                    c = '\26'; 
+                    i_ptr++; d = *(i_ptr+1);
+                    c = '\26';
                   }
 /**/
 /* IMBEDDED OPTIONS */
     if (c =='[')
-    { sktcont(); 
+    { sktcont();
       while (1)
       { while (*++i_ptr == ' '); /* skip white space */
         if (*i_ptr == ']') break;
@@ -527,16 +528,16 @@
         if ( k > total_options )
              { error("Invalid option value: ",j+1); k=-1; }
         else { switch(*(i_ptr+j))
-               { case '+': if (k==0) 
+               { case '+': if (k==0)
                              { for(k=1; k<=total_options; k++) option[k]=TRUE;}
                            else { option[k] = TRUE; }
                            break;
-                 case '-': if (k==0) 
+                 case '-': if (k==0)
                              { for(k=1; k<=total_options; k++) option[k]=FALSE;}
                            else { option[k] = FALSE; }
                            break;
                  default:  error("Expected option sign here: ",j+1); k=-1;
-             } } 
+             } }
         i_ptr += j;
         if (k==-1) break;
       }
@@ -548,13 +549,13 @@
                   }
     if (c == '}')
        { if (--nest_cnt == 0)
-              { sktword(); sktmode = FALSE; xlit = feint = bold = tech = FALSE; 
-                chrcat(outbuf,c); i_ptr++; return; 
+              { sktword(); sktmode = FALSE; xlit = feint = bold = tech = FALSE;
+                chrcat(outbuf,c); i_ptr++; return;
               }
          else { sktcont(); chrcat(outbuf,c); CI; }
        }
 /* SKTT UNDERSCORE */
-    if ( (c=='_') && tech) 
+    if ( (c=='_') && tech)
        { underscore = TRUE;
          c = d; i_ptr++; d = *(i_ptr+1);
        }
@@ -565,14 +566,14 @@
        }
 /* UPPER CASE */
     if (isupper(c) || (strchr("\"~.",c) && isupper(d)))
-    { if (isupper(c)) 
+    { if (isupper(c))
         { if (!(xlit || tech)) { error("Invalid use of upper case: ",1); CI; }
           else { cap_flag = TRUE; c = tolower(c); }
         }
       else
-        { if (!(xlit || tech)) { error("Invalid use of upper case: ",2); 
+        { if (!(xlit || tech)) { error("Invalid use of upper case: ",2);
                                  i_ptr++; CI; }
-          if (    (c=='.'  && strchr("TDSNHRLM",d)) 
+          if (    (c=='.'  && strchr("TDSNHRLM",d))
                || (c=='\"' && strchr("SNHD",    d))
                || (c=='~'  && strchr("NM",      d)) )
              { d = tolower(d); cap_flag = TRUE; }
@@ -580,11 +581,11 @@
     }
 /* QUOTE CHAR */
     if (c == '\"') { switch(d)
-                           { case 'd': c = 'L'; break;  
-                             case 'h': c = '\\'; break;  
-                             case 'n': c = 'z'; break;  
-                             case 's': c = 'Z'; break;  
-                             case 'm': c = 'R'; break;  
+                           { case 'd': c = 'L'; break;
+                             case 'h': c = '\\'; break;
+                             case 'n': c = 'z'; break;
+                             case 's': c = 'Z'; break;
+                             case 'm': c = 'R'; break;
                              case '1': c = '1'; break; /* accent char! */
                              case '3': c = '1'; break; /* accent char! */
                            }
@@ -591,7 +592,7 @@
                      if (c=='\"') { error("Invalid quote_character",2); CI; }
                      if (c=='1') c='\"'; /* restore accent string */
                      else { i_ptr++; d = *(i_ptr+1); }
-                    } 
+                    }
 /* TILDE CHAR */
     if (c == '~') { switch (d)
                     { case 'n': c = 'V'; break;
@@ -598,7 +599,7 @@
                       case 'm': c = '~'; break;
                       default : c = '*'; break;
                     }
-                    if (c=='*') 
+                    if (c=='*')
                        { error("Invalid use of tilde character: ",2); CI; }
                     i_ptr++; d = *(i_ptr+1);
                   }
@@ -608,7 +609,7 @@
    be after checking for "-char characters.                                   */
 /* Saamaveda and other <> accents */
     if (c == '<')
-      { k = 2; 
+      { k = 2;
         switch (d)
         { case '1': c = ':'; break;
           case '2': c = ';'; if (*(i_ptr+2) == 'r') { c = '='; k++; }
@@ -625,9 +626,9 @@
         }
         if (*(i_ptr+k) != '>')
           { error("Invalid <> accent: ",k+1); i_ptr+=k; CI; }
-        if (tech) 
+        if (tech)
           { error("Invalid <> accent in sktt mode: ",k+1); i_ptr+=k; CI; }
-        if (xlit && !option[7]) 
+        if (xlit && !option[7])
           { error("<> accents not enabled in sktx mode: ",k+1); i_ptr+=k; CI; }
         if (!ac_flag && !nasal_vowel && !n_flag && !vedic)
           { i_ptr--; error("Accent is not allowed here: ",k+2); i_ptr+=(k+1); CI; }
@@ -650,13 +651,13 @@
         if ((c == '`' || c == '\'') && (!xlit && !tech))
           { error("Invalid accent in skt mode: ",1); CI; }
         if (strchr("!\"$%&",c))
-          { if (tech) 
+          { if (tech)
               { error("Invalid accent in sktt mode: ",k); i_ptr+=k-1; CI; }
-            if (xlit && !option[6]) 
+            if (xlit && !option[6])
               { error("Accent not enabled in sktx mode: ",k); i_ptr+=k-1; CI; }
           }
         i_ptr += (k-1);
-      } 
+      }
 /* DOT CHAR */
     if (c == '.') { switch(d)
                           { case 'a': c = 'Y'; break;
@@ -697,7 +698,7 @@
 /* FOUR CHAR VOWEL */
     if ( ( c=='x' || c=='w' ) && (d=='.') &&
          ( toupper(*(i_ptr+2))=='R' || toupper(*(i_ptr+2))=='L' ))
-       { if ( (isupper(*(i_ptr+2)) && !cap_flag) || 
+       { if ( (isupper(*(i_ptr+2)) && !cap_flag) ||
               (!isupper(*(i_ptr+2)) && cap_flag) )
             { i_ptr--; error("Mixed case vowel: ",4); i_ptr++; CI; }
          if ( c=='x' && toupper(*(i_ptr+2))=='R')
@@ -708,7 +709,7 @@
 /* NOW CHAR SHOULD BE INTERNAL REPRESENTATION OF SANSKRIT CHAR */
     if ( ((c=='~'||c=='M'||c=='R') && !(ac_flag||svara_flag||nasal_vowel)) ||
          (c=='#' && !(ac_flag || svara_flag || ylv_flag))  )
-         { if (xlit) 
+         { if (xlit)
               printf("Line %4d    Warning: No vowel before nasal\n",line_cnt);
            else
               { i_ptr -=2; error("No vowel for nasal: ",3); i_ptr +=2; CF; }
@@ -716,7 +717,7 @@
                           /* candrabindu after vowel, accent or ylv          */
          }
     if (c=='H' && !(ac_flag || svara_flag))
-       { if (xlit) 
+       { if (xlit)
             printf("Line %4d    Warning: No vowel before antahstha\n",line_cnt);
          else
             { i_ptr -=2; error("No vowel for antahstha: ",3); i_ptr +=2; CF; }
@@ -723,7 +724,7 @@
        }
     if (c=='Y' && !(ac_flag || svara_flag))
          printf("Line %4d    Warning: No vowel before avagraha\n",line_cnt);
-    if (!strchr("ABCDEFGHIJKLMNOPQSTUVWXZ",toupper(c)) && !strchr("ry",c) && 
+    if (!strchr("ABCDEFGHIJKLMNOPQSTUVWXZ",toupper(c)) && !strchr("ry",c) &&
          underscore) { error("Invalid character after underscore",-1);
                        underscore = FALSE;
                      }
@@ -731,10 +732,10 @@
     if (cap_flag)   chrcat(sktbuf,'^');
     chrcat(sktbuf,c);
     CR;
-    if (ISAC(c) || c=='\26') ac_flag = TRUE; 
+    if (ISAC(c) || c=='\26') ac_flag = TRUE;
 /**/
-    if (strchr("!\"%()&:;<=>?`\'\27\30\31\32\33\34\35\36\37",c) && c) 
-        svara_flag = TRUE; 
+    if (strchr("!\"%()&:;<=>?`\'\27\30\31\32\33\34\35\36\37",c) && c)
+        svara_flag = TRUE;
     if ((c == 'y') || (c == 'l') || (c == 'v')) ylv_flag = TRUE;
     if (c == 'n') n_flag = TRUE; /* allow accents on letter 'n' */
     if (c == '~') vedic = TRUE;  /* allow accents on Vedic anusvaara */
@@ -766,12 +767,12 @@
 
 void sktcont(void)
 {
-  if (sktbuf[0] == '\0') { cont_begin = FALSE; 
-                           sktword(); 
+  if (sktbuf[0] == '\0') { cont_begin = FALSE;
+                           sktword();
                          }
-  else                   { cont_end = TRUE; 
+  else                   { cont_end = TRUE;
                            sktword();
-                           cont_end = FALSE; 
+                           cont_end = FALSE;
                            cont_begin = TRUE;
                          }
 }
@@ -796,7 +797,7 @@
 ra=x; ya=y; strcat(work,z); vaflg++;
 
 void sktword(void)
-{ char c; 
+{ char c;
   if (roman_flag && sktbuf[0]) roman_flag = FALSE;
 #if DEBUG == 1
 
@@ -803,7 +804,7 @@
 s_ptr = sktbuf;
 while (*s_ptr)
 { if (*s_ptr >= ' ') chrcat(outbuf,*s_ptr++);
-  else { chrcat(outbuf,'{'); chrcat(outbuf,'0'+((*s_ptr)/8)); 
+  else { chrcat(outbuf,'{'); chrcat(outbuf,'0'+((*s_ptr)/8));
          chrcat(outbuf,'0'+((*s_ptr++)%8)); chrcat(outbuf,'}'); }
 /* CAT(outbuf,"^",*s_ptr++,""); */
 }
@@ -848,24 +849,24 @@
   *tmp = '\0'; *work = '\0';
   while (1)
   {  CLRFLAGS; /* in particular, need to clear hal_flag for the likes of kara */
-     c= *s_ptr++; 
-     if (c == '\0') 
+     c= *s_ptr++;
+     if (c == '\0')
         { if (*tmp) { if (outbuf[0]=='\0' && tmp[0]=='[') strcat(outbuf,"{}");
-                      strcat(outbuf,tmp); 
+                      strcat(outbuf,tmp);
                     }
-          break; 
+          break;
         }
-     if (ISAC(c) || strchr("/|\\~HY$)%*\37\26",c)) 
+     if (ISAC(c) || strchr("/|\\~HY$)%*\37\26",c))
 /**/
-        { ac_char = c; 
-          single(); 
+        { ac_char = c;
+          single();
           strcat(tmp,work);
           whiteness = bwh; *work = '\0'; cont_begin = 0;
           continue;
         }
      if (strchr("0123456789-@",c))
-        { fixed(c); 
-          strcat(tmp,work); 
+        { fixed(c);
+          strcat(tmp,work);
           whiteness = bwh; *work = '\0'; cont_begin = 0;
           continue;
         }
@@ -873,7 +874,7 @@
      else s_ptr--;
      old_sptr = s_ptr; /* save pointer to start of samyoga                    */
      if (ISHAL(c)) { hal_flag = TRUE; CLRVADATA; samyoga(); c = *s_ptr; }
-     ac_char = virama = 0; 
+     ac_char = virama = 0;
      if (!hr_flag) { if (ISAC(c)) { ac_char = *s_ptr++; }
                      else virama = TRUE;   /* hr_flag = h.r parsed by samyoga */
                    }
@@ -880,7 +881,7 @@
      if (virama && ISHAL(*s_ptr) && option[8]) sam_warning();
      backac(); hr_flag = FALSE;
      if (*tmp) { if (outbuf[0]=='\0' && tmp[0]=='[') strcat(outbuf,"{}");
-                 strcat(outbuf,tmp); 
+                 strcat(outbuf,tmp);
                }
      strcpy(tmp,work); whiteness = bwh;
      *work = '\0'; cont_begin = FALSE;
@@ -907,7 +908,7 @@
 void fixed(char c)
 {
   switch(c)
-  {  case '0':                     VA(12,0,0, 0,0,0, 3,2,0,0,"0");  break;  
+  {  case '0':                     VA(12,0,0, 0,0,0, 3,2,0,0,"0");  break;
      case '1':   if (option[61]) { VA(12,0,0, 0,0,0, 2,3,0,0,"@1"); break;}
                  else            { VA(12,0,0, 0,0,0, 3,2,0,0,"1");  break; }
      case '2':                     VA(12,0,0, 0,0,0, 2,2,0,0,"2");  break;
@@ -926,13 +927,13 @@
                  if (option[69]) { VA(12,0,5, 0,0,0, 2,3,0,0,"@9"); break; }
                  else              VA(12,0,5, 0,0,0, 2,3,0,0,"9");  break;
      case '-':   if (option[10] == 0) break;      /* discretionary hyphen */
-                 switch (whiteness)                   
+                 switch (whiteness)
                    {  case 2: strcat(tmp,".");  break;
                       case 1: strcat(tmp,":");  break;
                       case 0: strcat(tmp,";");  break;
                    }
                  strcat(tmp,"\\-"); if (bwh < 3) bwh=3; break;
-     case '@':   VA(10,0,0, 0,0,0, 3,3,0,0,"\\ZM{FTV}\\ZS{20}"); 
+     case '@':   VA(10,0,0, 0,0,0, 3,3,0,0,"\\ZM{FTV}\\ZS{20}");
                  break;                                  /* continuation symbol  */
   }
   high_right = low_right = 0;
@@ -962,10 +963,10 @@
      case 'i': VA( 9,3,5, 0,0,0, 0,1,0,0,"I");    break;
      case 'I': VA( 9,3,5, 0,0,0, 0,1,0,0,"I"); pre_ra = TRUE; break;
      case 'u': if (whiteness < 7) { VA( 9,3,4, 0,0,0, 0,1,0,0,"\\ZS{-2}o"); }
-               else               { VA(10,3,4, 0,0,0, 1,1,0,0,"o"); } 
+               else               { VA(10,3,4, 0,0,0, 1,1,0,0,"o"); }
                break;
      case 'U': if (whiteness < 7) { VA(14,7,7, 0,0,0, 0,1,0,0,"\\ZS{-2}`o"); }
-               else               { VA(15,7,7, 0,0,0, 1,0,0,0,"`o");} 
+               else               { VA(15,7,7, 0,0,0, 1,0,0,0,"`o");}
                break;
      case 'x': if (option[41]) {
                VA(14,3,4, 2,0,0, 0,3,0,0,"`r");   break; }
@@ -995,7 +996,7 @@
                } break;
      case '/':   VA(16,0,0, 0,0,0, 1,0,0,0,"?");  break;  /* pra.nava             */
      case '|':   VA( 6,0,0, 0,0,0, 6,0,0,0,"\\ZS{12}@A"); /* |                    */
-                 if (*s_ptr == '|') 
+                 if (*s_ptr == '|')
                { VA( 3,0,0, 0,0,0, 6,0,0,0,"\\ZS{6}@A"); s_ptr++; }
                  break;
      case '\\':  VA(12,0,0, 0,0,0, 2,2,0,0,"H1"); break;  /* jihvaamuuliiya       */
@@ -1014,23 +1015,23 @@
      case 'Y':   VA(12,0,0, 0,0,0, 2,3,0,0,"Y");  break;  /* avagraha             */
                  if (whiteness < 3) { CAT(tmp,"\\ZS{",2*(3-whiteness),"}"); }
                  break;
-     case '$':   if (option[61]) { 
+     case '$':   if (option[61]) {
                  VA(12,0,0, 0,0,0, 2,3,0,0,"\\ZK{@1\\ZH{-12}{`7}\\ZH{-10}{`8}}");
                            break; }
-                 VA(12,0,0, 0,0,0, 3,2,0,0,"\\ZK{1\\ZH{-12}{`7}\\ZH{-10}{`8}}"); 
+                 VA(12,0,0, 0,0,0, 3,2,0,0,"\\ZK{1\\ZH{-12}{`7}\\ZH{-10}{`8}}");
                  break;
-     case ')':   if (option[61]) { 
+     case ')':   if (option[61]) {
                  VA(12,0,0, 0,0,0, 3,3,0,0,"\\ZK{@1\\ZH{-10}{`8}}");
                            break; }
-                 VA(12,0,0, 0,0,0, 3,2,0,0,"\\ZK{1\\ZH{-10}{`8}}"); 
+                 VA(12,0,0, 0,0,0, 3,2,0,0,"\\ZK{1\\ZH{-10}{`8}}");
                  break;
      case '*':
-     case '%':   VA(12,0,0, 0,0,0, 3,2,0,0,"\\ZK{3\\ZH{-12}{`7}\\ZH{-8}{`8}}"); 
+     case '%':   VA(12,0,0, 0,0,0, 3,2,0,0,"\\ZK{3\\ZH{-12}{`7}\\ZH{-8}{`8}}");
                  break;
      case '\37': VA(10,0,0, 0,0,0, 2,2,0,0,"\\ZK{`s}");
                  break;
      case '\26': VA(12,6,6, 0,0,0, 3,3,0,0,"\\ZS{24}"); /* test vocalic space */
-                 break; 
+                 break;
 /**/
      default:  error("Lost in single()",-1);
   }
@@ -1110,7 +1111,7 @@
        }
      }
   printf("Line %4d    Warning: samyoga viraama: %s\n",line_cnt,msg);
-}         
+}
 
 /******************************************************************************/
 /*                       ADDHOOKS                                             */
@@ -1127,7 +1128,7 @@
 (strchr("!(\":;<=>?\27",accent) && accent)
 
 #define BOTHOOKS \
-(virama || c=='U' || c=='X' || c=='W') 
+(virama || c=='U' || c=='X' || c=='W')
 
 void addhooks(void)
 { char c; int t, j, h, v;
@@ -1134,7 +1135,7 @@
   accent = bindu = candrabindu = 0;
   c = *s_ptr;
   if (c == '#') { candrabindu = TRUE; c = *++s_ptr; }
-  if (strchr("!(\"&:;<=>?\27\30\31\32\33\34\35\36",c) && c) 
+  if (strchr("!(\"&:;<=>?\27\30\31\32\33\34\35\36",c) && c)
      { accent = c; c = *++s_ptr; }
   if (c == '#') { candrabindu = TRUE; c = *++s_ptr; }
   if ( (c == 'M') || (c == 'R') ) { bindu = TRUE; c = *++s_ptr; }
@@ -1141,7 +1142,7 @@
   t = h = v = j = 0;
   low_right = high_right = -wid;
   switch (ac_char)
-  { case 'i': low_right = 1-(top-bwh+3); 
+  { case 'i': low_right = 1-(top-bwh+3);
                low_left = 2;             break;
     case 'I': low_right = 1-(bwh+3);
                low_left = 2-(wid-top);   break;
@@ -1182,7 +1183,7 @@
      { t = 0; if (option[4]) t = 8; if (option[5]) t = 12;
               if (option[4] && option[5]) t = 16;
        if (t < v) t = v;
-       if (    (strchr("eioEIO",ac_char) && ac_char) 
+       if (    (strchr("eioEIO",ac_char) && ac_char)
             && (strchr("=>?\"\27",accent)  && accent)  )
           { v=8; if ((accent=='\"') || (accent=='\27')) v=3; }
        if (t < v) t = v;
@@ -1192,79 +1193,79 @@
                     else strcat(work,"\\ZK{`1}");
                     h=2-(top-bwh+3); j=2-(wid-top); break;
          case ';':  if (top) { CAT(work,"\\ZH{-",(2*top),"}{\\ZK{`2}}"); }
-                    else strcat(work,"\\ZK{`2}"); 
+                    else strcat(work,"\\ZK{`2}");
                     h=1+2-(top-bwh+3); j=1+2-(wid-top); break;
          case '<':  if (top) { CAT(work,"\\ZH{-",(2*top),"}{\\ZK{`3}}"); }
-                    else strcat(work,"\\ZK{`3}"); 
+                    else strcat(work,"\\ZK{`3}");
                     h=1+2-(top-bwh+3); j=1+2-(wid-top); break;
          case '!' : if (top) { CAT(work,"\\ZH{-",(2*top),"}{\\ZK{`7}}"); }
-                    else strcat(work,"\\ZK{`7}"); 
+                    else strcat(work,"\\ZK{`7}");
                     h=1+1-(top-bwh+3); j=1+1-(wid-top); break;
          case '(' : if (top) { CAT(work,"\\ZH{-",(2*top),"}{\\ZK{`0}}"); }
-                    else strcat(work,"\\ZK{`0}"); 
+                    else strcat(work,"\\ZK{`0}");
                     h=1+3-(top-bwh+3); j=1+2-(wid-top); break;
-         case '\"': if (top) { CAT(work,"\\ZH{-",(2*top)+3,"}{\\ZK{`7}}"); 
+         case '\"': if (top) { CAT(work,"\\ZH{-",(2*top)+3,"}{\\ZK{`7}}");
                                CAT(work,"\\ZH{-",(2*top)-3,"}{\\ZK{`7}}");
-                               h=1+2-(top-bwh+3); j=1+2-(wid-top); 
+                               h=1+2-(top-bwh+3); j=1+2-(wid-top);
                              }
                     else     { CAT(work,"\\ZH{-",(2*top)+6,"}{\\ZK{`7}}");
-                               CAT(work,"\\ZH{-",(2*top),"}{\\ZK{`7}}"); 
-                               h=1+1-(top-bwh+3); j=1+4-(wid-top); 
+                               CAT(work,"\\ZH{-",(2*top),"}{\\ZK{`7}}");
+                               h=1+1-(top-bwh+3); j=1+4-(wid-top);
                              }
                     break;
          case '=': if ( ((wid-top) >= 4) && ((top-bwh+3) >= 5) ) /* centre align */
                         { if (top) { CAT(work,"\\ZH{-",(2*top),"}{\\ZK{`4}}"); }
-                          else strcat(work,"\\ZK{`4}"); 
-                          h=5-(top-bwh+3); j=1+4-(wid-top); 
+                          else strcat(work,"\\ZK{`4}");
+                          h=5-(top-bwh+3); j=1+4-(wid-top);
                         }
                    else { if ( (wid-bwh+3) >= 9 )             /* right alight */
                             { CAT(work,"\\ZH{-",2*(top+5-top+bwh-3),"}{\\ZK{`4}}");
-                              h=1; j=1+9-(wid-bwh+3); 
+                              h=1; j=1+9-(wid-bwh+3);
                             }
                           else                                  /* left align */
-                            { CAT(work,"\\ZH{-",2*(wid-4),"}{\\ZK{`4}}"); 
-                              h=9-(wid-bwh+3); j=1+0; 
+                            { CAT(work,"\\ZH{-",2*(wid-4),"}{\\ZK{`4}}");
+                              h=9-(wid-bwh+3); j=1+0;
                         }   }
                    break;
          case '>': if ( ((wid-top) >= 4) && ((top-bwh+3) >= 5) ) /* centre align */
                         { if (top) { CAT(work,"\\ZH{-",(2*top),"}{\\ZK{`5}}"); }
-                          else strcat(work,"\\ZK{`5}"); 
-                          h=1+5-(top-bwh+3); j=1+4-(wid-top); 
+                          else strcat(work,"\\ZK{`5}");
+                          h=1+5-(top-bwh+3); j=1+4-(wid-top);
                         }
                    else { if ( (wid-bwh+3) >= 9 )             /* right alight */
                             { CAT(work,"\\ZH{-",2*(top+5-top+bwh-3),"}{\\ZK{`5}}");
-                              h=1+1; j=1+9-(wid-bwh+3); 
+                              h=1+1; j=1+9-(wid-bwh+3);
                             }
                           else                                  /* left align */
-                            { CAT(work,"\\ZH{-",2*(wid-4),"}{\\ZK{`5}}"); 
-                              h=1+9-(wid-bwh+3); j=1+0; 
+                            { CAT(work,"\\ZH{-",2*(wid-4),"}{\\ZK{`5}}");
+                              h=1+9-(wid-bwh+3); j=1+0;
                         }   }
                    break;
          case '?': if ( ((wid-top) >= 5) && ((top-bwh+3) >= 6) ) /* centre align */
                         { if (top) { CAT(work,"\\ZH{-",(2*top),"}{\\ZK{`6}}"); }
-                          else strcat(work,"\\ZK{`6}"); 
+                          else strcat(work,"\\ZK{`6}");
                           h=1+6-(top-bwh+3); j=1+5-(wid-top);
                         }
                    else { if ( (wid-bwh+3) >= 11 )             /* right alight */
                             { CAT(work,"\\ZH{-",2*(top+6-top+bwh-3),"}{\\ZK{`6}}");
-                              h=1+1; j=1+11-(wid-bwh+3); 
+                              h=1+1; j=1+11-(wid-bwh+3);
                             }
                           else                                  /* left align */
-                            { CAT(work,"\\ZH{-",2*(wid-5),"}{\\ZK{`6}}"); 
-                              h=1+11-(wid-bwh+3); j=1+0; 
+                            { CAT(work,"\\ZH{-",2*(wid-5),"}{\\ZK{`6}}");
+                              h=1+11-(wid-bwh+3); j=1+0;
                         }   }
                    break;
          case '\27': if (top) { CAT(work,"\\ZH{-",(2*top)+5,"}{\\ZK{`!}}");
-                               h=1+3-(top-bwh+3); j=1+2-(wid-top); 
+                               h=1+3-(top-bwh+3); j=1+2-(wid-top);
                              }
-                    else     { CAT(work,"\\ZH{-",(2*top)+6,"}{\\ZK{`!}}"); 
-                               h=1+2-(top-bwh+3); j=1+4-(wid-top); 
+                    else     { CAT(work,"\\ZH{-",(2*top)+6,"}{\\ZK{`!}}");
+                               h=1+2-(top-bwh+3); j=1+4-(wid-top);
                              }
                     break;
        }
-       if (t) strcat(work,"}"); 
-       if (t>=8) { high_right = h; 
-                   high_left = j; 
+       if (t) strcat(work,"}");
+       if (t>=8) { high_right = h;
+                   high_left = j;
                  }
        else      { if (low_right < h) low_right = h;
                    if  (low_left < j)  low_left = j;
@@ -1274,13 +1275,13 @@
   c = toupper(ac_hook);
   if (BOTHOOKS)
      { if (bot) { CAT(work,"\\ZH{-",(2*bot),"}{"); }
-       if ( (c=='X') || (c=='W') ) dep -= rldep; 
+       if ( (c=='X') || (c=='W') ) dep -= rldep;
        if (dep>0) { CAT(work,"\\ZV{-",(2*dep),"}{"); }
-       if (dep<0) { CAT(work,"\\ZV{",(2*(-dep)),"}{"); } 
+       if (dep<0) { CAT(work,"\\ZV{",(2*(-dep)),"}{"); }
        v=dep;
        if (virama) strcat(work,",");
-       if (c == 'U' || c == 'X' || c == 'W') 
-          { chrcat(work,ac_hook); 
+       if (c == 'U' || c == 'X' || c == 'W')
+          { chrcat(work,ac_hook);
             switch (ac_hook)
             { case 'u': dep+=6; break;
               case 'U': dep+=6; break;
@@ -1294,7 +1295,7 @@
        if (bot) strcat(work,"}");
      }
   if ( (strchr("&\30\31\32\33\34\35\36",accent) && accent) || (*s_ptr=='%') )
-     { if (dep > 2) { if (v<0) v=dep-2-v; 
+     { if (dep > 2) { if (v<0) v=dep-2-v;
                       else v=dep-2; }
        else v=dep;
        h=bot; if (h>3) h-=2;
@@ -1320,7 +1321,7 @@
        }
        if ( h||v ) strcat(work,"}");
      }
-}   
+}
 
 /******************************************************************************/
 /*                       BACKAC                                               */
@@ -1330,13 +1331,13 @@
 /*           before calling addhooks().                                       */
 
 void backac(void)
-{  int j,k; char c; 
+{  int j,k; char c;
    ac_hook = end_bar = 0;
    if (pre_ra && !hal_flag)            /* case r.r, r.R, r.l, r.L, ru, rU, ra */
      { c = toupper(ac_char);
        if ((c =='X') || (c == 'W')) {single(); return; }
        if (c == 'U')
-          { if (ac_char == 'u') 
+          { if (ac_char == 'u')
                  { CLRVADATA; VA( 8,5,4, 0,0,1, 1,0,0,0,"r8"); ac_char = 'a'; }
             else { CLRVADATA; VA(10,7,6, 0,0,1, 1,1,0,0,"r9"); ac_char = 'a'; }
           }
@@ -1344,11 +1345,11 @@
        pre_ra = FALSE; hal_flag = TRUE;
      }
    if (post_ra)      /* to insert post_ra here, then ya                       */
-   { j = 0; k = dep; 
+   { j = 0; k = dep;
      if (ra==5) k -=3;
      if (bot) j++; if (k) j+=2;
      switch (j)
-     { case 3: CAT(work,"\\ZP{-",(2*bot),"}"); 
+     { case 3: CAT(work,"\\ZP{-",(2*bot),"}");
                CAT(work,"{-",(2*k),"}{"); break;
        case 2: CAT(work,"\\ZV{-",(2*k),"}{"); break;
        case 1: CAT(work,"\\ZH{-",(2*bot),"}{"); break;
@@ -1363,7 +1364,7 @@
      }
      if (j) strcat(work,"}");
    }
-   if (post_ya) 
+   if (post_ya)
    { switch (ya)
      { case 1: VA( 8,0,0, 0,2,0, 0,0,1,1,"y");  break;
        case 2: VA( 8,0,0, 0,1,0, 0,0,1,1,"y1"); break;
@@ -1378,8 +1379,8 @@
    if (wid && !top) end_bar = TRUE;    /* to append vertical bar to character */
    c = ac_char;
    if (c == 'I') { if (end_bar) {CAT(work,"i",intraspace,"");}/* add I-hook */
-                   else { CAT(work,"\\ZH{-",(2*top),"}"); 
-                          k = top - bwh + intraspace;       
+                   else { CAT(work,"\\ZH{-",(2*top),"}");
+                          k = top - bwh + intraspace;
                           if (k <= 9) { CAT(work,"{i",k,"}"); }
                           if ((k > 9) && (k <= 16)) { CAT(work,"{Y",k-10,"}"); }
                           if (k > 16) { strcat(work,"{i0");
@@ -1418,12 +1419,12 @@
    k = interspace - whiteness;
    if (ac_char != 'i') k -= fwh; /* basic inter-syllable spacing */
    if (j < k) j = k;
-   if (whiteness==7 && ac_char=='i') 
+   if (whiteness==7 && ac_char=='i')
        k = 3; /* short hor. before short-i-hook at start of a word */
    if (j < k) j = k;
    if (whiteness==7) k=fbar; /* short hor. before some chars at start of word */
    if (j < k) j = k;
-   if ( (tmp[0] == '\0') && (work[0] == '=') && (j > 2) ) 
+   if ( (tmp[0] == '\0') && (work[0] == '=') && (j > 2) )
       { CAT(tmp,"\\ZS{",j-3,"}"); j=2; }   /* special case: rai at word start */
    switch (j)   /* add space to end of previous syllable */
    { case  1: strcat(tmp,"."); break;
@@ -1473,9 +1474,9 @@
 void autohyphen(void)
 {
 char *p;
-   if (option[11] && *s_ptr!='\0' && ac_char 
+   if (option[11] && *s_ptr!='\0' && ac_char
                       && !(*s_ptr=='-'  && option[10]))
-      { 
+      {
 /*$$ assume that back-whiteness is 3 on entry
 switch (bwh)
         { case 2: strcat(work,"."); break;
@@ -1519,20 +1520,20 @@
 #define LT(t,u,v,w,x,y,z) n=strlen(t);        \
         if((option[u]==0) && (strncmp(p,t,n)==0))  \
           { if(option[x]==0) { w; p+=n; v; }     \
-                     else { z; p+=n; y; } }   
+                     else { z; p+=n; y; } }
 
-#define NX sam_flag = 'X'; break; 
-#define NR sam_flag = 'R'; break; 
+#define NX sam_flag = 'X'; break;
+#define NR sam_flag = 'R'; break;
 #define NC sam_flag = 'C'; break;
 
-#define IX p++; sam_flag = 'X'; break; 
-#define IR p++; sam_flag = 'R'; break; 
-#define IC p++; sam_flag = 'C'; break; 
+#define IX p++; sam_flag = 'X'; break;
+#define IR p++; sam_flag = 'R'; break;
+#define IC p++; sam_flag = 'C'; break;
 
 /******************************************************************************/
 
 void samyoga(void)
-{ 
+{
 char *p, sam_flag; int j,k,n;
  option[0] = 0;
  sam_flag = 0;
@@ -1540,7 +1541,7 @@
  while (1)
  { if (!ISHAL(*p)) { NX; }
    switch (*p++)
-   { 
+   {
  case 'k':
   LT("kN",     0,NC,VA(33,0,0, 0,2,0, 0,0,6,1,"k1k1N"),
               44,NC,VA(33,0,0, 0,0,0, 0,0,2,1,"k1k1`N"));
@@ -1569,7 +1570,7 @@
              108,NR,VA(20,0,0, 0,2,0, 0,0,1,1,"k1y"));
   LT("ry",     0,NR,VA(20,3,3, 0,1,0, 0,3,2,2,"k\\ZM{l0R}y2+.a"),
              108,NR,VA(20,0,0, 0,2,0, 0,0,1,1,"k1\\ZM{l0R}y"));
-  if(*p=='r') { if (ISHAL(*(p+1)))    
+  if(*p=='r') { if (ISHAL(*(p+1)))
                   { VA(12,6,6, 0,2,0, 0,0,0,0,"k1\\ZM{l0R}");IC; }
                     VA(12,6,6, 0,1,0, 0,0,0,0,"k\\ZM{l0R}"); IX; }
   if(option[46]==0) {
@@ -1582,7 +1583,7 @@
                     }
   else {
   LT("ly",   109,NR,VA(20,3,3, 0,2,0, 1,3,6,2,"*\\ZM{lNk0NP00A0bEp0LFHy}*.a"),
-             108,NR,VA(21,0,0, 0,2,0, 1,0,6,1,"\\ZM{DNkPNPP0APbE00L}*+.y1")); 
+             108,NR,VA(21,0,0, 0,2,0, 1,0,6,1,"\\ZM{DNkPNPP0APbE00L}*+.y1"));
     if(*p=='l' && ISHAL(*(p+1)))
                   { VA(23,0,0, 0,2,0, 0,0,2,1,"k1l1"); IC; }
   LT("l",      0,NX,VA(12,4,4, 4,2,0, 1,0,2,4,"\\ZM{DNkPNPP0APbE00L}*+"),
@@ -1592,7 +1593,7 @@
   LT("S",      0,NC,VA(10,0,0, 0,0,0, 0,0,3,1,"["),
               49,NC,VA(10,0,0, 0,0,0, 1,0,3,1,"`["));
   if (ISHAL(*p))  { VA(12,6,6, 0,2,0, 0,0,6,1,"k1"); NC; }
-                    VA(12,6,6, 0,2,0, 0,0,6,2,"k");  NX; 
+                    VA(12,6,6, 0,2,0, 0,0,6,2,"k");  NX;
 
  case 'K':
   LS("n",    111,NR,VA(12,3,3, 4,1,0, 0,3,2,2,"\\ZM{0NKFRIDbnMbeRbE}*.a"));
@@ -1735,7 +1736,7 @@
   LS("m",      0,NR,VA(27,3,3, 0,2,0, 0,3,4,2,"Jam2a"));
   LS("y",      0,NR,VA(23,0,0, 0,2,0, 0,0,6,1,"Jay1"));
   if (*p=='u' || *p=='U')
-                  { VA(12,0,1, 1,0,0, 0,0,2,2,"J"); NX; } 
+                  { VA(12,0,1, 1,0,0, 0,0,2,2,"J"); NX; }
                     VA(12,0,0, 0,0,0, 0,0,2,2,"J"); NC;
                  }
 
@@ -1870,7 +1871,7 @@
   LS("n",    132,NR,VA(12,3,3, 2,1,2, 0,3,2,2,"\\ZM{DBnMBeRdI}Na"));
   LS("ra",   133,NX,VA(16,3,3, 0,0,2, 0,2,0,0,"N.="); hr_flag = TRUE);
                     VA( 9,0,0, 0,2,2, 0,0,4,1,"N"); NC; }
-  else { 
+  else {
   LS("c",      0,NC,VA(18,0,0, 0,0,1, 0,0,6,1,"`N:c"));
                     VA( 9,0,0, 0,0,1, 0,0,3,1,"`N"); NC; }
 
@@ -2011,8 +2012,8 @@
   if (strchr("lbByv",*p) && *p)
                   { VA( 9,0,0, 0,0,0, 0,0,1,1,"m1"); NC; }
   if (ISHAL(*p))  { VA(10,0,0, 0,3,0, 0,0,4,1,"m1\\ZM{cLe}."); NC; }
-                    VA(10,0,0, 0,1,0, 0,0,4,1,"m"); NC; 
-   
+                    VA(10,0,0, 0,1,0, 0,0,4,1,"m"); NC;
+
 case 'y':
   if (!ya) {
   LS("n",    159,NR,VA(11,3,3, 2,0,0, 0,3,2,2,"y\\ZM{nBneBe0BE}a"));
@@ -2031,12 +2032,12 @@
               strcat(work,"\\ZH{-6}{<}");IC;}
   NC;
 
-case 'r': 
+case 'r':
   j=0;
   if (ra)
-     { k=dep; 
+     { k=dep;
        if (ra==5) k-=3;
-       if (bot) j++; if (k) j+=2; 
+       if (bot) j++; if (k) j+=2;
        switch (j)
        { case 3: CAT(work,"\\ZP{-",(2*bot),"}");
                  if (k<0) { k=-k; CAT(work,"{",(2*k),"}{");  break; }
@@ -2053,7 +2054,7 @@
       case 2: strcat(work,"r1"); rldep = 1; dep += 4; break;
       case 1: strcat(work,"r" ); if(rldep) rldep--;   break;
     }
-  if (j) strcat(work,"}"); 
+  if (j) strcat(work,"}");
   if(ra!=0) { ra=0; NC; }
   else {
       if(*p=='u') { VA( 8,5,4, 0,0,1, 0,0,0,0,"r8"); *p='a'; NX; }
@@ -2069,7 +2070,7 @@
                       }
   LS("r",     46,NX,VA(12,4,3, 4,1,0, 0,1,0,0,"l\\ZH{-6}{r1}"));
   /* if nasalised la with i-vowel, print as halanta */
-  if (*p=='#') { if(aci(p)) { if (option[46]) { 
+  if (*p=='#') { if(aci(p)) { if (option[46]) {
                     VA(11,0,0, 0,0,0, 0,0,2,1,"l1\\ZH{-8}{<}"); IX; }
                     VA(12,4,4, 0,0,0, 0,0,2,1,"l\\ZH{-8}{<}" ); IX; }
                     VA(11,0,0, 0,0,0, 0,0,2,1,"l1\\ZH{-8}{<}"); IC; }
@@ -2165,12 +2166,12 @@
   LS("r",      0,NR,VA( 9,3,5, 4,0,2, 0,3,0,2,"h\\ZM{ojr}"));
   LS("l",      0,NR,VA(12,6,0, 4,0,0, 0,0,0,2,"h4\\ZM{p0L}"));
   LS("v",      0,NR,VA(10,4,0, 3,0,0, 0,0,2,2,"h3\\ZM{mAk}"));
-                    VA( 9,3,4, 4,0,0, 0,3,0,2,"h"); NX; 
+                    VA( 9,3,4, 4,0,0, 0,3,0,2,"h"); NX;
 
- case 'L': 
+ case 'L':
   if (option[43]) { if (*p=='h') {
                     VA(10,0,0, 0,2,0, 0,0,2,1,"L2");  NC; }
-                    if(ISHAL(*p)) { 
+                    if(ISHAL(*p)) {
                     VA(11,0,0, 0,0,0, 0,0,2,1,"L2."); NC; }
                else VA(10,0,0, 0,2,0, 0,0,2,1,"L2");  NC; }
   if(ISHAL(*p))   { VA(10,3,3, 0,0,0, 0,0,3,1,"L1");  NC; }
@@ -2184,7 +2185,7 @@
                           s_ptr = p; break;
                         }
    if (!ISHAL(*p)) { s_ptr = p; break; }
-  }  
+  }
 }
 
 /******************************************************************************/
@@ -2244,25 +2245,25 @@
 #define NASAL(X,Y,Z) case X: if (*p == '#') strcat(outbuf,"\\~{");         \
                              SWITCHFLAG(Y,Z);                              \
                              if (*p == '#') { strcat(outbuf,"}"); p++; }   \
-                             break       
+                             break
 
 void translit(void)
-{ 
+{
 int save, flag = 0;
 char c, *p;
  p = s_ptr;
  while (*p)
  { switch (*p++)
-  { 
+  {
    case '^':  flag = flag | 1; break;
    case '_':  flag = flag | 2; break;
    case '-':  if(option[10]) strcat(outbuf,"\\-"); break;
-   case '|':  if (xbold) { if (*p=='|') 
-                   { strcat(outbuf,"{\\upshape\\boldmath\\,$\\mid\\mid$}"); 
+   case '|':  if (xbold) { if (*p=='|')
+                   { strcat(outbuf,"{\\upshape\\boldmath\\,$\\mid\\mid$}");
                      p++; break; }
-                   strcat(outbuf,"{\\upshape\\boldmath\\,$\\mid$}"); 
+                   strcat(outbuf,"{\\upshape\\boldmath\\,$\\mid$}");
                    break; }
-              if (*p=='|') { strcat(outbuf,"{\\upshape\\,$\\mid\\mid$}"); 
+              if (*p=='|') { strcat(outbuf,"{\\upshape\\,$\\mid\\mid$}");
                    p++; break; }
               strcat(outbuf,"{\\upshape\\,$\\mid$}"); break;
 
@@ -2294,14 +2295,14 @@
    XLIT('j',"j","J");        XLIT('k',"k","K");     XLIT('m',"m","M");
    STACK('n',"n","N");       XLIT('p',"p","P");     XLIT('q',"\\d d","\\d D");
    XLIT('r',"r","R");        XLIT('s',"s","S");     XLIT('t',"t","T");
-   XLIT('z',"\\.n","\\.N");        
-      
+   XLIT('z',"\\.n","\\.N");
+
    XLIT('B',"bh","BH");         XLIT('C',"ch","CH"); XLIT('D',"dh","DH");
    XLIT('F',"\\d th","\\d TH"); XLIT('G',"gh","GH"); XLIT('H',"\\d h","\\d H");
-   XLIT('J',"jh","JH");         XLIT('K',"kh","KH"); 
+   XLIT('J',"jh","JH");         XLIT('K',"kh","KH");
    XLIT('N',"\\d n","\\d N");   XLIT('P',"ph","PH"); XLIT('Q',"\\d dh","\\d DH");
    XLIT('T',"th","TH"); XLIT('V',"\\~n","\\~N");
-   
+
    case 'S':  if (option[28]) { SWITCHFLAG("sh","SH"); break; }
               SWITCHFLAG("\\d s","\\d S"); break;
 
@@ -2333,13 +2334,13 @@
              else { ISTACK('i',"i","I"); } break;
    case 'E': if (strchr("!`'\"(#\27",*p) && *p) { ISTACK('E',"{a\\i}","AI"); }
              else { ISTACK('E',"ai","AI"); } break;
-   
 
+
    STACK('a',"a","A");           STACK('u',"u","U");
    STACK('e',"e","E");           STACK('o',"o","O");
 
-   STACK('A',"\\=a","\\=A");     STACK('I',"\\={\\i}","\\=I"); 
-   STACK('U',"\\=u","\\=U");     STACK('O',"au","AU");         
+   STACK('A',"\\=a","\\=A");     STACK('I',"\\={\\i}","\\=I");
+   STACK('U',"\\=u","\\=U");     STACK('O',"au","AU");
 
    STACK('\26'," "," ");
 
@@ -2347,7 +2348,7 @@
              { save = flag; SWITCHFLAG("lr\\llap{\\d{\\kern.51em}}","L\\d R");
                flag = save; if ( strchr("!\"#$%&'():;<=>?`",*p) && *p)
                                { ISTACK('w',"{\\i}","I"); break; }
-                            ISTACK('w',"i","I"); break; }   
+                            ISTACK('w',"i","I"); break; }
              ISTACK('w',"\\d l","\\d L"); break;
 
    case 'W': if (option[26])
@@ -2359,7 +2360,7 @@
              { save = flag; SWITCHFLAG("r\\llap{\\d{\\kern.51em}}","\\d R");
                flag = save; if (strchr("!\"#$%&'():;<=>?`",*p) && *p)
                                { ISTACK('x',"{\\i}","I"); break; }
-                            ISTACK('x',"i","I"); break; }   
+                            ISTACK('x',"i","I"); break; }
              ISTACK('x',"r\\llap{\\d{\\kern.51em}}","\\d R"); break;
 
    case 'X': if (option[25])
@@ -2367,9 +2368,9 @@
                flag = save; ISTACK('X',"\\={\\i}","\\=I"); break; }
              ISTACK('X',"\\=r\\llap{\\d{\\kern.51em}}","\\d{\\=R}"); break;
 
-   default: error("Lost in translit()",-1); 
+   default: error("Lost in translit()",-1);
 break;
-  }  
+  }
  }
  s_ptr = sktbuf; *s_ptr = '\0'; cont_begin = 0;
 }



More information about the tex-live-commits mailing list