texlive[57064] Build/source/texk/web2c/omegafonts: increase

commits+karl at tug.org commits+karl at tug.org
Fri Dec 4 20:14:36 CET 2020


Revision: 57064
          http://tug.org/svn/texlive?view=revision&revision=57064
Author:   karl
Date:     2020-12-04 20:14:36 +0100 (Fri, 04 Dec 2020)
Log Message:
-----------
increase YY_BUF_SIZE to 110000 to avoid yannis.test (xyarabic.opl) buffer overflow

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/omegafonts/ChangeLog
    trunk/Build/source/texk/web2c/omegafonts/pl-lexer.c
    trunk/Build/source/texk/web2c/omegafonts/pl-lexer.l

Modified: trunk/Build/source/texk/web2c/omegafonts/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/omegafonts/ChangeLog	2020-12-04 00:54:05 UTC (rev 57063)
+++ trunk/Build/source/texk/web2c/omegafonts/ChangeLog	2020-12-04 19:14:36 UTC (rev 57064)
@@ -1,3 +1,9 @@
+2020-12-04  Karl Berry  <karl at freefriends.org>
+
+	* pl-lexer.l (YY_BUF_SIZE): #define 110000, for the same
+	reason as the previous change. Two separate buffer overflows,
+	it seems.
+
 2020-11-21  Karl Berry  <karl at tug.org>
 
 	* pl-lexer.l (MAX_PTR): increase to 100000; the tests/xyarabic.opl

Modified: trunk/Build/source/texk/web2c/omegafonts/pl-lexer.c
===================================================================
--- trunk/Build/source/texk/web2c/omegafonts/pl-lexer.c	2020-12-04 00:54:05 UTC (rev 57063)
+++ trunk/Build/source/texk/web2c/omegafonts/pl-lexer.c	2020-12-04 19:14:36 UTC (rev 57064)
@@ -1,5 +1,5 @@
 
-#line 3 "../../../../texk/web2c/omegafonts/pl-lexer.c"
+#line 3 "pl-lexer.c"
 
 #define  YY_INT_ALIGNED short int
 
@@ -403,96 +403,129 @@
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int16_t yy_accept[800] =
+static yyconst flex_int16_t yy_acclist[265] =
     {   0,
-        0,    0,  206,  204,    1,    2,    3,    4,  204,  204,
-      204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
-      204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
-      204,    1,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  180,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    9,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   42,    0,    8,    8,
+      206,  204,  205,    1,  204,  205,    2,  205,    3,  204,
+      205,    4,  204,  205,  204,  205,  204,  205,  204,  205,
+      204,  205,  204,  205,  204,  205,  204,  205,  204,  205,
+      204,  205,  204,  205,  204,  205,  204,  205,  204,  205,
+      204,  205,  204,  205,  204,  205,  204,  205,  204,  205,
+      204,  205,  204,  205,  204,  205,  204,  205,  204,  205,
+        1,  180,    9,   42,    8,    8,    6,  179,    7,   31,
+       44,  102,   41,    5,  107,    9,    9,   43,   40,   46,
+      171,   23,  178,  151,   45,   77,   78,   79,  106,   75,
+        9,  150,   33,   32,   85,   86,   82,   83,   84,  181,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    6,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      179,    0,    0,    0,    7,    0,    0,   31,    0,   44,
-      102,   41,    0,    0,    0,    0,    0,    0,    0,    5,
-        0,    0,    0,  107,    0,    0,    0,    9,    9,   43,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   40,    0,    0,    0,    0,    0,
-       46,    0,    0,    0,    0,    0,    0,    0,    0,  171,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   23,    0,  178,    0,
+       47,   49,  172,   61,   67,   55,   60,   66,   54,   63,
+       69,   57,   62,   68,   56,   59,   65,   53,   58,   64,
+       52,  177,   30,   48,  188,  187,  189,  186,   70,   71,
+       50,   38,   37,   39,   36,  175,   89,   90,   80,   81,
+       11,  100,  147,  159,   24,  146,  110,  148,  182,  158,
+      157,  156,   73,   12,   51,   16,   98,  149,  104,  105,
+       15,   72,   88,   87,   35,   74,  183,  170,  169,   20,
+      184,  173,  174,   14,  145,   13,  144,  164,  163,  162,
+       27,  111,  109,  112,  185,  115,   28,   26,  101,  153,
+      152,  114,  108,  154,   29,  201,  113,   91,  166,  165,
 
-        0,  151,    0,    0,    0,   45,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   77,   78,   79,    0,    0,
-        0,    0,  106,   75,    9,  150,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   33,    0,
-        0,    0,   32,    0,   85,   86,    0,   82,   83,   84,
-        0,    0,  181,    0,    0,    0,    0,   47,   49,    0,
-        0,    0,    0,    0,  172,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   61,   67,   55,
-       60,   66,   54,   63,   69,   57,   62,   68,   56,   59,
+      167,  176,   21,   76,  120,  122,  119,  117,  123,  121,
+      116,  118,  141,  140,  142,  161,   34,  155,  194,  199,
+      202,  197,  103,   17,  168,   22,  143,  160,  136,  138,
+      135,  133,  139,  137,  132,  134,  192,  195,  190,   25,
+       10,   99,  203,   93,   94,   95,   96,   97,  196,  200,
+      198,  193,  191,  128,  130,  127,  125,  131,  129,  124,
+      126,   92,   18,   19
+    } ;
 
