*
*/
+#ifndef _INI_H_
+#define _INI_H_
+
+class io_stream;
+class String;
+class IniState;
+class IniDBBuilder;
+class IniParseFeedback;
+void ini_init (io_stream *, IniDBBuilder *, IniParseFeedback &);
+#define YYSTYPE char *
+
+#ifdef __cplusplus
+
/* When setup.ini is parsed, the information is stored according to
the declarations here. ini.cc (via inilex and iniparse)
initializes these structures. choose.cc sets the action and trust
packages (the chosen "install" field). install.cc installs
selected packages. */
-#define YYSTYPE char *
-
-/* lowest number must be most trusted, highest least trusted */
-#define TRUST_PREV 0
-#define TRUST_CURR 1
-#define TRUST_TEST 2
-#define NTRUST 3
-#define TRUST_UNKNOWN 3 /* intentionally not in NTRUST */
-
-#define ACTION_UNKNOWN 0
-#define ACTION_SAME 1
-#define ACTION_NEW 2
-#define ACTION_UPGRADE 3
-#define ACTION_UNINSTALL 4
-#define ACTION_ERROR 5
-
-typedef struct {
- char *name; /* package name, like "cygwin" */
- char *sdesc; /* short description (replaces "name" if provided) */
- char *ldesc; /* long description (multi-line) */
- int action; /* ACTION_* - only NEW and UPGRADE get installed */
- int trust; /* TRUST_* (selects among info[] below) */
-
- struct {
- char *version; /* version part of filename */
- char *install; /* file name to install */
- int install_size; /* in bytes */
- char *source; /* sources for installed binaries */
- int source_size; /* in bytes */
- } info[NTRUST+1]; /* +1 for TRUST_UNKNOWN */
-} Package;
-
-extern Package *package;
-extern int npackages;
+typedef enum
+{
+ EXCLUDE_NONE = 0,
+ EXCLUDE_BY_SETUP,
+ EXCLUDE_NOT_FOUND
+}
+excludes;
-#ifdef __cplusplus
-extern "C" {
#endif
-Package *new_package (char *name);
-void ini_init (char *string);
-
-#ifdef __cplusplus
-}
-#endif
+#endif /* _INI_H_ */