#ifndef _XrmPublic_h_
#define _XrmPublic_h_

#ifndef _XLIB_H_
#include "Xlib.h"
#endif

#ifndef _Xresource_h
#include "Xresource.h"
#endif

/* public Xrm */
XrmDatabase XrmGetFileDatabase(char *fileName);
Bool XrmGetResource(XrmHashBucket db, XrmString name_str, XrmString class_str, XrmString *pType_str, XrmValuePtr pValue);
XrmDatabase XrmGetStringDatabase(char *data);
void XrmInitialize();
void XrmMergeDatabases(XrmDatabase new, XrmDatabase *into);
void XrmParseCommand(XrmDatabase *pdb, XrmOptionDescList options, int num_options, char *prefix, int *argc, char **argv);
void XrmPutFileDatabase(XrmDatabase db, char *fileName);
void XrmPutLineResource(XrmDatabase *pdb, char *line);
void XrmPutResource(XrmDatabase *pdb, char *specifier, char *type, XrmValuePtr value);
void XrmPutStringResource(XrmDatabase *pdb, char *specifier, char *str);
Bool XrmQGetResource(XrmHashBucket db, XrmNameList names, XrmClassList classes, XrmRepresentation *pType, XrmValuePtr pValue);
Bool XrmQGetSearchList(XrmHashBucket db, XrmNameList names, XrmClassList classes, XrmSearchList searchList, int listLength);
Bool XrmQGetSearchResource(XrmSearchList searchList, XrmName name, XrmClass class, XrmRepresentation *pType, XrmValue *pVal);
void XrmQPutResource(XrmDatabase *pdb, XrmBindingList bindings, XrmQuarkList quarks, XrmRepresentation type, XrmValuePtr value);
void XrmQPutStringResource(XrmDatabase *pdb, XrmBindingList bindings, XrmQuarkList quarks, char *str);
XrmString XrmQuarkToString(XrmQuark quark);
void XrmStringToBindingQuarkList(char *name, XrmBindingList bindings, XrmQuarkList quarks);
XrmQuark XrmStringToQuark(XrmString name);
void XrmStringToQuarkList(char *name, XrmQuarkList quarks);

/* don't add anything after this endif! */
#endif