-       65,   53,   58,   64,   52,    0,  177,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   30,   48,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      188,  187,  189,    0,    0,  186,    0,    0,    0,    0,
-        0,   70,   71,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   50,    0,    0,    0,    0,    0,    0,   38,
-        0,    0,   37,   39,    0,    0,    0,    0,    0,   36,
-        0,  175,    0,    0,    0,    0,    0,    0,   89,   90,
+static yyconst flex_int16_t yy_accept[801] =
+    {   0,
+        1,    1,    1,    2,    4,    7,    9,   12,   15,   17,
+       19,   21,   23,   25,   27,   29,   31,   33,   35,   37,
+       39,   41,   43,   45,   47,   49,   51,   53,   55,   57,
+       59,   61,   62,   62,   62,   62,   62,   62,   62,   62,
+       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
+       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+       63,   63,   63,   63,   63,   63,   63,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   65,   65,   66,
 
-       80,   81,    0,    0,   11,    0,  100,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  147,    0,    0,
-        0,    0,    0,  159,   24,  146,    0,    0,    0,    0,
-        0,    0,  110,  148,    0,    0,    0,  182,    0,    0,
-        0,    0,    0,    0,    0,  158,  157,  156,    0,    0,
-        0,    0,    0,    0,    0,    0,   73,    0,    0,    0,
-        0,    0,    0,   12,    0,    0,   51,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   16,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   69,   69,   69,   69,   70,   70,   70,   71,   71,
+       72,   73,   74,   74,   74,   74,   74,   74,   74,   74,
+       75,   75,   75,   75,   76,   76,   76,   76,   77,   78,
+       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
+       79,   79,   79,   79,   79,   80,   80,   80,   80,   80,
+       80,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   83,   83,   84,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       98,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  149,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  104,  105,    0,   15,   72,   88,   87,    0,
-       35,   74,    0,  183,    0,    0,    0,    0,    0,    0,
-      170,    0,    0,    0,    0,  169,   20,  184,    0,  173,
-      174,    0,    0,    0,    0,   14,    0,    0,    0,    0,
-        0,  145,    0,    0,   13,    0,  144,    0,  164,  163,
-        0,    0,  162,    0,   27,    0,  111,  109,    0,    0,
-        0,    0,    0,  112,    0,    0,    0,    0,    0,    0,
+       84,   84,   85,   85,   85,   85,   86,   86,   86,   86,
+       86,   86,   86,   86,   86,   86,   87,   88,   89,   89,
+       89,   89,   89,   90,   91,   92,   93,   93,   93,   93,
+       93,   93,   93,   93,   93,   93,   93,   93,   93,   94,
+       94,   94,   94,   95,   95,   96,   97,   97,   98,   99,
+      100,  100,  100,  101,  101,  101,  101,  101,  102,  103,
+      103,  103,  103,  103,  103,  104,  104,  104,  104,  104,
+      104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
+      104,  104,  104,  104,  104,  104,  104,  104,  105,  106,
+      107,  108,  109,  110,  111,  112,  113,  114,  115,  116,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      185,    0,    0,  115,    0,   28,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   26,    0,    0,
-        0,    0,  101,    0,    0,    0,    0,  153,    0,    0,
-      152,  114,  108,  154,    0,    0,    0,   29,    0,    0,
-        0,    0,    0,    0,    0,    0,  201,    0,    0,    0,
-        0,    0,  113,   91,    0,    0,  166,  165,  167,    0,
-      176,    0,    0,   21,    0,   76,    0,  120,  122,  119,
-      117,  123,  121,  116,  118,  141,  140,  142,    0,  161,
-        0,    0,   34,    0,    0,    0,    0,  155,    0,    0,
+      117,  118,  119,  120,  121,  122,  122,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  124,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  126,  127,  128,  128,  128,  129,  129,  129,  129,
+      129,  129,  130,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  132,  132,  132,  132,  132,  132,  132,
+      133,  133,  133,  134,  135,  135,  135,  135,  135,  135,
+      136,  136,  137,  137,  137,  137,  137,  137,  137,  138,
 
-      194,    0,    0,    0,  199,  202,  197,  103,    0,   17,
-        0,    0,  168,    0,    0,   22,    0,  143,  160,    0,
-      136,  138,  135,  133,  139,  137,  132,  134,    0,  192,
-      195,  190,    0,    0,    0,    0,    0,   25,   10,    0,
-       99,    0,    0,    0,    0,  203,    0,    0,    0,   93,
-       94,   95,   96,   97,    0,    0,  196,    0,    0,  200,
-      198,    0,    0,    0,  193,  191,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  128,  130,  127,
-      125,  131,  129,  124,  126,    0,    0,    0,    0,    0,
-        0,    0,   92,    0,    0,    0,   18,   19,    0
+      139,  140,  141,  141,  141,  142,  142,  143,  143,  143,
+      143,  143,  143,  143,  143,  143,  143,  143,  144,  144,
+      144,  144,  144,  144,  145,  146,  147,  147,  147,  147,
+      147,  147,  147,  148,  149,  149,  149,  149,  150,  150,
+      150,  150,  150,  150,  150,  150,  151,  152,  153,  153,
+      153,  153,  153,  153,  153,  153,  153,  154,  154,  154,
+      154,  154,  154,  154,  155,  155,  155,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  157,  157,  157,  157,  157,  157,
+      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
 
+      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
+      157,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  160,  161,  161,  162,  163,  164,  165,
+      165,  166,  167,  167,  168,  168,  168,  168,  168,  168,
+      168,  169,  169,  169,  169,  169,  170,  171,  172,  172,
+      173,  174,  174,  174,  174,  174,  175,  175,  175,  175,
+      175,  175,  176,  176,  176,  177,  177,  178,  178,  179,
+      180,  180,  180,  181,  181,  182,  182,  183,  184,  184,
+      184,  184,  184,  184,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  186,  186,  186,  187,  187,  188,  188,  188,  188,
+      188,  188,  188,  188,  188,  188,  188,  188,  189,  189,
+      189,  189,  189,  190,  190,  190,  190,  190,  191,  191,
+      191,  192,  193,  194,  195,  195,  195,  195,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  197,  197,  197,
+      197,  197,  197,  198,  199,  199,  199,  200,  201,  202,
+      202,  203,  203,  203,  204,  204,  205,  205,  206,  207,
+      208,  209,  210,  211,  212,  213,  214,  215,  216,  216,
+      217,  217,  217,  218,  218,  218,  218,  218,  219,  219,
+
+      219,  220,  220,  220,  220,  221,  222,  223,  224,  224,
+      225,  225,  225,  226,  226,  226,  227,  227,  228,  229,
+      229,  230,  231,  232,  233,  234,  235,  236,  237,  237,
+      238,  239,  240,  240,  240,  240,  240,  240,  241,  242,
+      242,  243,  243,  243,  243,  243,  244,  244,  244,  244,
+      245,  246,  247,  248,  249,  249,  249,  250,  250,  250,
+      251,  252,  252,  252,  252,  253,  254,  254,  254,  254,
+      254,  254,  254,  254,  254,  254,  254,  254,  255,  256,
+      257,  258,  259,  260,  261,  262,  262,  262,  262,  262,
+      262,  262,  262,  263,  263,  263,  263,  264,  265,  265
+
     } ;
 
 static yyconst YY_CHAR yy_ec[256] =
