[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freesci-develop] r1513 - in freesci/trunk: . src src/gfx src/gfx/resour
From: |
jameson |
Subject: |
[freesci-develop] r1513 - in freesci/trunk: . src src/gfx src/gfx/resource src/include |
Date: |
Sat, 04 Feb 2006 20:48:09 +0100 |
Author: jameson
Date: 2006-02-04 20:47:58 +0100 (Sat, 04 Feb 2006)
New Revision: 1513
Added:
freesci/trunk/src/gfx/gfx_res_options.c
freesci/trunk/src/include/gfx_res_options.h
Modified:
freesci/trunk/ChangeLog
freesci/trunk/config.log
freesci/trunk/src/config.c
freesci/trunk/src/config.l
freesci/trunk/src/gfx/Makefile.am
freesci/trunk/src/gfx/resmgr.c
freesci/trunk/src/gfx/resource/sci_resmgr.c
freesci/trunk/src/include/Makefile.am
freesci/trunk/src/include/gfx_options.h
freesci/trunk/src/include/gfx_resmgr.h
Log:
* Back-ported gfx resource options
-- Christoph
Modified: freesci/trunk/ChangeLog
===================================================================
--- freesci/trunk/ChangeLog 2006-02-01 09:39:40 UTC (rev 1512)
+++ freesci/trunk/ChangeLog 2006-02-04 19:47:58 UTC (rev 1513)
@@ -1,3 +1,8 @@
+2006-02-04 Christoph Reichenbach <address@hidden>
+
+ * src/gfx/gfx_res_options.c (apply_mod): Back-ported resource
+ options
+
2006-02-01 Christoph Reichenbach <address@hidden>
* README.Win32 (SOUND): Eliminated reference to event sound server
Modified: freesci/trunk/config.log
===================================================================
--- freesci/trunk/config.log 2006-02-01 09:39:40 UTC (rev 1512)
+++ freesci/trunk/config.log 2006-02-04 19:47:58 UTC (rev 1513)
@@ -2993,3 +2993,39 @@
#define YYTEXT_POINTER 1
configure: exit 0
+
+## ---------------------- ##
+## Running config.status. ##
+## ---------------------- ##
+
+This file was extended by config.status, which was
+generated by GNU Autoconf 2.59. Invocation command line was
+
+ CONFIG_FILES = src/include/Makefile
+ CONFIG_HEADERS =
+ CONFIG_LINKS =
+ CONFIG_COMMANDS =
+ $ ./config.status
+
+on maya
+
+config.status:786: creating src/include/Makefile
+config.status:1212: executing default-1 commands
+
+## ---------------------- ##
+## Running config.status. ##
+## ---------------------- ##
+
+This file was extended by config.status, which was
+generated by GNU Autoconf 2.59. Invocation command line was
+
+ CONFIG_FILES = src/gfx/Makefile
+ CONFIG_HEADERS =
+ CONFIG_LINKS =
+ CONFIG_COMMANDS =
+ $ ./config.status
+
+on maya
+
+config.status:786: creating src/gfx/Makefile
+config.status:1212: executing default-1 commands
Modified: freesci/trunk/src/config.c
===================================================================
--- freesci/trunk/src/config.c 2006-02-01 09:39:40 UTC (rev 1512)
+++ freesci/trunk/src/config.c 2006-02-04 19:47:58 UTC (rev 1513)
@@ -351,8 +351,8 @@
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 11
-#define YY_END_OF_BUFFER 12
+#define YY_NUM_RULES 12
+#define YY_END_OF_BUFFER 13
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -360,25 +360,30 @@
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[157] =
+static yyconst flex_int16_t yy_accept[195] =
{ 0,
- 10, 10, 12, 10, 9, 9, 9, 10, 10, 10,
- 10, 7, 10, 10, 10, 10, 10, 9, 9, 9,
- 7, 10, 10, 10, 10, 10, 10, 7, 7, 7,
- 7, 7, 7, 7, 10, 10, 10, 10, 8, 10,
- 10, 10, 7, 7, 7, 7, 7, 2, 10, 10,
- 10, 10, 10, 7, 7, 7, 2, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 6, 10, 10,
- 10, 10, 6, 6, 6, 6, 6, 6, 10, 10,
- 10, 10, 10, 6, 6, 6, 6, 7, 10, 10,
- 10, 7, 10, 10, 6, 6, 7, 6, 10, 10,
+ 11, 11, 13, 11, 10, 10, 10, 11, 11, 11,
+ 11, 8, 11, 11, 11, 11, 11, 11, 11, 10,
+ 10, 10, 8, 11, 11, 11, 11, 11, 11, 8,
+ 8, 8, 8, 8, 8, 8, 11, 11, 11, 11,
+ 11, 11, 11, 9, 11, 11, 11, 8, 8, 8,
+ 8, 8, 3, 11, 11, 11, 11, 11, 11, 11,
+ 11, 8, 8, 8, 3, 11, 11, 11, 11, 0,
+ 11, 11, 11, 8, 11, 11, 11, 11, 11, 11,
+ 0, 11, 0, 11, 1, 8, 8, 8, 8, 8,
+ 11, 11, 11, 11, 7, 11, 0, 1, 11, 0,
- 7, 7, 10, 1, 10, 10, 7, 10, 7, 10,
- 7, 5, 5, 5, 5, 5, 5, 5, 5, 10,
- 7, 5, 5, 5, 5, 5, 5, 10, 7, 7,
- 5, 5, 5, 4, 4, 4, 4, 4, 4, 4,
- 4, 7, 4, 4, 4, 4, 4, 4, 7, 4,
- 4, 4, 7, 3, 3, 0
+ 11, 11, 1, 11, 11, 11, 7, 7, 7, 7,
+ 7, 7, 11, 0, 0, 0, 1, 11, 11, 11,
+ 11, 7, 7, 7, 7, 8, 11, 11, 11, 8,
+ 11, 11, 7, 7, 8, 7, 11, 11, 8, 8,
+ 11, 2, 11, 11, 8, 11, 8, 11, 8, 6,
+ 6, 6, 6, 6, 6, 6, 6, 11, 8, 6,
+ 6, 6, 6, 6, 6, 11, 8, 8, 6, 6,
+ 6, 5, 5, 5, 5, 5, 5, 5, 5, 8,
+ 5, 5, 5, 5, 5, 5, 8, 5, 5, 5,
+ 8, 4, 4, 0
+
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -386,17 +391,17 @@
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 1, 5, 6, 1, 7, 1, 1, 1,
- 1, 1, 1, 1, 8, 9, 10, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 8, 1, 12,
- 13, 14, 1, 1, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 16, 17, 18, 1, 19, 1, 15, 20, 21, 22,
+ 1, 2, 1, 5, 6, 1, 7, 1, 1, 8,
+ 1, 1, 1, 1, 9, 10, 11, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 9, 13, 14,
+ 15, 16, 1, 1, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 18, 19, 20, 1, 21, 1, 17, 22, 23, 24,
- 23, 15, 24, 15, 25, 15, 15, 26, 27, 28,
- 29, 15, 15, 30, 31, 15, 32, 33, 15, 15,
- 15, 15, 1, 1, 1, 1, 1, 1, 1, 1,
+ 25, 17, 26, 17, 27, 17, 17, 28, 29, 30,
+ 31, 32, 17, 33, 34, 17, 35, 36, 37, 17,
+ 17, 17, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -413,288 +418,398 @@
1, 1, 1, 1, 1
} ;
-static yyconst flex_int32_t yy_meta[34] =
+static yyconst flex_int32_t yy_meta[38] =
{ 0,
- 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1
+ 1, 1, 2, 1, 3, 1, 1, 1, 1, 1,
+ 1, 4, 1, 1, 1, 1, 4, 1, 1, 1,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4
} ;
-static yyconst flex_int16_t yy_base[179] =
+static yyconst flex_int16_t yy_base[224] =
{ 0,
- 0, 0, 793, 0, 32, 35, 38, 45, 0, 767,
- 63, 96, 129, 768, 763, 759, 0, 161, 51, 164,
- 0, 167, 180, 777, 751, 188, 0, 0, 46, 221,
- 254, 168, 170, 272, 760, 756, 744, 713, 973, 689,
- 695, 693, 186, 0, 291, 0, 309, 688, 655, 656,
- 650, 654, 342, 200, 375, 0, 675, 649, 631, 637,
- 625, 176, 634, 622, 622, 623, 193, 393, 585, 587,
- 579, 583, 0, 181, 426, 459, 476, 257, 572, 546,
- 262, 551, 542, 297, 0, 487, 0, 505, 519, 483,
- 281, 468, 478, 470, 381, 538, 478, 261, 445, 407,
+ 0, 0, 901, 0, 36, 39, 42, 51, 0, 873,
+ 71, 108, 145, 864, 873, 870, 871, 22, 0, 59,
+ 181, 184, 0, 187, 202, 891, 863, 211, 0, 0,
+ 46, 248, 285, 188, 189, 305, 837, 818, 823, 817,
+ 800, 800, 801, 1421, 766, 773, 771, 193, 0, 326,
+ 0, 346, 765, 731, 722, 383, 715, 705, 658, 663,
+ 403, 209, 440, 0, 675, 612, 610, 460, 190, 623,
+ 478, 491, 511, 531, 589, 552, 539, 197, 525, 527,
+ 213, 483, 218, 549, 0, 0, 52, 562, 582, 619,
+ 510, 497, 492, 293, 640, 479, 554, 1421, 675, 219,
- 484, 544, 382, 0, 287, 365, 555, 472, 566, 354,
- 598, 0, 0, 460, 609, 642, 659, 556, 670, 495,
- 664, 373, 560, 0, 689, 0, 707, 546, 740, 772,
- 600, 783, 0, 0, 0, 465, 801, 834, 851, 645,
- 862, 856, 340, 663, 0, 881, 0, 899, 931, 695,
- 942, 0, 959, 961, 494, 973, 311, 305, 286, 281,
- 280, 276, 268, 256, 223, 206, 200, 199, 176, 175,
- 170, 131, 98, 65, 59, 55, 43, 42
+ 482, 679, 462, 434, 420, 418, 0, 225, 692, 729,
+ 748, 292, 375, 749, 397, 753, 392, 363, 300, 329,
+ 312, 333, 0, 766, 0, 786, 286, 275, 314, 470,
+ 237, 214, 447, 823, 685, 286, 182, 177, 475, 551,
+ 180, 0, 334, 121, 842, 488, 854, 78, 890, 0,
+ 0, 320, 902, 939, 958, 681, 970, 521, 963, 63,
+ 736, 0, 991, 0, 1011, 749, 1048, 1084, 773, 1096,
+ 0, 0, 0, 730, 1116, 1153, 1172, 830, 1184, 1177,
+ 55, 844, 0, 1205, 0, 1225, 1261, 848, 1273, 0,
+ 1292, 1294, 759, 1421, 1306, 1310, 1314, 1318, 1322, 1326,
+
+ 1330, 1334, 1336, 1340, 1344, 1348, 1352, 1356, 1360, 1364,
+ 1368, 1372, 1376, 1380, 1384, 1388, 1392, 1396, 1400, 1404,
+ 1408, 1412, 1416
} ;
-static yyconst flex_int16_t yy_def[179] =
+static yyconst flex_int16_t yy_def[224] =
{ 0,
- 156, 1, 156, 157, 157, 156, 157, 158, 159, 157,
- 156, 156, 156, 11, 11, 11, 157, 157, 156, 157,
- 12, 157, 158, 159, 157, 23, 11, 12, 157, 156,
- 160, 12, 12, 161, 13, 11, 11, 11, 156, 157,
- 26, 162, 162, 30, 163, 30, 156, 157, 11, 11,
- 11, 157, 156, 162, 163, 47, 157, 11, 11, 11,
- 157, 53, 11, 11, 11, 157, 157, 156, 23, 11,
- 11, 157, 68, 157, 156, 164, 68, 68, 23, 11,
- 11, 165, 166, 166, 75, 167, 75, 156, 23, 11,
- 157, 12, 165, 168, 166, 167, 166, 88, 23, 23,
+ 194, 1, 194, 195, 195, 194, 195, 196, 197, 195,
+ 194, 194, 194, 11, 11, 11, 11, 11, 195, 195,
+ 194, 195, 12, 195, 196, 197, 195, 25, 11, 12,
+ 195, 194, 198, 12, 12, 199, 13, 11, 11, 11,
+ 11, 11, 11, 194, 195, 28, 200, 200, 32, 201,
+ 32, 194, 195, 11, 11, 11, 11, 11, 11, 195,
+ 194, 200, 201, 52, 195, 11, 11, 195, 68, 202,
+ 203, 25, 28, 12, 11, 11, 195, 61, 11, 11,
+ 204, 203, 204, 205, 195, 74, 68, 198, 194, 199,
+ 11, 11, 195, 195, 194, 25, 206, 194, 205, 204,
- 12, 12, 168, 157, 23, 23, 12, 157, 156, 23,
- 12, 169, 109, 169, 156, 170, 109, 109, 171, 23,
- 12, 172, 172, 115, 173, 115, 156, 157, 156, 12,
- 172, 173, 127, 174, 129, 174, 156, 175, 129, 129,
- 176, 12, 177, 177, 137, 178, 137, 156, 12, 177,
- 178, 148, 12, 12, 157, 0, 156, 156, 156, 156,
- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
- 156, 156, 156, 156, 156, 156, 156, 156
+ 207, 205, 207, 11, 11, 195, 95, 195, 194, 208,
+ 95, 95, 25, 206, 209, 206, 209, 11, 11, 210,
+ 211, 211, 109, 212, 109, 194, 25, 11, 195, 12,
+ 210, 213, 211, 212, 211, 126, 25, 25, 12, 12,
+ 213, 195, 25, 25, 12, 195, 194, 25, 12, 214,
+ 147, 214, 194, 215, 147, 147, 216, 25, 12, 217,
+ 217, 153, 218, 153, 194, 195, 194, 12, 217, 218,
+ 165, 219, 167, 219, 194, 220, 167, 167, 221, 12,
+ 222, 222, 175, 223, 175, 194, 12, 222, 223, 186,
+ 12, 12, 195, 0, 194, 194, 194, 194, 194, 194,
+
+ 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194
} ;
-static yyconst flex_int16_t yy_nxt[1007] =
+static yyconst flex_int16_t yy_nxt[1459] =
{ 0,
- 4, 5, 6, 7, 8, 9, 10, 8, 8, 8,
- 11, 4, 12, 4, 11, 13, 4, 4, 8, 11,
- 11, 14, 11, 11, 11, 11, 11, 11, 11, 15,
- 11, 11, 16, 18, 19, 20, 19, 19, 19, 20,
- 19, 20, 146, 143, 21, 17, 22, 29, 17, 29,
- 17, 17, 19, 19, 19, 141, 17, 21, 17, 138,
- 17, 17, 17, 17, 22, 134, 17, 23, 17, 17,
- 23, 26, 23, 27, 17, 21, 17, 27, 17, 17,
- 17, 23, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 17, 28, 125, 29,
+ 4, 5, 6, 7, 8, 9, 10, 4, 8, 8,
+ 8, 11, 4, 4, 12, 4, 11, 13, 4, 4,
+ 8, 11, 14, 15, 11, 11, 11, 11, 11, 11,
+ 11, 16, 17, 11, 11, 18, 11, 20, 21, 22,
+ 21, 21, 21, 22, 21, 22, 42, 31, 43, 31,
+ 23, 19, 24, 87, 19, 87, 19, 19, 19, 188,
+ 20, 21, 22, 19, 19, 23, 19, 169, 19, 19,
+ 19, 19, 24, 23, 19, 25, 19, 19, 19, 25,
+ 28, 25, 29, 19, 19, 23, 19, 29, 19, 19,
+ 19, 25, 29, 29, 29, 29, 29, 29, 29, 29,
- 30, 17, 17, 31, 32, 32, 33, 17, 17, 17,
- 32, 17, 34, 17, 31, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 17,
- 17, 122, 17, 17, 17, 17, 17, 17, 17, 35,
- 17, 17, 17, 35, 17, 17, 17, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 18, 19, 20, 20, 19, 20, 22, 29,
- 119, 29, 32, 21, 32, 116, 112, 67, 32, 21,
- 17, 22, 74, 17, 74, 17, 17, 43, 68, 43,
- 54, 17, 21, 17, 67, 17, 17, 17, 41, 103,
+ 29, 29, 29, 29, 29, 29, 29, 29, 19, 30,
+ 158, 31, 32, 19, 19, 19, 33, 34, 34, 35,
+ 19, 19, 19, 19, 34, 19, 36, 19, 33, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 19, 19, 148, 19, 19,
+ 19, 19, 19, 19, 19, 19, 37, 19, 19, 19,
+ 19, 37, 19, 19, 19, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 21, 21, 21, 22, 21, 22, 24, 31,
+ 31, 69, 34, 34, 48, 142, 48, 62, 94, 34,
- 86, 43, 41, 43, 54, 68, 83, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 42, 43, 93, 43, 44, 42, 42, 45, 46,
- 46, 46, 42, 42, 42, 46, 42, 47, 42, 45,
- 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
- 46, 46, 46, 46, 17, 29, 76, 29, 74, 17,
- 17, 77, 84, 91, 84, 17, 17, 17, 45, 17,
- 17, 17, 17, 29, 92, 29, 42, 17, 17, 17,
- 34, 31, 91, 17, 17, 17, 24, 17, 108, 17,
- 17, 42, 43, 92, 43, 55, 42, 42, 84, 109,
+ 144, 23, 19, 24, 74, 19, 143, 19, 19, 19,
+ 48, 95, 48, 62, 19, 19, 23, 19, 97, 19,
+ 19, 19, 46, 97, 97, 98, 108, 46, 108, 142,
+ 98, 98, 46, 46, 46, 46, 46, 46, 46, 46,
+ 46, 46, 46, 46, 46, 46, 46, 46, 47, 48,
+ 132, 48, 49, 47, 47, 47, 50, 51, 51, 51,
+ 47, 47, 47, 47, 51, 47, 52, 47, 50, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 19, 31, 122, 31, 122,
+ 19, 19, 19, 108, 94, 138, 111, 19, 19, 19,
- 84, 95, 42, 42, 42, 23, 42, 42, 42, 42,
- 43, 17, 43, 56, 42, 42, 42, 47, 47, 47,
- 42, 42, 42, 47, 42, 47, 42, 42, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 17, 22, 150, 17, 23, 17, 17, 23,
- 23, 23, 62, 17, 21, 17, 62, 17, 17, 17,
- 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 42, 43, 131, 43, 55,
- 42, 42, 84, 120, 84, 95, 42, 42, 42, 110,
- 42, 42, 42, 17, 73, 104, 74, 75, 17, 17,
+ 19, 129, 19, 19, 19, 19, 31, 95, 31, 137,
+ 19, 19, 19, 19, 130, 129, 133, 19, 19, 19,
+ 19, 152, 19, 152, 19, 19, 47, 48, 130, 48,
+ 63, 47, 47, 47, 122, 146, 122, 133, 47, 47,
+ 47, 47, 132, 47, 47, 47, 47, 48, 147, 48,
+ 64, 47, 47, 47, 47, 52, 52, 52, 47, 47,
+ 47, 47, 52, 47, 52, 47, 47, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 68, 69, 70, 68, 128, 68, 68,
+ 71, 72, 73, 72, 83, 68, 68, 74, 68, 83,
- 76, 77, 77, 78, 17, 17, 17, 77, 17, 34,
- 17, 76, 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 83, 84, 106, 84,
- 85, 83, 83, 86, 87, 87, 87, 83, 83, 83,
- 87, 83, 88, 83, 86, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 17,
- 74, 114, 74, 114, 17, 17, 136, 105, 136, 101,
- 17, 17, 17, 108, 17, 17, 17, 74, 102, 97,
- 77, 97, 95, 104, 109, 101, 77, 83, 84, 94,
- 84, 96, 83, 83, 102, 29, 128, 155, 83, 83,
+ 68, 68, 68, 19, 24, 127, 19, 25, 19, 19,
+ 19, 25, 25, 25, 78, 19, 19, 23, 19, 78,
+ 19, 19, 19, 78, 78, 78, 78, 78, 78, 78,
+ 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
+ 47, 48, 120, 48, 63, 47, 47, 47, 122, 119,
+ 122, 133, 47, 47, 47, 47, 118, 47, 47, 47,
+ 68, 68, 70, 68, 83, 68, 68, 71, 68, 68,
+ 68, 139, 68, 68, 68, 68, 139, 68, 68, 68,
+ 83, 140, 19, 84, 83, 83, 140, 19, 84, 146,
+ 85, 68, 69, 70, 68, 85, 68, 68, 71, 72,
- 83, 100, 83, 83, 83, 83, 97, 129, 97, 98,
- 83, 83, 83, 88, 88, 88, 83, 83, 83, 88,
- 83, 88, 83, 83, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 83, 84,
- 99, 84, 96, 83, 83, 29, 95, 128, 32, 83,
- 83, 83, 107, 83, 83, 83, 29, 114, 129, 32,
- 117, 123, 94, 123, 131, 111, 112, 113, 90, 114,
- 115, 112, 112, 116, 117, 117, 118, 112, 112, 112,
- 117, 112, 119, 112, 116, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 29,
+ 72, 72, 147, 68, 68, 74, 68, 113, 68, 68,
+ 68, 68, 69, 70, 68, 106, 68, 68, 71, 72,
+ 72, 72, 166, 68, 68, 74, 68, 105, 68, 68,
+ 68, 68, 86, 70, 87, 167, 68, 68, 71, 88,
+ 89, 89, 104, 68, 68, 68, 68, 96, 68, 90,
+ 68, 100, 31, 101, 102, 34, 100, 56, 115, 116,
+ 145, 103, 68, 87, 70, 87, 117, 68, 68, 71,
+ 88, 88, 88, 93, 68, 68, 68, 68, 92, 68,
+ 68, 68, 68, 87, 70, 87, 34, 68, 68, 71,
+ 88, 89, 89, 34, 68, 68, 68, 68, 34, 68,
- 89, 123, 32, 123, 131, 82, 81, 80, 121, 122,
- 123, 79, 123, 124, 122, 122, 125, 126, 126, 126,
- 122, 122, 122, 126, 122, 127, 122, 125, 126, 126,
+ 90, 68, 33, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 68,
+ 87, 70, 87, 91, 68, 68, 71, 68, 90, 90,
+ 81, 68, 68, 68, 68, 80, 68, 90, 68, 19,
+ 19, 107, 79, 108, 109, 19, 19, 19, 110, 111,
+ 111, 112, 19, 19, 19, 19, 111, 19, 36, 19,
+ 110, 111, 111, 111, 111, 111, 111, 111, 111, 111,
+ 111, 111, 111, 111, 111, 111, 111, 100, 65, 101,
+ 102, 100, 152, 101, 102, 155, 135, 103, 135, 133,
+ 77, 103, 121, 122, 56, 122, 123, 121, 121, 121,
+
+ 124, 125, 125, 125, 121, 121, 121, 121, 125, 121,
+ 126, 121, 124, 125, 125, 125, 125, 125, 125, 125,
+ 125, 125, 125, 125, 125, 125, 125, 125, 125, 19,
+ 108, 174, 108, 174, 19, 19, 19, 161, 76, 161,
+ 169, 19, 19, 19, 19, 75, 19, 19, 19, 108,
+ 166, 100, 111, 115, 116, 100, 67, 115, 116, 111,
+ 31, 117, 193, 167, 66, 117, 121, 122, 65, 122,
+ 134, 121, 121, 121, 161, 62, 161, 169, 121, 121,
+ 121, 121, 61, 121, 121, 121, 121, 135, 60, 135,
+ 136, 121, 121, 121, 121, 126, 126, 126, 121, 121,
+
+ 121, 121, 126, 121, 126, 121, 121, 126, 126, 126,
126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
- 126, 126, 112, 114, 72, 114, 136, 112, 112, 139,
- 71, 70, 69, 112, 112, 112, 66, 112, 112, 112,
- 114, 65, 64, 117, 144, 29, 144, 150, 32, 117,
- 112, 114, 63, 114, 130, 112, 112, 112, 57, 61,
- 60, 112, 112, 112, 59, 112, 58, 112, 112, 122,
- 123, 57, 123, 132, 122, 122, 144, 54, 144, 150,
+ 126, 126, 126, 121, 122, 59, 122, 134, 121, 121,
+ 121, 174, 58, 57, 177, 121, 121, 121, 121, 56,
+ 121, 121, 121, 31, 55, 182, 34, 182, 188, 182,
+ 54, 182, 188, 149, 150, 151, 53, 152, 153, 150,
+ 150, 150, 154, 155, 155, 156, 150, 150, 150, 150,
+ 155, 150, 157, 150, 154, 155, 155, 155, 155, 155,
+ 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
+ 155, 31, 45, 44, 34, 41, 40, 39, 38, 27,
- 122, 122, 122, 53, 122, 122, 122, 122, 123, 52,
- 123, 133, 122, 122, 122, 127, 127, 127, 122, 122,
- 122, 127, 122, 127, 122, 122, 127, 127, 127, 127,
- 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
- 134, 135, 51, 136, 137, 134, 134, 138, 139, 139,
- 140, 134, 134, 134, 139, 134, 141, 134, 138, 139,
- 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
- 139, 139, 139, 29, 50, 49, 32, 48, 40, 39,
- 142, 38, 32, 122, 123, 37, 123, 132, 122, 122,
- 36, 25, 156, 156, 122, 122, 122, 156, 122, 122,
+ 194, 159, 160, 161, 194, 161, 162, 160, 160, 160,
+ 163, 164, 164, 164, 160, 160, 160, 160, 164, 160,
+ 165, 160, 163, 164, 164, 164, 164, 164, 164, 164,
+ 164, 164, 164, 164, 164, 164, 164, 164, 164, 150,
+ 152, 194, 152, 194, 150, 150, 150, 194, 194, 194,
+ 194, 150, 150, 150, 150, 194, 150, 150, 150, 152,
+ 194, 194, 155, 194, 31, 194, 194, 34, 194, 155,
+ 150, 152, 194, 152, 168, 150, 150, 150, 150, 194,
+ 194, 194, 150, 150, 150, 150, 194, 150, 194, 150,
+ 150, 160, 161, 194, 161, 170, 160, 160, 160, 194,
- 122, 143, 144, 156, 144, 145, 143, 143, 146, 147,
- 147, 147, 143, 143, 143, 147, 143, 148, 143, 146,
- 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
- 147, 147, 147, 147, 134, 136, 156, 136, 156, 134,
- 134, 156, 156, 156, 156, 134, 134, 134, 156, 134,
- 134, 134, 136, 156, 156, 139, 156, 29, 156, 156,
- 32, 139, 134, 136, 156, 136, 149, 134, 134, 134,
- 156, 156, 156, 134, 134, 134, 156, 134, 156, 134,
- 134, 143, 144, 156, 144, 151, 143, 143, 156, 156,
- 156, 156, 143, 143, 143, 156, 143, 143, 143, 143,
+ 194, 194, 194, 160, 160, 160, 160, 194, 160, 160,
+ 160, 160, 161, 194, 161, 171, 160, 160, 160, 160,
+ 165, 165, 165, 160, 160, 160, 160, 165, 160, 165,
+ 160, 160, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 172, 173,
+ 194, 174, 175, 172, 172, 172, 176, 177, 177, 178,
+ 172, 172, 172, 172, 177, 172, 179, 172, 176, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 31, 194, 194, 34, 194,
+ 194, 194, 194, 180, 194, 34, 160, 161, 194, 161,
- 144, 156, 144, 152, 143, 143, 143, 148, 148, 148,
- 143, 143, 143, 148, 143, 148, 143, 143, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 29, 156, 156, 32, 156, 156, 156, 156,
- 156, 153, 143, 144, 156, 144, 151, 143, 143, 156,
- 156, 156, 156, 143, 143, 143, 156, 143, 143, 143,
- 29, 156, 29, 32, 155, 32, 156, 156, 156, 154,
- 156, 32, 3, 156, 156, 156, 156, 156, 156, 156,
- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 170, 160, 160, 160, 194, 194, 194, 194, 160, 160,
+ 160, 160, 194, 160, 160, 160, 181, 182, 194, 182,
+ 183, 181, 181, 181, 184, 185, 185, 185, 181, 181,
+ 181, 181, 185, 181, 186, 181, 184, 185, 185, 185,
+ 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
+ 185, 185, 185, 172, 174, 194, 174, 194, 172, 172,
+ 172, 194, 194, 194, 194, 172, 172, 172, 172, 194,
+ 172, 172, 172, 174, 194, 194, 177, 194, 31, 194,
+ 194, 34, 194, 177, 172, 174, 194, 174, 187, 172,
+ 172, 172, 172, 194, 194, 194, 172, 172, 172, 172,
- 156, 156, 156, 156, 156, 156
+ 194, 172, 194, 172, 172, 181, 182, 194, 182, 189,
+ 181, 181, 181, 194, 194, 194, 194, 181, 181, 181,
+ 181, 194, 181, 181, 181, 181, 182, 194, 182, 190,
+ 181, 181, 181, 181, 186, 186, 186, 181, 181, 181,
+ 181, 186, 181, 186, 181, 181, 186, 186, 186, 186,
+ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 31, 194, 194, 34, 194, 194, 194, 194,
+ 194, 194, 191, 181, 182, 194, 182, 189, 181, 181,
+ 181, 194, 194, 194, 194, 181, 181, 181, 181, 194,
+ 181, 181, 181, 31, 194, 31, 34, 193, 34, 194,
+
+ 194, 194, 194, 192, 194, 34, 19, 194, 19, 19,
+ 25, 194, 25, 25, 26, 194, 26, 26, 33, 194,
+ 33, 33, 36, 194, 36, 36, 47, 194, 47, 47,
+ 50, 194, 50, 50, 70, 70, 82, 82, 82, 82,
+ 83, 83, 194, 83, 99, 99, 99, 99, 114, 114,
+ 114, 114, 101, 101, 101, 101, 110, 194, 110, 110,
+ 115, 115, 115, 115, 131, 194, 131, 131, 121, 194,
+ 121, 121, 124, 194, 124, 124, 141, 194, 141, 141,
+ 150, 194, 150, 150, 154, 194, 154, 154, 157, 194,
+ 157, 157, 160, 194, 160, 160, 163, 194, 163, 163,
+
+ 172, 194, 172, 172, 176, 194, 176, 176, 179, 194,
+ 179, 179, 181, 194, 181, 181, 184, 194, 184, 184,
+ 3, 194, 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194
} ;
-static yyconst flex_int16_t yy_chk[1007] =
+static yyconst flex_int16_t yy_chk[1459] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 5, 5, 5, 6, 6, 6, 7,
- 7, 7, 178, 177, 5, 8, 8, 29, 8, 29,
- 8, 8, 19, 19, 19, 176, 8, 8, 8, 175,
- 8, 8, 8, 11, 11, 174, 11, 11, 11, 11,
+ 1, 1, 1, 1, 1, 1, 1, 5, 5, 5,
+ 6, 6, 6, 7, 7, 7, 18, 31, 18, 31,
+ 5, 8, 8, 87, 8, 87, 8, 8, 8, 181,
+ 20, 20, 20, 8, 8, 8, 8, 160, 8, 8,
+ 8, 11, 11, 20, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 12, 12, 173, 12,
+ 11, 11, 11, 11, 11, 11, 11, 11, 12, 12,
+ 148, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
- 13, 172, 13, 13, 13, 13, 13, 13, 13, 13,
+ 12, 12, 12, 12, 12, 13, 13, 144, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 18, 18, 18, 20, 20, 20, 22, 32,
- 171, 33, 32, 18, 33, 170, 169, 62, 32, 22,
- 23, 23, 74, 23, 74, 23, 23, 43, 62, 43,
- 43, 23, 23, 23, 67, 23, 23, 23, 26, 168,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 21, 21, 21, 22, 22, 22, 24, 34,
+ 35, 69, 34, 35, 48, 141, 48, 48, 78, 34,
- 167, 54, 26, 54, 54, 67, 166, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 30, 30, 165, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 31, 31, 164, 31, 78, 31,
- 31, 78, 98, 81, 98, 31, 31, 31, 163, 31,
- 31, 31, 34, 34, 81, 34, 162, 34, 34, 34,
- 161, 160, 91, 34, 34, 34, 159, 34, 105, 34,
- 34, 45, 45, 91, 45, 45, 45, 45, 84, 105,
+ 138, 24, 25, 25, 69, 25, 137, 25, 25, 25,
+ 62, 78, 62, 62, 25, 25, 25, 25, 81, 25,
+ 25, 25, 28, 83, 100, 81, 108, 28, 108, 132,
+ 83, 100, 28, 28, 28, 28, 28, 28, 28, 28,
+ 28, 28, 28, 28, 28, 28, 28, 28, 32, 32,
+ 131, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 33, 33, 136, 33, 136,
+ 33, 33, 33, 112, 94, 128, 112, 33, 33, 33,
- 84, 84, 45, 45, 45, 158, 45, 45, 45, 47,
- 47, 157, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 53, 53, 143, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 55, 55, 122, 55, 55,
- 55, 55, 95, 110, 95, 95, 55, 55, 55, 106,
- 55, 55, 55, 68, 68, 103, 68, 68, 68, 68,
+ 33, 119, 33, 33, 33, 36, 36, 94, 36, 127,
+ 36, 36, 36, 36, 119, 129, 121, 36, 36, 36,
+ 36, 152, 36, 152, 36, 36, 50, 50, 129, 50,
+ 50, 50, 50, 50, 122, 143, 122, 122, 50, 50,
+ 50, 50, 120, 50, 50, 50, 52, 52, 143, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 56, 56, 56, 56, 118, 56, 56,
+ 56, 56, 56, 56, 117, 56, 56, 56, 56, 115,
- 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 75, 75, 100, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 76,
- 76, 114, 76, 114, 76, 76, 136, 99, 136, 92,
- 76, 76, 76, 108, 76, 76, 76, 77, 92, 97,
- 77, 97, 97, 94, 108, 101, 77, 86, 86, 93,
- 86, 86, 86, 86, 101, 155, 120, 155, 86, 86,
+ 56, 56, 56, 61, 61, 113, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 63, 63, 106, 63, 63, 63, 63, 63, 133, 105,
+ 133, 133, 63, 63, 63, 63, 104, 63, 63, 63,
+ 68, 68, 68, 68, 103, 68, 68, 68, 68, 68,
+ 68, 130, 68, 68, 68, 68, 139, 68, 68, 68,
+ 71, 130, 71, 71, 101, 82, 139, 82, 82, 146,
+ 71, 72, 72, 72, 72, 82, 72, 72, 72, 72,
- 86, 90, 86, 86, 86, 88, 88, 120, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 96, 96,
- 89, 96, 96, 96, 96, 102, 83, 128, 102, 96,
- 96, 96, 102, 96, 96, 96, 107, 118, 128, 107,
- 118, 123, 82, 123, 123, 107, 109, 109, 80, 109,
+ 72, 72, 146, 72, 72, 72, 72, 96, 72, 72,
+ 72, 73, 73, 73, 73, 93, 73, 73, 73, 73,
+ 73, 73, 158, 73, 73, 73, 73, 92, 73, 73,
+ 73, 74, 74, 74, 74, 158, 74, 74, 74, 74,
+ 74, 74, 91, 74, 74, 74, 74, 80, 74, 74,
+ 74, 84, 140, 84, 84, 140, 97, 79, 97, 97,
+ 140, 84, 88, 88, 88, 88, 97, 88, 88, 88,
+ 88, 88, 88, 77, 88, 88, 88, 88, 76, 88,
+ 88, 88, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 90,
+ 90, 90, 90, 75, 90, 90, 90, 90, 90, 90,
+ 70, 90, 90, 90, 90, 67, 90, 90, 90, 90,
+ 95, 95, 66, 95, 95, 95, 95, 95, 95, 95,
+ 95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
+ 95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
+ 95, 95, 95, 95, 95, 95, 95, 99, 65, 99,
+ 99, 102, 156, 102, 102, 156, 135, 99, 135, 135,
+ 60, 102, 109, 109, 59, 109, 109, 109, 109, 109,
+
109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
- 109, 109, 109, 109, 109, 109, 109, 109, 109, 111,
+ 109, 109, 109, 109, 109, 109, 109, 109, 109, 110,
+ 110, 174, 110, 174, 110, 110, 110, 161, 58, 161,
+ 161, 110, 110, 110, 110, 57, 110, 110, 110, 111,
+ 166, 114, 111, 114, 114, 116, 55, 116, 116, 111,
+ 193, 114, 193, 166, 54, 116, 124, 124, 53, 124,
+ 124, 124, 124, 124, 169, 47, 169, 169, 124, 124,
+ 124, 124, 46, 124, 124, 124, 126, 126, 45, 126,
+ 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
- 79, 131, 111, 131, 131, 72, 71, 70, 111, 115,
- 115, 69, 115, 115, 115, 115, 115, 115, 115, 115,
- 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
- 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
- 115, 115, 116, 116, 66, 116, 140, 116, 116, 140,
- 65, 64, 63, 116, 116, 116, 61, 116, 116, 116,
- 117, 60, 59, 117, 144, 121, 144, 144, 121, 117,
- 119, 119, 58, 119, 121, 119, 119, 119, 57, 52,
- 51, 119, 119, 119, 50, 119, 49, 119, 119, 125,
- 125, 48, 125, 125, 125, 125, 150, 42, 150, 150,
+ 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
+ 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
+ 126, 126, 126, 134, 134, 43, 134, 134, 134, 134,
+ 134, 178, 42, 41, 178, 134, 134, 134, 134, 40,
+ 134, 134, 134, 145, 39, 182, 145, 182, 182, 188,
+ 38, 188, 188, 145, 147, 147, 37, 147, 147, 147,
+ 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
+ 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
+ 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
+ 147, 149, 27, 26, 149, 17, 16, 15, 14, 10,
- 125, 125, 125, 41, 125, 125, 125, 127, 127, 40,
- 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
- 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
- 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
- 129, 129, 38, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 130, 37, 36, 130, 35, 25, 24,
- 130, 16, 130, 132, 132, 15, 132, 132, 132, 132,
- 14, 10, 3, 0, 132, 132, 132, 0, 132, 132,
+ 3, 149, 153, 153, 0, 153, 153, 153, 153, 153,
+ 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
+ 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
+ 153, 153, 153, 153, 153, 153, 153, 153, 153, 154,
+ 154, 0, 154, 0, 154, 154, 154, 0, 0, 0,
+ 0, 154, 154, 154, 154, 0, 154, 154, 154, 155,
+ 0, 0, 155, 0, 159, 0, 0, 159, 0, 155,
+ 157, 157, 0, 157, 159, 157, 157, 157, 157, 0,
+ 0, 0, 157, 157, 157, 157, 0, 157, 0, 157,
+ 157, 163, 163, 0, 163, 163, 163, 163, 163, 0,
- 132, 137, 137, 0, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 138, 138, 0, 138, 0, 138,
- 138, 0, 0, 0, 0, 138, 138, 138, 0, 138,
- 138, 138, 139, 0, 0, 139, 0, 142, 0, 0,
- 142, 139, 141, 141, 0, 141, 142, 141, 141, 141,
- 0, 0, 0, 141, 141, 141, 0, 141, 0, 141,
- 141, 146, 146, 0, 146, 146, 146, 146, 0, 0,
- 0, 0, 146, 146, 146, 0, 146, 146, 146, 148,
+ 0, 0, 0, 163, 163, 163, 163, 0, 163, 163,
+ 163, 165, 165, 0, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 167, 167,
+ 0, 167, 167, 167, 167, 167, 167, 167, 167, 167,
+ 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
+ 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
+ 167, 167, 167, 167, 167, 168, 0, 0, 168, 0,
+ 0, 0, 0, 168, 0, 168, 170, 170, 0, 170,
- 148, 0, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 149, 0, 0, 149, 0, 0, 0, 0,
- 0, 149, 151, 151, 0, 151, 151, 151, 151, 0,
- 0, 0, 0, 151, 151, 151, 0, 151, 151, 151,
- 153, 0, 154, 153, 154, 154, 0, 0, 0, 153,
- 0, 154, 156, 156, 156, 156, 156, 156, 156, 156,
- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 170, 170, 170, 170, 0, 0, 0, 0, 170, 170,
+ 170, 170, 0, 170, 170, 170, 175, 175, 0, 175,
+ 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
+ 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
+ 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
+ 175, 175, 175, 176, 176, 0, 176, 0, 176, 176,
+ 176, 0, 0, 0, 0, 176, 176, 176, 176, 0,
+ 176, 176, 176, 177, 0, 0, 177, 0, 180, 0,
+ 0, 180, 0, 177, 179, 179, 0, 179, 180, 179,
+ 179, 179, 179, 0, 0, 0, 179, 179, 179, 179,
- 156, 156, 156, 156, 156, 156
+ 0, 179, 0, 179, 179, 184, 184, 0, 184, 184,
+ 184, 184, 184, 0, 0, 0, 0, 184, 184, 184,
+ 184, 0, 184, 184, 184, 186, 186, 0, 186, 186,
+ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 187, 0, 0, 187, 0, 0, 0, 0,
+ 0, 0, 187, 189, 189, 0, 189, 189, 189, 189,
+ 189, 0, 0, 0, 0, 189, 189, 189, 189, 0,
+ 189, 189, 189, 191, 0, 192, 191, 192, 192, 0,
+
+ 0, 0, 0, 191, 0, 192, 195, 0, 195, 195,
+ 196, 0, 196, 196, 197, 0, 197, 197, 198, 0,
+ 198, 198, 199, 0, 199, 199, 200, 0, 200, 200,
+ 201, 0, 201, 201, 202, 202, 203, 203, 203, 203,
+ 204, 204, 0, 204, 205, 205, 205, 205, 206, 206,
+ 206, 206, 207, 207, 207, 207, 208, 0, 208, 208,
+ 209, 209, 209, 209, 210, 0, 210, 210, 211, 0,
+ 211, 211, 212, 0, 212, 212, 213, 0, 213, 213,
+ 214, 0, 214, 214, 215, 0, 215, 215, 216, 0,
+ 216, 216, 217, 0, 217, 217, 218, 0, 218, 218,
+
+ 219, 0, 219, 219, 220, 0, 220, 220, 221, 0,
+ 221, 221, 222, 0, 222, 222, 223, 0, 223, 223,
+ 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194
} ;
static yy_state_type yy_last_accepting_state;
@@ -806,6 +921,8 @@
set_config_parameter(config_entry_t *conf, char *subsystem_name, char
*driver_name,
char *option, char *value);
+static char *
+purge_comments(char *comments);
static int
parse_name(char *name, name_value_pair* nvps, char *what, int oldval); /*
Parses a string with a name value pair */
@@ -1014,7 +1131,7 @@
char *
crop_value(char *yytext);
-#line 1018 "lex.yy.c"
+#line 1135 "lex.yy.c"
#define INITIAL 0
@@ -1165,10 +1282,10 @@
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 315 "config.l"
+#line 317 "config.l"
-#line 1172 "lex.yy.c"
+#line 1289 "lex.yy.c"
if ( (yy_init) )
{
@@ -1221,13 +1338,13 @@
while ( yy_chk[yy_base[yy_current_state] + yy_c] !=
yy_current_state )
{
yy_current_state = (int)
yy_def[yy_current_state];
- if ( yy_current_state >= 157 )
+ if ( yy_current_state >= 195 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] +
(unsigned int) yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 973 );
+ while ( yy_base[yy_current_state] != 1421 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -1252,9 +1369,17 @@
goto yy_find_action;
case 1:
+/* rule 1 can match eol */
YY_RULE_SETUP
-#line 317 "config.l"
+#line 319 "config.l"
{
+ gfx_update_conf(&(conf[cur_section].gfx_options),
purge_comments(yytext));
+}
+ YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 323 "config.l"
+{
char *filename = strchr(yytext, '<');
char *end = strchr(filename, '>');
@@ -1270,9 +1395,9 @@
YY_NEW_FILE;
}
YY_BREAK
-case 2:
+case 3:
YY_RULE_SETUP
-#line 333 "config.l"
+#line 339 "config.l"
{
char *cleanup;
@@ -1313,9 +1438,9 @@
}
YY_BREAK
-case 3:
+case 4:
YY_RULE_SETUP
-#line 374 "config.l"
+#line 380 "config.l"
{
char *p2;
@@ -1334,9 +1459,9 @@
conf[cur_section].version = version_parse(yytext);
}
YY_BREAK
-case 4:
+case 5:
YY_RULE_SETUP
-#line 392 "config.l"
+#line 398 "config.l"
if (cur_section) {
char *p2;
@@ -1357,9 +1482,9 @@
conf[cur_section].resource_dir = sci_strdup(yytext);
}
YY_BREAK
-case 5:
+case 6:
YY_RULE_SETUP
-#line 412 "config.l"
+#line 418 "config.l"
{
char *p2;
@@ -1378,9 +1503,9 @@
strcpy (conf[cur_section].debug_mode, yytext);
}
YY_BREAK
-case 6:
+case 7:
YY_RULE_SETUP
-#line 431 "config.l"
+#line 437 "config.l"
{
/* driver parameters */
char *subsys_name = yytext;
@@ -1411,9 +1536,9 @@
}
YY_BREAK
-case 7:
+case 8:
YY_RULE_SETUP
-#line 462 "config.l"
+#line 468 "config.l"
{ /* Normal config option */
char *option_str = yytext;
char *value_str = yytext;
@@ -1435,39 +1560,39 @@
}
YY_BREAK
-case 8:
+case 9:
*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 485 "config.l"
+#line 491 "config.l"
/* Ignore comments */
YY_BREAK
-case 9:
-/* rule 9 can match eol */
+case 10:
+/* rule 10 can match eol */
YY_RULE_SETUP
-#line 487 "config.l"
+#line 493 "config.l"
/* Eat whitespace */
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 489 "config.l"
+#line 495 "config.l"
{
yy_delete_buffer(YY_CURRENT_BUFFER );
yyterminate();
}
YY_BREAK
-case 10:
+case 11:
YY_RULE_SETUP
-#line 495 "config.l"
+#line 501 "config.l"
printf("Unrecognized option: '%s'\n", yytext);
YY_BREAK
-case 11:
+case 12:
YY_RULE_SETUP
-#line 497 "config.l"
+#line 503 "config.l"
ECHO;
YY_BREAK
-#line 1471 "lex.yy.c"
+#line 1596 "lex.yy.c"
case YY_END_OF_BUFFER:
{
@@ -1749,7 +1874,7 @@
while ( yy_chk[yy_base[yy_current_state] + yy_c] !=
yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 157 )
+ if ( yy_current_state >= 195 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned
int) yy_c];
@@ -1777,11 +1902,11 @@
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 157 )
+ if ( yy_current_state >= 195 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int)
yy_c];
- yy_is_jam = (yy_current_state == 156);
+ yy_is_jam = (yy_current_state == 194);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -2431,7 +2556,7 @@
#undef YY_DECL_IS_OURS
#undef YY_DECL
#endif
-#line 497 "config.l"
+#line 503 "config.l"
@@ -2993,6 +3118,10 @@
conf->gfx_options.text_xlate_filter = GFX_XLATE_FILTER_NONE;
conf->gfx_options.dirty_frames = GFXOP_DIRTY_FRAMES_CLUSTERS;
conf->gfx_options.pic0_antialiasing = GFXR_ANTIALIASING_NONE;
+ for (i = 0; i < GFX_RESOURCE_TYPES_NR; i++) {
+ conf->gfx_options.res_conf.assign[i] = NULL;
+ conf->gfx_options.res_conf.mod[i] = NULL;
+ }
conf->gfx_driver_name = NULL;
conf->pcmout_driver = pcmout_find_driver(NULL);
@@ -3041,3 +3170,25 @@
#endif
}
+static char *
+purge_comments(char *comments)
+{
+ char *c = comments;
+ int overwrite = 0;
+ char ch;
+
+ /* Tear out all comments */
+ while ((ch = *c)) {
+ if (ch == '#')
+ overwrite = 1;
+ if (ch == '\n')
+ overwrite = 0;
+ if (overwrite)
+ *c = ' ';
+
+ c++;
+ }
+
+ return comments;
+}
+
Modified: freesci/trunk/src/config.l
===================================================================
--- freesci/trunk/src/config.l 2006-02-01 09:39:40 UTC (rev 1512)
+++ freesci/trunk/src/config.l 2006-02-04 19:47:58 UTC (rev 1513)
@@ -93,6 +93,8 @@
set_config_parameter(config_entry_t *conf, char *subsystem_name, char
*driver_name,
char *option, char *value);
+static char *
+purge_comments(char *comments);
static int
parse_name(char *name, name_value_pair* nvps, char *what, int oldval); /*
Parses a string with a name value pair */
@@ -314,6 +316,10 @@
%%
+(view|pic|cursor)[^_A-Za-z0-9"("]*"("([^";"]|"#"[^\n]*\n)*";" {
+ gfx_update_conf(&(conf[cur_section].gfx_options),
purge_comments(yytext));
+}
+
"%include"[^<\n]*<[^>\n]*> {
char *filename = strchr(yytext, '<');
char *end = strchr(filename, '>');
@@ -1054,6 +1060,10 @@
conf->gfx_options.text_xlate_filter = GFX_XLATE_FILTER_NONE;
conf->gfx_options.dirty_frames = GFXOP_DIRTY_FRAMES_CLUSTERS;
conf->gfx_options.pic0_antialiasing = GFXR_ANTIALIASING_NONE;
+ for (i = 0; i < GFX_RESOURCE_TYPES_NR; i++) {
+ conf->gfx_options.res_conf.assign[i] = NULL;
+ conf->gfx_options.res_conf.mod[i] = NULL;
+ }
conf->gfx_driver_name = NULL;
conf->pcmout_driver = pcmout_find_driver(NULL);
@@ -1101,3 +1111,25 @@
conf->midi_device = midi_find_device("adlibemu");
#endif
}
+
+static char *
+purge_comments(char *comments)
+{
+ char *c = comments;
+ int overwrite = 0;
+ char ch;
+
+ /* Tear out all comments */
+ while ((ch = *c)) {
+ if (ch == '#')
+ overwrite = 1;
+ if (ch == '\n')
+ overwrite = 0;
+ if (overwrite)
+ *c = ' ';
+
+ c++;
+ }
+
+ return comments;
+}
Modified: freesci/trunk/src/gfx/Makefile.am
===================================================================
--- freesci/trunk/src/gfx/Makefile.am 2006-02-01 09:39:40 UTC (rev 1512)
+++ freesci/trunk/src/gfx/Makefile.am 2006-02-04 19:47:58 UTC (rev 1513)
@@ -8,7 +8,7 @@
libscigraphics_a_SOURCES = font.c gfx_resource.c gfx_support.c \
gfx_tools.c operations.c resmgr.c sbtree.c widgets.c \
menubar.c sci_widgets.c antialias.c gfx_console.c \
- font-5x8.c font-6x10.c
+ font-5x8.c font-6x10.c gfx_res_options.c
check_PROGRAMS = gfx_test
gfx_test_LDADD = libscigraphics.a drivers/libscidrivers.a @X_LIBS@
@ac_glx_libraries@ @ac_ggi_libraries@ @ac_readline@ @ac_curses_libraries@
@ac_png_libraries@ -lm @SDL_LIBS@
Added: freesci/trunk/src/gfx/gfx_res_options.c
===================================================================
--- freesci/trunk/src/gfx/gfx_res_options.c 2006-02-01 09:39:40 UTC (rev
1512)
+++ freesci/trunk/src/gfx/gfx_res_options.c 2006-02-04 19:47:58 UTC (rev
1513)
@@ -0,0 +1,651 @@
+/***************************************************************************
+ gfx_res_options.c Copyright (C) 2002 Christoph Reichenbach
+
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public Licence as
+ published by the Free Software Foundaton; either version 2 of the
+ Licence, or (at your option) any later version.
+
+ It is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ merchantibility or fitness for a particular purpose. See the
+ GNU General Public Licence for more details.
+
+ You should have received a copy of the GNU General Public Licence
+ along with this program; see the file COPYING. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+
+ Please contact the maintainer for any program-related bug reports or
+ inquiries.
+
+ Current Maintainer:
+
+ Christoph Reichenbach (CR) <address@hidden>
+
+***************************************************************************/
+
+#include <gfx_system.h>
+#include <gfx_options.h>
+#include <gfx_resmgr.h>
+
+#define DEBUG
+
+static gfx_res_pattern_list_t*
+pattern_list_insert(gfx_res_pattern_list_t *list, int min, int max)
+{
+ gfx_res_pattern_list_t *retval = malloc(sizeof(gfx_res_pattern_list_t));
+ retval->pattern.min = min;
+ retval->pattern.max = max;
+ retval->next = list;
+
+ return retval;
+}
+
+static int
+pattern_list_len(gfx_res_pattern_list_t *list)
+{
+ int v = 0;
+ while (list) {
+ ++v;
+ list = list->next;
+ }
+
+ return v;
+}
+
+static void
+pattern_list_flatten(gfx_res_pattern_t *dest, gfx_res_pattern_list_t *list)
+{
+ while (list) {
+ *dest++ = list->pattern;
+ list = list->next;
+ }
+}
+
+static inline void
+pattern_list_free(gfx_res_pattern_list_t *list)
+{
+ if (list)
+ pattern_list_free(list->next);
+
+ free(list);
+}
+
+
+static inline int
+extract_pattern(gfx_res_pattern_list_t **destp,
+ char *src, int offset)
+{
+ char *src_orig = src - offset;
+ int final = 0;
+ int wildcard = 0;
+
+ while (!final) {
+ char *end = strchr(src, ',');
+ if (end)
+ *end = 0;
+ else
+ final = 1;
+
+ while (*src && isblank(*src))
+ ++src;
+
+ if (*src == '*'
+ || *src == '_') {
+ wildcard = 1;
+ ++src;
+ } else if (*src == '.' || isdigit(*src)) {
+ char *endp;
+ int start = strtol(src, &endp, 0);
+
+ if (*src == '.'
+ && src[1] == '.') {
+ start = GFX_RES_PATTERN_MIN;
+ endp = src;
+ }
+
+ src = endp;
+
+ while (*src && isblank(*src))
+ ++src;
+
+ if (*src) {
+ int stop;
+ if (*src == '.'
+ && src[1] == '.') {
+
+ src += 2;
+ while (*src && isblank(*src))
+ ++src;
+
+ if (!*src)
+ stop = GFX_RES_PATTERN_MAX;
+ else if (!isdigit(*src)) {
+ if (end)
+ *end = ',';
+ goto lexical_error_label;
+ }
+
+ stop = strtol(src, &endp, 0);
+ src = endp;
+
+ *destp = pattern_list_insert(*destp,
+ start,
stop);
+
+ } else { /* No ellipsis */
+ if (end)
+ *end = ',';
+ goto lexical_error_label;
+ }
+ } else /* End of sub-pattern */
+ *destp = pattern_list_insert(*destp,
+ start, start);
+
+ while (*src && isblank(*src))
+ ++src;
+
+ if (*src) {
+ if (end)
+ *end = ',';
+ goto lexical_error_label;
+ }
+
+ } else {
+ if (end)
+ *end = ',';
+ sciprintf("[gfx-conf] Unexpected character '%c'\n",
+ *src);
+ goto lexical_error_label;
+ }
+
+ if (!final) {
+ *end = ',';
+ src = end + 1;
+ }
+ }
+
+ if (wildcard) {
+ pattern_list_free(*destp);
+ *destp = NULL;
+ }
+
+ return 0;
+
+ lexical_error_label:
+ sciprintf("[gfx-conf] Lexical error in pattern at offset %d\n",
+ src - src_orig);
+ return 1;
+}
+
+static int
+extract_mod_rule(char *src, gfx_res_mod_t *rule)
+{
+ char *orig_src = src;
+ char *endp;
+ float f[3];
+ int i;
+
+ rule->type = GFX_RES_MULTIPLY_FIXED;
+
+ if (isdigit(*src) || *src == '.') {
+ f[0] = f[1] = f[2] = strtod(src, &endp);
+
+ if (*endp)
+ goto mod_error_label;
+ } else if (*src == '(') {
+ i = 0;
+ ++src;
+
+ do {
+ while (*src && isblank(*src))
+ ++src;
+ if (!*src || !(isdigit(*src) || *src == '.')) {
+ sciprintf("[gfx-conf] Unexpected character
'%c'\n",
+ *src);
+ goto mod_error_label;
+ }
+ f[i++] = strtod(src, &endp);
+
+ src = endp;
+
+ while (*src && isblank(*src))
+ ++src;
+
+ if ((i == 3) && *src != ')') {
+ sciprintf("[gfx-conf] Error: Expected ')' at
end of modification rule\n");
+ goto mod_error_label;
+ } else if (i<3 && !isdigit(*src) && *src != '.' && *src
!= ',') {
+ sciprintf("[gfx-conf] Error: Expected ',' as
separator in modification rule, not '%c'\n",
+ *src);
+ goto mod_error_label;
+ }
+ ++src;
+ } while (i < 3);
+
+ if (*src) {
+ sciprintf("[gfx-conf] Error: Trailing garbage after
modification rule\n");
+ goto mod_error_label;
+ }
+
+ } else
+ goto mod_error_label;
+
+ for (i = 0; i < 3; i++) {
+ int v = (int)(f[i] * 16.0);
+ rule->mod.factor[i] = (v > 255) ? 255 : v;
+ }
+
+ return 0;
+ mod_error_label:
+ sciprintf("[gfx-conf] Ill-formed modification rule '%s'\n",
+ orig_src);
+ return 1;
+}
+
+
+extern gfx_pixmap_color_t gfx_sci0_image_colors[][GFX_SCI0_IMAGE_COLORS_NR];
+
+#define PREDEFINED_PALETTES_NR 4
+static int
+extract_assign_rule(char *src, gfx_res_assign_t *rule)
+{
+ char *orig_src = src;
+ struct {
+ char *name;
+ int colors_nr;
+ gfx_pixmap_color_t *colors;
+ } predefined_palettes[PREDEFINED_PALETTES_NR] = {
+ {"default", 16, (gfx_pixmap_color_t *)
&(gfx_sci0_image_colors[0])},
+ {"amiga", 16, (gfx_pixmap_color_t *)
&(gfx_sci0_image_colors[1])},
+ {"gray", 16, (gfx_pixmap_color_t *)
&(gfx_sci0_image_colors[2])},
+ {"grey", 16, (gfx_pixmap_color_t *)
&(gfx_sci0_image_colors[2])},
+ };
+ int i;
+
+ rule->type = GFX_RES_ASSIGN_TYPE_PALETTE;
+
+ for (i = 0; i < PREDEFINED_PALETTES_NR; i++)
+ if (!strcmp(src, predefined_palettes[i].name)) {
+ rule->assign.palette.colors_nr =
+ predefined_palettes[i].colors_nr;
+ rule->assign.palette.colors =
+ predefined_palettes[i].colors;
+ return 0;
+ }
+
+ sciprintf("[gfx-conf] Unknown palette '%s'\n", src);
+ return 1;
+ /*
+ assign_error_label:
+ sciprintf("[gfx-conf] Ill-formed assignment rule '%s'\n",
+ orig_src);
+ return 1;
+ */
+}
+
+#define CLASSES_NR 3
+int
+gfx_update_conf(gfx_options_t *options, char *str)
+{
+ int total_patterns;
+ int mod = 0; /* Modifier or assignment rule? */
+ char *orig_str = str;
+ char *paren_open;
+ char *sem_end;
+
+ int fields_nr; /* Number of fields a restriction is possible by.
+ ** cursors:1, pics:2, views:3. */
+ struct {
+ char *class_name;
+ int class_id;
+ int fields_nr;
+ } classes[CLASSES_NR] = {
+ {"view", GFX_RESOURCE_TYPE_VIEW, 3},
+ {"pic", GFX_RESOURCE_TYPE_PIC, 2},
+ {"cursor", GFX_RESOURCE_TYPE_CURSOR, 1},
+ };
+ gfx_res_conf_t *conf = malloc(sizeof(gfx_res_conf_t));
+ gfx_res_pattern_list_t *patterns = NULL;
+ gfx_res_pattern_list_t *loops = NULL;
+ gfx_res_pattern_list_t *cels = NULL;
+ gfx_res_pattern_list_t **fields[3] = {
+ &patterns, &loops, &cels
+ };
+ int i;
+ int fieldcnt;
+ char *pat_name_str;
+
+ /* Extract pattern(s) */
+ while (*str && isblank(*str))
+ ++str;
+
+ fields_nr = -1;
+ for (i = 0; i < CLASSES_NR; i++) {
+ int len = strlen(classes[i].class_name);
+
+ if (!strncmp(str, classes[i].class_name, len)) {
+ pat_name_str = classes[i].class_name;
+ conf->type = classes[i].class_id;
+ fields_nr = classes[i].fields_nr;
+ str += len;
+ break;
+ }
+ }
+
+ if (fields_nr == -1) {
+ sciprintf("[gfx-conf] Unexpected pattern class: Expected one of
'view', 'pic', 'cursor'\n");
+ goto failure_label;
+ }
+
+ fieldcnt = 0;
+ do {
+ while (*str && isblank(*str))
+ ++str;
+
+ if (!*str)
+ goto unexpected_end;
+
+ if (*str == '='
+ || *str == '*')
+ break;
+
+ if (*str == '(') {
+ char *end = strchr(str, ')');
+
+ if (fieldcnt >= fields_nr) {
+ sciprintf("[gfx-conf] Error: Patterns of class
'%s' may only be"
+ " constrained by %d arguments\n",
+ pat_name_str, fields_nr);
+ goto failure_label;
+ }
+
+ if (!end) {
+ sciprintf("[gfx-conf] Unmatched parentheses at
offset %d\n",
+ str - orig_str);
+ goto failure_label;
+ }
+ *end = 0;
+
+ if (extract_pattern(fields[fieldcnt++],
+ str + 1,
+ str + 1 - orig_str))
+ goto failure_label;
+
+ *end = ')';
+ str = end + 1;
+
+ continue;
+ }
+
+ sciprintf("[gfx-conf] Lexical error in pattern at offset %d:
Unexpected '%c'\n",
+ str - orig_str, *str);
+ goto failure_label;
+ } while (1);
+
+
+ /* Flatten patterns */
+ conf->patterns = NULL;
+ total_patterns = conf->patterns_nr = pattern_list_len(patterns);
+ total_patterns += (conf->loops_nr = pattern_list_len(loops));
+ total_patterns += (conf->cels_nr = pattern_list_len(cels));
+
+ conf->patterns = malloc(sizeof(gfx_res_pattern_t) * total_patterns);
+ pattern_list_flatten(conf->patterns, patterns);
+ pattern_list_flatten(conf->patterns + conf->patterns_nr, loops);
+ pattern_list_flatten(conf->patterns + conf->patterns_nr +
conf->loops_nr, cels);
+
+ pattern_list_free(patterns);
+ patterns = NULL;
+ pattern_list_free(loops);
+ loops = NULL;
+ pattern_list_free(cels);
+ cels = NULL;
+
+ /* Parse remainder */
+ if (*str == '*') {
+ mod = 1;
+ ++str;
+ }
+
+ if (*str != '=') {
+ sciprintf("[gfx-conf] Expected '='\n");
+ goto failure_label;
+ }
+
+ do { ++str; }
+ while (*str && isblank(*str));
+
+ sem_end = strchr(str, ';');
+ if (!sem_end) {
+ sciprintf("[gfx-conf] Expected ';' at end of rule\n");
+ goto failure_label;
+ }
+ do { *sem_end-- = 0; }
+ while (sem_end >= str
+ && isblank(*sem_end));
+
+ if (mod) {
+ if (extract_mod_rule(str, &conf->conf.mod))
+ goto failure_label;
+ } else {
+ if (extract_assign_rule(str, &conf->conf.assign))
+ goto failure_label;
+ }
+
+ /* Write back into options */
+ if (mod) {
+ conf->next = options->res_conf.mod[conf->type];
+ options->res_conf.mod[conf->type] = conf;
+ } else {
+ conf->next = options->res_conf.assign[conf->type];
+ options->res_conf.assign[conf->type] = conf;
+ }
+
+ return 0;
+
+ /* Error handling */
+unexpected_end:
+ sciprintf("[gfx-conf] Unexpected end of pattern encountered\n");
+ failure_label:
+ sciprintf("[gfx-conf] Error occured in: '%s'\n", orig_str);
+ pattern_list_free(patterns);
+ pattern_list_free(loops);
+ pattern_list_free(cels);
+ if (conf->patterns)
+ free(conf->patterns);
+ free(conf);
+ return 1;
+}
+
+static inline int
+matches_patternlist(gfx_res_pattern_t *patterns, int nr, int val)
+{
+ int i;
+ for (i = 0; i < nr; i++)
+ if (patterns[i].min <= val
+ && patterns[i].max >= val)
+ return 1;
+
+ return 0;
+}
+
+#ifdef DEBUG
+static void
+print_pattern(gfx_res_pattern_t *pat)
+{
+ fprintf(stderr, "[%d..%d]",
+ pat->min, pat->max);
+}
+#endif
+
+static inline int
+resource_matches_patternlists(gfx_res_conf_t *conf,
+ int type, int nr, int loop, int cel)
+{
+ int loc;
+#ifdef DEBUG
+ int i;
+ fprintf(stderr, "[DEBUG:gfx-res] Trying to match against %d/%d/%d
choices\n",
+ conf->patterns_nr, conf->loops_nr, conf->cels_nr);
+ for (i = 0; i < conf->patterns_nr; i++) {
+ fprintf(stderr, "[DEBUG:gfx-res] Pat #%d: ", i);
+ print_pattern(conf->patterns + i);
+ fprintf(stderr, "\n");
+ }
+ loc = conf->patterns_nr;
+ for (i = 0; i < conf->loops_nr; i++) {
+ fprintf(stderr, "[DEBUG:gfx-res] Loop #%d: ", i);
+ print_pattern(conf->patterns + i + loc);
+ fprintf(stderr, "\n");
+ }
+ loc += conf->loops_nr;
+ for (i = 0; i < conf->cels_nr; i++) {
+ fprintf(stderr, "[DEBUG:gfx-res] Cel #%d: ", i);
+ print_pattern(conf->patterns + i + loc);
+ fprintf(stderr, "\n");
+ }
+#endif
+ if (conf->patterns_nr &&
+ !matches_patternlist(conf->patterns,
+ conf->patterns_nr,
+ nr))
+ return 0;
+
+ if (type == GFX_RESOURCE_TYPE_CURSOR)
+ return 1;
+
+ /* Otherwise, we must match at least the loop (pic)
+ ** and, for views, the cel as well */
+ loc = conf->patterns_nr;
+ if (conf->loops_nr &&
+ !matches_patternlist(conf->patterns + loc,
+ conf->loops_nr,
+ loop))
+ return 0;
+
+ if (type != GFX_RESOURCE_TYPE_VIEW)
+ return 1;
+
+ loc += conf->loops_nr;
+
+ if (!conf->cels_nr)
+ return 1;
+
+ return matches_patternlist(conf->patterns + loc,
+ conf->cels_nr,
+ cel);
+}
+
+static inline gfx_res_conf_t *
+find_match(gfx_res_conf_t *conflist,
+ int type, int nr, int loop, int cel)
+{
+ while (conflist) {
+ if (resource_matches_patternlists(conflist,
+ type, nr, loop, cel)) {
+#ifdef DEBUG
+ fprintf(stderr, "[DEBUG:gfx-res] Found match!\n");
+#endif
+ return conflist;
+ }
+
+ conflist = conflist->next;
+ }
+ return NULL;
+}
+
+void
+apply_assign(gfx_res_assign_t *conf, gfx_pixmap_t *pxm)
+{
+ /* Has a dynamically allocated palette? Must clean up */
+ if (!(pxm->flags & GFX_PIXMAP_FLAG_EXTERNAL_PALETTE)) {
+ if (pxm->colors)
+ free(pxm->colors);
+ pxm->flags |= GFX_PIXMAP_FLAG_EXTERNAL_PALETTE;
+ }
+
+ pxm->colors_nr = conf->assign.palette.colors_nr;
+ pxm->colors = conf->assign.palette.colors;
+}
+
+void
+apply_mod(gfx_res_mod_t *mod, gfx_pixmap_t *pxm)
+{
+ gfx_pixmap_color_t *pal = pxm->colors;
+ int i, pal_size = pxm->colors_nr;
+
+ /* Does not have a dynamically allocated palette? Must dup current one
*/
+ if (pxm->flags & GFX_PIXMAP_FLAG_EXTERNAL_PALETTE) {
+ int size = sizeof(gfx_pixmap_color_t) * pal_size;
+ pxm->colors = malloc(size);
+ memcpy(pxm->colors, pal, size);
+ pal = pxm->colors;
+ pxm->flags &= ~GFX_PIXMAP_FLAG_EXTERNAL_PALETTE;
+ /* Flag for later deallocation */
+ }
+
+ switch (mod->type) {
+
+ case GFX_RES_MULTIPLY_FIXED: {
+ for (i = 0; i < pal_size; i++) {
+ int v;
+
+#define UPDATE_COL(nm, idx) \
+ v = pal[i].nm; \
+ v *= mod->mod.factor[idx]; \
+ v >>= 4; \
+ pal[i].nm = (v > 255)? 255 : v;
+
+ UPDATE_COL(r, 0);
+ UPDATE_COL(g, 1);
+ UPDATE_COL(b, 2);
+#undef UPDATE_COL
+ }
+ break;
+ }
+
+ default:
+ GFXERROR("Using unexpected visual resource modifier %d\n",
mod->type);
+ }
+}
+
+int
+gfx_get_res_config(gfx_options_t *options, gfx_pixmap_t *pxm)
+{
+ int restype = GFXR_RES_TYPE(pxm->ID);
+ int nr = GFXR_RES_NR(pxm->ID);
+ int loop = pxm->loop;
+ int cel = pxm->cel;
+
+ gfx_res_conf_t *conf;
+
+#ifdef DEBUG
+ fprintf(stderr, "[DEBUG:gfx-res] Trying to conf %d/%d/%d/%d (ID=%d)\n",
+ restype, nr, loop, cel, pxm->ID);
+#endif
+
+ if (pxm->ID < 0 || restype < 0 || restype >= GFX_RESOURCE_TYPES_NR)
+ return 1; /* Not appropriate */
+
+ conf = find_match(options->res_conf.assign[restype],
+ restype, nr, loop, cel);
+
+ if (conf)
+ apply_assign(&(conf->conf.assign), pxm);
+
+ conf = options->res_conf.mod[restype];
+ while (conf) {
+ conf = find_match(conf,
+ restype, nr, loop, cel);
+ if (conf) {
+ apply_mod(&(conf->conf.mod), pxm);
+ conf = conf->next;
+ }
+ }
+ fflush(NULL);
+
+ return 0;
+}
Modified: freesci/trunk/src/gfx/resmgr.c
===================================================================
--- freesci/trunk/src/gfx/resmgr.c 2006-02-01 09:39:40 UTC (rev 1512)
+++ freesci/trunk/src/gfx/resmgr.c 2006-02-04 19:47:58 UTC (rev 1513)
@@ -241,14 +241,22 @@
#define XLATE_AS_APPROPRIATE(key, entry) \
if (maps & key) { \
if (res->unscaled_data.pic \
- && (force || !res->unscaled_data.pic->entry->data)) \
+ && (force || !res->unscaled_data.pic->entry->data)) { \
+ if (key == GFX_MASK_VISUAL) \
+ gfx_get_res_config(options,
res->unscaled_data.pic->entry); \
gfx_xlate_pixmap(res->unscaled_data.pic->entry,
mode, filter); \
- if (scaled && res->scaled_data.pic \
- && (force || !res->scaled_data.pic->entry->data)) \
+ } if (scaled && res->scaled_data.pic \
+ && (force || !res->scaled_data.pic->entry->data)) { \
+ if (key == GFX_MASK_VISUAL) \
+ gfx_get_res_config(options,
res->scaled_data.pic->entry); \
gfx_xlate_pixmap(res->scaled_data.pic->entry,
mode, filter); \
+ } \
}
+
static gfxr_pic_t *
-gfxr_pic_xlate_common(gfx_resource_t *res, int maps, int scaled, int force,
gfx_mode_t *mode, int filter, int endianize)
+gfxr_pic_xlate_common(gfx_resource_t *res, int maps, int scaled,
+ int force, gfx_mode_t *mode, int filter, int endianize,
+ gfx_options_t *options)
{
XLATE_AS_APPROPRIATE(GFX_MASK_VISUAL, visual_map);
XLATE_AS_APPROPRIATE(GFX_MASK_PRIORITY, priority_map);
@@ -291,11 +299,11 @@
need_unscaled = 0;
pic = gfxr_interpreter_init_pic(state->version,
&mode_1x1_color_index,
- (restype << 16) | nr,
+ GFXR_RES_ID(restype,
nr),
state->misc_payload);
} else pic = gfxr_interpreter_init_pic(state->version,
state->driver->mode,
- (restype << 16) | nr,
+ GFXR_RES_ID(restype, nr),
state->misc_payload);
if (!pic) {
@@ -308,7 +316,7 @@
if (need_unscaled) {
unscaled_pic = gfxr_interpreter_init_pic(state->version,
&mode_1x1_color_index,
- (restype <<
16) | nr,
+
GFXR_RES_ID(restype, nr),
state->misc_payload);
if (!unscaled_pic) {
GFXERROR("Failed to allocate unscaled pic!\n");
@@ -332,7 +340,7 @@
if (!res) {
res = sci_malloc(sizeof(gfx_resource_t));
- res->ID = ((restype << 16) | nr);
+ res->ID = GFXR_RES_ID(restype, nr);
res->lock_sequence_nr = state->options->buffer_pics_nr;
sbtree_set(tree, nr, (void *) res);
} else {
@@ -352,9 +360,10 @@
/* If the pic was only just drawn, we'll have to antialiase and
endianness-adjust it now */
npic = gfxr_pic_xlate_common(res, maps,
- scaled || state->options->pic0_unscaled,
- 0, state->driver->mode,
- state->options->pic_xlate_filter, 0);
+ scaled || state->options->pic0_unscaled,
+ 0, state->driver->mode,
+ state->options->pic_xlate_filter, 0,
+ state->options);
if (must_post_process_pic) {
@@ -449,7 +458,9 @@
res->mode = MODE_INVALID; /* Invalidate */
- pic = gfxr_pic_xlate_common(res, maps, scaled, 1/*force*/,
state->driver->mode, state->options->pic_xlate_filter, 1);
+ pic = gfxr_pic_xlate_common(res, maps, scaled, 1/*force*/,
state->driver->mode,
+ state->options->pic_xlate_filter, 1,
+ state->options);
if (state->options->pic0_unscaled) /* Scale priority map again, if
needed */
res->scaled_data.pic->priority_map =
gfx_pixmap_scale_index_data(res->scaled_data.pic->priority_map,
state->driver->mode);
@@ -489,7 +500,7 @@
if (!res) {
res = sci_malloc(sizeof(gfx_resource_t));
res->scaled_data.view = NULL;
- res->ID = ((restype << 16) | nr);
+ res->ID = GFXR_RES_ID(restype, nr);
res->lock_sequence_nr = state->tag_lock_counter;
res->mode = hash;
sbtree_set(tree, nr, (void *) res);
@@ -521,6 +532,7 @@
cel_data = loop_data->cels[*cel];
if (!cel_data->data) {
+ gfx_get_res_config(state->options, cel_data);
gfx_xlate_pixmap(cel_data, state->driver->mode,
state->options->view_xlate_filter);
gfxr_endianness_adjust(cel_data, state->driver->mode);
}
@@ -563,7 +575,7 @@
if (!res) {
res = sci_malloc(sizeof(gfx_resource_t));
res->scaled_data.font = NULL;
- res->ID = ((restype << 16) | nr);
+ res->ID = GFXR_RES_ID(restype, nr);
res->lock_sequence_nr = state->tag_lock_counter;
res->mode = hash;
sbtree_set(tree, nr, (void *) res);
@@ -608,13 +620,14 @@
if (!res) {
res = sci_malloc(sizeof(gfx_resource_t));
res->scaled_data.pointer = NULL;
- res->ID = ((restype << 16) | nr);
+ res->ID = GFXR_RES_ID(restype, nr);
res->lock_sequence_nr = state->tag_lock_counter;
res->mode = hash;
sbtree_set(tree, nr, (void *) res);
} else {
gfx_free_pixmap(state->driver,
res->unscaled_data.pointer);
}
+ gfx_get_res_config(state->options, cursor);
gfx_xlate_pixmap(cursor, state->driver->mode,
state->options->cursor_xlate_filter);
gfxr_endianness_adjust(cursor, state->driver->mode);
Modified: freesci/trunk/src/gfx/resource/sci_resmgr.c
===================================================================
--- freesci/trunk/src/gfx/resource/sci_resmgr.c 2006-02-01 09:39:40 UTC (rev
1512)
+++ freesci/trunk/src/gfx/resource/sci_resmgr.c 2006-02-04 19:47:58 UTC (rev
1513)
@@ -130,7 +130,6 @@
return GFX_OK;
}
-
gfxr_view_t *
gfxr_interpreter_get_view(gfx_resstate_t *state, int nr, void *internal)
{
Modified: freesci/trunk/src/include/Makefile.am
===================================================================
--- freesci/trunk/src/include/Makefile.am 2006-02-01 09:39:40 UTC (rev
1512)
+++ freesci/trunk/src/include/Makefile.am 2006-02-04 19:47:58 UTC (rev
1513)
@@ -9,4 +9,4 @@
sci_graphics.h sci_widgets.h scitypes.h sbtree.h \
gfx_drivers_list.h sciresource.h midiout.h \
midi_device.h modules.h sci_memory.h games.h pcmout.h \
- gfx_sci.h game_select.h
+ gfx_sci.h game_select.h gfx_res_options.h
Modified: freesci/trunk/src/include/gfx_options.h
===================================================================
--- freesci/trunk/src/include/gfx_options.h 2006-02-01 09:39:40 UTC (rev
1512)
+++ freesci/trunk/src/include/gfx_options.h 2006-02-04 19:47:58 UTC (rev
1513)
@@ -31,6 +31,7 @@
#include <gfx_resource.h>
#include <gfx_tools.h>
+#include <gfx_res_options.h>
/* Dirty rectangle heuristics: */
@@ -69,6 +70,8 @@
gfxr_antialiasing_t pic0_antialiasing;
+ gfx_res_fullconf_t res_conf; /* Resource customisation: Per-resource
palettes etc. */
+
int dirty_frames;
int workarounds; /* Workaround flags- see below */
Added: freesci/trunk/src/include/gfx_res_options.h
===================================================================
--- freesci/trunk/src/include/gfx_res_options.h 2006-02-01 09:39:40 UTC (rev
1512)
+++ freesci/trunk/src/include/gfx_res_options.h 2006-02-04 19:47:58 UTC (rev
1513)
@@ -0,0 +1,134 @@
+/***************************************************************************
+ gfx_res_options.h Copyright (C) 2002 Christoph Reichenbach
+
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public Licence as
+ published by the Free Software Foundaton; either version 2 of the
+ Licence, or (at your option) any later version.
+
+ It is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ merchantibility or fitness for a particular purpose. See the
+ GNU General Public Licence for more details.
+
+ You should have received a copy of the GNU General Public Licence
+ along with this program; see the file COPYING. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+
+ Please contact the maintainer for any program-related bug reports or
+ inquiries.
+
+ Current Maintainer:
+
+ Christoph Reichenbach (CR) <address@hidden>
+
+***************************************************************************/
+
+/* Configuration options for per-resource customisations */
+
+#ifndef _GFX_RES_OPTIONS_H_
+#define _GFX_RES_OPTIONS_H_
+
+#include <gfx_resource.h>
+#include <gfx_resmgr.h>
+
+#define GFX_RES_PATTERN_MIN 0
+#define GFX_RES_PATTERN_MAX 65535
+
+typedef struct _gfx_res_pattern {
+ int min, max;
+} gfx_res_pattern_t;
+
+typedef struct _gfx_res_pattern_list {
+ gfx_res_pattern_t pattern;
+ struct _gfx_res_pattern_list *next;
+} gfx_res_pattern_list_t;
+
+
+/* GFX resource assignments */
+
+#define GFX_RES_ASSIGN_TYPE_PALETTE 0 /* Assign a palette */
+
+typedef struct {
+ short type; /* GFX_RES_ASSIGN_TYPE_* */
+
+ union {
+ struct {
+ int colors_nr;
+ gfx_pixmap_color_t *colors;
+ } palette;
+ } assign;
+} gfx_res_assign_t;
+
+
+/* GFX resource modifications */
+
+#define GFX_RES_MULTIPLY_FIXED 0 /* Linear palette update */
+
+typedef struct {
+ short type; /* GFX_RES_ASSIGN_TYPE_* */
+
+ union {
+ byte factor[3]; /* divide by 16 to retreive factor */
+ } mod;
+} gfx_res_mod_t;
+
+
+typedef struct _gfx_res_conf {
+ int type; /* Resource type-- only one allowed */
+
+ /* If any of the following is 0, it means that there is no restriction.
+ ** Otherwise, one of the patterns associated with them must match. */
+ int patterns_nr; /* Number of patterns (only 'view' patterns for views)
*/
+ int loops_nr, cels_nr; /* Number of loop/cel patterns, for views only.
+ ** For pics, loops_nr identifies the palette. */
+
+ gfx_res_pattern_t *patterns;
+
+ union {
+ gfx_res_assign_t assign;
+ gfx_res_mod_t mod;
+ } conf; /* The actual configuration */
+
+ struct _gfx_res_conf *next;
+} gfx_res_conf_t;
+
+
+typedef gfx_res_conf_t *gfx_res_conf_p_t;
+
+typedef struct {
+ gfx_res_conf_p_t assign[GFX_RESOURCE_TYPES_NR];
+ gfx_res_conf_p_t mod[GFX_RESOURCE_TYPES_NR];
+} gfx_res_fullconf_t;
+
+
+struct _gfx_options;
+
+int
+gfx_update_conf(struct _gfx_options *options,
+ char *line);
+/* Updates the configuration
+** Parameters: (gfx_options_t *) options: The options list to update
+** (char *) line: The text line to parse
+** Modifies : (gfx_options_t *) options
+** Returns : (int) 0 on success, 1 if an error occured
+** The line passed to it should begin with the resource type and be
+** terminated by a semicolon.
+*/
+
+int
+gfx_get_res_config(struct _gfx_options *options,
+ gfx_pixmap_t *pxm);
+/* Configures a graphical pixmap according to config options
+** Parameters: (gfx_options_t *) options: The options according to which
+** configuration should be performed
+** (gfx_resource_types_t) pxm: The pixmap to configure
+** Returns : (int) 0 on success, non-zero otherwise
+** Modifies pxm as considered appropriate by configuration options. Does
+** not do anything in colour index mode.
+*/
+
+#endif /* !_GFX_RES_OPTIONS_H_ */
Modified: freesci/trunk/src/include/gfx_resmgr.h
===================================================================
--- freesci/trunk/src/include/gfx_resmgr.h 2006-02-01 09:39:40 UTC (rev
1512)
+++ freesci/trunk/src/include/gfx_resmgr.h 2006-02-04 19:47:58 UTC (rev
1513)
@@ -41,7 +41,11 @@
GFX_RESOURCE_TYPES_NR /* Number of resource types that are to be
supported */
} gfx_resource_types_t;
+#define GFXR_RES_ID(type, index) ((type) << 16 | (index))
+#define GFXR_RES_TYPE(id) (id >> 16)
+#define GFXR_RES_NR(id) (id & 0xffff)
+
typedef struct gfx_resource_struct {
int ID; /* Resource ID */
int lock_sequence_nr; /* See description of lock_counter in
gfx_resstate_t */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freesci-develop] r1513 - in freesci/trunk: . src src/gfx src/gfx/resource src/include,
jameson <=