1/* 2 * Copyright 1999 SuSE, Inc. 3 * 4 * Permission to use, copy, modify, distribute, and sell this software and its 5 * documentation for any purpose is hereby granted without fee, provided that 6 * the above copyright notice appear in all copies and that both that 7 * copyright notice and this permission notice appear in supporting 8 * documentation, and that the name of SuSE not be used in advertising or 9 * publicity pertaining to distribution of the software without specific, 10 * written prior permission. SuSE makes no representations about the 11 * suitability of this software for any purpose. It is provided "as is" 12 * without express or implied warranty. 13 * 14 * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE 16 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 17 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 18 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 19 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 20 * 21 * Author: Keith Packard, SuSE, Inc. 22 */ 23 24#ifdef HAVE_CONFIG_H 25#include <config.h> 26#endif 27#include "libxfontint.h" 28#include <X11/fonts/fntfilst.h> 29#include "builtin.h" 30 31static int font_file_type; 32 33static const char builtin_fonts[] = "built-ins"; 34 35static int 36BuiltinNameCheck (const char *name) 37{ 38 return (strcmp (name, builtin_fonts) == 0); 39} 40 41static int 42BuiltinInitFPE (FontPathElementPtr fpe) 43{ 44 int status; 45 FontDirectoryPtr dir; 46 47 status = BuiltinReadDirectory (fpe->name, &dir); 48 49 if (status == Successful) 50 fpe->private = (pointer) dir; 51 return status; 52} 53 54/* ARGSUSED */ 55static int 56BuiltinResetFPE (FontPathElementPtr fpe) 57{ 58 /* builtins can't change! */ 59 return Successful; 60} 61 62static int 63BuiltinFreeFPE (FontPathElementPtr fpe) 64{ 65 FontFileFreeDir ((FontDirectoryPtr) fpe->private); 66 return Successful; 67} 68 69static const xfont2_fpe_funcs_rec builtin_fpe_funcs = { 70 .version = XFONT2_FPE_FUNCS_VERSION, 71 .name_check = BuiltinNameCheck, 72 .init_fpe = BuiltinInitFPE, 73 .free_fpe = BuiltinFreeFPE, 74 .reset_fpe = BuiltinResetFPE, 75 .open_font = FontFileOpenFont, 76 .close_font = FontFileCloseFont, 77 .list_fonts = FontFileListFonts, 78 .start_list_fonts_with_info = FontFileStartListFontsWithInfo, 79 .list_next_font_with_info = FontFileListNextFontWithInfo, 80 .wakeup_fpe = 0, 81 .client_died = 0, 82 .load_glyphs = 0, 83 .start_list_fonts_and_aliases = 0, 84 .list_next_font_or_alias = 0, 85 .set_path_hook = 0 86}; 87 88void 89BuiltinRegisterFpeFunctions(void) 90{ 91 BuiltinRegisterFontFileFunctions (); 92 93 font_file_type = register_fpe_funcs(&builtin_fpe_funcs); 94} 95