@@ -939,16 +972,20 @@
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0,     };
 
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
 extern int yy_flex_debug;
 int yy_flex_debug = 0;
 
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
+static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
+static char *yy_full_match;
+static int yy_lp;
+#define REJECT \
+{ \
+*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ \
+yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
+++(yy_lp); \
+goto find_rule; \
+}
+
 #define yymore() yymore_used_but_not_detected
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
@@ -959,7 +996,7 @@
 char yytext[YYLMAX];
 char *yytext_ptr;
 #line 1 "../../../../texk/web2c/omegafonts/pl-lexer.l"
-#line 4 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 2 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 /* pl-lexer.l: Lexical analysis of property list files.
 
 This file is part of Omega,
@@ -984,6 +1021,19 @@
 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
 */
 
+/* The xyarabic.opl test has an opl comment larger than 16k, which is
+   the default buffer size for flex defined in its preamble.  This
+   results in an error like:
+input buffer overflow, can't enlarge buffer because scanner uses REJECT
+   So we need to redefine YY_BUF_SIZE, which we do here.  Unfortunately
+   it is not perfect, since the flex preamble code uses its own
+   YY_BUF_SIZE to #define YY_STATE_BUF_SIZE before our override takes
+   effect.  Fortunately this is not causing an error.  Apparently the
+   only way to truly override it would be on the command line, and that
+   seems like too much trouble when this works in practice.  */
+#undef YY_BUF_SIZE
+#define YY_BUF_SIZE 110000
+
 #include <kpathsea/lib.h>
 #include <kpathsea/c-memstr.h>
 #include "parser.h"
@@ -1018,7 +1068,7 @@
 
 /* For Solaris's lex, to increase tables sizes --RP */
 /* Space before number keeps ancient flex happy. */
-#line 1022 "../../../../texk/web2c/omegafonts/pl-lexer.c"
+#line 1072 "pl-lexer.c"
 
 #define INITIAL 0
 
@@ -1217,6 +1267,12 @@
 		YY_USER_INIT;
 #endif
 
+        /* Create the reject buffer large enough to save one state per allowed character. */
+        if ( ! (yy_state_buf) )
+            (yy_state_buf) = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE  );
+            if ( ! (yy_state_buf) )
+                YY_FATAL_ERROR( "out of dynamic memory in yylex()" );
+
 		if ( ! (yy_start) )
 			(yy_start) = 1;	/* first start state */
 
