1/* 2 * Copyright © 2000 Keith Packard 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 Keith Packard not be used in 9 * advertising or publicity pertaining to distribution of the software without 10 * specific, written prior permission. Keith Packard makes no 11 * representations about the suitability of this software for any purpose. It 12 * is provided "as is" without express or implied warranty. 13 * 14 * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 15 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO 16 * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR 17 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 18 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 19 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 20 * PERFORMANCE OF THIS SOFTWARE. 21 */ 22 23#include "xftint.h" 24 25_X_EXPORT FcPattern 26*XftNameParse (const char *name) 27{ 28 return FcNameParse ((const FcChar8 *) name); 29} 30 31_X_EXPORT FcBool 32XftNameUnparse (FcPattern *pat, char *dest, int len) 33{ 34 FcChar8 *name; 35 36 name = FcNameUnparse (pat); 37 if (!name) 38 return FcFalse; 39 if (strlen ((char *) name) + 1 > (size_t) len) 40 { 41 FcPattern *new = FcPatternDuplicate (pat); 42 free (name); 43 FcPatternDel (new, FC_LANG); 44 FcPatternDel (new, FC_CHARSET); 45 name = FcNameUnparse (new); 46 FcPatternDestroy (new); 47 if (!name) 48 return FcFalse; 49 if (strlen ((char *) name) + 1 > (size_t) len) 50 { 51 strncpy (dest, ((char *) name), (size_t) len - 1); 52 dest[len - 1] = '\0'; 53 free (name); 54 return FcFalse; 55 } 56 } 57 strcpy (dest, ((char *) name)); 58 free (name); 59 return FcTrue; 60} 61