summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/fonts/malayalam/preproc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-08-23 22:42:38 +0000
committerKarl Berry <karl@freefriends.org>2012-08-23 22:42:38 +0000
commitb0ecade6115b3615f319e392b1a2108fe0fd86d4 (patch)
treef2c2e52c29f55f27deeed17f001dc6ca3b3fae2f /Master/texmf-dist/source/fonts/malayalam/preproc
parentc74d9648abb6877ccf4c69fdd39bb8d3763574bf (diff)
rm malayalam, stale wrt CTAN (RobinF msg 23 Aug 2012 11:59:14)
git-svn-id: svn://tug.org/texlive/trunk@27509 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/fonts/malayalam/preproc')
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/ack2mm.pat93
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/avltree.c699
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/avltree.h44
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/makefile18
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/ml.bat4
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/ml.g4
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/mlr.bat4
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/mlr.g4
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/mltr.g6
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/mltrth.g14
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/mm.c819
-rwxr-xr-xMaster/texmf-dist/source/fonts/malayalam/preproc/mm.exebin54527 -> 0 bytes
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/mm.h110
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/mm.pat387
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/mm.prj13
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/mm.scr410
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/mm.trs159
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/mm.ttpbin18816 -> 0 bytes
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/mm2ack.pat85
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/mmr.scr261
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/mmr.trs159
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/mmrfull.trs160
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/patc/detex.g3
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/patc/detex.pat133
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.c474
-rwxr-xr-xMaster/texmf-dist/source/fonts/malayalam/preproc/patc/patc.exebin22874 -> 0 bytes
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.prj7
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.ttpbin10680 -> 0 bytes
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.txt97
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/patc/pstree.c223
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/patc/pstree.h13
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/pstree.c225
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/pstree.h19
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/readfile.c281
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/readfile.h21
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/scr.c185
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/scr.h39
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/trs.c148
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/trs.h18
-rw-r--r--Master/texmf-dist/source/fonts/malayalam/preproc/unicode/UNICODE.TXT161
40 files changed, 0 insertions, 5500 deletions
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/ack2mm.pat b/Master/texmf-dist/source/fonts/malayalam/preproc/ack2mm.pat
deleted file mode 100644
index e170b646389..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/ack2mm.pat
+++ /dev/null
@@ -1,93 +0,0 @@
-% ack2mm.pat --- patterns to convert transcription used in A.C.K
-% (designed by Mathai Chundat) to my transcription
-% (c) 1993 Jeroen Hellingman
-% last edit: 22-JAN-1993
-
-% I use a different transcription, that is more regular than the
-% A.C.K. one, and in line with the transcriptions I use for other
-% Indian languages. The things I prefer in MC's transscription
-% is the use of nG, nnG, nJ, and nnJ. but I didn't use G, since I
-% use it in transcription of Hindi for something else. I may change
-% my transcription to accept both in Malayalam -- there are some
-% differences anyway, for example, in Hindi I use e for ee.
-%
-% KNOWN PROBLEMS:
-% colon may stand for itself or for visargam; this file assumes the visargam.
-
-
-@patterns 0
-"<malayalam>" 1 "$"
-"$" 1 "$"
-
-@patterns 1
-"</malayalam>" 0 "$"
-"$" 0 "$"
-% vowels
-"a" p "a"
-"aa" p "aa"
-"A" p "aa"
-"i" p "i"
-"ee" p "ii"
-"u" p "u"
-"oo" p "uu"
-"R~" p ".r"
-"e" p "e"
-"E" p "ee"
-"o" p "o"
-"O" p "oo"
-"ai" p "ai"
-"ou" p "au"
-"am" p "am"
-":" p "H"
-"wa" p "ua" % u + a = wa (?)
-% ka
-"k" p "k"
-"kh" p "kh"
-"g" p "g"
-"gh" p "gh"
-"nG" p "n\""
-"nnG" p "n\"n\""
-% ca
-"ch" p "c"
-"Ch" p "ch"
-"j" p "j"
-"jh" p "jh"
-"nJ" p "n~"
-"cch" p "cc"
-"nnJ" p "n~n~"
-% Ta
-"t" p "T"
-"T" p "Th"
-"D" p "D"
-"Dh" p "Dh"
-"N" p "N"
-% ta
-"th" p "t"
-"Th" p "th"
-"d" p "d"
-"dh" p "dh"
-"n" p "n"
-"tth" p "tt"
-"tTh" p "tth"
-"tdh" p "tdh"
-"tbh" p "tbh"
-% pa
-"p" p "p"
-"ph" p "ph"
-"b" p "b"
-"bh" p "bh"
-"m" p "m"
-% yaraladikaaL
-"y" p "y"
-"r" p "r"
-"l" p "l"
-"v" p "v"
-"S" p "sh"
-"sh" p "S"
-"s" p "s"
-"h" p "h"
-"R" p "R"
-"zh" p "zh"
-"L" p "L"
-"TT" p "RR"
-@end
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/avltree.c b/Master/texmf-dist/source/fonts/malayalam/preproc/avltree.c
deleted file mode 100644
index 909898a01ab..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/avltree.c
+++ /dev/null
@@ -1,699 +0,0 @@
-/*+
-
-TITLE: AVLtree.c general purpose balanced trees.
-
-DESCRIPTION:
- General purpose binairy-tree functions. This package uses AVL-trees
- to ensure proper balancing. (The heigth of the tree will never exceed
- ceil(1.44 * lg(n)), where lg is the logarithm base 2 and n the number
- of elements.) This package can be used to store any kind of data in a
- binairy tree. The only thing you have to do is to include AVLtree.h,
- link AVLtree.lib and call the appropriate functions. You should also
- provide a function to compare elements, and to free the memory used
- by elements.
-
-USAGE:
- To use the AVLtree package, include the file AVLtree.h in your
- program. A root of a binairy tree can then be declared as follows:
-
- AVLtree *a_binairy_tree;
-
- The following operations are defined for Binairy trees:
-
- -- Insert an element in the tree
- -- Delete an element in the tree
- -- Find an element in the tree
- -- Traverse the tree
-
- These operations are described below. You should always change the
- AVLtree structure by these functions. Don't go jamming in its
- structure yourself: it's delicate.
-
-FUNCTIONS:
- Inserting an element:
- Use the function AVLinsert() to insert an element. Its
- prototype is:
-
- int AVLinsert(const void *element,
- AVLtree **root,
- int (*cmp)(void*, void*));
-
- element is a pointer to the element you want to insert in the
- tree. Since it is this pointer that is actually stored in the
- AVL-tree, you should not touch the space it is pointing at
- after its insertion in the tree.
- root is a pointer to a pointer to the root node of the tree.
- A double reference is needed, since the root can change.
- cmp() is a user defined function. It should compare two
- elements and return 0 if the elements are equal, 1 if the first
- element is 'bigger' than the second, and -1 if the first
- element is 'smaller' than the second.
-
- The function will return one of the following codes:
-
- -- AVL_OK everything is alright.
- -- AVL_DUP attempt to insert element already present.
- -- AVL_NO_MEM no memory could be allocated.
- -- AVL_ERROR called with incorrect parameters.
-
- Deleting an element:
- Use the function AVLdelete() to delete an element from the
- tree. Its prototype is:
-
- int AVLdelete(const void *element,
- AVLtree **root,
- int (*cmp)(void*, void*),
- void (*del)(void*));
-
- element is the element to be deleted from the tree.
- root and cmp() are the same as in AVLinsert(). del() is a user
- defined function that should free the memory occupied by the
- element in the tree. It is passed a pointer to the element to
- be deleted.
-
- The function will return one of the following codes:
-
- -- AVL_OK everything is alright.
- -- AVL_NO_DEL attemp to delete non-existant element.
- -- AVL_ERROR called with incorrect parameters.
-
- Finding an element:
- To find an element, the function AVLfind() should be used. Its
- prototype is:
-
- void *AVLfind(const void *element,
- AVLtree *root,
- int (*cmp)(void*, void*));
-
- element is the element to be found, root is a pointer the the
- root node of the tree. cmp() is the same as in AVLinsert().
-
- The function will return a pointer to the found element, or
- NULL if the element could not be found.
-
- Traversing the tree:
- The tree can be traversed in three ways:
-
- -- preorder AVLpreorder()
- -- inorder AVLinorder()
- -- postorder AVLpostorder()
-
- Inorder traversal will yield all elements in their correct
- order.
-
- The prototypes are:
-
- void AVLpreorder(AVLtree *root, void (*func)(void*));
- void AVLinorder(AVLtree *root,void (*func)(void*));
- void AVLpostorder(AVLtree *root,void (*func)(void*));
-
- root is a pointer to the tree to be traversed, and
- func() is a user defined function that will be called at
- every node. This could do something with that element, like
- printing it.
-
- These functions return nothing.
-
-DOCUMENTATION:
- Robert L. Kruse, "Data Structures and Program Design" (2nd Ed.)
- pp. 344-356.
-
-AUTHOR:
- Jeroen Hellingman, 't Zand 2, 4133TB Vianen, the Netherlands.
-
-COPYRIGHT:
- Copyright (c) Jeroen Hellingman 1990.
- License is granted for any non-commercially and non-millitary use
- of this package, provided that this notice is kept intact. Use of
- this software in any product that is sold for profit or usage by
- (semi-)militairy organisations is forbidden. (contact me for
- commercial usage) Donations are always appreciated (postbank
- giro 5025409).
-
-CAVEAT:
- I can take no responseability whatsoever if this software
- is malfunctioning. If you find any bug in it, please fix it and
- notice me. If you can't fix it, you can also notice me, I might
- try to fix it.
-
-HISTORY
- 18-DEC-1992 last edit
- 04-NOV-1992 declared static functions static in prototype too.
- gcc seems to complain about this (JH)
- 01-DEC-1989 creation (Jeroen Hellingman)
-
--*/
-
-/* #define TEST */
-
-#include "avltree.h"
-#include <stdlib.h>
-#include <stddef.h>
-#include <stdio.h>
-
-#define TRUE 1
-#define FALSE 0
-
-#define EQUAL 0
-#define LEFT 1
-#define RIGHT 2
-
-/* ANSI C prototypes */
-
-static int insert(const void *element, AVLtree **root,
- int (*cmp)(void*, void*), int *taller);
-static int delete(const void *element, AVLtree **root,
- int (*cmp)(void*, void*), void (*del)(void*), int *shorter);
-static void left_balance(AVLtree **root);
-static void right_balance(AVLtree **root);
-static void left_rebalance(AVLtree **root, int *shorter);
-static void right_rebalance(AVLtree **root, int *shorter);
-static void left_rotate(AVLtree **root);
-static void right_rotate(AVLtree **root);
-static void error(int errno);
-
-/* add element to AVL-tree */
-
-int AVLinsert(const void *element,AVLtree **root,int (*cmp)(void*, void*))
-{ int taller = FALSE;
-
- if(element == NULL) return AVL_ERROR;
- return insert(element, root, cmp, &taller);
-}
-
-int AVLdelete(const void *element,AVLtree **root,int (*cmp)(void*, void*),
- void (*del)(void *))
-{ int shorter = FALSE;
-
- if(element == NULL) return AVL_ERROR;
- return delete(element, root, cmp, del, &shorter);
-}
-
-static int insert(const void *element, AVLtree **root,
- int (*cmp)(void*, void*), int *taller)
-{ int result;
- int tallersubtree = FALSE;
- AVLtree *subtree; /* needed since you can't do & on a struct member */
-
- if(*root == NULL) /* then adding is really easy */
- { *root = (AVLtree *) malloc(sizeof(AVLtree));
- if(*root == NULL) return AVL_NO_MEM;
- (*root)->element = element;
- (*root)->balance = EQUAL;
- (*root)->left = NULL;
- (*root)->right = NULL;
- *taller = TRUE;
- result = AVL_OK;
- }
- else /* recursively insert in appropriate subtree */
- { int compare = (*cmp)(element,(*root)->element);
-
- if(compare == 0) return AVL_DUP;
- else if(compare < 0)
- { subtree = (*root)->left;
- result = insert(element,&subtree,cmp,&tallersubtree);
- (*root)->left = subtree;
- if(tallersubtree)
- switch((*root)->balance)
- { case LEFT: left_balance(root);
- *taller = FALSE;
- break;
- case EQUAL: (*root)->balance = LEFT;
- *taller = TRUE;
- break;
- case RIGHT: (*root)->balance = EQUAL;
- *taller = FALSE;
- }
- else *taller = FALSE;
- }
- else
- { subtree = (*root)->right;
- result = insert(element,&subtree,cmp,&tallersubtree);
- (*root)->right = subtree;
- if(tallersubtree)
- switch((*root)->balance)
- { case RIGHT: right_balance(root);
- *taller = FALSE;
- break;
- case EQUAL: (*root)->balance = RIGHT;
- *taller = TRUE;
- break;
- case LEFT: (*root)->balance = EQUAL;
- *taller = FALSE;
- }
- else *taller = FALSE;
- }
- }
- return result;
-} /* end of insert() */
-
-static int delete(const void *element, AVLtree **root,
- int (*cmp)(void*, void*), void (*del)(void*), int *shorter)
-{ int result;
- int compare;
- int shortersubtree = FALSE;
- AVLtree *subtree;
-
- if(root == NULL) return AVL_ERROR;
- if((*root) == NULL) return AVL_NO_DEL;
- if((*root)->element == NULL) error(6); /* DEBUG */
- compare = (*cmp)(element,(*root)->element);
-
- if(compare == 0)
- {
- /* check: two children? */
- if((*root)->left != NULL && (*root)->right != NULL)
- { AVLtree *pred;
- void *tmp;
-
- /* find immediate predecessor */
- pred = (*root)->left;
- while(pred->right != NULL) pred = pred->right;
-
- /* swap element to be deleted with its immediate predecessor */
- tmp = (*root)->element;
- (*root)->element = pred->element;
- pred->element = tmp;
-
- /* delete predecessor from left subtree */
- subtree = (*root)->left;
- result = delete(element,&subtree,cmp,del,&shortersubtree);
- (*root)->left = subtree;
-
- /* rebalance tree */
- if(shortersubtree)
- switch((*root)->balance)
- { case RIGHT: right_rebalance(root,shorter);
- break;
- case EQUAL: (*root)->balance = RIGHT;
- *shorter = FALSE;
- break;
- case LEFT: (*root)->balance = EQUAL;
- *shorter = TRUE;
- }
-
- }
- else
- { /* user must delete his element */
-
- (*del)((*root)->element);
- /* delete node */
- subtree = ((*root)->left == NULL) ? (*root)->right : (*root)->left;
- free(*root);
- *root = subtree;
- *shorter = TRUE;
- result = AVL_OK;
- }
- }
- else if(compare < 0) /* delete from left subtree */
- { subtree = (*root)->left;
- result = delete(element, &subtree, cmp, del, &shortersubtree);
- (*root)->left = subtree;
-
- /* rebalance tree */
- if(shortersubtree)
- switch((*root)->balance)
- { case RIGHT: right_rebalance(root,shorter);
- break;
- case EQUAL: (*root)->balance = RIGHT;
- *shorter = FALSE;
- break;
- case LEFT: (*root)->balance = EQUAL;
- *shorter = TRUE;
- }
- }
- else /* delete from right subtree */
- { subtree = (*root)->right;
- result = delete(element, &subtree, cmp, del, &shortersubtree);
- (*root)->right = subtree;
-
- /* rebalance tree */
- if(shortersubtree)
- switch((*root)->balance)
- { case LEFT: left_rebalance(root,shorter);
- break;
- case EQUAL: (*root)->balance = LEFT;
- *shorter = FALSE;
- break;
- case RIGHT: (*root)->balance = EQUAL;
- *shorter = TRUE;
- }
- }
- return result;
-} /* end of delete() */
-
-static void right_rebalance(AVLtree **root, int *shorter)
-{ AVLtree *rightsub, *leftsubsub;
-
- if(root == NULL) error(7);
- if(*root == NULL) error(8);
- if((*root)->right == NULL) error(9); /* DEBUG */
-
- rightsub = (*root)->right;
- switch(rightsub->balance)
- { case EQUAL: (*root)->balance = RIGHT;
- rightsub->balance = LEFT;
- left_rotate(root);
- *shorter = FALSE;
- break;
- case RIGHT: (*root)->balance = EQUAL;
- rightsub->balance = EQUAL;
- left_rotate(root);
- *shorter = TRUE;
- break;
- case LEFT: leftsubsub = rightsub->left;
- switch(leftsubsub->balance)
- { case EQUAL: (*root)->balance = EQUAL;
- rightsub->balance = EQUAL;
- break;
- case LEFT: (*root)->balance = EQUAL;
- rightsub->balance = RIGHT;
- break;
- case RIGHT: (*root)->balance = LEFT;
- rightsub->balance = EQUAL;
- }
- leftsubsub->balance = EQUAL;
- right_rotate(&rightsub);
- (*root)->right = rightsub;
- left_rotate(root);
- *shorter = TRUE;
- }
-} /* end of right_rebalance() */
-
-static void left_rebalance(AVLtree **root, int *shorter)
-{ AVLtree *leftsub, *rightsubsub;
-
- if(root == NULL) error(10);
- if(*root == NULL) error(11);
- if((*root)->left == NULL) error(12); /* DEBUG */
-
- leftsub = (*root)->left;
- switch(leftsub->balance)
- { case EQUAL: (*root)->balance = LEFT;
- leftsub->balance = RIGHT;
- right_rotate(root);
- *shorter = FALSE;
- break;
- case LEFT: (*root)->balance = EQUAL;
- leftsub->balance = EQUAL;
- right_rotate(root);
- *shorter = TRUE;
- break;
- case RIGHT: rightsubsub = leftsub->right;
- switch(rightsubsub->balance)
- { case EQUAL: (*root)->balance = EQUAL;
- leftsub->balance = EQUAL;
- break;
- case RIGHT: (*root)->balance = EQUAL;
- leftsub->balance = LEFT;
- break;
- case LEFT: (*root)->balance = RIGHT;
- leftsub->balance = EQUAL;
- }
- rightsubsub->balance = EQUAL;
- left_rotate(&leftsub);
- (*root)->left = leftsub;
- right_rotate(root);
- *shorter = TRUE;
- }
-} /* end of left_rebalance() */
-
-void *AVLfind(const void *element,AVLtree *root,int (*cmp)(void*, void*))
-{ int compare;
-
- if(root == NULL) return NULL;
- compare = (*cmp)(element,root->element);
- if(compare == 0) return root->element;
- else if(compare < 0)
- return AVLfind(element,root->left,cmp);
- else
- return AVLfind(element,root->right,cmp);
-}
-
-static void left_balance(AVLtree **root)
-{ AVLtree *leftsub, *rightsubsub;
-
- leftsub = (*root)->left;
- switch(leftsub->balance)
- { case LEFT: (*root)->balance = EQUAL;
- leftsub->balance = EQUAL;
- right_rotate(root);
- break;
- case RIGHT: rightsubsub = leftsub->right;
- switch(rightsubsub->balance)
- { case EQUAL: (*root)->balance = EQUAL;
- leftsub->balance = EQUAL;
- break;
- case RIGHT: (*root)->balance = EQUAL;
- leftsub->balance = LEFT;
- break;
- case LEFT: (*root)->balance = RIGHT;
- leftsub->balance = EQUAL;
- }
- rightsubsub->balance = EQUAL;
- left_rotate(&leftsub);
- (*root)->left = leftsub;
- right_rotate(root);
- }
-} /* end of left_balance() */
-
-static void right_balance(AVLtree **root)
-{ AVLtree *rightsub, *leftsubsub;
-
- rightsub = (*root)->right;
- switch(rightsub->balance)
- { case RIGHT: (*root)->balance = EQUAL;
- rightsub->balance = EQUAL;
- left_rotate(root);
- break;
- case LEFT: leftsubsub = rightsub->left;
- switch(leftsubsub->balance)
- { case EQUAL: (*root)->balance = EQUAL;
- rightsub->balance = EQUAL;
- break;
- case LEFT: (*root)->balance = EQUAL;
- rightsub->balance = RIGHT;
- break;
- case RIGHT: (*root)->balance = LEFT;
- rightsub->balance = EQUAL;
- }
- leftsubsub->balance = EQUAL;
- right_rotate(&rightsub);
- (*root)->right = rightsub;
- left_rotate(root);
- }
-} /* end of right_balance() */
-
-static void left_rotate(AVLtree **root)
-{
- if(*root == NULL) error(1);
- else if((*root)->right == NULL) error(2);
- else
- { AVLtree *temp;
-
- temp = (*root)->right;
- (*root)->right = temp->left;
- temp->left = *root;
- *root = temp;
- }
-}
-
-static void right_rotate(AVLtree **root)
-{
- if(*root == NULL) error(3);
- else if((*root)->left == NULL) error(5);
- else
- { AVLtree *temp;
-
- temp = (*root)->left;
- (*root)->left = temp->right;
- temp->right = *root;
- *root = temp;
- }
-}
-
-void AVLinorder(AVLtree *root, void (*func)(void*))
-{
- if(root == NULL) return;
-
- AVLinorder(root->left, func);
- (*func)(root->element);
- AVLinorder(root->right, func);
-}
-
-void AVLpreorder(AVLtree *root, void (*func)(void*))
-{
- if(root == NULL) return;
-
- AVLpreorder(root->left, func);
- AVLpreorder(root->right, func);
- (*func)(root->element);
-}
-
-void AVLpostorder(AVLtree *root, void (*func)(void*))
-{
- if(root == NULL) return;
-
- (*func)(root->element);
- AVLpostorder(root->left, func);
- AVLpostorder(root->right, func);
-}
-
-
-static void error(int errno)
-{ fprintf(stderr,"AVLtree package error # %d\n",errno);
- exit(1);
-}
-
-
-#ifdef TEST
-
-#include <string.h>
-
-#define MAXN 1000
-#define BUFSIZE 512
-
-int fgetline(char *buf, FILE *input);
-int cmp(void*, void*);
-void del(void *p1);
-void show_element(void *element);
-int AVLcheck(AVLtree *root);
-void AVLshowtree(AVLtree *root, void (*func)(void*), int depth);
-
-void AVLshowtree(AVLtree *root, void (*func)(void*), int depth)
-{
- if(root == NULL) return;
-
- printf(" [%d](%d) ",root->balance, depth);
- (*func)(root->element);
- AVLshowtree(root->left, func, depth+1);
- AVLshowtree(root->right, func, depth+1);
-}
-
-/* naive compare using strcmp() (ASCII order) */
-
-int cmp(void *p1, void *p2)
-{ return strcmp(p1, p2);
-}
-
-/* routine to delete an element */
-
-void del(void *p1)
-{ free(p1);
-}
-
-/* simple routine to show a node */
-
-void show_element(void *element)
-{ printf("%s\n",element);
-}
-
-void main()
-{ AVLtree *root = NULL;
- char buf[BUFSIZE];
- int n = 0, length;
- char *p;
-
-
- fprintf(stdout,"testing routine for B-tree package\n");
- fprintf(stdout,"just read lines from input, put them in the\n");
- fprintf(stdout,"tree, then traverse the tree in order to\n");
- fprintf(stdout,"show the lines sorted (stop with '-') \n");
-
- while(TRUE)
- { length = fgetline(buf, stdin);
- if(buf[0] == '-') break;
- if(length != 0)
- { if(n == MAXN)
- { fprintf(stderr, "Too many strings\n");
- exit(1);
- }
- p = malloc(length+1);
- if(p == NULL)
- { fprintf(stderr, "Out of memory\n");
- exit(2);
- }
- strcpy(p, buf);
- if(AVLinsert(p,&root,cmp) != AVL_OK)
- { fprintf(stderr, "Insertion error\n");
- }
- AVLcheck(root);
- ++n;
- }
- if(feof(stdin)) break;
- }
-
- /* check tree */
- AVLcheck(root);
- /* now try to delete some elements */
-
- while(TRUE)
- { length = fgetline(buf, stdin);
- if(length != 0)
- { if(n == MAXN)
- { fprintf(stderr, "Too many strings\n");
- exit(1);
- }
- p = malloc(length+1);
- if(p == NULL)
- { fprintf(stderr, "Out of memory\n");
- exit(2);
- }
- strcpy(p, buf);
- if(AVLdelete(p,&root,cmp,del) != AVL_OK)
- { fprintf(stderr, "Deletion error\n");
- }
- AVLcheck(root);
- ++n;
- }
- if(feof(stdin)) break;
- }
-
- AVLshowtree(root,show_element, 1);
-
- exit(0);
-}
-
-int fgetline(char *buf, FILE *input)
-{ int i = 0, tmp;
-
- while((tmp = getc(input)) != EOF)
- { buf[i] = (char)tmp;
- if(buf[i] == '\n')
- { buf[i] = '\0';
- return i;
- }
- else
- { i++;
- if(i >= BUFSIZE)
- { fprintf(stderr, "line too long\n");
- exit(4);
- }
- }
- }
- buf[i] = '\0';
- return i;
-}
-
-int AVLcheck(AVLtree *root)
-{ int lh, rh;
-
- if(root == NULL) return 0;
-
- lh = AVLcheck(root->left);
- rh = AVLcheck(root->right);
-
- if(lh == rh && root->balance != EQUAL)
- printf("improper balance EQUAL\n");
- if(lh - rh == 1 && root->balance != LEFT)
- printf("improper balance LEFT\n");
- if(lh - rh == -1 && root->balance != RIGHT)
- printf("improper balance RIGHT\n");
- if(lh - rh > 1 || lh - rh < -1) printf("Not an AVL-tree\n");
-
- return (lh < rh ? rh : lh) + 1;
-}
-
-#endif /* TESTing part */
-
-/* end of AVLtree.c */ \ No newline at end of file
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/avltree.h b/Master/texmf-dist/source/fonts/malayalam/preproc/avltree.h
deleted file mode 100644
index fc4cee88bc9..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/avltree.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*+
- AVLtree.h header file for generic binairy-tree package
-
- (c) Jeroen Hellingman, 1 dec 1989.
-
--*/
-
-#ifndef AVLTREE_HEADER_READ
-#define AVLTREE_HEADER_READ
-
-/* return values */
-
-#define AVL_OK 0
-#define AVL_ERROR 1
-#define AVL_NO_MEM 2
-#define AVL_DUP 3
-#define AVL_NO_DEL 4
-
-/* AVLtree structure */
-
-typedef struct AVLtree AVLtree;
-
-struct AVLtree
-{ void *element;
- char balance;
- AVLtree *left;
- AVLtree *right;
-};
-
-/* ANSI C prototypes */
-
-int AVLinsert(const void *element,AVLtree **root,int (*cmp)(void*, void*));
-int AVLdelete(const void *element,AVLtree **root,int (*cmp)(void*, void*),void (*del)(void*));
-
-void *AVLfind(const void *element,AVLtree *root,int (*cmp)(void*, void*));
-
-/* traversal routines */
-
-void AVLpreorder(AVLtree *root, void (*func)(void*));
-void AVLinorder(AVLtree *root,void (*func)(void*));
-void AVLpostorder(AVLtree *root,void (*func)(void*));
-
-#endif
-/* end of AVLtree.h */
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/makefile b/Master/texmf-dist/source/fonts/malayalam/preproc/makefile
deleted file mode 100644
index 762f65196f7..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# compiler
-CC = c:/emx/bin/gcc
-# include directory
-INCLUDE =-Ic:/emx/include
-
-objects = mm.o readfile.o trs.o scr.o pstree.o avltree.o
-
-mm.exe: $(objects)
- $(CC) -o mm.exe $(objects)
-
-# file dependencies:
-mm.o : mm.h trs.h scr.h readfile.h
-readfile.o : readfile.h
-trs.o : trs.h readfile.h mm.h
-scr.o : scr.h readfile.h mm.h
-pstree.o : pstree.h
-avltree.o : avltree.h
-# end
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/ml.bat b/Master/texmf-dist/source/fonts/malayalam/preproc/ml.bat
deleted file mode 100644
index 03e0537efc4..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/ml.bat
+++ /dev/null
@@ -1,4 +0,0 @@
-echo process TeX file for Malayalam traditional script
-patc -v -p c:\malyalam\mmfont\preproc\mm.pat $1 mm.tmp
-mm -v -t c:\malyalam\mmfont\preproc\mm.trs -s c:\malyalam\mmfont\preproc\mm.scr mm.tmp $2
-del mm.tmp
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/ml.g b/Master/texmf-dist/source/fonts/malayalam/preproc/ml.g
deleted file mode 100644
index 7e60fbea579..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/ml.g
+++ /dev/null
@@ -1,4 +0,0 @@
-echo process TeX file for Malayalam traditional script
-patc -v -p d:\doc\malyalam\mmfont\preproc\mm.pat $1 mm.tmp
-mm -v -t mm -s mm mm.tmp $2
-rm mm.tmp
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mlr.bat b/Master/texmf-dist/source/fonts/malayalam/preproc/mlr.bat
deleted file mode 100644
index 19618c01188..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mlr.bat
+++ /dev/null
@@ -1,4 +0,0 @@
-echo process TeX file for Malayalam reformed script
-patc -v -p c:\malyalam\mmfont\preproc\mm.pat $1 mm.tmp
-mm -v -t c:\malyalam\mmfont\preproc\mmr.trs -s c:\malyalam\mmfont\preproc\mmr.scr mm.tmp $2
-del mm.tmp
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mlr.g b/Master/texmf-dist/source/fonts/malayalam/preproc/mlr.g
deleted file mode 100644
index 65ca4b51902..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mlr.g
+++ /dev/null
@@ -1,4 +0,0 @@
-echo process TeX file for Malayalam reformed script
-patc -v -p d:\doc\malyalam\mmfont\preproc\mm.pat $1 mm.tmp
-mm -v -t mmr.trs -s mmr.scr mm.tmp $2
-rm mm.tmp
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mltr.g b/Master/texmf-dist/source/fonts/malayalam/preproc/mltr.g
deleted file mode 100644
index 84605cfea44..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mltr.g
+++ /dev/null
@@ -1,6 +0,0 @@
-echo process TeX file for Malayalam reformed and traditional script
-patc -v -p d:\doc\malyalam\mmfont\preproc\mm.pat $1 mm.tmp
-mm -v -t mmr.trs -s mmr.scr mm.tmp mm2.tmp
-rm mm.tmp
-mm -v -t mm -s mm mm2.tmp $2
-rm mm2.tmp
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mltrth.g b/Master/texmf-dist/source/fonts/malayalam/preproc/mltrth.g
deleted file mode 100644
index e8eee14080a..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mltrth.g
+++ /dev/null
@@ -1,14 +0,0 @@
-echo process TeX file for Malayalam/Tamil/Devanagari
-patc -v -p d:\doc\malyalam\mmfont\preproc\mm.pat $1 mm1.tmp
-mm -v -t mm -s mm mm1.tmp mm2.tmp
-rm mm1.tmp
-mm -v -t mmr.trs -s mmr.scr mm2.tmp mm3.tmp
-rm mm2.tmp
-patc -v -p d:\doc\malyalam\mmfont\tamil\tamil.pat mm3.tmp mm4.tmp
-rm mm3.tmp
-patc -v -p d:\doc\malyalam\mmfont\dng\dng.pat mm4.tmp mm5.tmp
-rm mm4.tmp
-echo devnag mm5.tmp $2
-devnag mm5.tmp $2
-rm mm5.tmp
-echo well, that's done...
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.c b/Master/texmf-dist/source/fonts/malayalam/preproc/mm.c
deleted file mode 100644
index 5e8fb4a06cf..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.c
+++ /dev/null
@@ -1,819 +0,0 @@
-#define VERSION "mm v1.0 (c) Jeroen Hellingman 26-APR-1993\n"
-
-/*
- mm -- convert malayalam text in transcription into input for TeX
-
-USAGE:
- mm {-q|-v|-V|-h} [-t transfile][-s scriptfile] infile [outfile]
- -q quiet mode (default)
- -v verbose mode
- -V very verbose mode
- -h print help
- -t read transcription from transfile (default mm.trs)
- -s read script information from scriptfile (default mm.scr)
-
-HISTORY:
- 26-APR-1993 changed directory structure of source files (JH)
- 25-DEC-1992 Move to version 1.0
- removed coded that placed reepham when Ra occurs
- initially (JH).
- 24-DEC-1992 added support for environment variable. (JH)
- added -h option to print help. (JH)
- program will now add default file-suffixes if not given
- on command line. (JH)
- program will only `pun out' if very verbose option is given. (JH)
- 08-OCT-1992 added support for at{end|begin}syllabe (JH)
- 22-JUL-1992 removed bug causing endless loop outputting virama (JH)
- 21-JUL-1992 added support for reepham (JH)
- 28-JUN-1992 Genesis (Jeroen Hellingman)
-
-*/
-
-/*
-
- functional organisation
-
- main:
- command line arguments
- read tables
-
- start in normal mode
- switch mode when begin malayalam text is encountered
-
- convert mode:
- read letters from file
- build syllabes
- convert syllabes
- output result
-
-*/
-
-/***********************************************************************/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-
-#include "mm.h"
-#include "trs.h"
-#include "scr.h"
-#include "readfile.h"
-
-#define ATARI_ST /* machine type, can be ATARI_ST, MS_DOS, UNIX */
-
-#define TRUE (1==1)
-#define FALSE (1==0)
-
-#if defined(ATARI_ST) || defined(MS_DOS)
-#define DIRSEPARATOR_CHAR '\\'
-#define DIRSEPARATOR_STRING "\\"
-#define MMDIR "D:\\doc\\malyalam\\mmfont\\preproc\\" /* place where .trs and .scr are (overruled by env. var. MMDIR) */
-#else /* UNIX */
-#define DIRSEPARATOR_CHAR '/'
-#define DIRSEPARATOR_STRING "/"
-#define MMDIR "/bin" /* place where .trs and .scr are (overruled by env. var. MMDIR) */
-#endif
-
-#define NUMPATS 10 /* number of pattern trees */
-#define PATLEN 50 /* maximum length of pattern */
-/* #define BUFSIZE 512 pushback buffer size (BUFSIZE >= PATLEN) */
-#define SYLLABESIZE 20 /* maximum size of syllabe */
-
-/* data types */
-
-/***********************************************************************/
-
-/* prototypes */
-
-void defaultloop(void);
-void malayalamloop(void);
-
-void put_malayalam_letter(char);
-void put_malayalam_syllabe(void);
-void put_syllabe(char *s);
-prebuild_char *find_cluster(char *s);
-glyph_pair *find_ra(char **t);
-glyph_pair *find_sec_cons(char *s, int r);
-glyph_pair *find_vowel(char *s);
-void use_virama(char *s, glyph_pair **primary_ra);
-
-void processflags(int argc, char** argv);
-static char *name_suffix(char* name, char *suffix);
-static char *force_suffix(char* name, char *suffix);
-void usage(void);
-void help(void);
-void copytexcommand(void);
-void skiptexcommand(void);
-void copycomment(void);
-void skipcomment(void);
-int readchar(void);
-void unreadchar(int);
-int what_escape(const char *s, char *result);
-void inittables(void);
-
-/***********************************************************************/
-
-/* globals */
-
-FILE *infile;
-FILE *outfile;
-char *progname = "mm";
-char *insuffix = "mm";
-char *outsuffix = "tex";
-char *trssuffix = "trs";
-char *scrsuffix = "scr";
-char *trsfilename = "mmr.trs"; /* file containing transcription information */
-char *scrfilename = "mmr.scr"; /* file containing script information */
-char *infilename = NULL;
-char *outfilename = NULL;
-char *home = MMDIR; /* home directory (defined above) */
-char *mmdir = "MMDIR"; /* name of env. var. for home directory */
-int quiet = FALSE; /* don't be quiet */
-int very_verbose = FALSE;
-int verbose = FALSE; /* don't be verbose */
-static int debug = FALSE; /* don't debug */
-static int linenumber = 1; /* current line in infile */
-
-PSTree *normal=NULL; /* default patterns */
-trs_table *trs=NULL; /* patterns for transcription */
-scr_table *scr = NULL; /* script definition */
-
-/* some extra globals */
-
-typedef enum { ACCEPT, FLUSH } state;
-
-char syllabe[SYLLABESIZE];
-int syl_len = 0;
-state syllabe_state = ACCEPT;
-
-typedef enum
-{ UNDEF, VOWEL, CONS, VSIGN, DIGIT, OTHER, VIRAM,
- BLANK, JOIN, NJOIN
-} char_type_enum;
-
-char_type_enum char_type[128] =
-{ UNDEF, UNDEF, OTHER, OTHER, UNDEF, VOWEL, VOWEL, VOWEL,
- VOWEL, VOWEL, VOWEL, VOWEL, VOWEL, UNDEF, VOWEL, VOWEL,
- VOWEL, UNDEF, VOWEL, VOWEL, VOWEL, CONS, CONS, CONS,
- CONS, CONS, CONS, CONS, CONS, CONS, CONS, CONS,
- CONS, CONS, CONS, CONS, CONS, CONS, CONS, CONS,
- CONS, UNDEF, CONS, CONS, CONS, CONS, CONS, CONS,
- CONS, CONS, CONS, CONS, CONS, CONS, CONS, CONS,
- CONS, CONS, UNDEF, UNDEF, UNDEF, UNDEF, VSIGN, VSIGN,
- VSIGN, VSIGN, VSIGN, VSIGN, VSIGN, UNDEF, VSIGN, VSIGN,
- VSIGN, UNDEF, VSIGN, VSIGN, VSIGN, VIRAM, UNDEF, UNDEF,
- UNDEF, UNDEF, UNDEF, UNDEF, UNDEF, UNDEF, UNDEF, OTHER,
- UNDEF, UNDEF, UNDEF, UNDEF, UNDEF, UNDEF, UNDEF, UNDEF,
- VOWEL, VOWEL, UNDEF, UNDEF, UNDEF, UNDEF, DIGIT, DIGIT,
- DIGIT, DIGIT, DIGIT, DIGIT, DIGIT, DIGIT, DIGIT, DIGIT,
- UNDEF, UNDEF, UNDEF, UNDEF, UNDEF, UNDEF, UNDEF, UNDEF,
- UNDEF, UNDEF, UNDEF, UNDEF, BLANK, OTHER, NJOIN, JOIN,
-};
-
-/***********************************************************************/
-
-void PUSHBACK(char *c)
-/* push the characters in string c back into the inputstream, works
- * with the pair of functions readchar() and unreadchar()
- */
-{ int i = (int)strlen(c)-1;
- for( ;i >= 0; i--) unreadchar((int)c[i]);
-}
-
-/***********************************************************************/
-
-void main(int argc, char** argv)
-/* check arguments, intialize tables, open files
- */
-{ char *tmp;
- tmp = getenv(mmdir);
- if(tmp != NULL) home = tmp;
-
- processflags(argc, argv);
- if(verbose) fputs(VERSION, stderr);
-
- inittables();
-
- if(verbose) printf("reading from %s\n", infilename);
- infile = fopen(infilename, "r");
- if(infile==NULL)
- { fprintf(stderr, "%s: can't open %s\n", progname, infilename);
- exit(2);
- }
- if(verbose) printf("writing to %s\n", outfilename);
- outfile = fopen(outfilename, "w");
- if(outfile==NULL)
- { fprintf(stderr, "%s: can't create %s\n", progname, outfilename);
- exit(2);
- }
-
- defaultloop();
- fclose(infile);
- fclose(outfile);
- if(verbose) printf("done\n");
- exit(0);
-}
-
-void processflags(int argc, char** argv)
-{ int nextoption = FALSE;
- int i = 1;
-
- if(argc < i+1) usage();
- if(argv[i][0] == '-') nextoption = TRUE;
-
- while(nextoption)
- { switch(argv[i][1])
- { case 'V': very_verbose = TRUE;
- case 'v': verbose = TRUE; break;
- case 'q': quiet = TRUE; break;
- case 'h': help();
- case 'D': debug = TRUE; break;
- case 't': trsfilename = name_suffix(argv[i+1], trssuffix); i++; break;
- case 's': scrfilename = name_suffix(argv[i+1], scrsuffix); i++; break;
- default: usage();
- }
- i++;
- if(argc < i+1) usage();
- if(argv[i][0] != '-') nextoption = FALSE;
- }
- infilename = name_suffix(argv[i], insuffix);
- if(argc < i+2)
- { outfilename = force_suffix(argv[i], outsuffix);
- }
- else
- outfilename = name_suffix(argv[i+1], outsuffix);
-}
-
-/* add suffix to name if none given */
-
-static char *name_suffix(char* name, char *suffix)
-{ long i, len = strlen(name);
- char *result;
-
- /* seek for dot, if found return name */
- for(i=0; i<len; i++) if(name[i] == '.') return name;
- /* otherwise add suffix */
-
- result = malloc(len+5);
- assert(result != NULL);
- strcpy(result, name);
- result[len] = '.';
- result[++len] = suffix[0];
- result[++len] = suffix[1];
- result[++len] = suffix[2];
- result[++len] = '\0';
- return result;
-}
-
-/* add suffix, remove orginal suffix if given */
-
-static char *force_suffix(char* name, char *suffix)
-{ long i, len = strlen(name);
- char *result;
-
- /* seek for dot, if found break */
- for(i=0; i<len; i++) if(name[i] == '.') break;
-
- result = malloc(len+5);
- assert(result != NULL);
- strcpy(result, name);
- result[i] = '.';
- result[++i] = suffix[0];
- result[++i] = suffix[1];
- result[++i] = suffix[2];
- result[++i] = '\0';
- return result;
-}
-
-/* place the home directory name in front of the file name */
-
-char *prepend_home(char *filename)
-{ long len1, len2;
- char *result;
- if(home == NULL) return filename;
- len1 = strlen(home);
- len2 = strlen(filename);
- result = malloc(len1+len2+2);
- assert(result != NULL);
- strcpy(result, home);
- if(home[len1-1] != DIRSEPARATOR_CHAR) /* add backslash if not already there */
- strcat(result, DIRSEPARATOR_STRING);
- strcat(result, filename);
- return result;
-}
-
-void usage()
-{ fprintf(stderr, "usage: %s {-q|-v|-V|-h} [-t transfile][-s scriptfile] infile [outfile]\n", progname);
- fprintf(stderr, "(%s -h will print a help message)\n", progname);
- exit(1);
-}
-
-void help()
-{ char *s;
- puts(VERSION);
- printf("usage: %s {-q|-v|-V|-h} [-t transfile][-s scriptfile] infile [outfile]\n", progname);
- printf("\noptions:\n");
- printf(" -q quiet mode (default)\n");
- printf(" -v verbose mode\n");
- printf(" -V very verbose mode\n");
- printf(" -h print help\n");
- printf(" -t read transcription from transfile (default mmr.trs)\n");
- printf(" -s read script information from scriptfile (default mmr.scr)\n");
- printf("\ndefault file extensions:\n");
- printf(" transfile: .trs\n");
- printf(" scriptfile: .scr\n");
- printf(" infile: .mm\n");
- printf(" outfile: .tex\n");
- printf("\nthe environment variable %s tells %s where to look for transfile\nand scriptfile.\n", mmdir, progname);
- printf(" %s is currently ", mmdir);
- if((s=getenv(mmdir)) == NULL)
- printf("not set\n\n");
- else
- printf("set to %s\n\n", s);
- exit(0);
-}
-
-/***********************************************************************/
-
-void inittables()
-{ long len;
- char *act;
- string_list *next;
-
- trs = read_trs(trsfilename);
- scr = read_scr(scrfilename);
-
- /* insert trs->atend with action scr->atend in trs->p patterntree */
- len = strlen(scr->atend) + 1; act = malloc(len);
- if(act==NULL){fprintf(stderr, "can't allocate\n");exit(0);}
- act[0] = 'M'; /* action: switch to Malayalam script */
- act[1] = '\0';
- act = strcat(act, scr->atend);
-
- next = trs->atend;
- while(next != NULL && (next->s)!=NULL && next->s[0] != '\0')
- { PSTinsert(&(trs->p), next->s, act);
- next = next->n;
- }
-
- /* insert trs->atbegin in default patterntree */
- len = strlen(scr->atbegin) + 1; act = malloc(len);
- if(act==NULL){fprintf(stderr, "can't allocate\n");exit(0);}
- act[0] = 'M'; /* action: switch to default script */
- act[1] = '\0';
- act = strcat(act, scr->atbegin);
-
- next = trs->atbegin;
- while(next != NULL && (next->s)!=NULL && next->s[0] != '\0')
- { PSTinsert(&normal, next->s, act);
- next = next->n;
- }
- /* also skip comment in default mode (HACK) */
- PSTinsert(&normal, "%", "s");
- PSTinsert(&normal, "\\%", "\\%");
- PSTinsert(&normal, "$$", "p$$");
- /* code will change to add normal patterns from scr file */
-}
-
-/***********************************************************************/
-
-void defaultloop() /* almost same as normal patc */
-{ char ps[PATLEN+1]; /* pattern to be search for */
- char *action; /* action with pattern */
- int len = PATLEN; /* length of found pattern; part of ps to be read */
- int i, j; /* counters */
-
- while(TRUE)
- {
- /* fill pattern */
- for(i = 0, j = len; j < PATLEN; i++, j++) ps[i] = ps[j];
- for(i = PATLEN - len; i < PATLEN; i++)
- { int c = readchar();
- ps[i] = (c == EOF) ? '\0' : (char)c;
- }
- ps[PATLEN] = '\0'; /* NULL-terminate */
- if(ps[0] == '\0') break;
-
- /* find action */
-
- action = PSTmatch(normal, ps, &len);
-
- if(len == 0) /* no match, copy first letter silently */
- { fputc(ps[0], outfile);
- len = 1;
- }
- else /* do action */
- { switch(action[0])
- { case 'p': fputs(&action[1], outfile); break;
- case 'c': PUSHBACK(ps); len = PATLEN; copycomment(); break;
- case 't': PUSHBACK(ps); len = PATLEN; copytexcommand(); break;
- case 'T': PUSHBACK(ps); len = PATLEN; skiptexcommand(); break;
- case 's': PUSHBACK(ps); len = PATLEN; skipcomment(); break;
- case 'f': /* forget */ break;
- case 'e': fprintf(stderr, "Error: %s near line %d\n", &action[1], linenumber);
- break;
- case 'M': fputs(&action[1], outfile); /* output @atbegin text */
- PUSHBACK(&ps[len]); len = PATLEN; /* pushback rest */
- malayalamloop();
- break;
- default: fprintf(stderr, "Internal error: unknown action\n");
- exit(10);
- } /* switch */
- } /* else */
- } /* while */
-} /* defaultloop() */
-
-/***********************************************************************/
-
-void malayalamloop() /* build syllabes loop */
-{ char ps[PATLEN+1]; /* pattern to be search for */
- char *action; /* action with pattern */
- int len = PATLEN; /* length of found pattern; part of ps to be read */
- int i, j; /* counters */
-
- while(TRUE)
- {
- /* fill pattern */
- for(i = 0, j = len; j < PATLEN; i++, j++) ps[i] = ps[j];
- for(i = PATLEN - len; i < PATLEN; i++)
- { int c = readchar();
- ps[i] = (c == EOF) ? '\0' : (char)c;
- }
- ps[PATLEN] = '\0'; /* NULL-terminate */
- if(ps[0] == '\0') break;
-
- /* find action */
-
- action = PSTmatch(trs->p, ps, &len);
-
- if(len == 0) /* no match, complain */
- { fprintf(stderr, "Error: illegal character '%c' near line %d\n", ps[0], linenumber);
- len = 1;
- }
- else /* do action */
- { switch(action[0])
- { case 'p': put_malayalam_syllabe();
- fputs(&action[1], outfile); break;
- case 'c': put_malayalam_syllabe();
- PUSHBACK(ps); len = PATLEN; copycomment(); break;
- case 't': put_malayalam_syllabe();
- PUSHBACK(ps); len = PATLEN; copytexcommand(); break;
- case 'T': put_malayalam_syllabe();
- PUSHBACK(ps); len = PATLEN; skiptexcommand(); break;
- case 's': put_malayalam_syllabe();
- PUSHBACK(ps); len = PATLEN; skipcomment(); break;
- case 'f': /* forget */ break;
- case 'e': put_malayalam_syllabe();
- fprintf(stderr, "Error: %s near line %d\n", &action[1], linenumber);
- break;
- case 'M': put_malayalam_syllabe(); /* output last syllabe */
- fputs(&action[1], outfile); /* output @atend text */
- PUSHBACK(&ps[len]); len = PATLEN; /* pushback rest */
- return; /* go back to main loop */
- case '=': /* we have a letter, now we have to decide what to do with it
- we have reached the end of a syllabe or not */
- put_malayalam_letter(action[1]); /* add letter to current syllabe */
- break;
- default: fprintf(stderr, "Internal error: unknown action\n");
- exit(10);
- } /* switch */
- } /* else */
- } /* while */
-}
-
-/***********************************************************************/
-
-void put_malayalam_letter(char c) /* accept a letter, and output a syllabe if neccessary */
-{
- if(debug)fprintf(stdout, "put malayalam letter %X\n", (int)c);
-
- if(char_type[c] == UNDEF)
- { fprintf(stderr, "%s: undefined Malayalam char %X near line %i\n", progname, (int)c, linenumber);
- return;
- }
-
- switch(syllabe_state)
- { case ACCEPT:
- switch(char_type[c])
- { case CONS:
- case JOIN:
- syllabe[syl_len++] = c;
- break;
- case BLANK:
- put_malayalam_syllabe();
- /* fall through */
- default:
- syllabe[syl_len++] = c;
- syllabe_state = FLUSH;
- }
- break;
- case FLUSH:
- switch(char_type[c])
- { case JOIN:
- syllabe[syl_len++] = c;
- syllabe_state = ACCEPT;
- break;
- case CONS:
- put_malayalam_syllabe();
- syllabe[syl_len++] = c;
- syllabe_state = ACCEPT;
- break;
- default:
- put_malayalam_syllabe();
- syllabe[syl_len++] = c;
- break;
- }
- }
- syllabe[syl_len] = '\0';
- if(syl_len >= SYLLABESIZE-2)
- put_malayalam_syllabe();
-}
-
-static int cmp_glyph_pair(void *a, void *b)
-{ return strcmp(((glyph_pair*)a)->c, ((glyph_pair*)b)->c);
-}
-
-static int cmp_prebuild_char(void *a, void *b)
-{ return strcmp(((prebuild_char*)a)->c, ((prebuild_char*)b)->c);
-}
-
-void put_malayalam_syllabe() /* output a syllabe */
-{ int is_syllabe = FALSE;
-
- if(debug)fprintf(stdout, "syllabe\n");
- if(syl_len == 0) return;
-
- /* add VIRAMA if last sign is consonant */
- if(char_type[syllabe[syl_len-1]] == CONS)
- { syllabe[syl_len++] = VIRAMA;
- syllabe[syl_len] = '\0';
- }
-
- if(char_type[syllabe[0]] == CONS ||
- char_type[syllabe[0]] == VOWEL) is_syllabe = TRUE;
-
- if(is_syllabe) fputs(scr->atbeginsyllabe, outfile);
-
- put_syllabe(syllabe);
-
- if(is_syllabe) fputs(scr->atendsyllabe, outfile);
-
- syllabe[0]='\0'; syl_len=0;
- return;
-}
-
-prebuild_char *is_prebuild(char *s)
-{ prebuild_char tmp; tmp.c = s;
- return AVLfind(&tmp, scr->prebuild, cmp_prebuild_char);
-}
-
-glyph_pair *is_primary(char *s)
-{ glyph_pair tmp; tmp.c = s;
- return AVLfind(&tmp, scr->primary, cmp_glyph_pair);
-}
-
-glyph_pair *is_secondary(char *s)
-{ glyph_pair tmp; tmp.c = s;
- return AVLfind(&tmp, scr->secondary, cmp_glyph_pair);
-}
-
-void pun_out(char c)
-{ static column = 0;
- column++;
- if(column == 78) { putchar('\n'); column = 1; }
- putchar(c);
-}
-
-void put_syllabe(char *s)
-{
- glyph_pair *primary_ra = NULL;
- glyph_pair *vowel = NULL; /* also used for virama */
- glyph_pair *sec_cons = NULL;
- prebuild_char *cluster = NULL;
-
- if(very_verbose) pun_out('.'); /* signal it */
-
- if((cluster = is_prebuild(s)) == NULL)
- { primary_ra = find_ra(&s);
- if((cluster = is_prebuild(s)) == NULL)
- { if((sec_cons = find_sec_cons(s, 1)) == NULL)
- { vowel = find_vowel(s);
- if((cluster = is_prebuild(s)) != NULL)
- s[0] = '\0';
- else
- sec_cons = find_sec_cons(s, 0);
- }
- if(cluster == NULL)
- cluster = find_cluster(s);
- if(strlen(s) > 0) use_virama(s, &primary_ra);
- }
- }
- /* output the syllabe */
-
- if(!scr->reepham && primary_ra != NULL) fputs(primary_ra->b, outfile);
- if(vowel != NULL) fputs(vowel->b, outfile);
- if(sec_cons != NULL) fputs(sec_cons->b, outfile);
- if(scr->reepham && primary_ra != NULL) fputs(primary_ra->b, outfile);
- if(cluster != NULL) fputs(cluster->g, outfile);
- if(scr->reepham && primary_ra != NULL) fputs(primary_ra->a, outfile);
- if(sec_cons != NULL) fputs(sec_cons->a, outfile);
- if(vowel != NULL) fputs(vowel->a, outfile);
- if(!scr->reepham && primary_ra != NULL) fputs(primary_ra->a, outfile);
-}
-
-
-glyph_pair *find_ra(char **t)
-{ char *s = *t;
- char ra_string[] = { LETTER_RA, '\0' };
- glyph_pair *result = NULL;
-
- /* do we have primary ra? */
- if(s[0] == LETTER_RA && char_type[s[1]] == CONS)
- { if((result = is_primary(ra_string)) == NULL)
- fprintf(stderr, "need glyph(s) for primary ra\n");
- s = &s[1];
- }
- *t = s;
- return result;
-}
-
-glyph_pair *find_sec_cons(char *s, int r)
-{ glyph_pair *result = NULL;
- long i;
- long len=strlen(s)-r;
-
- for(i=1;i<len;i++)
- { if((result = is_secondary(&s[i])) != NULL)
- { s[i] = '\0';
- break;
- }
- }
- return result;
-}
-
-glyph_pair *find_vowel(char *s)
-{ long i = strlen(s)-1;
- glyph_pair *result;
-
- if((result = is_secondary(&s[i])) == NULL)
- fprintf(stderr, "need glyph(s) for secondary vowel/virama %X\n",(int)s[i]);
- s[i] = '\0';
- return result;
-}
-
-prebuild_char *find_cluster(char *s)
-{ long i, len = strlen(s);
- prebuild_char *result;
- for(i = 0;i<len;i++)
- { if((result = is_prebuild(&s[i])) != NULL)
- { s[i] = '\0'; /* that is done now */
- break;
- }
- }
- if(result == NULL)
- { fprintf(stderr, "need glyph(s) for single character %X\n",(int)s[len-1]);
- s[len-1] = '\0';
- }
- return result;
-}
-
-void use_virama(char *s, glyph_pair **primary_ra)
-{
- long i;
- long len = strlen(s);
- prebuild_char *cluster = NULL;
- glyph_pair *virama = NULL;
- char virama_string[] = { VIRAMA, '\0' };
-
- if(very_verbose) pun_out('+');
-
- for(i=0;i<len;i++)
- { s[len] = VIRAMA; s[len+1] = '\0';
- if((cluster = is_prebuild(&s[i])) != NULL)
- { s[i] = '\0';
- break;
- }
- else
- { s[len] = '\0';
- if((cluster = is_prebuild(&s[i])) != NULL)
- { s[i] = '\0';
- if((virama = is_secondary(virama_string)) == NULL)
- fprintf(stderr, "need glyph(s) for secondary virama\n");
- break;
- }
- }
- }
- if(strlen(s) > 0) use_virama(s, primary_ra);
-
- /* output what we have now */
- if(*primary_ra != NULL) fputs((*primary_ra)->b, outfile);
- if(virama != NULL) fputs(virama->b, outfile);
- if(cluster != NULL) fputs(cluster->g, outfile);
- if(virama != NULL) fputs(virama->a, outfile);
- if(*primary_ra != NULL)
- { fputs((*primary_ra)->a, outfile);
- *primary_ra = NULL;
- }
-}
-
-/***********************************************************************/
-
-void copytexcommand()
-/* copy TeX commmand, including preceding \
- * this will work in plain TeX and LaTeX
- */
-{ int c = readchar();
- if(c=='\\')
- { fputc(c, outfile);
- c = readchar();
- if(isalpha(c))
- { while(isalpha(c))
- { fputc(c, outfile);
- c = readchar();
- }
- unreadchar(c);
- }
- else
- fputc(c, outfile);
- }
- else
- unreadchar(c);
-}
-
-void skiptexcommand()
-/* skip TeX commmand, including preceding \
- * this will work in plain TeX and LaTeX
- */
-{ int c = readchar();
- if(c=='\\')
- { c = readchar();
- if(isalpha(c))
- { while(isalpha(c))
- { c = readchar();
- }
- unreadchar(c);
- }
- }
- else
- unreadchar(c);
-}
-
-
-void copycomment()
-{ int c = readchar();
- if(c=='%')
- { while(c != '\n' && c != EOF)
- { fputc(c, outfile);
- c = readchar();
- }
- fputc('\n', outfile);
- }
- else
- unreadchar(c);
-}
-
-void skipcomment()
-{ int c = readchar();
- if(c=='%')
- { while(c != '\n' && c != EOF)
- c = readchar();
- }
- else
- unreadchar(c);
-}
-
-/***********************************************************************/
-/* file access with buffer */
-
-static int fbuffer[BUFSIZE]; /* buffer for file operations */
-static int last = 0; /* last + 1 used in fbuffer */
-
-int readchar()
-{ int result;
-
- if(last==0) /* nothing in buffer */
- result = fgetc(infile);
- else /* get first from buffer */
- { last--;
- result = fbuffer[last];
- }
- if(result == '\n') linenumber++;
- return result;
-}
-
-void unreadchar(int c)
-{
- if(last == BUFSIZE)
- { fprintf(stderr, "%s: push-back file buffer full\n", progname);
- exit(1);
- }
- else /* voeg na last in buffer */
- { fbuffer[last] = c;
- last++;
- if(c == '\n') linenumber--;
- }
-}
-
-/***********************************************************************/
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.exe b/Master/texmf-dist/source/fonts/malayalam/preproc/mm.exe
deleted file mode 100755
index 9077c13826b..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.exe
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.h b/Master/texmf-dist/source/fonts/malayalam/preproc/mm.h
deleted file mode 100644
index 3db74a846a0..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.h
+++ /dev/null
@@ -1,110 +0,0 @@
-
-#define TRUE (1==1)
-#define FALSE (1==0)
-
-char *prepend_home(char *filename);
-
-/* table of malayalam letters */
-
-#define SIGN_ANUSVARA 2
-#define SIGN_VISARGA 3
-
-#define LETTER_A 5
-#define LETTER_AA 6
-#define LETTER_I 7
-#define LETTER_II 8
-#define LETTER_U 9
-#define LETTER_UU 10
-#define LETTER_VOCALIC_R 11
-#define LETTER_VOCALIC_L 12
-
-#define LETTER_E 14
-#define LETTER_EE 15
-#define LETTER_AI 16
-
-#define LETTER_O 18
-#define LETTER_OO 19
-#define LETTER_AU 20
-
-#define LETTER_KA 21
-#define LETTER_KHA 22
-#define LETTER_GA 23
-#define LETTER_GHA 24
-#define LETTER_NGA 25
-#define LETTER_CA 26
-#define LETTER_CHA 27
-#define LETTER_JA 28
-#define LETTER_JHA 29
-#define LETTER_NYA 30
-#define LETTER_TTA 31
-#define LETTER_TTHA 32
-#define LETTER_DDA 33
-#define LETTER_DDHA 34
-#define LETTER_NNA 35
-#define LETTER_TA 36
-#define LETTER_THA 37
-#define LETTER_DA 38
-#define LETTER_DHA 39
-#define LETTER_NA 40
-
-#define LETTER_PA 42
-#define LETTER_PHA 43
-#define LETTER_BA 44
-#define LETTER_BHA 45
-#define LETTER_MA 46
-#define LETTER_YA 47
-#define LETTER_RA 48
-#define LETTER_RRA 49
-#define LETTER_LA 50
-#define LETTER_LLA 51
-#define LETTER_LLLA 52
-#define LETTER_VA 53
-#define LETTER_SHA 54
-#define LETTER_SSA 55
-#define LETTER_SA 56
-#define LETTER_HA 57
-
-#define VOWEL_SIGN_AA 62
-#define VOWEL_SIGN_I 63
-#define VOWEL_SIGN_II 64
-#define VOWEL_SIGN_U 65
-#define VOWEL_SIGN_UU 66
-#define VOWEL_SIGN_VOCALIC_R 67
-#define VOWEL_SIGN_VOCALIC_RR 68
-
-#define VOWEL_SIGN_E 70
-#define VOWEL_SIGN_EE 71
-#define VOWEL_SIGN_AI 72
-
-#define VOWEL_SIGN_O 74
-#define VOWEL_SIGN_OO 75
-#define VOWEL_SIGN_AU 76
-
-#define VIRAMA 77
-
-#define AU_LENGTH_MARK 87
-
-#define LETTER_VOCALIC_RR 96
-#define LETTER_VOCALIC_LL 97
-
-#define DIGIT_ZERO 102
-#define DIGIT_ONE 103
-#define DIGIT_TWO 104
-#define DIGIT_THREE 105
-#define DIGIT_FOUR 106
-#define DIGIT_FIVE 107
-#define DIGIT_SIX 108
-#define DIGIT_SEVEN 109
-#define DIGIT_EIGHT 110
-#define DIGIT_NINE 111
-
-/* extra's not on this place in unicode */
-
-#define JOINER 127
-#define NON_JOIN 126
-#define DOTTED_CIRCLE 125
-#define SPACE 124
-
-/* eof */
-
-
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.pat b/Master/texmf-dist/source/fonts/malayalam/preproc/mm.pat
deleted file mode 100644
index 4d36412e553..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.pat
+++ /dev/null
@@ -1,387 +0,0 @@
-% mm.pat --- Malayalam transcription definition for TeX pre-processor
-% (c) 1993 Jeroen Hellingman
-% last edit: 14-JAN-1993
-
-@patterns 0 % default patterns
-"$$" 1 "{\\mmtr " % begin Malayalam in transcription
-"%" c % skip comments
-"\\" t % copy TeX-commands
-"\t" p " " % tab -> space
-
-@rpatterns 1 patterns ASCII transcription -> scientific transcription in TeX.
-
-"$$" 0 "}" % switch back to default mode
-"$" e "$ in $$-mode"
-">" f % eliminate ambiguities
-"\\" t % copy TeX command
-"%" s % skip comment
-"^" e "^ in front of non letter"
-"^^" 2 "" % switch to capital mode
-
-"{" p "{"
-"}" p "}"
-"\n" p "\n"
-" " p " "
-"\t" p " "
-
-"a" p "a" % a
-"aa" p "\\=a" % aa
-"A" p "\\=a"
-"i" p "i" % i
-"ii" p "{\\=\\i}" % ii
-"I" p "{\\=\\i}"
-"u" p "u" % u
-"uu" p "\\=u" % uu
-"U" p "\\=u"
-".r" p "\\d r" % vocalic r
-".r.r" p "{\\rii}" % vocalic rr
-".R" p "{\\rii}"
-".l" p "\\d l" % vocalic l
-".l.l" p "{\\lii}" % vocalic ll
-".L" p "{\\lii}"
-"e" p "e"
-"ee" p "\\=e"
-"E" p "\\=e"
-"ai" p "ai"
-"o" p "o"
-"oo" p "\\=o"
-"O" p "\\=o"
-"au" p "au"
-"au\"" p "au" % au length mark
-
-% modifiers
-
-"M" p "\\d m" % anusvara
-"H" p "\\d h" % visarga
-
-% consonants
-
-"k" p "k"
-"kh" p "kh"
-"g" p "g"
-"gh" p "gh"
-"n\"" p "\\.n" % nga
-
-"c" p "c"
-"ch" p "ch"
-"j" p "j"
-"jh" p "jh"
-"n~" p "\\~n" % nya
-
-"T" p "\\d t"
-"Th" p "\\d th"
-"D" p "\\d d"
-"Dh" p "\\d dh"
-"N" p "\\d n"
-
-"t" p "t"
-"t_" p "\\b t" % dental ta
-"th" p "th"
-"d" p "d"
-"dh" p "dh"
-"n" p "n"
-"n_" p "\\b n" % dental na
-
-"p" p "p"
-"ph" p "ph"
-"f" p "f"
-"b" p "b"
-"bh" p "bh"
-"m" p "m"
-
-"y" p "y"
-"r" p "r"
-"R" p "\\b r"
-"RR" p "\\b t" % double Ra is dental t
-"t_t_" p "\\b t" % double Ra is dental t
-"l" p "l"
-"L" p "\\d l"
-"zh" p "\\b z"
-"v" p "v"
-"sh" p "\\'s"
-"S" p "\\d s"
-"s" p "s"
-"h" p "h"
-
-"+" f % virama
-"u+" p "\\u u" % half u
-
-% digits
-
-% special
-
-"<>" f % join
-"@" f % non join
-"[]" p "\\dotcircle" % dotted circle
-
-% interpunction
-
-"." p "."
-"`" p "`"
-"'" p "'"
-"," p ","
-":" p ":"
-";" p ";"
-"-" p "-"
-"--" p "--"
-"---" p "---"
-"(" p "("
-")" p ")"
-"?" p "?"
-"!" p "!"
-"\\%" p "\\%"
-
-% repeat partial table for correct transcription of anusvar
-
-"Mk" p "\\.nk"
-"Mkh" p "\\.nkh"
-"Mg" p "\\.ng"
-"Mgh" p "\\.ngh"
-
-"Mc" p "\\~nc"
-"Mch" p "\\~nch"
-"Mj" p "\\~nj"
-"Mjh" p "\\~njh"
-
-"MT" p "\\d n\\d t"
-"MTh" p "\\d n\\d th"
-"MD" p "\\d n\\d d"
-"MDh" p "\\d n\\d dh"
-
-"Mt" p "nt"
-"Mth" p "nth"
-"Md" p "nd"
-"Mdh" p "ndh"
-
-"Mp" p "mp"
-"Mph" p "mph"
-"Mb" p "mb"
-"Mbh" p "mbh"
-"Mf" p "mf"
-
-% repeat table for capital letters
-
-"^a" p "A" % a
-"^aa" p "\\=A" % aa
-"^A" p "\\=A"
-"^i" p "I" % i
-"^ii" p "\\=I" % ii
-"^I" p "\\=I"
-"^u" p "U"
-"^uu" p "\\=U"
-"^U" p "\\=U"
-"^.r" p "\\d R" % vocalic r
-"^.r.r" p "{\\Rii}" % vocalic rr
-"^.R" p "{\\Rii}"
-"^.l" p "\\d L" % vocalic l
-"^.l.l" p "{\\Lii}" % vocalic ll
-"^.L" p "{\\Lii}"
-"^e" p "E"
-"^ee" p "\\=E"
-"^E" p "\\=E"
-"^ai" p "Ai"
-"^o" p "O"
-"^oo" p "\\=O"
-"^O" p "\\=O"
-"^au" p "Au"
-"^au\"" p "Au" % au length mark
-
-% consonants
-
-"^k" p "K"
-"^kh" p "Kh"
-"^g" p "G"
-"^gh" p "Gh"
-"^n\"" p "\\.N" % nga
-
-"^c" p "C"
-"^ch" p "Ch"
-"^j" p "J"
-"^jh" p "Jh"
-"^n~" p "\\~N" % nya
-
-"^T" p "\\d T"
-"^Th" p "\\d Th"
-"^D" p "\\d D"
-"^Dh" p "\\d Dh"
-"^N" p "\\d N"
-
-"^t" p "T"
-"^t_" p "\\b T" % dental ta
-"^th" p "Th"
-"^d" p "D"
-"^dh" p "Dh"
-"^n" p "N"
-"^n_" p "\\b N"
-
-"^p" p "P"
-"^ph" p "Ph"
-"^f" p "F"
-"^b" p "B"
-"^bh" p "Bh"
-"^m" p "M"
-
-"^y" p "Y"
-"^r" p "R"
-"^R" p "\\b R"
-"^RR" p "\\b T" % double Ra is dental t
-"^t_t_" p "\\b T" % double Ra is dental t
-"^l" p "L"
-"^L" p "\\d L"
-"^zh" p "\\b Z"
-"^v" p "V"
-"^sh" p "\\'S"
-"^S" p "\\d S"
-"^s" p "S"
-"^h" p "H"
-
-@rpatterns 2 patterns ASCII transcription -> scientific transcription in TeX in Caps.
-
-"$$" 0 "}" % switch back to default mode
-"$" e "$ in $$-mode"
-">" f % eliminate ambiguities
-"\\" t % copy TeX command
-"%" s % skip comment
-"^" s % no capitals in caps-mode
-"^^" 1 "" % switch to normal mode
-
-"{" p "{"
-"}" p "}"
-"\n" p "\n"
-" " p " "
-"\t" p " "
-
-"a" p "A" % a
-"aa" p "\\=A" % aa
-"A" p "\\=A"
-"i" p "I" % i
-"ii" p "\\=I" % ii
-"I" p "\\=I"
-"u" p "U"
-"uu" p "\\=U"
-"U" p "\\=U"
-".r" p "\\d R" % vocalic r
-".r.r" p "{\\RII}" % vocalic rr
-".R" p "{\\RII}"
-".l" p "\\d L" % vocalic l
-".l.l" p "{\\LII}" % vocalic ll
-".L" p "{\\LII}"
-"e" p "E"
-"ee" p "\\=E"
-"E" p "\\=E"
-"ai" p "AI"
-"o" p "O"
-"oo" p "\\=O"
-"O" p "\\=O"
-"au" p "AU"
-"au\"" p "AU" % au length mark
-
-% modifiers
-
-"M" p "\\d M" % anusvara
-"H" p "\\d H" % visarga
-
-% consonants
-
-"k" p "K"
-"kh" p "KH"
-"g" p "G"
-"gh" p "GH"
-"n\"" p "\\.N" % nga
-
-"c" p "C"
-"ch" p "CH"
-"j" p "J"
-"jh" p "JH"
-"n~" p "\\~N" % nya
-
-"T" p "\\d T"
-"Th" p "\\d TH"
-"D" p "\\d D"
-"Dh" p "\\d DH"
-"N" p "\\d N"
-
-"t" p "T"
-"t_" p "\\b T" % dental ta
-"th" p "TH"
-"d" p "D"
-"dh" p "DH"
-"n" p "N"
-"n_" p "\\b N"
-
-"p" p "P"
-"ph" p "PH"
-"f" p "F"
-"b" p "B"
-"bh" p "BH"
-"m" p "M"
-
-"y" p "Y"
-"r" p "R"
-"R" p "\\b R"
-"RR" p "\\b T" % double Ra is dental t
-"t_t_" p "\\b T" % double Ra is dental t
-"l" p "L"
-"L" p "\\d L"
-"zh" p "\\b Z"
-"v" p "V"
-"sh" p "\\'S"
-"S" p "\\d S"
-"s" p "S"
-"h" p "H"
-
-"+" f % virama
-"u+" p "\\u U" % half u
-
-% digits
-
-% special
-
-"<>" f % join
-"@" f % non join
-"[]" p "\\dotcircle" % dotted circle
-
-% interpunction
-
-"." p "."
-"`" p "`"
-"'" p "'"
-"," p ","
-":" p ":"
-";" p ";"
-"-" p "-"
-"--" p "--"
-"---" p "---"
-"(" p "("
-")" p ")"
-"\\%" p "\\%"
-
-% repeat partial table for correct transcription of anusvar
-
-"Mk" p "\\.NK"
-"Mkh" p "\\.NKH"
-"Mg" p "\\.NG"
-"Mgh" p "\\.NGH"
-
-"Mc" p "\\~NC"
-"Mch" p "\\~NCH"
-"Mj" p "\\~NJ"
-"Mjh" p "\\~NJH"
-
-"MT" p "\\d N\\d T"
-"MTh" p "\\d N\\d TH"
-"MD" p "\\d N\\d D"
-"MDh" p "\\d N\\d DH"
-
-"Mt" p "NT"
-"Mth" p "NTH"
-"Md" p "ND"
-"Mdh" p "NDH"
-
-"Mp" p "MP"
-"Mph" p "MPH"
-"Mb" p "MB"
-"Mbh" p "MBH"
-"Mf" p "MF"
-
-@end
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.prj b/Master/texmf-dist/source/fonts/malayalam/preproc/mm.prj
deleted file mode 100644
index bd2035baa90..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.prj
+++ /dev/null
@@ -1,13 +0,0 @@
-mm.ttp
-.C [-A -K -G] ; [ -Y -A -K -G -T ]
-.L [-S=32000] ; [ -Y -L -G -S=32000 ]
-=
-PCSTART.O
-mm.c (mm.h, trs.h, scr.h, readfile.h)
-readfile.c (readfile.h)
-trs.c (trs.h, readfile.h, mm.h)
-scr.c (scr.h, readfile.h, mm.h)
-pstree.c (pstree.h)
-avltree.c (avltree.h)
-
-PCSTDLIB.LIB
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.scr b/Master/texmf-dist/source/fonts/malayalam/preproc/mm.scr
deleted file mode 100644
index b9112aedebf..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.scr
+++ /dev/null
@@ -1,410 +0,0 @@
-% mm.scr --- Malayalam script file for TeX pre-processor
-% (c) 1993 Jeroen Hellingman
-%
-% History:
-% 22-JAN-1994 changes in macro for virama (JH)
-% 02-APR-1993 changed macro for virama (JH)
-% 28-JAN-1993 version 1.0 (Jeroen Hellingman)
-%
-% summary of used TeX commands
-% \<#1> typeset glyph #1
-% \B#1#2 put #2 centered below #1
-% \M#1#2 put #2 right below of #1
-% \T#1#2 put #1 centered on top of #2
-% \Z switch to sub-font
-% \K#1 kern in #1 em's ( \def\K#1{\kern#1em} )
-% \X \def\X{\hbox}
-% \mmV#1 place virama over #1
-
-@malayalam
-% script type
-
-@atbegin "{\\mm "
-@atend "}"
-% to be placed at the begin respectively end of malayalam text
-
-@atbeginsyllabe "\\X{"
-@atendsyllabe "}"
-% to be placed at the begin repectively end of every syllabe
-
-@prebuild
-% prebuild characters: <codes, glyphs>.
-% We start with a list mapping all single characters to glyphs (i.e. TeX
-% codes to typeset them), they need to be here!
-
-"\d02" "\\<2>" % anusvara
-"\d03" "\\<3>" % visarga
-
-% vowels
-
-"\d05" "\\<5>" % a
-"\d06" "\\<6>" % aa
-"\d07" "\\<7>" % i
-"\d08" "\\<7>\\<87>" % ii
-"\d09" "\\<9>" % u
-"\d10" "\\<9>\\<87>" % uu
-"\d11" "\\<11>" % vocalic r
-"\d96" "\\<96>" % vocalic rr
-"\d12" "\\<12>" % vocalic l
-"\d97" "\\<97>" % vocalic ll
-"\d14" "\\<14>" % e
-"\d15" "\\<15>" % ee
-"\d16" "\\<70>\\<14>" % ai
-"\d18" "\\<18>" % o
-"\d19" "\\<18>\\<62>" % oo
-"\d20" "\\<18>\\<87>" % au
-"\d87" "\\<87>" % au length mark
-
-% consonants
-
-"\d21" "\\<21>" % ka
-"\d22" "\\<22>" % kha
-"\d23" "\\<23>" % ga
-"\d24" "\\<24>" % gha
-"\d25" "\\<25>" % nga
-
-"\d26" "\\<26>" % ca
-"\d27" "\\<27>" % cha
-"\d28" "\\<28>" % ja
-"\d29" "\\<29>" % jha
-"\d30" "\\<30>" % nya
-
-"\d31" "\\<31>" % Ta
-"\d32" "\\<32>" % Tha
-"\d33" "\\<33>" % Da
-"\d34" "\\<34>" % Dha
-"\d35" "\\<35>" % Na
-
-"\d36" "\\<36>" % ta
-"\d37" "\\<37>" % tha
-"\d38" "\\<38>" % da
-"\d39" "\\<39>" % dha
-"\d40" "\\<40>" % na
-
-"\d42" "\\<42>" % pa
-"\d43" "\\<43>" % pha, fa
-"\d44" "\\<44>" % ba
-"\d45" "\\<45>" % bha
-"\d46" "\\<46>" % ma
-
-"\d47" "\\<47>" % ya
-"\d48" "\\<48>" % ra
-"\d49" "\\<49>" % Ra
-"\d50" "\\<50>" % la
-"\d51" "\\<51>" % La
-"\d52" "\\<52>" % zha
-"\d53" "\\<53>" % va
-"\d54" "\\<54>" % sha
-"\d55" "\\<55>" % Sa
-"\d56" "\\<56>" % sa
-"\d57" "\\<57>" % ha
-
-% digits
-
-"\d102" "{\\mmzero}" % 0
-"\d103" "{\\mmone}" % 1
-"\d104" "{\\mmtwo}" % 2
-"\d105" "{\\mmthree}" % 3
-"\d106" "{\\mmfour}" % 4
-"\d107" "{\\mmfive}" % 5
-"\d108" "{\\mmsix}" % 6
-"\d109" "{\\mmseven}" % 7
-"\d110" "{\\mmeight}" % 8
-"\d111" "{\\mmnine}" % 9
-
-% specials
-
-"\d77" "\\<77>" % virama
-
-"\d127" "\\hbox{}" % join (dissapears)
-"\d126" "\\hbox{}" % non-join (dissapears)
-"\d125" "\\<00>" % dotted circle
-"\d125\d127" "\\<00>" % dotted circle + join
-"\d124" " " % space
-"\d124\d127" "\\hbox{}" % space + join (dissapears)
-
-"\d48\d127\d125" "\\T{\\<76>}{\\R{3.5ex}{\\<00>}}" % reepham on dotted circle
-
-% then we have a list of all conjuncts and consonant vowel combinations
-% that cannot be build by the standard algorithm, i.e. we need a ligature.
-
-"\d21\d09" "\\<128>" % ku
-"\d21\d10" "\\<139>" % kuu
-"\d21\d11" "\\<150>" % kr
-"\d21\d21" "\\<160>" % k+ka
-"\d21\d21\d09" "\\<168>" % k+ku
-"\d21\d21\d10" "\\<169>" % k+kuu
-"\d21\d21\d48" "\\<213>" % k+k+ra
-"\d21\d21\d49" "\\<213>" % k+k+Ra
-"\d21\d22" "\\M{\\<21>}{\\Z\\<22>}" % k+kha
-"\d21\d26" "\\M{\\<21>}{\\Z\\<26>}" % k+ca
-"\d21\d36" "\\<176>" % k+ta
-"\d21\d48" "\\<200>" % k+ra
-"\d21\d55" "\\<251>" % k+Sa
-"\d21\d55\d46" "\\M{\\<251>}{\\Z\\<46>}" % k+S+ma
-"\d21\d55\d35" "\\M{\\<251>}{\\Z\\<35>}" % k+S+Na
-
-"\d23\d09" "\\<129>" % gu
-"\d23\d10" "\\<140>" % guu
-"\d23\d11" "\\<151>" % gr
-"\d23\d23" "\\<240>" % g+ga
-% "\d23\d23\d47" "\\<240>\\<122>" % g+g+ya
-"\d23\d24" "\\<218>" % g+gha
-"\d23\d28" "\\M{\\<23>}{\\Z\\<28>}" % g+ja
-"\d23\d38" "\\<177>" % g+da
-"\d23\d38\d39" "\\<178>" % g+d+dha
-"\d23\d40" "\\<179>" % g+na
-"\d23\d46" "\\<180>" % g+ma
-"\d23\d48" "\\<201>" % g+ra
-
-"\d24\d48" "\\M{\\<24>}{\\<127>}" % gh+ra
-
-"\d25\d25" "\\<161>" % ng+nga
-"\d25\d21" "\\<181>" % ng+ka
-"\d25\d21\d09" "\\<182>" % ng+ku
-"\d25\d21\d10" "\\<183>" % ng+kuu
-
-"\d26\d26" "\\<247>" % c+ca
-% "\d26\d26\d47" "\\<247>\\<121>" % c+c+ya
-"\d26\d27" "\\M{\\<26>}{\\Z\\<27>}" % c+cha
-"\d26\d54" "\\M{\\<26>}{\\Z\\<54>}" % c+sha
-"\d26\d48" "\\M{\\<26>}{\\<124>}" % c+ra
-
-"\d27\d09" "\\<130>" % chu
-"\d27\d10" "\\<141>" % chuu
-"\d27\d48" "\\<202>" % ch+ra
-
-"\d28\d09" "\\<131>" % ju
-"\d28\d10" "\\<142>" % juu
-"\d28\d28" "\\<162>" % j+ja
-"\d28\d28\d09" "\\<170>" % j+ju
-"\d28\d28\d10" "\\<171>" % j+juu
-"\d28\d30" "\\<184>" % j+nya
-% "\d28\d47" "\\<28>\\<120>" % j+ya
-"\d28\d48" "\\<203>" % j+ra
-
-"\d30\d26" "\\<185>" % ny+ca
-"\d30\d28" "\\<186>" % ny+ja
-"\d30\d30" "\\<163>" % ny+nya
-"\d30\d48" "\\M{\\<30>}{\\<126>}" % ny+ra
-
-% "\d31\d09" "\\B{\\<31>}{\\<65>}" % Tu
-% "\d31\d10" "\\B{\\<31>}{\\<66>}" % Tuu
-"\d31\d31" "\\<164>" % T+Ta
-% "\d31\d31\d09" "\\B{\\<164>}{\\<65>}" % T+Tu
-% "\d31\d31\d10" "\\B{\\<164>}{\\<66>}" % T+Tuu
-"\d31\d32" "\\B{\\<31>}{\\Z\\<32>}" % T+Tha
-"\d31\d48" "\\<204>" % T+ra
-
-"\d32\d48" "\\M{\\<32>}{\\<123>}" % Th+ra
-
-"\d33\d33" "\\M{\\<33>}{\\<89>}" % D+Da
-"\d33\d23" "\\M{\\<33>}{\\Z\\<23>}" % D+ga
-"\d33\d48" "\\M{\\<33>}{\\<126>}" % D+ra
-
-"\d34\d34" "\\M{\\<34>}{\\<89>}" % Dh+Dha
-"\d34\d48" "\\M{\\<34>}{\\<126>}" % Dh+ra
-
-"\d35\d09" "\\<132>" % Nu
-"\d35\d10" "\\<143>" % Nuu
-"\d35\d31" "\\<187>" % N+Ta
-"\d35\d32" "\\M{\\<35>}{\\Z\\<32>}" % N+Tha
-"\d35\d33" "\\<188>" % N+Da
-"\d35\d35" "\\<241>" % N+Na
-"\d35\d48" "\\M{\\<35>}{\\<127>}" % N+ra
-"\d35\d77" "\\<78>" % N+virama
-
-"\d36\d09" "\\<133>" % tu
-"\d36\d10" "\\<144>" % tuu
-"\d36\d11" "\\<152>" % tr
-"\d36\d36" "\\<165>" % t+ta
-"\d36\d36\d09" "\\<172>" % t+tu
-"\d36\d36\d10" "\\<173>" % t+tuu
-"\d36\d37" "\\<36>\\K{-.5}\\<88>" % t+tha
-"\d36\d40" "\\<191>" % t+na
-"\d36\d42" "\\M{\\<36>}{\\Z\\<42>}" % t+pa
-"\d36\d46" "\\<190>" % t+ma
-"\d36\d48" "\\<205>" % t+ra
-"\d36\d56" "\\<221>" % t+sa
-"\d36\d77" "\\<81>" % t+virama
-
-"\d37\d48" "\\M{\\<37>}{\\<84>}" % th+ra
-
-"\d38\d11" "\\<153>" % dr
-"\d38\d38" "\\<166>" % d+da
-"\d38\d39" "\\<192>" % d+dha
-"\d38\d48" "\\<206>" % d+ra
-
-"\d39\d48" "\\<207>" % dh+ra
-
-"\d40\d09" "\\<134>" % nu
-"\d40\d10" "\\<145>" % nuu
-"\d40\d11" "\\<155>" % nr
-"\d40\d36" "\\<194>" % n+ta
-"\d40\d36\d09" "\\<222>" % n+tu
-"\d40\d36\d10" "\\<223>" % n+tuu
-"\d40\d36\d48" "\\<215>" % n+t+ra
-"\d40\d36\d49" "\\<215>" % n+t+Ra
-"\d40\d38" "\\<195>" % n+da
-"\d40\d38\d48" "\\<216>" % n+d+ra
-"\d40\d39" "\\<219>" % n+dha
-"\d40\d40" "\\<167>" % n+na
-"\d40\d40\d09" "\\<174>" % n+nu
-"\d40\d40\d10" "\\<175>" % n+nuu
-"\d40\d42" "\\<220>" % n+pa
-"\d40\d46" "\\<193>" % n+ma
-"\d40\d48" "\\<208>" % n+ra
-"\d40\d49" "\\<79>\\<49>" % n+Ra
-"\d40\d53" "\\<40>\\K{-1.5}\\<93>" % n+va
-"\d40\d77" "\\<79>" % n+virama
-
-"\d42\d36" "\\M{\\<42>}{\\Z\\<36>}" % p+ta
-"\d42\d40" "\\M{\\<42>}{\\Z\\<40>}" % p+na
-"\d42\d42" "\\<242>" % p+pa
-% "\d42\d42\d47" "\\<242>\\<122>" % p+p+ya
-"\d42\d48" "\\M{\\<42>}{\\<124>}" % p+ra
-
-"\d43\d48" "\\M{\\<43>}{\\<125>}" % ph+ra
-
-"\d44\d38" "\\M{\\<44>}{\\Z\\<38>}" % b+da
-"\d44\d39" "\\M{\\<44>}{\\Z\\<39>}" % b+dha
-"\d44\d44" "\\<248>" % b+ba
-"\d44\d48" "\\M{\\<44>}{\\<126>}" % b+ra
-
-"\d45\d09" "\\<135>" % bhu
-"\d45\d10" "\\<146>" % bhuu
-"\d45\d11" "\\<156>" % bhr
-"\d45\d33" "\\<196>" % bh+Da
-"\d45\d48" "\\<209>" % bh+ra
-
-"\d46\d40" "\\M{\\<46>}{\\Z\\<40>}" % m+na
-"\d46\d42" "\\<220>" % m+pa
-"\d46\d46" "\\<46>\\K{-.27}\\<46>" % m+ma
-"\d46\d48" "\\M{\\<46>}{\\<123>}" % m+ra
-"\d46\d77" "\\<2>" % m+virama (=anusvara)
-
-"\d47\d36" "\\M{\\<47>}{\\Z\\<36>}" % y+ta
-"\d47\d36\d09" "\\M{\\<47>}{\\Z\\<133>}" % y+tu
-"\d47\d47" "\\<249>" % y+ya
-"\d47\d48" "\\M{\\<47>}{\\<84>}" % y+ra
-
-"\d48\d09" "\\<136>" % ru
-"\d48\d10" "\\<147>" % ruu
-"\d48\d77" "\\<80>" % r+virama
-
-"\d49\d49" "\\<243>" % R+Ra
-"\d49\d77" "\\<80>" % R+virama
-
-"\d50\d77" "\\<81>" % l+virama
-"\d50\d36\d36" "\\B{\\<50>}{\\Z\\<165>}" % l+t+ta
-"\d50\d48" "\\M{\\<50>}{\\<84>}" % l+ra
-
-"\d51\d51" "\\<51>\\K{-.2}\\<51>" % L+La
-"\d51\d21\d21" "\\<82>\\<160>" % L+k+ka
-"\d51\d21\d21\d09" "\\<82>\\<168>" % L+k+ku
-"\d51\d77" "\\<82>" % L+virama
-
-"\d52\d09" "\\B{\\<52>}{\\<65>}" % zhu
-"\d52\d10" "\\B{\\<52>}{\\<66>}" % zhuu
-"\d52\d21\d21" "\\B{\\<52>}{\\<115>}" % zh+k+ka
-
-"\d53\d53" "\\<250>" % v+va
-
-"\d54\d09" "\\<137>" % shu
-"\d54\d10" "\\<148>" % shuu
-"\d54\d11" "\\<157>" % shr
-"\d54\d26" "\\<197>" % sh+ca
-"\d54\d48" "\\<210>" % sh+ra
-"\d54\d54" "\\<244>" % sh+sha
-
-"\d55\d31" "\\M{\\<55>}{\\Z\\<31>}" % S+Ta
-"\d55\d31\d48" "\\M{\\<55>}{\\Z\\<204>}" % S+T+ra
-"\d55\d35" "\\M{\\<55>}{\\Z\\<35>}" % S+Na
-"\d55\d46" "\\M{\\<55>}{\\Z\\<46>}" % S+Ma
-"\d55\d48" "\\M{\\<55>}{\\<125>}" % S+ra
-
-"\d56\d21" "\\M{\\<56>}{\\<112>}" % s+ka
-"\d56\d36" "\\M{\\<56>}{\\Z\\<36>}" % s+ta
-"\d56\d36\d09" "\\M{\\<56>}{\\Z\\<133>}" % s+tu
-"\d56\d36\d48" "\\M{\\<56>}{\\Z\\<205>}" % s+t+ra
-"\d56\d46" "\\M{\\<56>}{\\Z\\<46>}" % s+ma
-"\d56\d48" "\\<211>" % s+ra
-"\d56\d56" "\\<245>" % s+sa
-
-"\d57\d09" "\\<138>" % hu
-"\d57\d10" "\\<149>" % huu
-"\d57\d11" "\\<159>" % hr
-"\d57\d40" "\\<199>" % h+na
-"\d57\d46" "\\<198>" % h+ma
-"\d57\d48" "\\<212>" % h+ra
-"\d57\d53" "\\<57>\\K{-1.5}\\<93>" % h+va
-
-% cillu/non-cillu variants of $k$ $y$ $n$, $N$, $m$, $t$ $l$ $L$
-
-"\d21\d127\d77" "\\<94>" % $k<<+$ cillu-form of ka
-"\d47\d127\d77" "\\<95>" % $k<<+$ cillu-form of ya
-
-"\d35\d127\d77" "\\mmV{\\<35>}" % $N<<+$ Na with viraama
-"\d36\d127\d77" "\\mmV{\\<36>}" % $t<<+$ ta
-"\d40\d127\d77" "\\mmV{\\<40>}" % na
-"\d46\d127\d77" "\\mmV{\\<46>}" % ma
-"\d48\d127\d77" "\\mmV{\\<48>}" % ra
-"\d49\d127\d77" "\\mmV{\\<49>}" % Ra
-"\d50\d127\d77" "\\mmV{\\<50>}" % la
-"\d51\d127\d77" "\\mmV{\\<51>}" % La
-
-@secondary
-% secondary shapes of characters: <codes, glyphs, glyphs> the first set of
-% glyphs (TeX commands) comes in front of the cluster that is being build,
-% the second set comes after it.
-
-% vowels
-
-"\d05" "" "" % a
-"\d06" "" "\\<62>" % aa
-"\d07" "" "\\<63>" % i
-"\d08" "" "\\<64>" % ii
-"\d09" "\\M{" "}{\\<65>}" % u
-"\d10" "\\M{" "}{\\<66>}" % uu
-"\d11" "\\M{" "}{\\<67>}" % vocalic r
-"\d96" "\\M{" "}{\\<68>}" % vocalic rr
-"\d12" "" "\\<12>" % vocalic l
-"\d97" "" "\\<97>" % vocalic ll
-"\d14" "\\<70>" "" % e
-"\d15" "\\<71>" "" % ee
-"\d16" "\\<70>\\<70>" "" % ai
-"\d18" "\\<70>" "\\<62>" % o
-"\d19" "\\<71>" "\\<62>" % oo
-"\d20" "\\<70>" "\\<87>" % au
-"\d87" "" "\\<87>" % au length mark
-"\d77" "\\mmV{" "}" % virama
-
-% secondary shapes of the consonants
-
-"\d47" "" "\\<83>" % secondary ya
-% "\d47" "" "\\<92>" % secondary ya
-"\d48" "\\M{" "}{\\<84>}" % secondary ra
-"\d50" "\\M{" "}{\\<85>}" % secondary la
-"\d53" "" "\\K{-.5}\\<86>" % secondary va
-
-"\d21" "\\M{" "}{\\<112>}" % secondary ka
-"\d37" "" "\\K{-.5}\\<88>" % secondary tha
-"\d38" "\\M{" "}{\\Z\\<38>}" % secondary da
-
-"\d21\d09" "\\M{" "}{\\<113>}" % secondary ku
-"\d21\d10" "\\M{" "}{\\<114>}" % secondary kuu
-"\d21\d21" "\\M{" "}{\\<115>}" % secondary k+ka
-"\d21\d21\d09" "\\M{" "}{\\<116>}" % secondary k+ku
-"\d21\d21\d10" "\\M{" "}{\\<117>}" % secondary k+kuu
-
-@reepham % we use reepham
-
-@primary
-% primary shapes of characters, occurs only with "ra" (reepham)
-
-"\d48" "\\T{\\<76>}{\\R{.8ex}{" "}}" % ra
-
-% "\d48" "\\<80>" "" % ra
-
-@end
-% end of file
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.trs b/Master/texmf-dist/source/fonts/malayalam/preproc/mm.trs
deleted file mode 100644
index e5a43efe0b5..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.trs
+++ /dev/null
@@ -1,159 +0,0 @@
-% mm.trs --- Malayalam transcription definition for TeX pre-processor
-% copyright 1992 Jeroen Hellingman
-% last edit: 19-DEC-1992
-
-% This .TRS file defines the transcription used in the input text.
-% It translates (sequences of) ASCII-characters (patterns)
-% into the internal codes of the pre-processor.
-% You should never change the (UNICODE based) codes of the letters,
-% but you can redefine the transcription if you take care that the
-% table does not define a pattern twice, or that it is ambigious
-% otherwise.
-
-@atbegin "<malayalam>" "<ml>" "$" % this starts Malayalam text in ASCII
-@atend "</malayalam>" "</ml>" "$" % this ends Malayalam text in ASCII
-
-% @table format:
-% <pattern> <space> <command> <space> [ <parameter> ][ <comment> ]
-
-@table
-
-% vowels
-
-"a" = "\d05" % a
-"aa" = "\d06" % aa
-"A" = "\d06"
-"i" = "\d07" % i
-"ii" = "\d08" % ii
-"I" = "\d08"
-"u" = "\d09"
-"uu" = "\d10"
-"U" = "\d10"
-".r" = "\d11" % vocalic r
-".r.r" = "\d96" % vocalic rr
-".R" = "\d96"
-".l" = "\d12" % vocalic l
-".l.l" = "\d97" % vocalic ll
-".L" = "\d97"
-"e" = "\d14"
-"ee" = "\d15"
-"E" = "\d15"
-"ai" = "\d16"
-"o" = "\d18"
-"oo" = "\d19"
-"O" = "\d19"
-"au" = "\d20"
-"au\"" = "\d87" % au length mark
-
-% modifiers
-
-"M" = "\d02" % anusvara
-"H" = "\d03" % visarga
-
-% consonants will be print in cillu form if no vowel follows
-
-"k" = "\d21"
-"kh" = "\d22"
-"g" = "\d23"
-"gh" = "\d24"
-"n\"" = "\d25" % nga
-
-"c" = "\d26"
-"ch" = "\d27"
-"j" = "\d28"
-"jh" = "\d29"
-"n~" = "\d30" % nya
-
-"T" = "\d31"
-"Th" = "\d32"
-"D" = "\d33"
-"Dh" = "\d34"
-"N" = "\d35"
-
-"t" = "\d36"
-"th" = "\d37"
-"d" = "\d38"
-"dh" = "\d39"
-"n" = "\d40"
-"n_" = "\d40"
-
-"p" = "\d42"
-"ph" = "\d43"
-"f" = "\d43"
-"b" = "\d44"
-"bh" = "\d45"
-"m" = "\d46"
-
-"y" = "\d47"
-"r" = "\d48"
-"R" = "\d49"
-"t_" = "\d49"
-"l" = "\d50"
-"L" = "\d51"
-"zh" = "\d52"
-"v" = "\d53"
-"sh" = "\d54"
-"S" = "\d55"
-"s" = "\d56"
-"h" = "\d57"
-
-"+" = "\d77" % virama
-%"u+" = "\d77" % half u
-
-% digits
-
-"0" = "\d102"
-"1" = "\d103"
-"2" = "\d104"
-"3" = "\d105"
-"4" = "\d106"
-"5" = "\d107"
-"6" = "\d108"
-"7" = "\d109"
-"8" = "\d110"
-"9" = "\d111"
-
-% special (arbitrary code positions)
-
-"<<" = "\d127" % join
-">>" = "\d126" % non join
-"[]" = "\d125" % dotted circle
-" " = "\d124" % space
-"\t" = "\d124" % tab = space
-
-% interpunction
-
-% non malayalam things
-
-">" f % eliminate ambiguities
-"\\" t % copy TeX command
-"^" f % forget about capital letters
-"\\$" p "\\$"
-"%" s % skip comment
-"{" p "{"
-"}" p "}"
-"\n" p "\n" % newline
-
-% things borrowed from roman
-
-"." p "{\\RMF.}"
-"," p "{\\RMF,}"
-":" p "{\\RMF:}"
-";" p "{\\RMF;}"
-"`" p "{\\RMF`}"
-"``" p "{\\RMF``}"
-"'" p "{\\RMF'}"
-"''" p "{\\RMF''}"
-"-" p "{\\RMF-}"
-"--" p "{\\RMF--}"
-"---" p "{\\RMF---}"
-"?" p "{\\RMF?}"
-"!" p "{\\RMF!}"
-"(" p "{\\RMF(}"
-")" p "{\\RMF)}"
-"[" p "{\\RMF[}"
-"]" p "{\\RMF]}"
-"/" p "{\\RMF/}"
-"\\%" p "{\\RMF\\%}"
-
-@end
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.ttp b/Master/texmf-dist/source/fonts/malayalam/preproc/mm.ttp
deleted file mode 100644
index f81f8b26a6e..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mm.ttp
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mm2ack.pat b/Master/texmf-dist/source/fonts/malayalam/preproc/mm2ack.pat
deleted file mode 100644
index a6b8d3922ce..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mm2ack.pat
+++ /dev/null
@@ -1,85 +0,0 @@
-% mm2ack.pat --- patterns to convert my transcription to
-% transcription used in A.C.K (designed by Mathai Chundat)
-% (c) 1993 Jeroen Hellingman
-% last edit: 22-JAN-1993
-
-@patterns 0
-"<malayalam>" 1 "<malayalam>"
-"$" 1 "<malayalam>"
-
-@patterns 1
-"</malayalam>" 0 "</malayalam>"
-"$" 0 "</malayalam>"
-% vowels
-"a" p "a"
-"aa" p "aa"
-"A" p "aa"
-"i" p "i"
-"ii" p "ee"
-"I" p "ee"
-"u" p "u"
-"uu" p "oo"
-"U" p "oo"
-".r" p "R~"
-"e" p "e"
-"ee" p "E"
-"E" p "E"
-"o" p "o"
-"oo" p "O"
-"O" p "O"
-"ai" p "ai"
-"au" p "ou"
-"am" p "am"
-"H" p ":"
-"ua" p "wa" % u + a = wa (?)
-% ka
-"k" p "k"
-"kh" p "kh"
-"g" p "g"
-"gh" p "gh"
-"n\"" p "nG"
-"n\"n\"" p "nnG"
-% ca
-"c" p "ch"
-"ch" p "Ch"
-"j" p "j"
-"jh" p "jh"
-"n~" p "nJ"
-"cc" p "cch"
-"n~n~" p "nnJ"
-% Ta
-"T" p "t"
-"Th" p "T"
-"D" p "D"
-"Dh" p "Dh"
-"N" p "N"
-% ta
-"t" p "th"
-"th" p "Th"
-"d" p "d"
-"dh" p "dh"
-"n" p "n"
-"tt" p "tth"
-"tth" p "tTh"
-"tdh" p "tdh"
-"tbh" p "tbh"
-% pa
-"p" p "p"
-"ph" p "ph"
-"b" p "b"
-"bh" p "bh"
-"m" p "m"
-% yaraladikaaL
-"y" p "y"
-"r" p "r"
-"l" p "l"
-"v" p "v"
-"sh" p "S"
-"S" p "sh"
-"s" p "s"
-"h" p "h"
-"R" p "R"
-"zh" p "zh"
-"L" p "L"
-"RR" p "TT"
-@end
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mmr.scr b/Master/texmf-dist/source/fonts/malayalam/preproc/mmr.scr
deleted file mode 100644
index b9a8a223619..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mmr.scr
+++ /dev/null
@@ -1,261 +0,0 @@
-% mmr.scr --- Malayalam reformed script file for TeX pre-processor
-% (c) 1993 Jeroen Hellingman
-%
-% History:
-% 22-JAN-1994 changes for virama (JH)
-% 02-APR-1993 changed macro for virama (JH)
-% 28-JAN-1993 version 1.0 (Jeroen Hellingman)
-%
-% summary of used TeX commands
-% \<#1> typeset glyph #1
-% \B#1#2 put #2 centered below #1
-% \M#1#2 put #2 right below of #1
-% \T#1#2 put #1 centered on top of #2
-% \Z switch to sub-font (not used for reformed script)
-% \K kern in em's ( \def\K#1{\kern#1em} )
-% \X \def\X{\hbox}
-
-@malayalam
-% script type
-
-@atbegin "{\\mm "
-@atend "}"
-% to be placed at the begin respectively end of malayalam text
-
-@atbeginsyllabe "\\X{"
-@atendsyllabe "}"
-% to be placed at the begin repectively end of every syllabe
-
-@prebuild
-% prebuild characters: <codes, glyphs>.
-% We start with a list mapping all single characters to glyphs (i.e. TeX
-% codes to typeset them), they need to be here!
-
-"\d02" "\\<2>" % anusvara
-"\d03" "\\<3>" % visarga
-
-% vowels
-
-"\d05" "\\<5>" % a
-"\d06" "\\<6>" % aa
-"\d07" "\\<7>" % i
-"\d08" "\\<7>\\<87>" % ii
-"\d09" "\\<9>" % u
-"\d10" "\\<9>\\<87>" % uu
-"\d11" "\\<11>" % vocalic r
-"\d96" "\\<96>" % vocalic rr
-"\d12" "\\<12>" % vocalic l
-"\d97" "\\<97>" % vocalic ll
-"\d14" "\\<14>" % e
-"\d15" "\\<15>" % ee
-"\d16" "\\<70>\\<14>" % ai
-"\d18" "\\<18>" % o
-"\d19" "\\<18>\\<62>" % oo
-"\d20" "\\<18>\\<87>" % au
-"\d87" "\\<87>" % au length mark
-
-% consonants
-
-"\d21" "\\<21>" % ka
-"\d22" "\\<22>" % kha
-"\d23" "\\<23>" % ga
-"\d24" "\\<24>" % gha
-"\d25" "\\<25>" % nga
-
-"\d26" "\\<26>" % ca
-"\d27" "\\<27>" % cha
-"\d28" "\\<28>" % ja
-"\d29" "\\<29>" % jha
-"\d30" "\\<30>" % nya
-
-"\d31" "\\<31>" % Ta
-"\d32" "\\<32>" % Tha
-"\d33" "\\<33>" % Da
-"\d34" "\\<34>" % Dha
-"\d35" "\\<35>" % Na
-
-"\d36" "\\<36>" % ta
-"\d37" "\\<37>" % tha
-"\d38" "\\<38>" % da
-"\d39" "\\<39>" % dha
-"\d40" "\\<40>" % na
-
-"\d42" "\\<42>" % pa
-"\d43" "\\<43>" % pha, fa
-"\d44" "\\<44>" % ba
-"\d45" "\\<45>" % bha
-"\d46" "\\<46>" % ma
-
-"\d47" "\\<47>" % ya
-"\d48" "\\<48>" % ra
-"\d49" "\\<49>" % Ra
-"\d50" "\\<50>" % la
-"\d51" "\\<51>" % La
-"\d52" "\\<52>" % zha
-"\d53" "\\<53>" % va
-"\d54" "\\<54>" % sha
-"\d55" "\\<55>" % Sa
-"\d56" "\\<56>" % sa
-"\d57" "\\<57>" % ha
-
-% digits
-
-"\d102" "{\\mmzero}" % 0
-"\d103" "{\\mmone}" % 1
-"\d104" "{\\mmtwo}" % 2
-"\d105" "{\\mmthree}" % 3
-"\d106" "{\\mmfour}" % 4
-"\d107" "{\\mmfive}" % 5
-"\d108" "{\\mmsix}" % 6
-"\d109" "{\\mmseven}" % 7
-"\d110" "{\\mmeight}" % 8
-"\d111" "{\\mmnine}" % 9
-
-% specials
-
-"\d77" "\\<77>" % virama
-
-"\d127" "\\hbox{}" % join (dissapears)
-"\d126" "\\hbox{}" % non-join (dissapears)
-"\d125" "\\<00>" % dotted circle
-"\d125\d127" "\\<00>" % dotted circle + join
-"\d124" " " % space
-"\d124\d127" "\\hbox{}" % space + join (dissapears)
-
-% then we have a list of all conjuncts and consonant vowel combinations
-% that cannot be build by the standard algorithm, i.e. we need a ligature.
-
-"\d21\d21" "\\<160>" % k+ka
-"\d21\d55" "\\<251>" % k+Sa
-"\d21\d77" "\\<94>" % k+virama
-
-"\d23\d23" "\\<240>" % g+ga
-"\d23\d24" "\\<218>" % g+gha
-"\d23\d38" "\\<177>" % g+da
-"\d23\d38\d39" "\\<178>" % g+d+dha
-"\d23\d40" "\\<179>" % g+na
-"\d23\d46" "\\<180>" % g+ma
-
-"\d25\d25" "\\<161>" % ng+nga
-"\d25\d21" "\\<181>" % ng+ka
-
-"\d26\d26" "\\<247>" % c+ca
-
-"\d28\d28" "\\<162>" % j+ja
-"\d28\d30" "\\<184>" % j+nya
-
-"\d30\d26" "\\<185>" % ny+ca
-"\d30\d28" "\\<186>" % ny+ja
-"\d30\d30" "\\<163>" % ny+nya
-
-"\d31\d31" "\\<164>" % T+Ta
-
-"\d33\d33" "\\M{\\<33>}{\\<89>}" % D+Da
-
-"\d34\d34" "\\M{\\<34>}{\\<89>}" % Dh+Dha
-
-"\d35\d31" "\\<187>" % N+Ta
-"\d35\d33" "\\<188>" % N+Da
-"\d35\d35" "\\<241>" % N+Na
-"\d35\d77" "\\<78>" % N+virama
-
-"\d36\d36" "\\<165>" % t+ta
-"\d36\d37" "\\<36>\\K{-.5}\\<88>" % t+tha
-"\d36\d40" "\\<191>" % t+na
-"\d36\d46" "\\<190>" % t+ma
-"\d36\d56" "\\<221>" % t+sa
-"\d36\d77" "\\<81>" % t+virama
-
-"\d38\d38" "\\<166>" % d+da
-"\d38\d39" "\\<192>" % d+dha
-
-"\d40\d36" "\\<194>" % n+ta
-"\d40\d38" "\\<195>" % n+da
-"\d40\d40" "\\<167>" % n+na
-"\d40\d46" "\\<193>" % n+ma
-"\d40\d77" "\\<79>" % n+virama
-
-"\d42\d42" "\\<242>" % p+pa
-
-"\d44\d44" "\\<248>" % b+ba
-
-"\d46\d46" "\\<46>\\K{-.27}\\<46>" % m+ma
-"\d46\d77" "\\<2>" % m+virama (=anusvara)
-
-"\d47\d47" "\\<249>" % y+ya
-
-"\d48\d77" "\\<80>" % r+virama
-
-"\d49\d49" "\\<243>" % R+Ra
-"\d49\d77" "\\<80>" % R+virama
-
-"\d50\d77" "\\<81>" % l+virama
-
-"\d51\d51" "\\<51>\\K{-.2}\\<51>" % L+La
-"\d51\d77" "\\<82>" % L+virama
-
-"\d53\d53" "\\<250>" % v+va
-
-"\d54\d54" "\\<244>" % sh+sha
-
-"\d56\d56" "\\<245>" % s+sa
-
-% cillu/non-cillu variants of $k$ $y$ $n$, $N$, $m$, $t$ $l$ $L$
-
-"\d21\d127\d77" "\\mmV{\\<21>}" % $k<<+$ cillu-form of ka
-"\d47\d127\d77" "\\<95>" % $k<<+$ cillu-form of ya
-
-"\d35\d127\d77" "\\mmV{\\<35>}" % Na
-"\d36\d127\d77" "\\mmV{\\<36>}" % ta
-"\d40\d127\d77" "\\mmV{\\<40>}" % na
-"\d46\d127\d77" "\\mmV{\\<46>}" % ma
-"\d48\d127\d77" "\\mmV{\\<48>}" % ra
-"\d49\d127\d77" "\\mmV{\\<49>}" % Ra
-"\d50\d127\d77" "\\mmV{\\<50>}" % la
-"\d51\d127\d77" "\\mmV{\\<51>}" % La
-
-@secondary
-% secondary shapes of characters: <codes, glyphs, glyphs> the first set of
-% glyphs (TeX commands) comes in front of the cluster that is being build,
-% the second set comes after it.
-
-% vowels
-
-"\d05" "" "" % a
-"\d06" "" "\\<62>" % aa
-"\d07" "" "\\<63>" % i
-"\d08" "" "\\<64>" % ii
-"\d09" "" "\\<72>" % u
-"\d10" "" "\\<73>" % uu
-"\d11" "" "\\<75>" % vocalic r
-"\d96" "\\M{" "}{\\<68>}" % vocalic rr
-"\d12" "" "\\<12>" % vocalic l
-"\d97" "" "\\<97>" % vocalic ll
-"\d14" "\\<70>" "" % e
-"\d15" "\\<71>" "" % ee
-"\d16" "\\<70>\\<70>" "" % ai
-"\d18" "\\<70>" "\\<62>" % o
-"\d19" "\\<71>" "\\<62>" % oo
-"\d20" "" "\\<87>" % au
-"\d87" "\\<70>" "\\<87>" % au length mark
-"\d77" "\\mmV{" "}" % virama
-
-
-% secondary shapes of the consonants
-
-"\d47" "" "\\<83>" % secondary ya
-"\d48" "\\<74>" "" % secondary ra
-"\d50" "\\M{" "}{\\<85>}" % secondary la
-"\d53" "" "\\K{-.5}\\<86>" % secondary va
-
-@primary
-% primary shapes of characters, occurs only with "ra"
-%
-% @reepham "\\T{\\<76>}{" "}"
-%
-% "\d48" "\\T{\\<76>}{" "}" % ra
-
-"\d48" "\\<80>" "" % ra
-
-@end
-% end of file
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mmr.trs b/Master/texmf-dist/source/fonts/malayalam/preproc/mmr.trs
deleted file mode 100644
index 047fb206921..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mmr.trs
+++ /dev/null
@@ -1,159 +0,0 @@
-% mmr.trs --- Malayalam transcription definition for TeX pre-processor
-% copyright 1992 Jeroen Hellingman
-% last edit: 20-DEC-1992
-
-% This .TRS file defines the transcription used in the input text.
-% It translates (sequences of) ASCII-characters (patterns)
-% into the internal codes of the pre-processor.
-% You should never change the (UNICODE based) codes of the letters,
-% but you can redefine the transcription if you take care that the
-% table does not define a pattern twice, or that it is ambigious
-% otherwise.
-
-@atbegin "<malayalam>" "<mlr>" "$" % this starts Malayalam text in ASCII
-@atend "</malayalam>" "</mlr>" "$" % this ends Malayalam text in ASCII
-
-% @table format:
-% <pattern> <space> <command> <space> [ <parameter> ][ <comment> ]
-
-@table
-
-% vowels
-
-"a" = "\d05" % a
-"aa" = "\d06" % aa
-"A" = "\d06"
-"i" = "\d07" % i
-"ii" = "\d08" % ii
-"I" = "\d08"
-"u" = "\d09"
-"uu" = "\d10"
-"U" = "\d10"
-".r" = "\d11" % vocalic r
-".r.r" = "\d96" % vocalic rr
-".R" = "\d96"
-".l" = "\d12" % vocalic l
-".l.l" = "\d97" % vocalic ll
-".L" = "\d97"
-"e" = "\d14"
-"ee" = "\d15"
-"E" = "\d15"
-"ai" = "\d16"
-"o" = "\d18"
-"oo" = "\d19"
-"O" = "\d19"
-"au" = "\d20"
-"au\"" = "\d87" % au length mark
-
-% modifiers
-
-"M" = "\d02" % anusvara
-"H" = "\d03" % visarga
-
-% consonants will be print in cillu form if no vowel follows
-
-"k" = "\d21"
-"kh" = "\d22"
-"g" = "\d23"
-"gh" = "\d24"
-"n\"" = "\d25" % nga
-
-"c" = "\d26"
-"ch" = "\d27"
-"j" = "\d28"
-"jh" = "\d29"
-"n~" = "\d30" % nya
-
-"T" = "\d31"
-"Th" = "\d32"
-"D" = "\d33"
-"Dh" = "\d34"
-"N" = "\d35"
-
-"t" = "\d36"
-"th" = "\d37"
-"d" = "\d38"
-"dh" = "\d39"
-"n" = "\d40"
-"n_" = "\d40"
-
-"p" = "\d42"
-"ph" = "\d43"
-"f" = "\d43"
-"b" = "\d44"
-"bh" = "\d45"
-"m" = "\d46"
-
-"y" = "\d47"
-"r" = "\d48"
-"R" = "\d49"
-"t_" = "\d49"
-"l" = "\d50"
-"L" = "\d51"
-"zh" = "\d52"
-"v" = "\d53"
-"sh" = "\d54"
-"S" = "\d55"
-"s" = "\d56"
-"h" = "\d57"
-
-"+" = "\d77" % virama
-"u+" = "\d77" % half u
-
-% digits
-
-"0" = "\d102"
-"1" = "\d103"
-"2" = "\d104"
-"3" = "\d105"
-"4" = "\d106"
-"5" = "\d107"
-"6" = "\d108"
-"7" = "\d109"
-"8" = "\d110"
-"9" = "\d111"
-
-% special (arbitrary code positions)
-
-"<<" = "\d127" % join
-">>" = "\d126" % non join
-"[]" = "\d125" % dotted circle
-" " = "\d124" % space
-"\t" = "\d124" % tab = space
-
-% interpunction
-
-% non malayalam things
-
-">" f % eliminate ambiguities
-"\\" t % copy TeX command
-"^" f % forget about capital letters
-"\\$" p "\\$"
-"%" s % skip comment
-"{" p "{"
-"}" p "}"
-"\n" p "\n" % newline
-
-% things borrowed from roman
-
-"." p "{\\RMF.}"
-"," p "{\\RMF,}"
-":" p "{\\RMF:}"
-";" p "{\\RMF;}"
-"`" p "{\\RMF`}"
-"``" p "{\\RMF``}"
-"'" p "{\\RMF'}"
-"''" p "{\\RMF''}"
-"-" p "{\\RMF-}"
-"--" p "{\\RMF--}"
-"---" p "{\\RMF---}"
-"?" p "{\\RMF?}"
-"!" p "{\\RMF!}"
-"(" p "{\\RMF(}"
-")" p "{\\RMF)}"
-"[" p "{\\RMF[}"
-"]" p "{\\RMF]}"
-"/" p "{\\RMF/}"
-"\\%" p "{\\RMF\\%}"
-
-@end
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/mmrfull.trs b/Master/texmf-dist/source/fonts/malayalam/preproc/mmrfull.trs
deleted file mode 100644
index 4893aa56704..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/mmrfull.trs
+++ /dev/null
@@ -1,160 +0,0 @@
-% mmrfull.trs --- Malayalam transcription definition for
-% TeX pre-processor using Malayalam font punctuation
-% copyright 1992 Jeroen Hellingman
-% last edit: 31-DEC-1992
-
-% This .TRS file defines the transcription used in the input text.
-% It translates (sequences of) ASCII-characters (patterns)
-% into the internal codes of the pre-processor.
-% You should never change the (UNICODE based) codes of the letters,
-% but you can redefine the transcription if you take care that the
-% table does not define a pattern twice, or that it is ambigious
-% otherwise.
-
-@atbegin "<malayalam>" "<mlr>" "$" % this starts Malayalam text in ASCII
-@atend "</malayalam>" "</mlr>" "$" % this ends Malayalam text in ASCII
-
-% @table format:
-% <pattern> <space> <command> <space> [ <parameter> ][ <comment> ]
-
-@table
-
-% vowels
-
-"a" = "\d05" % a
-"aa" = "\d06" % aa
-"A" = "\d06"
-"i" = "\d07" % i
-"ii" = "\d08" % ii
-"I" = "\d08"
-"u" = "\d09"
-"uu" = "\d10"
-"U" = "\d10"
-".r" = "\d11" % vocalic r
-".r.r" = "\d96" % vocalic rr
-".R" = "\d96"
-".l" = "\d12" % vocalic l
-".l.l" = "\d97" % vocalic ll
-".L" = "\d97"
-"e" = "\d14"
-"ee" = "\d15"
-"E" = "\d15"
-"ai" = "\d16"
-"o" = "\d18"
-"oo" = "\d19"
-"O" = "\d19"
-"au" = "\d20"
-"au\"" = "\d87" % au length mark
-
-% modifiers
-
-"M" = "\d02" % anusvara
-"H" = "\d03" % visarga
-
-% consonants will be print in cillu form if no vowel follows
-
-"k" = "\d21"
-"kh" = "\d22"
-"g" = "\d23"
-"gh" = "\d24"
-"n\"" = "\d25" % nga
-
-"c" = "\d26"
-"ch" = "\d27"
-"j" = "\d28"
-"jh" = "\d29"
-"n~" = "\d30" % nya
-
-"T" = "\d31"
-"Th" = "\d32"
-"D" = "\d33"
-"Dh" = "\d34"
-"N" = "\d35"
-
-"t" = "\d36"
-"th" = "\d37"
-"d" = "\d38"
-"dh" = "\d39"
-"n" = "\d40"
-"n_" = "\d40"
-
-"p" = "\d42"
-"ph" = "\d43"
-"f" = "\d43"
-"b" = "\d44"
-"bh" = "\d45"
-"m" = "\d46"
-
-"y" = "\d47"
-"r" = "\d48"
-"R" = "\d49"
-"t_" = "\d49"
-"l" = "\d50"
-"L" = "\d51"
-"zh" = "\d52"
-"v" = "\d53"
-"sh" = "\d54"
-"S" = "\d55"
-"s" = "\d56"
-"h" = "\d57"
-
-"+" = "\d77" % virama
-"u+" = "\d77" % half u
-
-% digits
-
-"0" = "\d102"
-"1" = "\d103"
-"2" = "\d104"
-"3" = "\d105"
-"4" = "\d106"
-"5" = "\d107"
-"6" = "\d108"
-"7" = "\d109"
-"8" = "\d110"
-"9" = "\d111"
-
-% special (arbitrary code positions)
-
-"<<" = "\d127" % join
-">>" = "\d126" % non join
-"[]" = "\d125" % dotted circle
-" " = "\d124" % space
-"\t" = "\d124" % tab = space
-
-% interpunction
-
-% non malayalam things
-
-">" f % eliminate ambiguities
-"\\" t % copy TeX command
-"^" f % forget about capital letters
-"\\$" p "\\$"
-"%" s % skip comment
-"{" p "{"
-"}" p "}"
-"\n" p "\n" % newline
-
-% things borrowed from roman
-
-"." p "\\<59>"
-"," p "\\<58>"
-":" p "\\<61>"
-";" p "\\<60>"
-"`" p "\\<19>"
-"``" p "\\<19>\\<19>"
-"'" p "\\<20>"
-"''" p "\\<20>\\<20>"
-"-" p "\\<69>"
-"--" p "\\<98>"
-"---" p "\\<99>"
-"?" p "\\<41>"
-"!" p "\\<13>"
-"(" p "\\<16>"
-")" p "\\<17>"
-"[" p "\\<8>"
-"]" p "\\<10>"
-"/" p "\\<4>"
-"\\%" p "{\\RMF\\%}"
-
-@end
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/detex.g b/Master/texmf-dist/source/fonts/malayalam/preproc/patc/detex.g
deleted file mode 100644
index c4936a04d5d..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/detex.g
+++ /dev/null
@@ -1,3 +0,0 @@
-echo verwijder TeX opdrachten uit een bestand:
-echo patc '-v -p d:\src\patc\detex.pat' $1 $2
-patc '-v -p d:\src\patc\detex.pat' $1 $2
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/detex.pat b/Master/texmf-dist/source/fonts/malayalam/preproc/patc/detex.pat
deleted file mode 100644
index e5a02f9091e..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/detex.pat
+++ /dev/null
@@ -1,133 +0,0 @@
-% detex.patc -- maak van een TeX-bestand (bijna) kale PC/ST-ASCII
-% (c) Jeroen Hellingman 1993
-% laatste wijziging: 01-MAY-1993
-
-@patterns 0
-
-"%" s skip commentaar
-"\\" T verwijder TeX commando's
-"{" f
-"}" f
-"#" f
-"&" f
-
-% math-mode proberen we niet eens (skippen)
-
-"$" 1 "$"
-"$$" 1 "$$"
-
-% index commando's \`a la The TeXbook slopen we er ook uit
-
-"^{" f
-"^^{" B skip till closing brace
-
-"<" S ">" skip till closing bracket
-
-% wat speciale dingen
-
-"\\footnote" e "\\footnote in text"
-"\\halign" e "\\halign in text"
-"\\item" e "\\item in text"
-
-"\\dots" p "..."
-"\\ " p " "
-"\\par" p "\n\n"
-"\\paragraaf" f
-"\\paragraph" f
-"\\i " p "i"
-"{\\i}" p "i"
-"\\i}" p "i"
-
-"\\#" p "#"
-"\\$" p "$"
-"\\&" p "&"
-"\\%" p "%"
-"~" p " " non-breaking space
-
-% letters met accenten, voorzover aanwezig in de Atari-ST character set.
-
-"\\c C" p "€"
-"\\c{C}" p "€"
-"\\\"u" p ""
-"\\'e" p "‚"
-"\\^a" p "ƒ"
-"\\\"a" p "„"
-"\\`a" p "…"
-"\\aa " p "†"
-"{\\aa}" p "†"
-"\\c c" p "‡"
-"\\c{c}" p "‡"
-"\\^e" p "ˆ"
-"\\\"e" p "‰"
-"\\`e" p "Š"
-"\\\"\\i " p "‹"
-"{\\\"\\i}" p "‹"
-"\\\"{\\i}" p "‹"
-"\\^\\i " p "Œ"
-"{\\^\\i}" p "Œ"
-"\\^{\\i}" p "Œ"
-"\\^\\i\\ " p "Œ "
-"\\`\\i " p ""
-"{\\`\\i}" p ""
-"\\`{\\i}" p ""
-"\\`\\i\\ " p " "
-"\\\"A" p "Ž"
-"\\AA " p ""
-"{\\AA}" p ""
-"\\'E" p ""
-"\\ae " p "‘"
-"{\\ae}" p "‘"
-"\\AE " p "’"
-"{\\AE}" p "’"
-"\\^o" p "“"
-"\\\"o" p "”"
-"\\`o" p "•"
-"\\^u" p "–"
-"\\`u" p "—"
-"\\\"O" p "™"
-"\\\"U" p "š"
-"\\ss " p "ž"
-"\\ss\\ " p "ž "
-"{\\ss}" p "ž"
-"\\'a" p " "
-"\\'\\i " p "¡"
-"{\\'\\i}" p "¡"
-"\\'{\\i}" p "¡"
-"\\'\\i\\ " p "¡ "
-"\\'o" p "¢"
-"\\'u" p "£"
-"\\~n" p "¤"
-"\\~N" p "¥"
-"`?" p "¨"
-"`!" p "­"
-"\\~a" p "°"
-"\\~o" p "±"
-"\\O " p "²"
-"{\\O}" p "²"
-"\\O\\ " p "² "
-"\\o " p "³"
-"{\\o}" p "³"
-"\\o\\ " p "³ "
-"\\oe " p "´"
-"{\\oe}" p "´"
-"\\OE " p "µ"
-"{\\OE}" p "µ"
-"\\`A" p "¶"
-"\\~A" p "·"
-"\\~O" p "¸"
-
-% letters met accenten, niet aanwezig in ST character-set
-
-"\\l " p "l" Poolse l-streep
-"{\\l}" p "l"
-"\\L " p "L" Poolse L-streep
-"{\\L}" p "L"
-
-"\\d " f dot under
-"{\\d}" f dot under
-
-@patterns 1 (voor math-mode)
-"$" 0 "$"
-"$$" 0 "$$"
-
-@end
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.c b/Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.c
deleted file mode 100644
index c3c641851b1..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.c
+++ /dev/null
@@ -1,474 +0,0 @@
-#define version "patc v1.1c (c) Jeroen Hellingman 01-MAY-1993\n"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include "PSTree.h"
-
-#define TRUE (1==1)
-#define FALSE (1==0)
-
-#define NUMPATS 10 /* number of pattern trees */
-#define PATLEN 50 /* maximum length of pattern */
-#define BUFSIZE 512 /* pushback buffer size (BUFSIZE >= PATLEN) */
-
-/* datatypen */
-
-typedef struct patterntree
-{ PSTree *t; /* pattern tree for this node */
- int r; /* restrictive or not? */
-} patterntree;
-
-/* globals */
-
-FILE *infile;
-FILE *outfile;
-patterntree pat[NUMPATS];
-char *progname = "patc";
-char *patfilename = "patc.pat";
-char *infilename;
-char *outfilename;
-static int quiet = TRUE; /* be quiet */
-static int linenumber = 1; /* current line in infile */
-
-/* prototypes */
-
-void parsetables(FILE *patfile);
-void patc(void);
-void processflags(int argc, char** argv);
-void usage(void);
-void copytexcommand(void);
-void skiptexcommand(void);
-void skiptillmatchingbrace(void);
-void skiptillchar(char c1);
-void copycomment(void);
-void skipcomment(void);
-int readchar(void);
-void unreadchar(int);
-int what_escape(const char *s, char *result);
-
-/***********************************************************************/
-
-void PUSHBACK(char *c)
-/* push the characters in string c back into the inputstream, works
- * with the pair of functions readchar() and unreadchar()
- */
-{ int i = (int)strlen(c)-1;
- for( ;i >= 0; i--) unreadchar((int)c[i]);
-}
-
-void main(int argc, char** argv)
-/* check arguments, intialize tables, open files
- */
-{ FILE *patfile;
-
- processflags(argc, argv);
- if(!quiet) fputs(version, stderr);
-
- patfile = fopen(patfilename, "r");
- if(patfile==NULL)
- { fprintf(stderr, "%s: can't open %s\n", progname, patfilename);
- exit(2);
- }
- parsetables(patfile);
- fclose(patfile);
-
- infile = fopen(infilename, "r");
- if(infile==NULL)
- { fprintf(stderr, "%s: can't open %s\n", progname, infilename);
- exit(2);
- }
- outfile = fopen(outfilename, "w");
- if(outfile==NULL)
- { fprintf(stderr, "%s: can't create %s\n", progname, outfilename);
- exit(2);
- }
- patc();
- fclose(infile);
- fclose(outfile);
- exit(0);
-}
-
-void processflags(int argc, char** argv)
-{ int nextoption = FALSE;
- int i = 1;
-
- if(argc < i+2) usage();
- if(argv[i][0] == '-') nextoption = TRUE;
-
- while(nextoption)
- { switch(argv[i][1])
- { case 'v': quiet = FALSE; break;
- case 'p': patfilename = argv[i+1]; i++; break;
- default: usage();
- }
- i++;
- if(argc < i+2) usage();
- if(argv[i][0] != '-') nextoption = FALSE;
- }
-
- infilename = argv[i];
- outfilename = argv[i+1];
-}
-
-void usage()
-{ fprintf(stderr, "usage: %s [-v] [-p patfile] infile outfile\n", progname);
- exit(1);
-}
-
-/***********************************************************************/
-
-int readline(char *l, FILE* infile)
-{ int i = 0;
- int c = fgetc(infile);
- while(isspace(c) && c != '\n' && c != EOF) c = fgetc(infile); /* skip whitespace */
- if(c == '%') while(c != '\n' && c != EOF) c = fgetc(infile); /* skip comments */
- while(c != '\n' && c != EOF && i < BUFSIZE)
- { l[i] = (c == EOF) ? '\0' : (int) c;
- i++;
- c = getc(infile);
- }
- l[i] = '\0'; /* NULL-terminate */
- return (c!=EOF);
-}
-
-int getword(char *s, char *d)
-{ int i = 0, j = 0;
- while(isspace(s[i]) && s[i] != '\0') i++;
- while(isalnum(s[i])) { d[j] = s[i]; j++; i++; }
- d[j] = '\0';
- return i;
-}
-
-int getquotedstring(const char *s, char *d)
-{ int i = 0; /* no of chars read in source */
- int j = 0; /* no of chars inserted in destination */
- while(isspace(s[i]) && s[i] != '\0') i++;
-
- if(s[i] == '"')
- { i++;
- while(s[i] != '"')
- { if(s[i] == '\\') /* escape char */
- i += what_escape(&s[i], &d[j]);
- else
- { d[j] = s[i];
- }
- j++; i++;
- }
- }
- d[j] = '\0'; /* NULL-terminate */
- i++; /* skip final " */
- return i;
-}
-
-/* Find out what escape sequence is used. If non can be found, we just
- forget about the backslash. Interprete numbers up to 255/177/FF
-*/
-
-#define UNSIGNED(t) (char)(((t) < 0) ? (t) + 256 : (t))
-
-int what_escape(const char *s, char *result)
-{ int i = 1; /* length of escape sequence read */
- int ok = TRUE;
- int t = 0; /* temporary result */
-
- switch(s[1])
- { case '"': *result = '"'; break;
- case '\\': *result = '\\'; break;
- case 't': *result = '\t'; break;
- case 'n': *result = '\n'; break;
- case 'b': *result = '\b'; break;
- case 'h': /* hexadecimal */
- while(i < 3 && ok)
- { i++;
- if(s[i]>='0' && s[i]<='9') t = t * 16 + (s[i] - '0');
- else if(s[i]>='A' && s[i]<='F') t = t * 16 + (s[i] - 'A') + 10;
- else if(s[i]>='a' && s[i]<='f') t = t * 16 + (s[i] - 'a') + 10;
- else
- { if(i==2) /* no number after \h */
- *result = 'h';
- else /* short number after \h */
- *result = UNSIGNED(t);
- i--;
- ok = FALSE;
- }
- }
- if(ok) *result = UNSIGNED(t);
- break;
- case 'd': /* decimal */
- while(i < 4 && ok)
- { i++;
- if(s[i]>='0' && s[i]<='9') t = t * 10 + (s[i] - '0');
- else
- { if(i==2) /* no number after \d */
- *result = 'd';
- else /* short number after \d */
- *result = UNSIGNED(t);
- i--;
- ok = FALSE;
- }
- }
- if(ok) *result = UNSIGNED(t);
- break;
- default: /* try octal interpretation */
- i--;
- while(i < 3 && ok)
- { i++;
- if(s[i]>='0' && s[i]<='7') t = t * 8 + (s[i] - '0');
- else
- { if(i==1) /* no number after \ */
- *result = s[i];
- else /* short number after \ */
- { *result = UNSIGNED(t);
- i--;
- }
- ok = FALSE;
- }
- }
- if(ok) *result = UNSIGNED(t);
- }
- return i;
-}
-
-void parsetables(FILE *patfile)
-{ char line[BUFSIZE];
- char command[BUFSIZE];
- char pattern[BUFSIZE];
- char action[BUFSIZE];
- char *tmp;
- int pos = 1;
- char notEOF = TRUE;
- int currentpat = 0; /* current patterntree under construction */
-
- while(notEOF)
- { notEOF = readline(line, patfile);
- pos = 0;
- switch(line[0])
- { case '\0': /* empty line */ break;
- case '@': /* command */
- pos++;
- pos += tolower(getword(&line[1], command));
- if(strcmp(command, "patterns") == 0)
- { pos += getword(&line[pos], command);
- currentpat = atoi(command);
- pat[currentpat].r = FALSE;
- }
- else if(strcmp(command, "rpatterns") == 0)
- { pos += getword(&line[pos], command);
- currentpat = atoi(command);
- pat[currentpat].r = TRUE;
- }
- else if(strcmp(command, "end") == 0) return;
- else
- { fprintf(stderr, "Error: unknown command %s\n", command);
- exit(1);
- }
- break;
- case '"': /* action */
- pos += getquotedstring(line, pattern);
- pos += getword(&line[pos], command);
- pos += getquotedstring(&line[pos], &action[1]);
- action[0] = command[0];
- tmp = malloc(strlen(action) + 1);
- if(tmp == NULL)
- { fprintf(stderr, "Error: cannot allocate\n");
- exit(3);
- }
- strcpy(tmp, action);
- PSTinsert(&pat[currentpat].t, pattern, tmp);
- break;
- default: fprintf(stderr, "Error: illegal line '%s' in %s\n",
- line, patfilename);
- fprintf(stderr, "I will forget it\n");
- }
- }
-}
-
-/***********************************************************************/
-
-void patc()
-{ char ps[PATLEN+1]; /* pattern to be search for */
- char *action; /* action with pattern */
- int len = PATLEN; /* length of found pattern; part of ps to be read */
- int current = 0; /* current active patterntree */
- int i, j; /* counters */
-
- while(TRUE)
- {
- /* fill pattern */
- for(i = 0, j = len; j < PATLEN; i++, j++) ps[i] = ps[j];
- for(i = PATLEN - len; i < PATLEN; i++)
- { int c = readchar();
- ps[i] = (c == EOF) ? '\0' : c;
- }
- ps[PATLEN] = '\0'; /* NULL-terminate */
- if(ps[0] == '\0') break;
-
- /* find action */
-
- action = PSTmatch(pat[current].t, ps, &len);
-
- if(len == 0)
- { if(pat[current].r) /* complain */
- fprintf(stderr, "Error: illegal character '%c' near line %d\n", ps[0], linenumber);
- else /* copy silently */
- fputc(ps[0], outfile);
- len = 1;
- }
- else /* do action */
- { switch(action[0])
- { case 'p': fputs(&action[1], outfile); break;
- case 'c': PUSHBACK(ps); len = PATLEN; copycomment(); break;
- case 't': PUSHBACK(ps); len = PATLEN; copytexcommand(); break;
- case 'T': PUSHBACK(ps); len = PATLEN; skiptexcommand(); break;
- case 's': PUSHBACK(ps); len = PATLEN; skipcomment(); break;
- case 'f': /* forget */ break;
- case 'e': fprintf(stderr, "Error: %s near line %d\n", &action[1], linenumber);
- break;
- case 'S': PUSHBACK(ps); len = PATLEN; skiptillchar(action[1]); break;
- case 'B': PUSHBACK(ps); len = PATLEN; skiptillmatchingbrace(); break;
- case '0': current = 0; fputs(&action[1], outfile); break;
- case '1': current = 1; fputs(&action[1], outfile); break;
- case '2': current = 2; fputs(&action[1], outfile); break;
- case '3': current = 3; fputs(&action[1], outfile); break;
- case '4': current = 4; fputs(&action[1], outfile); break;
- case '5': current = 5; fputs(&action[1], outfile); break;
- case '6': current = 6; fputs(&action[1], outfile); break;
- case '7': current = 7; fputs(&action[1], outfile); break;
- case '8': current = 8; fputs(&action[1], outfile); break;
- case '9': current = 9; fputs(&action[1], outfile); break;
- default: fprintf(stderr, "Internal error: unknown action\n");
- exit(10);
- } /* switch */
- } /* else */
- } /* while */
- if(current != 0)
- fprintf(stderr, "Warning: mode = %d at end of file\n", current);
-} /* patc() */
-
-/***********************************************************************/
-
-void skiptillchar(char c1)
-{ char c2;
- do
- { c2 = readchar();
- if(c2 == EOF) return;
- } while(c2 != c1);
-}
-
-void skiptillmatchingbrace()
-/* skip a TeX group enclosed in braces.
- * next brace on input opens the group to skip
- */
-{ int i = 1;
- int c;
- do
- { c = readchar();
- if(c == EOF) return;
- } while(c != '{');
- while(i>0)
- { c = readchar();
- if(c == '{') i++;
- if(c == '}') i--;
- if(c == EOF) return;
- }
-}
-
-void copytexcommand()
-/* copy TeX commmand, including preceding \
- * this will work in plain TeX and LaTeX
- */
-{ int c = readchar();
- if(c=='\\')
- { fputc(c, outfile);
- c = readchar();
- if(isalpha(c))
- { while(isalpha(c))
- { fputc(c, outfile);
- c = readchar();
- }
- unreadchar(c);
- }
- else
- fputc(c, outfile);
- }
- else
- unreadchar(c);
-}
-
-void skiptexcommand()
-/* skip TeX commmand, including preceding \
- * this will work in plain TeX and LaTeX
- */
-{ int c = readchar();
- if(c=='\\')
- { c = readchar();
- if(isalpha(c))
- { while(isalpha(c))
- { c = readchar();
- }
- unreadchar(c);
- }
- }
- else
- unreadchar(c);
-}
-
-
-void copycomment()
-{ int c = readchar();
- if(c=='%')
- { while(c != '\n' && c != EOF)
- { fputc(c, outfile);
- c = readchar();
- }
- fputc('\n', outfile);
- }
- else
- unreadchar(c);
-}
-
-void skipcomment()
-{ int c = readchar();
- if(c=='%')
- { while(c != '\n' && c != EOF)
- c = readchar();
- }
- else
- unreadchar(c);
-}
-
-/***********************************************************************/
-/* file access with buffer */
-
-static int fbuffer[BUFSIZE]; /* buffer for file operations */
-static int last = 0; /* last + 1 used in fbuffer */
-
-int readchar()
-{ int result;
-
- if(last==0) /* niets in buffer */
- result = fgetc(infile);
- else /* pak first uit buffer */
- { last--;
- result = fbuffer[last];
- }
- if(result == '\n') linenumber++;
- return result;
-}
-
-void unreadchar(int c)
-{
- if(last == BUFSIZE)
- { fprintf(stderr, "%s: push-back file buffer full\n", progname);
- exit(1);
- }
- else /* voeg na last in buffer */
- { fbuffer[last] = c;
- last++;
- if(c == '\n') linenumber--;
- }
-}
-
-/***********************************************************************/
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.exe b/Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.exe
deleted file mode 100755
index 13d56541b6d..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.exe
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.prj b/Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.prj
deleted file mode 100644
index 330c52f4071..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.prj
+++ /dev/null
@@ -1,7 +0,0 @@
-patc.ttp
-= ; list of modules follows...
-PCSTART.O ; startup code
-patc.c (pstree.h)
-pstree.c (pstree.h)
-PCSTDLIB.LIB ; standard library
-PCTOSLIB.LIB ; TOS library
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.ttp b/Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.ttp
deleted file mode 100644
index 9f2834ac536..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.ttp
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.txt b/Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.txt
deleted file mode 100644
index 53e7dea25e8..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/patc.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-
-patc v1.1b -- a little tool to convert patterns
-
-Introduction
-------------
-patc uses a patfile, in which a set of patterns is specified,
-to chance patterns in the input to other patterns in the output, especially
-usefull if you want to chance from different transcriptions.
-
-Usage
------
-
- patc [-v] [-p patfile] infile outfile
- -v verbose mode
-
- default patfile: "patc.pat"
-
-patc is a pattern conversion tool, that changes patterns in the input
-into other patterns in the output. It is specificly made for entering
-foreign scripts in transcriptions. patc can handle several sets of patterns
-in a file at the same time.
-
-patc scans the text from begin to end for patterns, starting with the first
-not yet used character. Whenever patc finds a pattern, it executes the
-corresponding action. This can be outputting a string, give an message,
-or switch to another set of patterns. When no pattern can be found,
-will output the first letter unchanged, and start searching again with the
-next letter, or if you want that, it will complain about it.
-
-The patterns patc can recognize are given in a patfile. A patfile consists
-of lines, that can be empty (white space or comment), contain a command, or
-a pattern with its corresponding action.
-
-Comment lines start with %, command lines with an @ and a pattern line
-with a ". Every line can end with comment.
-
-Commands:
- @patterns # definition of patterns in set # follows
- @rpatterns # definition of patterns in set # follows.
- if a pattern cannot be found in the input, this
- will generate an error message.
- @end end of patfile
-
-A pattern line consists of the pattern inbetween double quotes, an
-action opcode, and optionally a string in between codes as an argument.
-
-Actions:
- p string output string
- # string output string, use pattern set # from now on.
- e string give error message string, forget this pattern.
- f forget this pattern (silently)
- s skip until end of line (including this patten)
- S string skip till first char of string
- B skip till closing brace, matching braces)
- c copy until end of line (including this patten)
- t copy a TeX command
- T skip a TeX command
-
-In strings and patterns the following escape codes can be used:
-
- \t tab
- \n newline
- \" double quote
- \\ backslash
- \b backspace
- \xxx character xxx octal
- \dxxx character xxx decimal
- \hxx character xx hexadecimal
-
-Do _not_ use character \000 !
-
-Warning
--------
-Don't give patterns in alfabetic order. The algorithm used will show its
-worse case performance then.
-
-Wishes for future versions
---------------------------
-* Include meta-characters, as to decrease the number of patterns.
- Proposed syntax:
- @META \C "b" "c" "d" "f" ... consonants
- @META \V "a" "e" "i" "o" ... vowels
- This is quite difficult, and requires a rethink of the underlying
- data structures, so it will take some time. Any volunteer?
-* Make it count. (easy too)
-* More actions.
-
-Author
-------
-Jeroen Hellingman. <jhelling@cs.ruu.nl>
-'t Zand 2, 4133 TB Vianen, The Netherlands
-
-Copyright & disclaimer
-----------------------
-This program may be used, copied, and distributed by anyone who feels the
-need, but it is copyrighted by me. This is offered free as it is, I do not
-accept any responseability when it does not do what you want it to do.
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/pstree.c b/Master/texmf-dist/source/fonts/malayalam/preproc/patc/pstree.c
deleted file mode 100644
index fa7cb8c21d0..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/pstree.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/*+
-
-NAME: PSTree.c --- Pattern Search Tree
-
-AUTHOR: Jeroen Hellingman
-
- PSTree is een verzameling routines om snel patronen in een
- multi-branch tree op te slaan en terug te vinden, zoals gebruikt
- worden voor bijvoorbeeld spellingscheckers. Bij elk patroon
- kunnen we een string opslaan.
-
- De worden worden letter voor letter opgeslagen in de nodes
- van de boom, waarbij de eerste node alle eerste letters,
- bevat, en de tweede node voor elk van die letters, de tweede
- letters van woorden die met die letter beginnen. Elke node
- opzich is ook weer opgebouwd als een boom.
-
- Per letter gebruikt deze structuur vier pointers en een
- character geheugen ruimte (op een 68000 17 bytes), maar
- als het woord 'automatisch' al is opgeslagen, hoeven we
- maar een extra letter te bewaren om 'automatische' op te
- slaan.
-
- Op deze structuur hebben we de volgende operaties:
-
- int PSTinsert(PSTree **tree, char *pattern, char *action);
- voeg pattern met action toe aan tree, *tree kan NULL zijn,
- en zal dan veranderen, resultaat: TRUE als succes, FALSE
- anders
-
- int PSTretract(PSTree **tree, char *pattern);
- Nog niet geimplementeerd
-
- char *PSTmatch(PSTree *tree, const char *pattern, int *length);
- vind de langste match beginnend bij de pattern[0] van pattern
- met een patroon in tree, resultaat: de actie bij dat patroon,
- NULL als geen actie gevonden, length bevat na afloop de lengte
- van het gematchte patroon, of 0 als geen patroon is gevonden.
-
-HISTORY:
- 05-FEB-1992 Creation
-
--*/
-
-#define TEST (0)
-
-#include <stddef.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "PSTree.h"
-
-#define TRUE (1)
-#define FALSE (0)
-
-/* private operations */
-
-PSTree *PSTfindelement(PSTree *t, char c);
-PSTree *PSTfindinsertelement(PSTree **t, char c);
-void PSTpmatch(PSTree *tree, const char *pattern, char **action, int *length, int depth);
-
-/* insert: insert p into the pattern tree:
- TRUE: success
- FALSE: failure (already available pattern, failure to allocate cell);
-*/
-
-int PSTinsert(PSTree **t, char *p, char *a)
-{ PSTree *first = NULL;
-
- if(t == NULL || p == NULL || p[0] == '\0') /* sanity check */
- return FALSE;
-
- first = PSTfindinsertelement(t, p[0]);
- if(first == NULL) /* element could not be added/inserted in PSTree? */
- return FALSE;
-
- if(p[1] == '\0') /* p[0] last element of pattern? */
- { if(first->a == NULL) /* no action assigned yet */
- { first->a = a;
- return TRUE;
- }
- else /* i.e. pattern already in tree */
- { return FALSE;
- }
- }
- else /* not last element in pattern: insert rest of pattern */
- return PSTinsert(&(first->n), &p[1], a);
-}
-
-
-/* PSTfindinsertelement: search for element c, return its node
- if it can be found, create a new node with element c and all
- pointers at NULL otherwise, and return it.
- return NULL at failure.
-*/
-
-static PSTree *PSTfindinsertelement(PSTree **t, char c)
-{
- if(t == NULL) /* sanity check */
- return NULL;
-
- if(*t == NULL) /* empty tree: create new node */
- { *t = malloc(sizeof(PSTree));
- if(*t == NULL) /* malloc failed */
- return FALSE;
- (*t)->e = c;
- (*t)->l = NULL;
- (*t)->r = NULL;
- (*t)->n = NULL;
- (*t)->a = NULL;
- return *t;
- }
- else
- { if((*t)->e == c) /* we found it */
- return *t;
- else if((*t)->e < c) /* then go left */
- return PSTfindinsertelement(&((*t)->l), c);
- else /* go right */
- return PSTfindinsertelement(&((*t)->r), c);
- }
-}
-
-/* PSTfindelement: search for element c, return its node
- if it can be found return NULL at otherwise.
-*/
-
-static PSTree *PSTfindelement(PSTree *t, char c)
-{
- if(t == NULL) /* empty tree */
- return NULL;
- else
- { if(t->e == c) /* we found it */
- return t;
- else if(t->e < c) /* then go left */
- return PSTfindelement(t->l, c);
- else /* go right */
- return PSTfindelement(t->r, c);
- }
-}
-
-char *PSTmatch(PSTree *t, const char *p, int *length)
-{ char *action = NULL;
- *length = 0;
- PSTpmatch(t, p, &action, length, 1);
- return action;
-}
-
-/* remember recursion depth to determine length of match */
-
-static void PSTpmatch(PSTree *t, const char *p, char **action, int *length, int depth)
-{ PSTree *first = NULL;
-
- if(t == NULL || p == NULL || p[0] == '\0') /* sanity check */
- return;
-
- first = PSTfindelement(t, p[0]);
- if(first == NULL) /* element not found in PSTree? */
- return;
-
- if(first->a != NULL) /* action for pattern so-far? */
- { *length = depth;
- *action = first->a;
- }
-
- PSTpmatch(first->n, &p[1], action, length, depth + 1);
-}
-
-
-#if TEST
-
-void PSTshow(PSTree *t)
-{
- if(t == NULL)
- printf("(null)\n");
- else
- { putchar(t->e);
- if(t->a != NULL)
- { putchar('[');
- printf("%s", t->a);
- putchar(']');
- }
- PSTshow(t->n);
- putchar('L'); PSTshow(t->l);
- putchar('R'); PSTshow(t->r);
- }
-}
-
-
-void main()
-{
-
- char *actie = NULL;
- int len = 0;
-
- PSTree *t = NULL;
- PSTinsert(&t, "aap", "1");
- PSTinsert(&t, "appel", "2");
- PSTinsert(&t, "aapjes", "3");
- PSTinsert(&t, "koe", "4");
- PSTinsert(&t, "kokosnoot", "5");
- PSTinsert(&t, "akker", "6");
- PSTshow(t); puts("------------"); getchar();
-
- actie = PSTmatch(t, "aapjesverhaal", &len);
- if(actie != NULL) { printf("actie: (%s) lengte: %d\n", actie, len); }
-
- actie = PSTmatch(t, "aapjelief", &len);
- if(actie != NULL) { printf("actie: (%s) lengte: %d\n", actie, len); }
-
- actie = PSTmatch(t, "appelboom", &len);
- if(actie != NULL) { printf("actie: (%s) lengte: %d\n", actie, len); }
-
- actie = PSTmatch(t, "aster", &len);
- if(actie != NULL) { printf("actie: (%s) lengte: %d\n", actie, len); }
- else { printf("actie: NULL lengte: %d\n", actie, len); }
-
- exit(0);
-
-}
-
-#endif /* TEST */
-
-/* end of PSTree.c */
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/pstree.h b/Master/texmf-dist/source/fonts/malayalam/preproc/patc/pstree.h
deleted file mode 100644
index f5c4fc4ec95..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/patc/pstree.h
+++ /dev/null
@@ -1,13 +0,0 @@
-typedef struct PSTree
-{ char e; /* element in this node */
- struct PSTree *l; /* left branch of PSTree */
- struct PSTree *r; /* right branch of PSTree */
- struct PSTree *n; /* PSTree for next element in pattern */
- char *a; /* Action with pattern that ends here */
-} PSTree;
-
-/* public operations */
-
-int PSTinsert(PSTree **tree, char *pattern, char *action);
-int PSTretract(PSTree **tree, char *pattern);
-char *PSTmatch(PSTree *tree, const char *pattern, int *length);
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/pstree.c b/Master/texmf-dist/source/fonts/malayalam/preproc/pstree.c
deleted file mode 100644
index 31bc0690f3e..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/pstree.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/*+
-
-NAME: PSTree.c --- Pattern Search Tree
-
-AUTHOR: Jeroen Hellingman
-
- PSTree is een verzameling routines om snel patronen in een
- multi-branch tree op te slaan en terug te vinden, zoals gebruikt
- worden voor bijvoorbeeld spellingscheckers. Bij elk patroon
- kunnen we een string opslaan.
-
- De worden worden letter voor letter opgeslagen in de nodes
- van de boom, waarbij de eerste node alle eerste letters,
- bevat, en de tweede node voor elk van die letters, de tweede
- letters van woorden die met die letter beginnen. Elke node
- opzich is ook weer opgebouwd als een boom.
-
- Per letter gebruikt deze structuur vier pointers en een
- character geheugen ruimte (op een 68000 17 bytes), maar
- als het woord 'automatisch' al is opgeslagen, hoeven we
- maar een extra letter te bewaren om 'automatische' op te
- slaan.
-
- Op deze structuur hebben we de volgende operaties:
-
- int PSTinsert(PSTree **tree, char *pattern, char *action);
- voeg pattern met action toe aan tree, *tree kan NULL zijn,
- en zal dan veranderen, resultaat: TRUE als succes, FALSE
- anders
-
- int PSTretract(PSTree **tree, char *pattern);
- Nog niet geimplementeerd
-
- char *PSTmatch(PSTree *tree, const char *pattern, int *length);
- vind de langste match beginnend bij de pattern[0] van pattern
- met een patroon in tree, resultaat: de actie bij dat patroon,
- NULL als geen actie gevonden, length bevat na afloop de lengte
- van het gematchte patroon, of 0 als geen patroon is gevonden.
-
-HISTORY:
- 18-DEC-1992 Last edit (JH)
- 05-NOV-1992 declared static functions static in prototype (JH)
- 05-FEB-1992 Creation (Jeroen Hellingman)
-
--*/
-
-#define TEST (0)
-
-#include <stddef.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "pstree.h"
-
-#define TRUE (1)
-#define FALSE (0)
-
-/* private operations */
-
-static PSTree *PSTfindelement(PSTree *t, char c);
-static PSTree *PSTfindinsertelement(PSTree **t, char c);
-static void PSTpmatch(PSTree *tree, const char *pattern, char **action, int *length, int depth);
-
-/* insert: insert p into the pattern tree:
- TRUE: success
- FALSE: failure (already available pattern, failure to allocate cell);
-*/
-
-int PSTinsert(PSTree **t, char *p, char *a)
-{ PSTree *first = NULL;
-
- if(t == NULL || p == NULL || p[0] == '\0') /* sanity check */
- return FALSE;
-
- first = PSTfindinsertelement(t, p[0]);
- if(first == NULL) /* element could not be added/inserted in PSTree? */
- return FALSE;
-
- if(p[1] == '\0') /* p[0] last element of pattern? */
- { if(first->a == NULL) /* no action assigned yet */
- { first->a = a;
- return TRUE;
- }
- else /* i.e. pattern already in tree */
- { return FALSE;
- }
- }
- else /* not last element in pattern: insert rest of pattern */
- return PSTinsert(&(first->n), &p[1], a);
-}
-
-
-/* PSTfindinsertelement: search for element c, return its node
- if it can be found, create a new node with element c and all
- pointers at NULL otherwise, and return it.
- return NULL at failure.
-*/
-
-static PSTree *PSTfindinsertelement(PSTree **t, char c)
-{
- if(t == NULL) /* sanity check */
- return NULL;
-
- if(*t == NULL) /* empty tree: create new node */
- { *t = malloc(sizeof(PSTree));
- if(*t == NULL) /* malloc failed */
- return FALSE;
- (*t)->e = c;
- (*t)->l = NULL;
- (*t)->r = NULL;
- (*t)->n = NULL;
- (*t)->a = NULL;
- return *t;
- }
- else
- { if((*t)->e == c) /* we found it */
- return *t;
- else if((*t)->e < c) /* then go left */
- return PSTfindinsertelement(&((*t)->l), c);
- else /* go right */
- return PSTfindinsertelement(&((*t)->r), c);
- }
-}
-
-/* PSTfindelement: search for element c, return its node
- if it can be found return NULL at otherwise.
-*/
-
-static PSTree *PSTfindelement(PSTree *t, char c)
-{
- if(t == NULL) /* empty tree */
- return NULL;
- else
- { if(t->e == c) /* we found it */
- return t;
- else if(t->e < c) /* then go left */
- return PSTfindelement(t->l, c);
- else /* go right */
- return PSTfindelement(t->r, c);
- }
-}
-
-char *PSTmatch(PSTree *t, const char *p, int *length)
-{ char *action = NULL;
- *length = 0;
- PSTpmatch(t, p, &action, length, 1);
- return action;
-}
-
-/* remember recursion depth to determine length of match */
-
-static void PSTpmatch(PSTree *t, const char *p, char **action, int *length, int depth)
-{ PSTree *first = NULL;
-
- if(t == NULL || p == NULL || p[0] == '\0') /* sanity check */
- return;
-
- first = PSTfindelement(t, p[0]);
- if(first == NULL) /* element not found in PSTree? */
- return;
-
- if(first->a != NULL) /* action for pattern so-far? */
- { *length = depth;
- *action = first->a;
- }
-
- PSTpmatch(first->n, &p[1], action, length, depth + 1);
-}
-
-
-#if TEST
-
-void PSTshow(PSTree *t)
-{
- if(t == NULL)
- printf("(null)\n");
- else
- { putchar(t->e);
- if(t->a != NULL)
- { putchar('[');
- printf("%s", t->a);
- putchar(']');
- }
- PSTshow(t->n);
- putchar('L'); PSTshow(t->l);
- putchar('R'); PSTshow(t->r);
- }
-}
-
-
-void main()
-{
-
- char *actie = NULL;
- int len = 0;
-
- PSTree *t = NULL;
- PSTinsert(&t, "aap", "1");
- PSTinsert(&t, "appel", "2");
- PSTinsert(&t, "aapjes", "3");
- PSTinsert(&t, "koe", "4");
- PSTinsert(&t, "kokosnoot", "5");
- PSTinsert(&t, "akker", "6");
- PSTshow(t); puts("------------"); getchar();
-
- actie = PSTmatch(t, "aapjesverhaal", &len);
- if(actie != NULL) { printf("actie: (%s) lengte: %d\n", actie, len); }
-
- actie = PSTmatch(t, "aapjelief", &len);
- if(actie != NULL) { printf("actie: (%s) lengte: %d\n", actie, len); }
-
- actie = PSTmatch(t, "appelboom", &len);
- if(actie != NULL) { printf("actie: (%s) lengte: %d\n", actie, len); }
-
- actie = PSTmatch(t, "aster", &len);
- if(actie != NULL) { printf("actie: (%s) lengte: %d\n", actie, len); }
- else { printf("actie: NULL lengte: %d\n", actie, len); }
-
- exit(0);
-
-}
-
-#endif /* TEST */
-
-/* end of PSTree.c */
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/pstree.h b/Master/texmf-dist/source/fonts/malayalam/preproc/pstree.h
deleted file mode 100644
index 8b2677c06b1..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/pstree.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef PSTREE_HEADER_READ
-#define PSTREE_HEADER_READ
-
-typedef struct PSTree
-{ char e; /* element in this node */
- struct PSTree *l; /* left branch of PSTree */
- struct PSTree *r; /* right branch of PSTree */
- struct PSTree *n; /* PSTree for next element in pattern */
- char *a; /* Action with pattern that ends here */
-} PSTree;
-
-/* public operations */
-
-int PSTinsert(PSTree **tree, char *pattern, char *action);
-int PSTretract(PSTree **tree, char *pattern);
-char *PSTmatch(PSTree *tree, const char *pattern, int *length);
-
-#endif
-/* eof */ \ No newline at end of file
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/readfile.c b/Master/texmf-dist/source/fonts/malayalam/preproc/readfile.c
deleted file mode 100644
index 5bcb01b32c5..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/readfile.c
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
-
-readfile.c -- read a command file
-
-get lines from a file, split up into "words", separated by spaces
-skip whitespace and comments, treats strings as a unit, interpretes
-C-like escape codes
-
-@ starts command
-% starts comment
-\ starts escape code
-" starts and ends string
-
-everything before the first command is considered comment,
-everything after @end also
-
-HISTORY:
- 19-NOV-1992 restructuring of program (JH)
- 22-JUL-1992 removed bug causing COMMENTCHAR in string to be interpreted (JH)
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "readfile.h"
-
-static char *read_line(FILE *f, char *s, int n);
-static char *read_cline(FILE *f, char *s, int n);
-static char *strlow(char *s);
-static string_list *make_string_list(char *s);
-static void skip_spaces(FILE *f);
-static void skip_line(FILE *f);
-static int getword(char *s, char *d);
-static int getquotedstring(const char *s, char *d);
-static int what_escape(const char *s, char *result);
-static string_list *get_cline(FILE *f);
-
-/********/
-
-char *get_command(FILE *f, char *command, string_list **rest)
-{
- string_list *l;
- /* get first line starting with "@" */
- do
- { l = get_cline(f);
- if(l == NULL)
- { return NULL;
- }
- }
- while(l->s[0] != COMMANDCHAR);
-
- strcpy(command, &(l->s)[1]);
- strlow(command);
- *rest = l->n;
- free(l);
- return command;
-}
-
-static char *strlow(char *s)
-{ char *t = s;
- while(*t!='\0') { *t = tolower(*t); t++; }
- return s;
-}
-
-static string_list *get_cline(FILE *f)
-{ char buffer[BUFSIZE], *s = buffer;
- s = read_cline(f, s, BUFSIZE);
- return make_string_list(s);
-}
-
-string_list *get_line(FILE *f)
-{ char buffer[BUFSIZE], *s = buffer;
- s = read_line(f, s, BUFSIZE);
- return make_string_list(s);
-}
-
-static string_list *make_string_list(char *s)
-{
- char d[BUFSIZE];
- int i = 0;
- string_list *result = NULL;
- string_list **previous = &result;
- string_list *current = NULL;
- int empty_quoted_string;
-
- /* break line up into words */
- do
- { empty_quoted_string = FALSE;
- while(isspace(s[i]) && s[i] != '\0' && s[i] != COMMENTCHAR) i++;
- if(s[i] == COMMENTCHAR) break;
- if(s[i] == '"')
- { i += getquotedstring(&s[i], d);
- if(d[0]=='\0') empty_quoted_string = TRUE;
- }
- else i += getword(&s[i], d);
- if(d[0] != '\0' || empty_quoted_string)
- { /* insert at end in string list */
- long len;
- *previous = current = (string_list*)malloc(sizeof(string_list));
- if(current==NULL){fprintf(stderr,"can't allocate");exit(1);}
- current->n = NULL;
- len = strlen(d);
- len = (len==0) ? 1 : len;
- current->s = (char*)malloc(len);
- if(current->s==NULL){fprintf(stderr,"can't allocate");exit(1);}
- strcpy(current->s, d);
- previous = &(current->n);
- }
- }
- while(s[i] != '\0' && i < BUFSIZE);
- return result;
-}
-
-
-static char *read_cline(FILE *f, char *s, int n)
-/* read until <EOF> or <NL> */
-{
- int c;
- int i = 0;
-
- skip_spaces(f);
- do
- { c=getc(f);
- s[i++] = (char)c;
- if(i>=n)
- { fprintf(stderr, "buffer full, skipping rest of line\n");
- skip_line(f);
- break;
- }
- }
- while (c != EOF && c!= '\n');
- s[--i]='\0';
-
- return s;
-}
-
-static char *read_line(FILE *f, char *s, int n)
-/* read until <EOF>, COMMANDCHAR or <NL> */
-{
- int c;
- int i = 0;
-
- skip_spaces(f);
- do
- { c=getc(f);
- s[i++] = (char)c;
- if(i>=n)
- { fprintf(stderr, "buffer full, skipping rest of line\n");
- skip_line(f);
- break;
- }
- if(i == 1 && c==COMMANDCHAR)
- { ungetc(c, f);
- s[0] = '\0';
- return s;
- }
- }
- while (c != EOF && c!= '\n');
- s[--i]='\0';
-
- return s;
-}
-
-static void skip_spaces(FILE *f)
-/* skip white space and comment */
-{ int c;
- do
- { c=getc(f);
- while(c==COMMENTCHAR) { skip_line(f); c = getc(f); }
- }
- while(isspace(c) || c == '\n');
- ungetc(c, f);
-}
-
-static void skip_line(FILE *f)
-/* skip until <NL> */
-{ int c;
- do { c=getc(f); } while(c != EOF && c != '\n');
-}
-
-static int getword(char *s, char *d)
-{ int i = 0, j = 0;
- while(isspace(s[i]) && s[i] != '\0') i++;
- while(!isspace(s[i]) && s[i] != '\0') { d[j] = s[i]; j++; i++; }
- d[j] = '\0';
- return i;
-}
-
-static int getquotedstring(const char *s, char *d)
-{ int i = 0; /* no of chars read in source */
- int j = 0; /* no of chars inserted in destination */
- while(isspace(s[i]) && s[i] != '\0') i++;
-
- if(s[i] == '"')
- { i++;
- while(s[i] != '"')
- { if(s[i] == '\\') /* escape char */
- i += what_escape(&s[i], &d[j]);
- else
- { d[j] = s[i];
- }
- j++; i++;
- }
- }
- d[j] = '\0'; /* NULL-terminate */
- i++; /* skip final " */
- return i;
-}
-
-/* Find out what escape sequence is used. If non can be found, we just
- forget about the backslash. Interprete numbers up to 255/177/FF
-*/
-
-#define UNSIGNED(t) (char)(((t) < 0) ? (t) + 256 : (t))
-
-static int what_escape(const char *s, char *result)
-{ int i = 1; /* length of escape sequence read */
- int ok = TRUE;
- int t = 0; /* temporary result */
-
- switch(s[1])
- { case '"': *result = '"'; break;
- case '\\': *result = '\\'; break;
- case 't': *result = '\t'; break;
- case 'n': *result = '\n'; break;
- case 'b': *result = '\b'; break;
- case 'h': /* hexadecimal */
- while(i < 3 && ok)
- { i++;
- if(s[i]>='0' && s[i]<='9') t = t * 16 + (s[i] - '0');
- else if(s[i]>='A' && s[i]<='F') t = t * 16 + (s[i] - 'A') + 10;
- else if(s[i]>='a' && s[i]<='f') t = t * 16 + (s[i] - 'a') + 10;
- else
- { if(i==2) /* no number after \h */
- *result = 'h';
- else /* short number after \h */
- *result = UNSIGNED(t);
- i--;
- ok = FALSE;
- }
- }
- if(ok) *result = UNSIGNED(t);
- break;
- case 'd': /* decimal */
- while(i < 4 && ok)
- { i++;
- if(s[i]>='0' && s[i]<='9') t = t * 10 + (s[i] - '0');
- else
- { if(i==2) /* no number after \d */
- *result = 'd';
- else /* short number after \d */
- *result = UNSIGNED(t);
- i--;
- ok = FALSE;
- }
- }
- if(ok) *result = UNSIGNED(t);
- break;
- default: /* try octal interpretation */
- i--;
- while(i < 3 && ok)
- { i++;
- if(s[i]>='0' && s[i]<='7') t = t * 8 + (s[i] - '0');
- else
- { if(i==1) /* no number after \ */
- *result = s[i];
- else /* short number after \ */
- { *result = UNSIGNED(t);
- i--;
- }
- ok = FALSE;
- }
- }
- if(ok) *result = UNSIGNED(t);
- }
- return i;
-}
-
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/readfile.h b/Master/texmf-dist/source/fonts/malayalam/preproc/readfile.h
deleted file mode 100644
index 605d6fa3c9a..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/readfile.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef READFILE_HEADER_READ
-#define READFILE_HEADER_READ
-
-#define TRUE (1==1)
-#define FALSE (1==0)
-#define BUFSIZE 1024
-#define COMMANDCHAR '@'
-#define COMMENTCHAR '%'
-
-typedef struct string_list
-{ char *s;
- struct string_list *n;
-} string_list;
-
-/* public operations */
-
-string_list *get_line(FILE *f);
-char *get_command(FILE *f, char *command, string_list **rest);
-
-#endif
-/* eof */
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/scr.c b/Master/texmf-dist/source/fonts/malayalam/preproc/scr.c
deleted file mode 100644
index 7a323e9e372..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/scr.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
-
-scr.c -- read script table from file
-
-History:
- 26-APR-1993 changed directory structure of source files (JH)
- 24-DEC-1992 added ability to look in directory given by home
- 08-OCT-1992 added support for at{end|begin}syllabe (JH)
- 21-JUL-1992 added support for reepham (JH)
- 06-JUL-1992 Genesis (Jeroen Hellingman)
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "scr.h"
-#include "mm.h"
-
-extern char *progname;
-extern int verbose;
-
-static AVLtree *read_prebuild(FILE *f);
-static AVLtree *read_table(FILE *f);
-
-
-scr_table *read_scr(char *filename)
-{ int stop = FALSE;
- char b[BUFSIZE];
- char *command=b;
- string_list *rest=NULL;
- scr_table *result = NULL;
- FILE *f;
-
- f = fopen(filename, "r");
- if(f==NULL)
- { filename = prepend_home(filename);
- f = fopen(filename, "r");
- if(f==NULL)
- { fprintf(stderr, "%s: can't open %s\n", progname, filename);
- exit(1);
- }
- }
- if(verbose) printf("reading script definition from %s\n", filename);
-
- result=malloc(sizeof(scr_table));
- if(result==NULL){fprintf(stderr,"can't allocate\n");exit(0);}
-
- result->prebuild = NULL;
- result->primary = NULL;
- result->secondary = NULL;
- result->atbegin = NULL;
- result->atend = NULL;
- result->atbeginsyllabe = "";
- result->atendsyllabe = "";
- result->reepham = FALSE;
-
- get_command(f, command, &rest);
- if(strcmp(command, "malayalam")!=0)
- { fprintf(stderr, "%s: script type is not malayalam\n", progname);
- exit(0);
- }
- result->script_type = MALAYALAM_SCRIPT;
-
- while(!stop)
- { get_command(f, command, &rest);
- if(command == NULL || strcmp(command, "end")==0)
- { if(result->prebuild == NULL ||
- result->atbegin == NULL ||
- result->atend == NULL)
- { fprintf(stderr, "%s: invalid script file &s:\n", progname, filename);
- if(result->prebuild == NULL)
- fprintf(stderr, "no @prebuild given\n");
- if(result->atbegin == NULL)
- fprintf(stderr, "no @atbegin given\n");
- if(result->atend == NULL)
- fprintf(stderr, "no @atend given\n");
- exit(1);
- }
- stop = TRUE;
- }
- else /* handle commmands */
- { if(strcmp(command, "atbegin")==0)
- result->atbegin = rest->s;
- else
- { if(strcmp(command, "atend")==0)
- result->atend = rest->s;
- else
- { if(strcmp(command, "prebuild")==0)
- result->prebuild = read_prebuild(f);
- else
- { if(strcmp(command, "primary")==0)
- result->primary = read_table(f);
- else
- { if(strcmp(command, "secondary")==0)
- result->secondary = read_table(f);
- else
- { if(strcmp(command, "reepham")==0)
- result->reepham = TRUE;
- else
- { if(strcmp(command, "atbeginsyllabe")==0)
- result->atbeginsyllabe = rest->s;
- else
- { if(strcmp(command, "atendsyllabe")==0)
- result->atendsyllabe = rest->s;
- else
- { fprintf(stderr, "unknown command @%s ignored\n", command);
- }
- }}}}}}}}
- }
- return result;
-}
-
-prebuild_char *new_prebuild_char(char *c, char *g)
-{ prebuild_char *result = NULL;
-
- result = malloc(sizeof(prebuild_char));
- if(result==NULL){fprintf(stderr,"can't allocate\n");exit(0);}
-
- result->c = c;
- result->g = g;
-
- return result;
-}
-
-int cmp_prebuild_char(void *a, void *b)
-{ return strcmp(((prebuild_char*)a)->c, ((prebuild_char*)b)->c);
-}
-
-static AVLtree *read_prebuild(FILE *f)
-{ AVLtree *result = NULL;
- string_list *l;
-
- while((l = get_line(f)) != NULL)
- {
- if(l->n==NULL)
- { fprintf(stderr, "incomplete line\n");
- }
- else
- { prebuild_char *p = new_prebuild_char(l->s, l->n->s);
- AVLinsert(p, &result, cmp_prebuild_char);
- }
- }
- return result;
-}
-
-glyph_pair *new_glyph_pair(char *c, char *b, char *a)
-{ glyph_pair *result = NULL;
-
- result = malloc(sizeof(glyph_pair));
- if(result==NULL){fprintf(stderr,"can't allocate\n");exit(0);}
-
- result->c = c;
- result->b = b;
- result->a = a;
-
- return result;
-}
-
-int cmp_glyph_pair(void *a, void *b)
-{ return strcmp(((glyph_pair*)a)->c, ((glyph_pair*)b)->c);
-}
-
-static AVLtree *read_table(FILE *f)
-{ AVLtree *result = NULL;
- string_list *l;
-
- while((l = get_line(f)) != NULL)
- {
- if(l->n==NULL || l->n->n == NULL)
- { fprintf(stderr, "incomplete line\n");
- }
- else
- { glyph_pair *p = new_glyph_pair(l->s, l->n->s, l->n->n->s);
- AVLinsert(p, &result, cmp_glyph_pair);
- }
- }
- return result;
-}
-
-
-
-
-
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/scr.h b/Master/texmf-dist/source/fonts/malayalam/preproc/scr.h
deleted file mode 100644
index 416240d3067..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/scr.h
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef SCR_HEADER_READ
-#define SCR_HEADER_READ
-
-#include "avltree.h"
-#include "readfile.h"
-
-#define MALAYALAM_SCRIPT 13
-
-typedef struct
-{ int script_type;
- AVLtree *prebuild; /* AVLtree of prebuild_chars, defining pre-build syllabes */
- AVLtree *primary; /* AVLtree of glyph_pairs, defining front and final part of primary variants */
- AVLtree *secondary; /* AVLtree of glyph_pairs, defining front and final part of secondary variants */
- char *atbegin;
- char *atend;
- char *atbeginsyllabe;
- char *atendsyllabe;
- int reepham; /* boolean: do we use the reepham? */
-} scr_table;
-
-typedef struct
-{ char *c; /* char codes */
- char *g; /* glyphs */
-} prebuild_char;
-
-typedef struct
-{ char *c; /* char codes */
- char *b; /* glyphs to place before syllabe in construction */
- char *a; /* glyphs to place after syllabe in construction */
-} glyph_pair;
-
-/* public functions */
-
-scr_table *read_scr(char *filename);
-
-#endif
-
-/* eof */
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/trs.c b/Master/texmf-dist/source/fonts/malayalam/preproc/trs.c
deleted file mode 100644
index 4805c35079a..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/trs.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
-
-trs.c -- read transcription table from file
-
-History:
- 24-DEC-1992 added ability to look in directory given by home
- 06-JUL-1992 Genesis (Jeroen Hellingman)
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "readfile.h"
-#include "trs.h"
-#include "mm.h"
-
-extern char *progname;
-extern int verbose;
-
-static PSTree *read_table(FILE *f);
-
-trs_table *read_trs(char *filename)
-{ int stop = FALSE;
- char b[BUFSIZE];
- char *command=b;
- string_list *rest=NULL;
- trs_table *result = NULL;
- FILE *f;
-
- f = fopen(filename, "r");
- if(f==NULL)
- { filename = prepend_home(filename);
- f = fopen(filename, "r");
- if(f==NULL)
- { fprintf(stderr, "%s: can't open %s\n", progname, filename);
- exit(1);
- }
- }
- if(verbose) printf("reading transcription from %s\n", filename);
-
- result=malloc(sizeof(trs_table));
- if(result==NULL){fprintf(stderr,"can't allocate\n");exit(0);}
-
- while(!stop)
- { get_command(f, command, &rest);
- if(command == NULL || strcmp(command, "end")==0)
- { if(result->p == NULL ||
- result->atbegin == NULL ||
- result->atend == NULL)
- { fprintf(stderr, "%s: invalid transcription file &s:\n", progname, filename);
- if(result->p == NULL)
- fprintf(stderr, "no @table given\n");
- if(result->atbegin == NULL)
- fprintf(stderr, "no @atbegin given\n");
- if(result->atend == NULL)
- fprintf(stderr, "no @atend given\n");
- exit(1);
- }
- stop = TRUE;
- }
- else
- { if(strcmp(command, "atbegin")==0)
- result->atbegin = rest;
- else
- { if(strcmp(command, "atend")==0)
- result->atend = rest;
- else
- { if(strcmp(command, "table")==0)
- result->p = read_table(f);
- }
- }
- }
- }
- return result;
-}
-
-static PSTree *read_table(FILE *f)
-{ PSTree *result = NULL;
- string_list *l, *n;
- char *pattern;
- char b[BUFSIZE];
- char *action = b;
- char *tmp = NULL;
- int i = 1; /* length of action string */
- int no_parameters;
-
- while(TRUE)
- { int ignore = FALSE;
- l = get_line(f);
- if(l==NULL)
- return result;
- else
- {
- /* pattern at position 1 */
- pattern = l->s;
- n = l->n;
- free(l);
- if(n==NULL)
- { fprintf(stderr, "incomplete line\n");
- ignore = TRUE;
- }
- else
- { /* command pattern at position 2 */
- action[0] = (n->s)[0]; /* single letter commands */
- action[1] = '\0'; /* NULL terminate */
- switch(action[0])
- { case 'f':
- case 't':
- case 's': no_parameters = 0; break;
- default : no_parameters = 1;
- }
- /* parameters pattern at position 3 */
- while(no_parameters > 0)
- { no_parameters--;
- l = n->n;
- free(n);
- n = l;
- if(l==NULL)
- { fprintf(stderr, "incomplete line\n");
- ignore = TRUE;
- break;
- }
- else
- { if (++i >= BUFSIZE)
- { fprintf(stderr, "line too long\n");
- ignore = TRUE;
- break;
- }
- if ((i+=(int)strlen(l->s)) >= BUFSIZE)
- { fprintf(stderr, "line too long\n");
- ignore = TRUE;
- break;
- }
- action = strcat(action, l->s);
- }
- }
- }
- }
- if(!ignore)
- { tmp = malloc(strlen(action));
- if(tmp==NULL){fprintf(stderr,"can't allocate\n");exit(1);}
- strcpy(tmp, action);
- PSTinsert(&result, pattern, tmp);
- }
- }
-}
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/trs.h b/Master/texmf-dist/source/fonts/malayalam/preproc/trs.h
deleted file mode 100644
index ce5b29932f9..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/trs.h
+++ /dev/null
@@ -1,18 +0,0 @@
-
-#ifndef TRS_HEADER_READ
-#define TRS_HEADER_READ
-
-#include "pstree.h"
-#include "readfile.h"
-
-typedef struct
-{ PSTree *p;
- string_list *atbegin;
- string_list *atend;
-} trs_table;
-
-/* public operations */
-
-trs_table *read_trs(char *filename);
-
-#endif
diff --git a/Master/texmf-dist/source/fonts/malayalam/preproc/unicode/UNICODE.TXT b/Master/texmf-dist/source/fonts/malayalam/preproc/unicode/UNICODE.TXT
deleted file mode 100644
index a86da65dd77..00000000000
--- a/Master/texmf-dist/source/fonts/malayalam/preproc/unicode/UNICODE.TXT
+++ /dev/null
@@ -1,161 +0,0 @@
-
-Subject: UNICODE-tools/SGML for language tagging in UNICODE
-
-
-Since I am trying to process several languages in TeX at the same
-time, and getting a bit fed up of several preprocessors, etc.
-I want to make one universal, table driven pre-processor in awaitance of
-a TeX that really handles things correctly. I also want to have
-it produce Unicode files so that I have a good standard for storage, file
-exchange, editing, and so on.
-
-I think (dream?) of some tools to help me in this work.
-
-transcribe
- translate to/from transcription in ASCII to Unicode
- given some transcription tables for the languages/scripts
- used in the document. It should do much more than placing 00 in front
- of every byte, also in English. It should replace quotes, dashes
- etc for the correct signs, interprete TeX commands for accented
- letters, and so on.
-pretex
- pre-process a unicode file for TeX, given some script tables
- that describe the scripts used as it is encoded in a TeX-font
-sorttext
- sort a unicode file according to the rules of a given language,
- on a line by line or paragraph by paragraph base.
-atou
- create `unicode' files by placing 00 in front of every byte.
-utoa
- create `ascii' files by stripping MS-byte.
-
-
-In the original files I create (in ASCII), I want to tag the text with
-SGML-style tags indicating the languages used. Transcribe reads
-this and translates my transcription to appropriate Unicode characters.
-(Including replacing TeX commands for accented letters for appropriate
-accents/accented characters in Unicode.) Given a transcript file for
-that language.
-A transcript file includes a list of letters and their UNICODE-values
-It knows how to handle the syllabic nature of the script, although it is
-transcribed in an alphabetic script.
-The default language is english (but not english.american).
-
-Need to decide on file formats and contents of transcript files
-
-I can sort the resulting files with sorttext, given a sort-key for a
-certain language.
-
-Need to decide on file formats and contents of sort-key files
-
-I can pre-process the files for TeX with pretex, which will turn the files
-into ASCII again, but places codes for glyphs and font changes as
-neccessary for non-latin scripts, as indicated in the script file.
-For latin languages it could take care of all kinds of conventions, like the
-use of ligatures, hypenation, spacing after sentencesm etc. The tags could be
-used by spell checkers.
-
-Need to decide on file formats and contents of script files (defining
-context dependent behaviour of characters, locations of glyphs in fonts,
-etc.)
-
-----
-
-SGML-style Language tags in UNICODE
-
-how to? (are the indicators floating marks or block formers?)
-
-<malayalam>Malayalam text</malayalam>
-<block language=malayalam>Malayalam text</block>
-
-it will keep those language-markers in the UNICODE file.
-
-known languages: (languages are sometimes known in several dialects or
-otherwish variations, I suggest some kind of standard here)
-
-dutch
-english
-english.american
-english.phonetic
-french
-german
-german.fractur
-hindi
-hindi.transcription
-bahasa-indonesia
-malay
-malay.arabic
-malayalam
-malayalam.traditional
-malayalam.transcription
-marathi
-sanskrit
-sanskrit.transcription
-urdu
-
-unknown
-unknown.transcribed
-
-----
-
-UNICODE representation of Malayalam
-
-U+0D00 -- U+0D7F
-
-structure assumed in parsing:
-
-vowel
-consonant
-vowel-sign
-virama
-diacritic
-joiner
-non-joiner
-other
-
-syntax:
-
-primary ::== ( <consonant> | <vowel> ) [diacritic]
-secondary ::== ( <vowel-sign> | <virama> ) [diacritic]
-consonant-cluster ::== <primary> { [<join>|<non-join>] <virama> <primary> } | <other>
-modifiers ::== { [<join>] <secondary> }
-syllabe ::== <consonant-cluster> [<modifiers>]
-text ::== { <syllabe> }
-
-semantics:
-
-The algorithm reads a syllabe from the string.
-
-build-syllabe syllabe =
- if prebuild syllabe
- glyphs = prebuild syllabe
- else
- cluster-glyphs, rest-modifiers = build-cluster cluster with modifiers
- glyphs = apply rest-modifiers to cluster-glyphs
- endif
-
-build-cluster cluster with modifiers =
- if prebuild cluster
- glyphs = prebuild syllabe
- else
- split-off final ya, ra, la, try again
- else
- split-off front ra (for repham), try again
- else
- split first letter from
- build-syllabe first-part with virama
- build-syllabe second-part with modifiers
- rest-modifiers = nil
- endif
-
-apply modifiers to glyphs =
- apply first-modifier to glyphs
- apply rest-of-modifiers to glyphs
-
-
-
-
-The algorithm ignores joins, non-join will cause virama's to be
-used
-
-<eof>