@@ -1236,10 +1292,10 @@
 		}
 
 	{
-#line 75 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 86 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 
 
-#line 1243 "../../../../texk/web2c/omegafonts/pl-lexer.c"
+#line 1299 "pl-lexer.c"
 
 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 		{
@@ -1254,15 +1310,14 @@
 		yy_bp = yy_cp;
 
 		yy_current_state = (yy_start);
+
+		(yy_state_ptr) = (yy_state_buf);
+		*(yy_state_ptr)++ = yy_current_state;
+
 yy_match:
 		do
 			{
 			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
-			if ( yy_accept[yy_current_state] )
-				{
-				(yy_last_accepting_state) = yy_current_state;
-				(yy_last_accepting_cpos) = yy_cp;
-				}
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
@@ -1270,14 +1325,29 @@
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+			*(yy_state_ptr)++ = yy_current_state;
 			++yy_cp;
 			}
-		while ( yy_current_state != 799 );
-		yy_cp = (yy_last_accepting_cpos);
-		yy_current_state = (yy_last_accepting_state);
+		while ( yy_base[yy_current_state] != 849 );
 
 yy_find_action:
-		yy_act = yy_accept[yy_current_state];
+		yy_current_state = *--(yy_state_ptr);
+		(yy_lp) = yy_accept[yy_current_state];
+find_rule: /* we branch to this label when backing up */
+		for ( ; ; ) /* until we find what rule we matched */
+			{
+			if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
+				{
+				yy_act = yy_acclist[(yy_lp)];
+					{
+					(yy_full_match) = yy_cp;
+					break;
+					}
+				}
+			--yy_cp;
+			yy_current_state = *--(yy_state_ptr);
+			(yy_lp) = yy_accept[yy_current_state];
+			}
 
 		YY_DO_BEFORE_ACTION;
 
@@ -1295,1052 +1365,1045 @@
 
 		switch ( yy_act )
 	{ /* beginning of action switch */
-			case 0: /* must back up */
-			/* undo the effects of YY_DO_BEFORE_ACTION */
-			*yy_cp = (yy_hold_char);
-			yy_cp = (yy_last_accepting_cpos);
-			yy_current_state = (yy_last_accepting_state);
-			goto yy_find_action;
-
 case 1:
 YY_RULE_SETUP
-#line 77 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 88 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {}
 	YY_BREAK
 case 2:
 /* rule 2 can match eol */
 YY_RULE_SETUP
-#line 78 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 89 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {line_number++; }
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 80 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 91 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(LEFT);
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 81 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 92 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(RIGHT);
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 83 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 94 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {scan_int(8);  return(NUMBER); }
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 84 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 95 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {scan_int(10); return(NUMBER); }
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 85 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 96 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {scan_int(16); return(NUMBER); }
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 86 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 97 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {scan_char();  return(NUMBER); }
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 87 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 98 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {scan_fix();   return(FIX);    }
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 89 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 100 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {scan_string("CODINGSCHEME", KEEP_CONVERT, LEN_CODING_SCHEME);
                  return(CODINGSCHEME); }
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 91 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 102 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {scan_string("FAMILY", KEEP_CONVERT, LEN_FAMILY);
                  return(FAMILY); }
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 93 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 104 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {scan_string("VTITLE", KEEP_ALL, LEN_VTITLE);
                  return(VTITLE); }
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 95 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 106 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {scan_string("FONTNAME", KEEP_ALL, LEN_FONT_NAME);
                  return(FONTNAME); }
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 97 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 108 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {scan_string("FONTAREA", KEEP_ALL, LEN_FONT_AREA);
                  return(FONTAREA); }
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 99 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 110 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {scan_string("SPECIAL", KEEP_ALL, 0);
                  return(SPECIAL); }
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 101 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 112 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {scan_string("COMMENT", KEEP_NONE, 0);
                  return(COMMENT); }
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 104 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 115 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {scan_hex_string(); return(SPECIALHEX); }
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 107 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 118 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint=1; return(SEVENBITSAFEFLAG); }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 108 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 119 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint=0; return(SEVENBITSAFEFLAG); }
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 110 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 121 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(CHECKSUM);
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 111 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 122 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(DESIGNSIZE);
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 112 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 123 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(DESIGNUNITS);
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 113 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 124 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(FACE);
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 114 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 125 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(HEADER);
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 115 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 126 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(BOUNDARYCHAR);
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 116 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 127 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(FONTDIMEN);
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 117 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 128 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(LIGTABLE);
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 118 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 129 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(CHARACTER);
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 120 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 131 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(PARAMETER);
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 121 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 132 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(LABEL);
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 122 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 133 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(KRN);
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 123 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 134 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(STOP);
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 124 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 135 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(SKIP);
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 125 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 136 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(NEXTLARGER);
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 126 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 137 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(VARCHAR);
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 128 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 139 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_WD; return(CHARMEASURE); }
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 129 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 140 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_HT; return(CHARMEASURE); }
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 130 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 141 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_DP; return(CHARMEASURE); }
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 131 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 142 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_IC; return(CHARMEASURE); }
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 133 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 144 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = E_TOP; return(EXTEN); }
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 134 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 145 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = E_MID; return(EXTEN); }
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 135 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 146 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = E_BOT; return(EXTEN); }
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 136 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 147 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = E_REP; return(EXTEN); }
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 138 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 149 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = L_0;    return(LIG); }
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 139 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 150 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = L_B;    return(LIG); }
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 140 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 151 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = L_A;    return(LIG); }
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 141 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 152 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = L_AB;   return(LIG); }
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 142 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 153 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = L_Bx;   return(LIG); }
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 143 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 154 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = L_Ax;   return(LIG); }
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 144 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 155 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = L_ABx;  return(LIG); }
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 145 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 156 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = L_ABxx; return(LIG); }
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 147 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 158 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_MRR; return(NUMBER); }
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 148 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 159 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_MIR; return(NUMBER); }
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 149 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 160 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_BRR; return(NUMBER); }
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 150 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 161 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_BIR; return(NUMBER); }
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 151 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 162 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_LRR; return(NUMBER); }
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 152 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 163 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_LIR; return(NUMBER); }
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 153 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 164 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_MRC; return(NUMBER); }
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 154 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 165 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_MIC; return(NUMBER); }
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 155 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 166 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_BRC; return(NUMBER); }
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 156 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 167 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_BIC; return(NUMBER); }
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 157 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 168 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_LRC; return(NUMBER); }
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 158 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 169 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_LIC; return(NUMBER); }
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 159 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 170 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_MRE; return(NUMBER); }
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 160 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 171 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_MIE; return(NUMBER); }
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 161 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 172 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_BRE; return(NUMBER); }
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 162 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 173 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_BIE; return(NUMBER); }
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 163 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 174 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_LRE; return(NUMBER); }
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 164 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 175 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = F_LIE; return(NUMBER); }
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 166 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 177 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_SLANT;      return(NAMEDPARAMETER); }
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 167 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 178 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_SPACE;      return(NAMEDPARAMETER); }
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 168 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 179 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_STRETCH;    return(NAMEDPARAMETER); }
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 169 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 180 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_SHRINK;     return(NAMEDPARAMETER); }
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 170 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 181 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_XHEIGHT;    return(NAMEDPARAMETER); }
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 171 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 182 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_QUAD;       return(NAMEDPARAMETER); }
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 172 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 183 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_EXTRASPACE; return(NAMEDPARAMETER); }
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 173 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 184 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_NUM1;       return(NAMEDPARAMETER); }
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 174 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 185 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_NUM2;       return(NAMEDPARAMETER); }
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 175 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 186 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_NUM3;       return(NAMEDPARAMETER); }
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 176 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 187 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_DENOM1;     return(NAMEDPARAMETER); }
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 177 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 188 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_DENOM2;     return(NAMEDPARAMETER); }
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 178 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 189 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_SUP1;       return(NAMEDPARAMETER); }
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 179 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 190 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_SUP2;       return(NAMEDPARAMETER); }
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 180 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 191 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_SUP3;       return(NAMEDPARAMETER); }
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 181 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 192 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_SUB1;       return(NAMEDPARAMETER); }
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 182 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 193 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_SUB2;       return(NAMEDPARAMETER); }
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 183 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 194 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_SUPDROP;    return(NAMEDPARAMETER); }
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 184 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 195 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_SUBDROP;    return(NAMEDPARAMETER); }
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 185 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 196 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_DELIM1;     return(NAMEDPARAMETER); }
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 186 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 197 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_DELIM2;     return(NAMEDPARAMETER); }
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 187 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 198 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_AXISHEIGHT; return(NAMEDPARAMETER); }
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 189 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 200 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_DEFAULTRULETHICKNESS;
 			 return(NAMEDPARAMETER); }
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 191 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 202 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_BIGOPSPACING1; return(NAMEDPARAMETER); }
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 192 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 203 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_BIGOPSPACING2; return(NAMEDPARAMETER); }
 	YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 193 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 204 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_BIGOPSPACING3; return(NAMEDPARAMETER); }
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 194 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 205 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_BIGOPSPACING4; return(NAMEDPARAMETER); }
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 195 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 206 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = P_BIGOPSPACING5; return(NAMEDPARAMETER); }
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 197 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 208 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {return(MAPFONT); }
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 198 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 209 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {return(FONTCHECKSUM); }
 	YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 199 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 210 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {return(FONTAT); }
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 200 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 211 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {return(FONTDSIZE); }
 	YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 201 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 212 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {return(MAP); }
 	YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 202 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 213 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {return(SELECTFONT); }
 	YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 203 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 214 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {return(SETCHAR); }
 	YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 204 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 215 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {return(SETRULE); }
 	YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 205 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 216 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {return(PUSH); }
 	YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 206 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 217 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {return(POP); }
 	YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 208 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 219 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = M_RIGHT; return(MOVE); }
 	YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 209 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 220 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = M_LEFT;  return(MOVE); }
 	YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 210 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 221 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = M_UP;    return(MOVE); }
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 211 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 222 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = M_DOWN;  return(MOVE); }
 	YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 213 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 224 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(OFMLEVEL);
 	YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 214 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 225 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = ACC_TOP; return(ACCENT); }
 	YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 215 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 226 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = ACC_MID; return(ACCENT); }
 	YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 216 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 227 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = ACC_BOT; return(ACCENT); }
 	YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 218 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 229 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_ORD+DIR_TL; return(FONTDIR);}
 	YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 219 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 230 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_ORD+DIR_LT; return(FONTDIR);}
 	YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 220 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 231 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_ORD+DIR_TR; return(FONTDIR);}
 	YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 221 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 232 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_ORD+DIR_LB; return(FONTDIR);}
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 222 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 233 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_ORD+DIR_BL; return(FONTDIR);}
 	YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 223 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 234 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_ORD+DIR_RT; return(FONTDIR);}
 	YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 224 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 235 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_ORD+DIR_BR; return(FONTDIR);}
 	YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 225 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 236 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_ORD+DIR_RB; return(FONTDIR);}
 	YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 226 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 237 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_TL; return(FONTDIR);}
 	YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 227 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 238 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_LT; return(FONTDIR);}
 	YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 228 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 239 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_TR; return(FONTDIR);}
 	YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 229 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 240 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_LB; return(FONTDIR);}
 	YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 230 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 241 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_BL; return(FONTDIR);}
 	YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 231 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 242 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_RT; return(FONTDIR);}
 	YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 232 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 243 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_BR; return(FONTDIR);}
 	YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 233 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 244 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_RB; return(FONTDIR);}
 	YY_BREAK
 /* for compatibility with the omegaware versions */
 case 132:
 YY_RULE_SETUP
