IB = ranlib
















     STD_INCLUDES = 
  STD_CPP_OPTIONS = 
  STD_CPP_DEFINES =   -D__i386__ -D__DARWIN__ -DNO_ALLOCA -DX_LOCALE $(PROJECT_DEFINES)
      STD_DEFINES = -D__i386__ -D__DARWIN__ -DNO_ALLOCA -DX_LOCALE $(PROJECT_DEFINES)
 EXTRA_LOAD_FLAGS = 
  EXTRA_LDOPTIONS = 
  EXTRA_LIBRARIES =   
             TAGS = ctags






   PARALLELMFLAGS = 

    SHAREDCODEDEF = 
         SHLIBDEF = 

     SHLIBLDFLAGS = -dynamiclib









         PICFLAGS = -dynamic





      CXXPICFLAGS = -dynamic











































    PROTO_DEFINES =   






     INSTPGMFLAGS = 

     INSTBINFLAGS = -m 0755	
     INSTUIDFLAGS = -m 4711	
     INSTLIBFLAGS = -m 0644	
     INSTINCFLAGS = -m 0444	
     INSTMANFLAGS = -m 0444	
     INSTDATFLAGS = -m 0444	
    INSTKMEMFLAGS = -m 4711	


      PROJECTROOT = /usr/X11R6










      CDEBUGFLAGS = -O2 -fno-strength-reduce
        CCOPTIONS = -Wall -Wpointer-arith -traditional-cpp	







      ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDrrors that the underlying database reports to us, but I'd
   prefer to hide this information in case we change the
   implementation later.  We probably don't need very sophisticated
   error handling here anyway.  */
typedef enum
{
	GNOME_METADATA_OK = 0,		   /* No error. */
	GNOME_METADATA_IO_ERROR,	   /* IO or other low-level
					      communications/storage
					      error.  */
	GNOME_METADATA_NOT_FOUND	   /* Information not found.  */
} GnomeMetadataError_t;

/* Set metadata associated with FILE.  Returns 0 on success, or an
   error code.  */
int gnome_metadata_set (const char *file, const char *name,
			int size, const char *data);

/* Remove a piece of metadata associated with FILE.  Returns 0 on
   success, or an error code.  */
int gnome_metadata_remove (const char *file, const char *name);

/* Return an array of all metadata keys associated with FILE.  The
   array is NULL terminated.  The result value can be freed with
   g_strfreev.  This only returns keys for which there is
   a particular association with FILE.  It will not return keys for
   which a regex or other match succeeds.  */
char **gnome_metadata_list (const char *file);

/* Get a piece of metadata associated with FILE.  SIZE and BUFFER are
   result parameters.  *BUFFER is malloc()d.  Returns 0, or an error
   code.  On error *BUFFER will be set to NULL.  */
int gnome_metadata_get (const char *file, const char *name,
			int *size, char **buffer);

/* Like gnome_metadata_get, but won't run the `file' command to
   characterize the file type.  Returns 0, or an error code.  */
int gnome_metadata_get_fast (const char *file, const char *name,
			     int *size, char **buffer);


/* Convenience function.  Call this when a file is renamed.  Returns 0
   on success, or an error code.  */
int gnome_metadata_rename (const char *from, const char *to);

/* Convenience function.  Call this when a file is copied.  Returns 0
   on success, or an error code.  */
int gnome_metadata_copy (const char *from, const char *to);

/* Convenience function.  Call this when a file is deleted.  Returns 0
   on success, or an error code.  */
int gnome_metadata_delete (const char *file);


/* Add a regular expression to the internal list.  This regex is used
   when matching requests for the metadata KEY.  */
void gnome_metadata_regex_add (const char *regex, const char *key,
			       int size, const char *data);

/* Remove a regular expression from the internal list.  */
void gnome_metadata_regex_remove (const char *regex, const char *key);


/* Add a file type to the internal list.  */
void gnome_metadata_type_add (const char *type, const char *key,
			      int size, const char *data);

/* Remove a file type from the internal list.  */
void gnome_metadata_type_remove (const char *type, const char *key);

void gnome_metadata_lock (void);
void gnome_metadata_unlock (void);
END_GNOME_DECLS

#endif /* GNOME_METADATA_H */
