From 83f34677bcbc6bb194940407b0fcb23575650e3d Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Fri, 21 May 2010 13:43:49 +0100 Subject: [PATCH] Add hb_tag_from_string() --- src/Makefile.am | 1 + src/hb-common.c | 41 +++++++++++++++++++++++++++++++++++++++++ src/hb-common.h | 3 +++ 3 files changed, 45 insertions(+) create mode 100644 src/hb-common.c diff --git a/src/Makefile.am b/src/Makefile.am index fb82f0e..70cbfd8 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -14,6 +14,7 @@ HBSOURCES = \ hb-blob-private.h \ hb-buffer.cc \ hb-buffer-private.hh \ + hb-common.c \ hb-font.cc \ hb-font-private.hh \ hb-object-private.h \ diff --git a/src/hb-common.c b/src/hb-common.c new file mode 100644 index 0000000..d205fc8 --- /dev/null +++ b/src/hb-common.c @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2010 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#include "hb-private.h" + +hb_tag_t +hb_tag_from_string (const char *s) +{ + char tag[4]; + unsigned int i; + + for (i = 0; i < 4 && s[i]; i++) + tag[i] = s[i]; + for (; i < 4; i++) + tag[i] = ' '; + + return HB_TAG_STR (tag); +} diff --git a/src/hb-common.h b/src/hb-common.h index 594d358..74d8512 100644 --- a/src/hb-common.h +++ b/src/hb-common.h @@ -65,6 +65,9 @@ typedef uint32_t hb_tag_t; ((const char *) s)[3])) #define HB_TAG_NONE HB_TAG(0,0,0,0) +hb_tag_t hb_tag_from_string (const char *s); + + typedef uint32_t hb_codepoint_t; typedef int32_t hb_position_t; typedef uint32_t hb_mask_t; -- 2.7.4