-#line 235 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 246 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_TL; return(FONTDIR);}
 	YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 236 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 247 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_LT; return(FONTDIR);}
 	YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 237 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 248 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_TR; return(FONTDIR);}
 	YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 238 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 249 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_LB; return(FONTDIR);}
 	YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 239 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 250 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_BL; return(FONTDIR);}
 	YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 240 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 251 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_RT; return(FONTDIR);}
 	YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 241 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 252 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_BR; return(FONTDIR);}
 	YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 242 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 253 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = DIR_NAT+DIR_RB; return(FONTDIR);}
 	YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 244 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 255 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(FONTIVALUE);
 	YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 245 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 256 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(FONTFVALUE);
 	YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 246 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 257 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(FONTMVALUE);
 	YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 247 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 258 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(FONTPENALTY);
 	YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 248 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 259 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(FONTRULE);
 	YY_BREAK
 case 145:
 YY_RULE_SETUP
-#line 249 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 260 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(FONTGLUE);
 	YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 251 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 262 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(IVALUE);
 	YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 252 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 263 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(FVALUE);
 	YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 253 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 264 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(MVALUE);
 	YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 254 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 265 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(PENALTY);
 	YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 255 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 266 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(RULE);
 	YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 256 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 267 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(GLUE);
 	YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 258 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 269 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(IVALUEVAL);
 	YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 259 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 270 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(FVALUEVAL);
 	YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 260 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 271 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(MVALUEVAL);
 	YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 261 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 272 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(PENALTYVAL);
 	YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 263 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 274 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 { yylval.yint = RULE_WD; return(RULEMEASURE); }
 	YY_BREAK
 case 157:
 YY_RULE_SETUP
