annotate netinstall/iniparse.y @ 3767:6b2ef948e140

[xemacs-hg @ 2006-12-29 18:09:38 by aidan] etc/ChangeLog addition: 2006-12-21 Aidan Kehoe <kehoea@parhasard.net> * unicode/unicode-consortium/8859-7.TXT: Update the mapping to the 2003 version of ISO 8859-7. lisp/ChangeLog addition: 2006-12-21 Aidan Kehoe <kehoea@parhasard.net> * mule/cyrillic.el: * mule/cyrillic.el (iso-8859-5): * mule/cyrillic.el (cyrillic-koi8-r-encode-table): Add syntax, case support for Cyrillic; make some parentheses more Lispy. * mule/european.el: Content moved to latin.el, file deleted. * mule/general-late.el: If Unicode tables are to be loaded at dump time, do it here, not in loadup.el. * mule/greek.el: Add syntax, case support for Greek. * mule/latin.el: Move the content of european.el here. Change the case table mappings to use hexadecimal codes, to make cross reference to the standards easier. In all cases, take character syntax from similar characters in Latin-1 , rather than deciding separately what syntax they should take. Add (incomplete) support for case with Turkish. Remove description of the character sets used from the language environments' doc strings, since now that we create variant language environments on the fly, such descriptions will often be inaccurate. Set the native-coding-system language info property while setting the other coding-system properties of the language. * mule/misc-lang.el (ipa): Remove the language environment. The International Phonetic _Alphabet_ is not a language, it's inane to have a corresponding language environment in XEmacs. * mule/mule-cmds.el (create-variant-language-environment): Also modify the coding-priority when creating a new language environment; document that. * mule/mule-cmds.el (get-language-environment-from-locale): Recognise that the 'native-coding-system language-info property can be a list, interpret it correctly when it is one. 2006-12-21 Aidan Kehoe <kehoea@parhasard.net> * coding.el (coding-system-category): Use the new 'unicode-type property for finding what sort of Unicode coding system subtype a coding system is, instead of the overshadowed 'type property. * dumped-lisp.el (preloaded-file-list): mule/european.el has been removed. * loadup.el (really-early-error-handler): Unicode tables loaded at dump time are now in mule/general-late.el. * simple.el (count-lines): Add some backslashes to to parentheses in docstrings to help fontification along. * simple.el (what-cursor-position): Wrap a line to fit in 80 characters. * unicode.el: Use the 'unicode-type property, not 'type, for setting the Unicode coding-system subtype. src/ChangeLog addition: 2006-12-21 Aidan Kehoe <kehoea@parhasard.net> * file-coding.c: Update the make-coding-system docstring to reflect unicode-type * general-slots.h: New symbol, unicode-type, since 'type was being overridden when accessing a coding system's Unicode subtype. * intl-win32.c: Backslash a few parentheses, to help fontification along. * intl-win32.c (complex_vars_of_intl_win32): Use the 'unicode-type symbol, not 'type, when creating the Microsoft Unicode coding system. * unicode.c (unicode_putprop): * unicode.c (unicode_getprop): * unicode.c (unicode_print): Using 'type as the property name when working out what Unicode subtype a given coding system is was broken, since there's a general coding system property called 'type. Change the former to use 'unicode-type instead.
author aidan
date Fri, 29 Dec 2006 18:09:51 +0000
parents 3078fd1074e8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
1 %{
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
2 /*
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
3 * Copyright (c) 2000, Red Hat, Inc.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
4 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
5 * This program is free software; you can redistribute it and/or modify
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
6 * it under the terms of the GNU General Public License as published by
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
7 * the Free Software Foundation; either version 2 of the License, or
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
8 * (at your option) any later version.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
9 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
10 * A copy of the GNU General Public License can be found at
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
11 * http://www.gnu.org/
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
12 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
13 * Written by DJ Delorie <dj@cygnus.com>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
14 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
15 */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
16
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
17 /* Parse the setup.ini files. inilex.l provides the tokens for this. */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
18
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
19 #include <stdio.h>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
20 #include <stdlib.h>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
21 #include <string.h>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
22 #include "win32.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
23
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
24 #include "ini.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
25 #include "iniparse.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
26
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
27 #include "port.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
28
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
29 #define YYERROR_VERBOSE 1
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
30 /*#define YYDEBUG 1*/
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
31
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
32 static Package *cp;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
33 static int trust;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
34 extern unsigned int setup_timestamp;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
35 extern char *setup_version;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
36 extern int yylineno;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
37 extern int CDECL yyerror (char *s, ...);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
38
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
39 #define cpt (cp->info+trust)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
40
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
41 %}
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
42
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
43 %token STRING
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
44 %token SETUP_TIMESTAMP SETUP_VERSION VERSION INSTALL SOURCE SDESC LDESC TYPE
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
45 %token T_PREV T_CURR T_TEST T_UNKNOWN
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
46
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
47 %%
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
48
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
49 whole_file
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
50 : setup_headers packages
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
51 ;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
52
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
53 setup_headers
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
54 : setup_header setup_headers
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
55 | /* empty */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
56 ;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
57
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
58 setup_header
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
59 : SETUP_TIMESTAMP STRING '\n' { setup_timestamp = strtoul ($2, 0, 0); }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
60 | SETUP_VERSION STRING '\n' { setup_version = strdup ($2); }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
61 | '\n'
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
62 | error { yyerror ("unrecognized line in setup.ini headers (do you have the latest setup?)"); } '\n'
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
63 ;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
64
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
65 packages
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
66 : package packages
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
67 | /* empty */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
68 ;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
69
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
70 package
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
71 : '@' STRING '\n' { new_package($2); }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
72 lines
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
73 ;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
74
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
75 lines
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
76 : simple_line '\n' lines
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
77 | simple_line
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
78 ;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
79
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
80 simple_line
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
81 : VERSION STRING { cpt->version = $2; }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
82 | SDESC STRING { cp->sdesc = $2; }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
83 | LDESC STRING { cp->ldesc = $2; }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
84 | INSTALL STRING STRING { cpt->install = $2;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
85 cpt->install_size = atoi($3); }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
86 | SOURCE STRING STRING { cpt->source = $2;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
87 cpt->source_size = atoi($3); }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
88 | TYPE STRING { if (!strcmp ($2, "cygwin"))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
89 cp->type = TY_CYGWIN;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
90 else if (!strcmp ($2, "native"))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
91 cp->type = TY_NATIVE;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
92 else
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
93 cp->type = TY_GENERIC; }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
94 | T_PREV { trust = TRUST_PREV; }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
95 | T_CURR { trust = TRUST_CURR; }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
96 | T_TEST { trust = TRUST_TEST; }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
97 | T_UNKNOWN { trust = TRUST_UNKNOWN; }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
98 | /* empty */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
99 | error '\n' { yylineno --;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
100 yyerror ("unrecognized line in package %s (do you have the latest setup?)", cp->name);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
101 yylineno ++;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
102 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
103 ;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
104
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
105 %%
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
106
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
107 Package *package = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
108 Package *xemacs_package = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
109 int npackages = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
110 static int maxpackages = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
111
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
112 Package *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
113 new_package (char *name)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
114 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
115 if (package == 0)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
116 maxpackages = npackages = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
117 if (npackages >= maxpackages)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
118 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
119 maxpackages += 10;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
120 if (package)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
121 package = (Package *) realloc (package, maxpackages * sizeof (Package));
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
122 else
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
123 package = (Package *) malloc (maxpackages * sizeof (Package));
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
124 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
125 cp = package + npackages;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
126 npackages ++;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
127
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
128 memset (cp, 0, sizeof (Package));
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
129 cp->name = name;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
130
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
131 trust = TRUST_CURR;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
132
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
133 return cp;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
134 }