1 /* -*- mode: C; c-file-style: "gnu" -*- */ 2 /* xdgmimeglob.h: Private file. Datastructure for storing the globs. 3 * 4 * More info can be found at http://www.freedesktop.org/standards/ 5 * 6 * Copyright (C) 2003 Red Hat, Inc. 7 * Copyright (C) 2003 Jonathan Blandford <jrb@alum.mit.edu> 8 * 9 * Licensed under the Academic Free License version 2.0 10 * Or under the following terms: 11 * 12 * This library is free software; you can redistribute it and/or 13 * modify it under the terms of the GNU Lesser General Public 14 * License as published by the Free Software Foundation; either 15 * version 2.1 of the License, or (at your option) any later version. 16 * 17 * This library is distributed in the hope that it will be useful, 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20 * Lesser General Public License for more details. 21 * 22 * You should have received a copy of the GNU Lesser General Public 23 * License along with this library; if not, see <http://www.gnu.org/licenses/>. 24 */ 25 26 #ifndef __XDG_MIME_GLOB_H__ 27 #define __XDG_MIME_GLOB_H__ 28 29 #include "xdgmime.h" 30 31 typedef struct XdgGlobHash XdgGlobHash; 32 33 typedef enum 34 { 35 XDG_GLOB_LITERAL, /* Makefile */ 36 XDG_GLOB_SIMPLE, /* *.gif */ 37 XDG_GLOB_FULL /* x*.[ch] */ 38 } XdgGlobType; 39 40 41 #ifdef XDG_PREFIX 42 #define _xdg_mime_glob_read_from_file XDG_RESERVED_ENTRY(glob_read_from_file) 43 #define _xdg_glob_hash_new XDG_RESERVED_ENTRY(hash_new) 44 #define _xdg_glob_hash_free XDG_RESERVED_ENTRY(hash_free) 45 #define _xdg_glob_hash_lookup_file_name XDG_RESERVED_ENTRY(hash_lookup_file_name) 46 #define _xdg_glob_hash_append_glob XDG_RESERVED_ENTRY(hash_append_glob) 47 #define _xdg_glob_determine_type XDG_RESERVED_ENTRY(determine_type) 48 #define _xdg_glob_hash_dump XDG_RESERVED_ENTRY(hash_dump) 49 #endif 50 51 void _xdg_mime_glob_read_from_file (XdgGlobHash *glob_hash, 52 const char *file_name, 53 int version_two); 54 XdgGlobHash *_xdg_glob_hash_new (void); 55 void _xdg_glob_hash_free (XdgGlobHash *glob_hash); 56 int _xdg_glob_hash_lookup_file_name (XdgGlobHash *glob_hash, 57 const char *text, 58 const char *mime_types[], 59 int n_mime_types); 60 void _xdg_glob_hash_append_glob (XdgGlobHash *glob_hash, 61 const char *glob, 62 const char *mime_type, 63 int weight, 64 int case_sensitive); 65 XdgGlobType _xdg_glob_determine_type (const char *glob); 66 #ifdef NOT_USED_IN_GIO 67 void _xdg_glob_hash_dump (XdgGlobHash *glob_hash); 68 #endif 69 70 #endif /* __XDG_MIME_GLOB_H__ */ 71