aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib/Xft1/xftextent.c
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/lib/Xft1/xftextent.c')
-rw-r--r--nx-X11/lib/Xft1/xftextent.c190
1 files changed, 0 insertions, 190 deletions
diff --git a/nx-X11/lib/Xft1/xftextent.c b/nx-X11/lib/Xft1/xftextent.c
deleted file mode 100644
index 8a6cf620a..000000000
--- a/nx-X11/lib/Xft1/xftextent.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * $XFree86: xc/lib/Xft/xftextent.c,v 1.6 2001/04/01 14:00:01 tsi Exp $
- *
- * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission. Keith Packard makes no
- * 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,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD 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 <string.h>
-#include "xftint.h"
-
-void
-XftTextExtents8 (Display *dpy,
- XftFont *font,
- XftChar8 *string,
- int len,
- XGlyphInfo *extents)
-{
- if (font->core)
- {
- XftCoreExtents8 (dpy, font->u.core.font, string, len, extents);
- }
-#ifdef FREETYPE2
- else
- {
- XftRenderExtents8 (dpy, font->u.ft.font, string, len, extents);
- }
-#endif
-}
-
-void
-XftTextExtents16 (Display *dpy,
- XftFont *font,
- XftChar16 *string,
- int len,
- XGlyphInfo *extents)
-{
- if (font->core)
- {
- XftCoreExtents16 (dpy, font->u.core.font, string, len, extents);
- }
-#ifdef FREETYPE2
- else
- {
- XftRenderExtents16 (dpy, font->u.ft.font, string, len, extents);
- }
-#endif
-}
-
-void
-XftTextExtents32 (Display *dpy,
- XftFont *font,
- XftChar32 *string,
- int len,
- XGlyphInfo *extents)
-{
- if (font->core)
- {
- XftCoreExtents32 (dpy, font->u.core.font, string, len, extents);
- }
-#ifdef FREETYPE2
- else
- {
- XftRenderExtents32 (dpy, font->u.ft.font, string, len, extents);
- }
-#endif
-}
-
-void
-XftTextExtentsUtf8 (Display *dpy,
- XftFont *font,
- XftChar8 *string,
- int len,
- XGlyphInfo *extents)
-{
- XftChar8 *src;
- XftChar32 c;
- XftChar32 lbuf[4096];
- XftChar32 *dst;
- XftChar8 *dst8;
- XftChar16 *dst16;
- XftChar32 *dst32;
- int rlen, clen;
- int width = 1;
- int n;
-
- /* compute needed width */
- src = string;
- rlen = len;
- n = 0;
- while (rlen)
- {
- clen = XftUtf8ToUcs4 (src, &c, rlen);
- if (clen <= 0) /* malformed UTF8 string */
- {
- memset (extents, 0, sizeof (XGlyphInfo));
- return;
- }
- if (c >= 0x10000)
- width = 4;
- else if (c >= 0x100)
- {
- if (width == 1)
- width = 2;
- }
- src += clen;
- rlen -= clen;
- n++;
- }
- dst = lbuf;
- if (n * width > sizeof (lbuf))
- {
- dst = (XftChar32 *) malloc (n * width);
- if (!dst)
- {
- memset (extents, 0, sizeof (XGlyphInfo));
- return;
- }
- }
-
- switch (width) {
- case 4:
- src = string;
- rlen = len;
- dst32 = dst;
- while (rlen)
- {
- clen = XftUtf8ToUcs4 (src, &c, rlen);
- if (clen <= 0) /* malformed UTF8 string */
- return;
- *dst32++ = c;
- src += clen;
- rlen -= clen;
- }
- dst32 = dst;
- XftTextExtents32 (dpy, font, dst32, n, extents);
- break;
- case 2:
- src = string;
- rlen = len;
- dst16 = (XftChar16 *) dst;
- while (rlen)
- {
- clen = XftUtf8ToUcs4 (src, &c, rlen);
- if (clen <= 0) /* malformed UTF8 string */
- return;
- *dst16++ = c;
- src += clen;
- rlen -= clen;
- }
- dst16 = (XftChar16 *) dst;
- XftTextExtents16 (dpy, font, dst16, n, extents);
- break;
- case 1:
- src = string;
- rlen = len;
- dst8 = (XftChar8 *) dst;
- while (rlen)
- {
- clen = XftUtf8ToUcs4 (src, &c, rlen);
- if (clen <= 0) /* malformed UTF8 string */
- return;
- *dst8++ = c;
- src += clen;
- rlen -= clen;
- }
- dst8 = (XftChar8 *) dst;
- XftTextExtents8 (dpy, font, dst8, n, extents);
- break;
- }
- if (dst != lbuf)
- free (dst);
-}