summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-01-11 23:05:37 +0000
committerKarl Berry <karl@freefriends.org>2017-01-11 23:05:37 +0000
commit049885c8d1445148f8bdf8cce7150414fc627940 (patch)
tree2f3a2c8edfaac52e2ef1c000d32964fc15ea441e
parentfd888c7150478ac41c40363893372aa22bdaf02a (diff)
sanskrit (11jan17)
git-svn-id: svn://tug.org/texlive/trunk@42925 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/sanskrit/README.md141
-rw-r--r--Master/texmf-dist/doc/latex/sanskrit/README.pdfbin0 -> 87595 bytes
-rwxr-xr-xMaster/texmf-dist/doc/latex/sanskrit/build-ctan-dist.sh60
-rw-r--r--Master/texmf-dist/doc/latex/sanskrit/readme.txt105
-rw-r--r--Master/texmf-dist/doc/latex/sanskrit/sktdoc.pdfbin0 -> 418299 bytes
-rw-r--r--Master/texmf-dist/doc/latex/sanskrit/sktdoc.skt188
-rw-r--r--Master/texmf-dist/source/latex/sanskrit/skt.c399
7 files changed, 487 insertions, 406 deletions
diff --git a/Master/texmf-dist/doc/latex/sanskrit/README.md b/Master/texmf-dist/doc/latex/sanskrit/README.md
new file mode 100644
index 00000000000..8e322822e0e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/sanskrit/README.md
@@ -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@nacdh4.nac.ac.za
+- Revision 2.0 1996/11/27 Charles Wikner wikner@nacdh4.nac.ac.za
+- Revision 2.2 2002/01/02 Charles Wikner wikner@nac.ac.za
+- Revision 2.2.1 2016/09/01 Václav Haisman vhaisman@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.
diff --git a/Master/texmf-dist/doc/latex/sanskrit/README.pdf b/Master/texmf-dist/doc/latex/sanskrit/README.pdf
new file mode 100644
index 00000000000..b7f220d38ad
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/sanskrit/README.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/sanskrit/build-ctan-dist.sh b/Master/texmf-dist/doc/latex/sanskrit/build-ctan-dist.sh
new file mode 100755
index 00000000000..b2ce5d400e7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/sanskrit/build-ctan-dist.sh
@@ -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
diff --git a/Master/texmf-dist/doc/latex/sanskrit/readme.txt b/Master/texmf-dist/doc/latex/sanskrit/readme.txt
deleted file mode 100644
index 3c56405bf63..00000000000
--- a/Master/texmf-dist/doc/latex/sanskrit/readme.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-%
-% README.TXT
-%
-% Revision 1.0 1996/02/13 Charles Wikner wikner@nacdh4.nac.ac.za
-% Revision 2.0 1996/11/27 Charles Wikner wikner@nacdh4.nac.ac.za
-% Revision 2.2 2002/01/02 Charles Wikner wikner@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@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.
-
diff --git a/Master/texmf-dist/doc/latex/sanskrit/sktdoc.pdf b/Master/texmf-dist/doc/latex/sanskrit/sktdoc.pdf
new file mode 100644
index 00000000000..de5e14ce771
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/sanskrit/sktdoc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/sanskrit/sktdoc.skt b/Master/texmf-dist/doc/latex/sanskrit/sktdoc.skt
index 764be88fbe1..e6c79f33aab 100644
--- a/Master/texmf-dist/doc/latex/sanskrit/sktdoc.skt
+++ b/Master/texmf-dist/doc/latex/sanskrit/sktdoc.skt
@@ -4,6 +4,7 @@
% Revision 1.0 1996/02/13 Charles Wikner wikner@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,13 +18,27 @@
\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@xt@ .9em{\hss .\hss }\hfill \kern \z@}
+\makeatother
+\newcommand{\dotrule}{\hspace*{\fill}\parbox{0.3\textwidth}{\Dotfill}\hspace*{\fill}}
\pagenumbering{skt}
@@ -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,17 +108,16 @@ Some features of the transliterated Roman:\\[2mm]
\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.
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 @@ that impact on the users' files (those with a \verb+.skt+ extension):
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 @@ that impact on the users' files (those with a \verb+.skt+ extension):
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 @@ density; the extremes are:
{\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 @@ but facilitate the printing of capital letters, for example:\\[2mm]
{\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 @@ may be encoded in the technical mode as\\[3mm]
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 @@ The {\skti devanaagarii\/} accent marks themselves may be printed in
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 @@ In transiteration, the accents should stack correctly and track in
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 @@ the same input text line. For example:\\[2mm]
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 @@ hyphens, \verb+\-+, in the input text.
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 @@ and size used, it may be used to overcome the difficulty distinguishing
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 @@ rather than in the next section.
\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 @@ the highest value selected will apply.}
\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 @@ or transliteration format as required, until the matching `\verb+}+'.
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 @@ encountered.
\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 @@ included in the standard \LaTeXe\ distribution, and Donald Arseneau's
\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 @@ This requirement may arise (as for example in producing the font map) because
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 @@ The same trick may be used to split any multicharacter input, provided
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 @@ fragile command, e.g.\\
\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 @@ To test the setup on this documentation file: first run the pre-processor
\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 @@ The files in this package are:
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,21 +1053,9 @@ The files in this package are:
reported bugs and (possibly) fixes or patches.
\vspace{5mm}
-Suggestions and bug reports to:\\
-\verb+wikner@nacdh4.nac.ac.za+\\
-17 February 1997.
+Suggestions and bug reports to: \verb+vhaisman@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
@@ -1229,7 +1213,7 @@ would be Sunday morning local time (GMT+2:00).
\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 @@ pa_ro di_vaa pa_ra e_naa p.r!thivyaitaava!tii
\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 @@ F0 &
\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}
diff --git a/Master/texmf-dist/source/latex/sanskrit/skt.c b/Master/texmf-dist/source/latex/sanskrit/skt.c
index 1d34f113e8d..5e76a632c61 100644
--- a/Master/texmf-dist/source/latex/sanskrit/skt.c
+++ b/Master/texmf-dist/source/latex/sanskrit/skt.c
@@ -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 search (void);
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 @@ void translit (void);
FILE *infile, *outfile, *fopen();
char infilename[80];
char outfilename[80];
+#define FILENAME_SCANF "%79s"
#define TRUE 1
#define FALSE 0
@@ -136,9 +137,9 @@ int intraspace; /* intra-syllable space, from above and option 1 */
/* MAIN */
/******************************************************************************/
-main(argc,argv)
-int argc;
-char *argv[];
+int
+main(int argc,
+ char *argv[])
{ char *p; int k;
/* INITIALIZATION */
@@ -151,7 +152,7 @@ char *argv[];
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 @@ char *argv[];
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 @@ char *argv[];
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 @@ char *argv[];
{ 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 @@ char *argv[];
}
exit(0);
-#endif
+#endif
}
@@ -238,8 +239,8 @@ char *p,*q;
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 @@ char *p,*q;
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,34 +264,34 @@ char *p,*q;
/* 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;
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 @@ char c, d, e;
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 @@ char * str_find(char *buf, char *str)
}
/******************************************************************************/
-/* 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 @@ char * command(char *p)
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 @@ char * command(char *p)
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 @@ void error(char *s, int n)
{ 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 @@ unsigned char *i, c,d;
#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 @@ unsigned char *i, c,d;
{ 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 @@ unsigned char *i, c,d;
/* 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 @@ unsigned char *i, c,d;
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 @@ unsigned char *i, c,d;
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 @@ unsigned char *i, c,d;
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 @@ unsigned char *i, c,d;
}
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 @@ unsigned char *i, c,d;
}
/* 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,25 +581,25 @@ unsigned char *i, c,d;
}
/* 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! */
}
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;
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 @@ unsigned char *i, c,d;
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 @@ unsigned char *i, c,d;
}
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 @@ unsigned char *i, c,d;
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 @@ unsigned char *i, c,d;
/* 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 @@ unsigned char *i, c,d;
/* 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,14 +717,14 @@ unsigned char *i, c,d;
/* 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; }
}
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 @@ unsigned char *i, c,d;
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 chrcat(char *s, char c)
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,14 +797,14 @@ wid+=p; top=q; bot=r; dep=s; rldep=t; if(!vaflg){fbar=u; fwh=v;} bwh=w; \
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
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 @@ while (*s_ptr)
*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,14 +874,14 @@ while (*s_ptr)
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 */
}
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 @@ while (*s_ptr)
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 @@ void fixed(char c)
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 @@ void single(void)
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 @@ void single(void)
} 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 @@ void single(void)
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 @@ void sam_warning(void)
}
}
printf("Line %4d Warning: samyoga viraama: %s\n",line_cnt,msg);
-}
+}
/******************************************************************************/
/* ADDHOOKS */
@@ -1127,21 +1128,21 @@ void sam_warning(void)
(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;
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; }
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 @@ void addhooks(void)
{ 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 @@ void addhooks(void)
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 @@ void addhooks(void)
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 @@ void addhooks(void)
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 @@ void addhooks(void)
}
if ( h||v ) strcat(work,"}");
}
-}
+}
/******************************************************************************/
/* BACKAC */
@@ -1330,13 +1331,13 @@ void addhooks(void)
/* 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 @@ void backac(void)
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 @@ void backac(void)
}
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 @@ void backac(void)
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 @@ void backac(void)
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 backac(void)
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 @@ switch (bwh)
#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 @@ char *p, sam_flag; int j,k,n;
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 @@ char *p, sam_flag; int j,k,n;
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 @@ char *p, sam_flag; int j,k,n;
}
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 @@ char *p, sam_flag; int j,k,n;
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 @@ char *p, sam_flag; int j,k,n;
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 @@ char *p, sam_flag; int j,k,n;
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 @@ char *p, sam_flag; int j,k,n;
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 @@ case 'y':
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 'r':
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 @@ case 'l':
}
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 @@ case 'h':
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 @@ case 'h':
s_ptr = p; break;
}
if (!ISHAL(*p)) { s_ptr = p; break; }
- }
+ }
}
/******************************************************************************/
@@ -2244,25 +2245,25 @@ int aci(char *p)
#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 @@ char c, *p;
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 @@ char c, *p;
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 @@ char c, *p;
{ 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 @@ char c, *p;
{ 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 @@ char c, *p;
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;
}