]> git.wh0rd.org - fontconfig.git/blobdiff - src/fcfs.c
Replace 'KEITH PACKARD' with 'THE AUTHOR(S)' in license text in all files
[fontconfig.git] / src / fcfs.c
index b05688d97fcff8f27aafe8393945bec23bf00d25..0e97501f8dd496f62b1aafd0cde4bb141c89208e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $RCSId: $
+ * fontconfig/src/fcfs.c
  *
  * Copyright © 2000 Keith Packard
  *
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include <stdlib.h>
 #include "fcint.h"
+#include <stdlib.h>
 
 FcFontSet *
 FcFontSetCreate (void)
@@ -80,3 +80,56 @@ FcFontSetAdd (FcFontSet *s, FcPattern *font)
     s->fonts[s->nfont++] = font;
     return FcTrue;
 }
+
+FcBool
+FcFontSetSerializeAlloc (FcSerialize *serialize, const FcFontSet *s)
+{
+    int i;
+    
+    if (!FcSerializeAlloc (serialize, s, sizeof (FcFontSet)))
+       return FcFalse;
+    if (!FcSerializeAlloc (serialize, s->fonts, s->nfont * sizeof (FcPattern *)))
+       return FcFalse;
+    for (i = 0; i < s->nfont; i++)
+    {
+       if (!FcPatternSerializeAlloc (serialize, s->fonts[i]))
+           return FcFalse;
+    }
+    return FcTrue;
+}
+
+FcFontSet *
+FcFontSetSerialize (FcSerialize *serialize, const FcFontSet * s)
+{
+    int                i;
+    FcFontSet  *s_serialize;
+    FcPattern  **fonts_serialize;
+    FcPattern  *p_serialize;
+
+    s_serialize = FcSerializePtr (serialize, s);
+    if (!s_serialize)
+       return NULL;
+    *s_serialize = *s;
+    s_serialize->sfont = s_serialize->nfont;
+    
+    fonts_serialize = FcSerializePtr (serialize, s->fonts);
+    if (!fonts_serialize)
+       return NULL;
+    s_serialize->fonts = FcPtrToEncodedOffset (s_serialize,
+                                              fonts_serialize, FcPattern *);
+
+    for (i = 0; i < s->nfont; i++)
+    {
+       p_serialize = FcPatternSerialize (serialize, s->fonts[i]);
+       if (!p_serialize)
+           return NULL;
+       fonts_serialize[i] = FcPtrToEncodedOffset (s_serialize,
+                                                  p_serialize,
+                                                  FcPattern);
+    }
+
+    return s_serialize;
+}
+#define __fcfs__
+#include "fcaliastail.h"
+#undef __fcfs__