00001 /* $Id: catalog.h,v 1.2 2005/03/07 20:31:24 kifer Exp $ 00002 00003 Part of SWI-Prolog 00004 00005 Author: Jan Wielemaker 00006 E-mail: jan@swi.psy.uva.nl 00007 WWW: http://www.swi-prolog.org 00008 Copyright (C): 1985-2002, University of Amsterdam 00009 00010 This library is free software; you can redistribute it and/or 00011 modify it under the terms of the GNU Lesser General Public 00012 License as published by the Free Software Foundation; either 00013 version 2.1 of the License, or (at your option) any later version. 00014 00015 This library is distributed in the hope that it will be useful, 00016 but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 Lesser General Public License for more details. 00019 00020 You should have received a copy of the GNU Lesser General Public 00021 License along with this library; if not, write to the Free Software 00022 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00023 */ 00024 00025 #ifndef CATALOG_H_INCLUDED 00026 #define CATALOG_H_INCLUDED 00027 00028 /* When we look for a token, we skip layout characters and comments. 00029 There there is nothing left, we return EOF. 00030 If we are looking for the beginning of an entry, the possibilities 00031 are then 00032 */ 00033 00034 #define CAT_OTHER (0) /* token + parameter of find... */ 00035 #define CAT_SYSTEM (1) /* token only */ 00036 #define CAT_PUBLIC (2) /* token only */ 00037 #define CAT_DOCTYPE (3) /* token + parameter of find... */ 00038 #define CAT_ENTITY (4) /* token + parameter of find... */ 00039 #define CAT_PENTITY (5) /* parameter of find... only */ 00040 #define CAT_OVERRIDE (5) /* token only */ 00041 #define CAT_BASE (6) /* token only */ 00042 #define OVR_PUBLIC (CAT_OVERRIDE + CAT_PUBLIC) 00043 #define OVR_DOCTYPE (CAT_OVERRIDE + CAT_DOCTYPE) 00044 #define OVR_ENTITY (CAT_OVERRIDE + CAT_ENTITY) 00045 00046 00047 typedef enum 00048 { CTL_START, 00049 CTL_END 00050 } catalog_location; 00051 00052 int register_catalog_file(const char *file, catalog_location where); 00053 int is_absolute_path(const char *name); 00054 char *localpath(const char *ref, const char *name); 00055 char const *find_in_catalogue( 00056 int kind, 00057 char const *name, 00058 char const *pubid, 00059 char const *sysid, 00060 int ci 00061 ); 00062 00063 #endif /*CATALOG_H_INCLUDED*/