-#line 264 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 275 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 { yylval.yint = RULE_HT; return(RULEMEASURE); }
 	YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 265 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 276 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 { yylval.yint = RULE_DP; return(RULEMEASURE); }
 	YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 267 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 278 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(GLUEWD);
 	YY_BREAK
 case 160:
 YY_RULE_SETUP
-#line 268 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 279 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 { yylval.yint = GLUE_STRETCH; return(GLUESHRINKSTRETCH); }
 	YY_BREAK
 case 161:
 YY_RULE_SETUP
-#line 269 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 280 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 { yylval.yint = GLUE_SHRINK; return(GLUESHRINKSTRETCH); }
 	YY_BREAK
 case 162:
 YY_RULE_SETUP
-#line 271 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 282 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(GLUETYPE);
 	YY_BREAK
 case 163:
 YY_RULE_SETUP
-#line 272 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 283 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(GLUERULE);
 	YY_BREAK
 case 164:
 YY_RULE_SETUP
-#line 273 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 284 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(GLUECHAR);
 	YY_BREAK
 case 165:
 YY_RULE_SETUP
-#line 275 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 286 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(CHARIVALUE);
 	YY_BREAK
 case 166:
 YY_RULE_SETUP
-#line 276 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 287 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(CHARFVALUE);
 	YY_BREAK
 case 167:
 YY_RULE_SETUP
-#line 277 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 288 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(CHARMVALUE);
 	YY_BREAK
 case 168:
 YY_RULE_SETUP
-#line 278 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 289 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(CHARPENALTY);
 	YY_BREAK
 case 169:
 YY_RULE_SETUP
-#line 279 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 290 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(CHARRULE);
 	YY_BREAK
 case 170:
 YY_RULE_SETUP
-#line 280 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 291 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(CHARGLUE);
 	YY_BREAK
 case 171:
 YY_RULE_SETUP
-#line 282 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 293 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(CKRN);
 	YY_BREAK
 case 172:
 YY_RULE_SETUP
-#line 283 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 294 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(CGLUE);
 	YY_BREAK
 case 173:
 YY_RULE_SETUP
-#line 284 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 295 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(CPENALTY);
 	YY_BREAK
 case 174:
 YY_RULE_SETUP
-#line 285 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 296 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(CPENGLUE);
 	YY_BREAK
 case 175:
 YY_RULE_SETUP
-#line 286 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 297 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(CLABEL);
 	YY_BREAK
 case 176:
 YY_RULE_SETUP
