fltk  1.3.5-source
About: FLTK (Fast Light Tool Kit) is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and MacOS X.
  Fossies Dox: fltk-1.3.5-source.tar.bz2  ("inofficial" and yet experimental doxygen-generated source code documentation)  

is_spacing.c
Go to the documentation of this file.
1 /* "$Id: $"
2  *
3  * Author: Jean-Marc Lienher ( http://oksid.ch )
4  * Copyright 2000-2010 by O'ksi'D.
5  *
6  * This library is free software. Distribution and use rights are outlined in
7  * the file "COPYING" which should have been included with this file. If this
8  * file is missing or damaged, see the license at:
9  *
10  * http://www.fltk.org/COPYING.php
11  *
12  * Please report all bugs and problems on the following page:
13  *
14  * http://www.fltk.org/str.php
15  */
16 
17 /*
18  * This file is required on all platforms for utf8 support
19  */
20 
21 #if !defined(WIN32) && !defined(__APPLE__)
22 # include "../Xutf8.h"
23 #endif /* !defined(WIN32) && !defined(__APPLE__) */
24 
25 #include "headers/spacing.h"
26 
27 unsigned short
28 XUtf8IsNonSpacing(unsigned int ucs) {
29 
30  if (ucs <= 0x0361) {
31  if (ucs >= 0x0300) return ucs_table_0300[ucs - 0x0300];
32  return 0;
33  }
34 
35  if (ucs <= 0x0486) {
36  if (ucs >= 0x0483) return ucs_table_0483[ucs - 0x0483];
37  return 0;
38  }
39 
40  if (ucs <= 0x05C4) {
41  if (ucs >= 0x0591) return ucs_table_0591[ucs - 0x0591];
42  return 0;
43  }
44 
45  if (ucs <= 0x06ED) {
46  if (ucs >= 0x064B) return ucs_table_064B[ucs - 0x064B];
47  return 0;
48  }
49 
50  if (ucs <= 0x0D4D) {
51  if (ucs >= 0x0901) return ucs_table_0901[ucs - 0x0901];
52  return 0;
53  }
54 
55  if (ucs <= 0x0FB9) {
56  if (ucs >= 0x0E31) return ucs_table_0E31[ucs - 0x0E31];
57  return 0;
58  }
59 
60  if (ucs <= 0x20E1) {
61  if (ucs >= 0x20D0) return ucs_table_20D0[ucs - 0x20D0];
62  return 0;
63  }
64 
65  if (ucs <= 0x309A) {
66  if (ucs >= 0x302A) return ucs_table_302A[ucs - 0x302A];
67  return 0;
68  }
69 
70  if (ucs <= 0xFB1E) {
71  if (ucs >= 0xFB1E) return ucs_table_FB1E[ucs - 0xFB1E];
72  return 0;
73  }
74 
75  if (ucs <= 0xFE23) {
76  if (ucs >= 0xFE20) return ucs_table_FE20[ucs - 0xFE20];
77  return 0;
78  }
79 
80  return 0;
81 }
82 
83 /*
84  * End of "$Id$".
85  */
ucs_table_0591
static const unsigned short ucs_table_0591[]
Definition: spacing.h:111
ucs_table_064B
static const unsigned short ucs_table_064B[]
Definition: spacing.h:166
ucs_table_0300
static const unsigned short ucs_table_0300[]
Definition: spacing.h:3
ucs_table_20D0
static const unsigned short ucs_table_20D0[]
Definition: spacing.h:1832
ucs_table_0483
static const unsigned short ucs_table_0483[]
Definition: spacing.h:104
ucs_table_302A
static const unsigned short ucs_table_302A[]
Definition: spacing.h:1853
XUtf8IsNonSpacing
unsigned short XUtf8IsNonSpacing(unsigned int ucs)
Definition: is_spacing.c:28
ucs_table_0E31
static const unsigned short ucs_table_0E31[]
Definition: spacing.h:1436
ucs_table_FE20
static const unsigned short ucs_table_FE20[]
Definition: spacing.h:1973
spacing.h
ucs_table_0901
static const unsigned short ucs_table_0901[]
Definition: spacing.h:332
ucs_table_FB1E
static const unsigned short ucs_table_FB1E[]
Definition: spacing.h:1969