Mercurial > hg > xemacs-beta
comparison netinstall/ini.h @ 448:3078fd1074e8 r21-2-39
Import from CVS: tag r21-2-39
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:38:25 +0200 |
parents | |
children | d7a9135ec789 |
comparison
equal
deleted
inserted
replaced
447:4fc5f13f3bd3 | 448:3078fd1074e8 |
---|---|
1 /* | |
2 * Copyright (c) 2000, Red Hat, Inc. | |
3 * | |
4 * This program is free software; you can redistribute it and/or modify | |
5 * it under the terms of the GNU General Public License as published by | |
6 * the Free Software Foundation; either version 2 of the License, or | |
7 * (at your option) any later version. | |
8 * | |
9 * A copy of the GNU General Public License can be found at | |
10 * http://www.gnu.org/ | |
11 * | |
12 * Written by DJ Delorie <dj@cygnus.com> | |
13 * | |
14 */ | |
15 | |
16 /* When setup.ini is parsed, the information is stored according to | |
17 the declarations here. ini.cc (via inilex and iniparse) | |
18 initializes these structures. choose.cc sets the action and trust | |
19 fields. download.cc downloads any needed files for selected | |
20 packages (the chosen "install" field). install.cc installs | |
21 selected packages. */ | |
22 | |
23 #define YYSTYPE char * | |
24 | |
25 /* lowest number must be most trusted, highest least trusted */ | |
26 #define TRUST_PREV 0 | |
27 #define TRUST_CURR 1 | |
28 #define TRUST_TEST 2 | |
29 #define NTRUST 3 | |
30 #define TRUST_UNKNOWN 3 /* intentionally not in NTRUST */ | |
31 | |
32 #define TY_GENERIC 0 | |
33 #define TY_CYGWIN 1 | |
34 #define TY_NATIVE 2 | |
35 | |
36 #define ACTION_UNKNOWN 0 | |
37 #define ACTION_SAME 1 | |
38 #define ACTION_NEW 2 | |
39 #define ACTION_UPGRADE 3 | |
40 #define ACTION_UNINSTALL 4 | |
41 #define ACTION_ERROR 5 | |
42 | |
43 #define SRCACTION_NO 0 | |
44 #define SRCACTION_YES 1 | |
45 | |
46 typedef struct { | |
47 char *name; /* package name, like "cygwin" */ | |
48 char *sdesc; /* short description (replaces "name" if provided) */ | |
49 char *ldesc; /* long description (multi-line) */ | |
50 int action; /* ACTION_* - only NEW and UPGRADE get installed */ | |
51 int srcaction;/* SRCACTION_ */ | |
52 int trust; /* TRUST_* (selects among info[] below) */ | |
53 int type; /* TY_GENERIC, TY_CYGWIN or TY_NATIVE. */ | |
54 | |
55 struct { | |
56 char *version; /* version part of filename */ | |
57 char *install; /* file name to install */ | |
58 int install_size; /* in bytes */ | |
59 char *source; /* sources for installed binaries */ | |
60 int source_size; /* in bytes */ | |
61 } info[NTRUST+1]; /* +1 for TRUST_UNKNOWN */ | |
62 } Package; | |
63 | |
64 extern Package *package; | |
65 extern Package *xemacs_package; | |
66 | |
67 extern int npackages; | |
68 | |
69 #ifdef __cplusplus | |
70 extern "C" { | |
71 #endif | |
72 | |
73 Package *new_package (char *name); | |
74 void ini_init (char *string); | |
75 | |
76 #define pi (package[i].info[package[i].trust]) | |
77 | |
78 #define LOOP_PACKAGES \ | |
79 for (i=0; i<npackages; i++) \ | |
80 if ((package[i].action == ACTION_NEW \ | |
81 || package[i].action == ACTION_UPGRADE) \ | |
82 && pi.install) | |
83 | |
84 #ifdef __cplusplus | |
85 } | |
86 #endif |