-#line 288 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 299 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 return(CHARREPEAT);
 	YY_BREAK
 case 177:
 YY_RULE_SETUP
-#line 291 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 302 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = O_FILLL; return(GLUEORDER); }
 	YY_BREAK
 case 178:
 YY_RULE_SETUP
-#line 292 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 303 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = O_FILL;  return(GLUEORDER); }
 	YY_BREAK
 case 179:
 YY_RULE_SETUP
-#line 293 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 304 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = O_FIL;   return(GLUEORDER); }
 	YY_BREAK
 case 180:
 YY_RULE_SETUP
-#line 294 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 305 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = O_FI;    return(GLUEORDER); }
 	YY_BREAK
 case 181:
 YY_RULE_SETUP
-#line 295 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 306 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = O_UNIT;  return(GLUEORDER); }
 	YY_BREAK
 case 182:
 YY_RULE_SETUP
-#line 297 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 308 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = K_NORMAL;   return(GLUEKIND); }
 	YY_BREAK
 case 183:
 YY_RULE_SETUP
-#line 298 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 309 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = K_ALEADERS; return(GLUEKIND); }
 	YY_BREAK
 case 184:
 YY_RULE_SETUP
-#line 299 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 310 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = K_CLEADERS; return(GLUEKIND); }
 	YY_BREAK
 case 185:
 YY_RULE_SETUP
-#line 300 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 311 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = K_XLEADERS; return(GLUEKIND); }
 	YY_BREAK
 case 186:
 YY_RULE_SETUP
-#line 302 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 313 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_SECWD;        return(CHARMEASURE); }
 	YY_BREAK
 case 187:
 YY_RULE_SETUP
-#line 303 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 314 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_SECHT;        return(CHARMEASURE); }
 	YY_BREAK
 case 188:
 YY_RULE_SETUP
-#line 304 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 315 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_SECDP;        return(CHARMEASURE); }
 	YY_BREAK
 case 189:
 YY_RULE_SETUP
-#line 305 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 316 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_SECIC;        return(CHARMEASURE); }
 	YY_BREAK
 case 190:
 YY_RULE_SETUP
-#line 307 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 318 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_P_TOPAXIS;    return(CHARMEASURE); }
 	YY_BREAK
 case 191:
 YY_RULE_SETUP
-#line 308 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 319 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_P_TOPAXISBIs; return(CHARMEASURE); }
 	YY_BREAK
 case 192:
 YY_RULE_SETUP
-#line 309 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 320 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_P_BOTAXIS;    return(CHARMEASURE); }
 	YY_BREAK
 case 193:
 YY_RULE_SETUP
-#line 310 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 321 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_P_BOTAXISBIS; return(CHARMEASURE); }
 	YY_BREAK
 case 194:
 YY_RULE_SETUP
-#line 311 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 322 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_P_MIDHOR;     return(CHARMEASURE); }
 	YY_BREAK
 case 195:
 YY_RULE_SETUP
-#line 312 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 323 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_P_MIDVERT;    return(CHARMEASURE); }
 	YY_BREAK
 case 196:
 YY_RULE_SETUP
-#line 313 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 324 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_P_BASESLANT;  return(CHARMEASURE); }
 	YY_BREAK
 case 197:
 YY_RULE_SETUP
-#line 315 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 326 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_S_TOPAXIS;    return(CHARMEASURE); }
 	YY_BREAK
 case 198:
 YY_RULE_SETUP
-#line 316 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 327 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_S_TOPAXISBIs; return(CHARMEASURE); }
 	YY_BREAK
 case 199:
 YY_RULE_SETUP
-#line 317 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 328 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_S_BOTAXIS;    return(CHARMEASURE); }
 	YY_BREAK
 case 200:
 YY_RULE_SETUP
-#line 318 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 329 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_S_BOTAXISBIS; return(CHARMEASURE); }
 	YY_BREAK
 case 201:
 YY_RULE_SETUP
-#line 319 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 330 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_S_MIDHOR;     return(CHARMEASURE); }
 	YY_BREAK
 case 202:
 YY_RULE_SETUP
-#line 320 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 331 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_S_MIDVERT;    return(CHARMEASURE); }
 	YY_BREAK
 case 203:
 YY_RULE_SETUP
-#line 321 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 332 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {yylval.yint = C_S_BASESLANT;  return(CHARMEASURE); }
 	YY_BREAK
 case 204:
 YY_RULE_SETUP
-#line 323 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 334 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 {lex_error_1("unexpected character (%x); ignored",
                              yytext[0]);}
 	YY_BREAK
 case 205:
 YY_RULE_SETUP
-#line 325 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 336 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 ECHO;
 	YY_BREAK
-#line 2342 "../../../../texk/web2c/omegafonts/pl-lexer.c"
-case YY_STATE_EOF(INITIAL):
-	yyterminate();
+#line 2405 "pl-lexer.c"
+			case YY_STATE_EOF(INITIAL):
+				yyterminate();
 
 	case YY_END_OF_BUFFER:
 		{
@@ -2405,8 +2468,7 @@
 
 			else
 				{
-				yy_cp = (yy_last_accepting_cpos);
-				yy_current_state = (yy_last_accepting_state);
+				yy_cp = (yy_c_buf_p);
 				goto yy_find_action;
 				}
 			}
@@ -2532,38 +2594,9 @@
 		while ( num_to_read <= 0 )
 			{ /* Not enough room in the buffer - grow it. */
 
-			/* just a shorter name for the current buffer */
-			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+			YY_FATAL_ERROR(
+"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
 
-			int yy_c_buf_p_offset =
-				(int) ((yy_c_buf_p) - b->yy_ch_buf);
-
-			if ( b->yy_is_our_buffer )
-				{
-				yy_size_t new_size = b->yy_buf_size * 2;
-
-				if ( new_size <= 0 )
-					b->yy_buf_size += b->yy_buf_size / 8;
-				else
-					b->yy_buf_size *= 2;
-
-				b->yy_ch_buf = (char *)
-					/* Include room in for 2 EOB chars. */
-					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
-				}
-			else
-				/* Can't grow it, we don't own it. */
-				b->yy_ch_buf = 0;
-
-			if ( ! b->yy_ch_buf )
-				YY_FATAL_ERROR(
-				"fatal error - scanner input buffer overflow" );
-
-			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
-
-			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
-						number_to_move - 1;
-
 			}
 
 		if ( num_to_read > YY_READ_BUF_SIZE )
@@ -2621,14 +2654,12 @@
     
 	yy_current_state = (yy_start);
 
+	(yy_state_ptr) = (yy_state_buf);
+	*(yy_state_ptr)++ = yy_current_state;
+
 	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
 		{
 		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
-		if ( yy_accept[yy_current_state] )
-			{
-			(yy_last_accepting_state) = yy_current_state;
-			(yy_last_accepting_cpos) = yy_cp;
-			}
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
@@ -2636,6 +2667,7 @@
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+		*(yy_state_ptr)++ = yy_current_state;
 		}
 
 	return yy_current_state;
@@ -2649,14 +2681,8 @@
     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
 {
 	int yy_is_jam;
-    	char *yy_cp = (yy_c_buf_p);
-
+    
 	YY_CHAR yy_c = 1;
-	if ( yy_accept[yy_current_state] )
-		{
-		(yy_last_accepting_state) = yy_current_state;
-		(yy_last_accepting_cpos) = yy_cp;
-		}
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
@@ -2665,6 +2691,8 @@
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 	yy_is_jam = (yy_current_state == 799);
+	if ( ! yy_is_jam )
+		*(yy_state_ptr)++ = yy_current_state;
 
 		return yy_is_jam ? 0 : yy_current_state;
 }
@@ -2926,7 +2954,7 @@
         b->yy_bs_column = 0;
     }
 
-        b->yy_is_interactive = 0;
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
     
 	errno = oerrno;
 }
@@ -3265,6 +3293,11 @@
     (yy_init) = 0;
     (yy_start) = 0;
 
+    (yy_state_buf) = 0;
+    (yy_state_ptr) = 0;
+    (yy_full_match) = 0;
+    (yy_lp) = 0;
+
 /* Defined in main.c */
 #ifdef YY_STDINIT
     yyin = stdin;
@@ -3295,6 +3328,9 @@
 	yyfree((yy_buffer_stack) );
 	(yy_buffer_stack) = NULL;
 
+    yyfree ( (yy_state_buf) );
+    (yy_state_buf)  = NULL;
+
     /* Reset the globals. This is important in a non-reentrant scanner so the next time
      * yylex() is called, initialization will occur. */
     yy_init_globals( );
@@ -3352,7 +3388,7 @@
 
 #define YYTABLES_NAME "yytables"
 
-#line 325 "../../../../texk/web2c/omegafonts/pl-lexer.l"
+#line 336 "../../../../texk/web2c/omegafonts/pl-lexer.l"
 
 
 

Modified: trunk/Build/source/texk/web2c/omegafonts/pl-lexer.l
===================================================================
--- trunk/Build/source/texk/web2c/omegafonts/pl-lexer.l	2020-12-04 00:54:05 UTC (rev 57063)
+++ trunk/Build/source/texk/web2c/omegafonts/pl-lexer.l	2020-12-04 19:14:36 UTC (rev 57064)
@@ -1,5 +1,3 @@
-%option never-interactive
-
 %{
 /* pl-lexer.l: Lexical analysis of property list files.
 
@@ -25,6 +23,19 @@
 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
 */
 
+/* The xyarabic.opl test has an opl comment larger than 16k, which is
+   the default buffer size for flex defined in its preamble.  This
+   results in an error like:
+input buffer overflow, can't enlarge buffer because scanner uses REJECT
+   So we need to redefine YY_BUF_SIZE, which we do here.  Unfortunately
+   it is not perfect, since the flex preamble code uses its own
+   YY_BUF_SIZE to #define YY_STATE_BUF_SIZE before our override takes
+   effect.  Fortunately this is not causing an error.  Apparently the
+   only way to truly override it would be on the command line, and that
+   seems like too much trouble when this works in practice.  */
+#undef YY_BUF_SIZE
+#define YY_BUF_SIZE 110000
+
 #include <kpathsea/lib.h>
 #include <kpathsea/c-memstr.h>
 #include "parser.h"



More information about the tex-live-commits mailing list.