Vuo  2.0.0
VuoControlCode.c
Go to the documentation of this file.
1 
10 #include "type.h"
11 #include "VuoControlCode.h"
12 #include "VuoList_VuoControlCode.h"
13 
15 #ifdef VUO_COMPILER
17  "title" : "Control Code",
18  "description" : "Special characters like spaces, returns, and tab.",
19  "keywords" : [ ],
20  "version" : "1.0.0",
21  "dependencies" : [
22  "VuoText",
23  "VuoList_VuoControlCode"
24  ]
25  });
26 #endif
27 
33 {
34  if( code == VuoControlCode_NewLineUnix )
35  return VuoText_make("\n");
36  else if( code == VuoControlCode_NewLineWindows )
37  return VuoText_make("\r\n");
38  else if( code == VuoControlCode_NewLineMacOS9 )
39  return VuoText_make("\r");
40  else if( code == VuoControlCode_Tab )
41  return VuoText_make("\t");
42  else if( code == VuoControlCode_Space )
43  return VuoText_make(" ");
44  else if( code == VuoControlCode_EmSpace )
45  return VuoText_make("\u2003");
46  else if( code == VuoControlCode_EnSpace )
47  return VuoText_make("\u2002");
48 
49  return VuoText_make("");
50 }
51 
60 {
61  const char *valueAsString = "";
62  if (json_object_get_type(js) == json_type_string)
63  valueAsString = json_object_get_string(js);
64 
65  VuoControlCode value = VuoControlCode_NewLineUnix;
66 
67  if(strcmp(valueAsString, "newline-unix") == 0)
68  value = VuoControlCode_NewLineUnix;
69  else if(strcmp(valueAsString, "newline-windows") == 0)
70  value = VuoControlCode_NewLineWindows;
71  else if(strcmp(valueAsString, "newline-macos9") == 0)
72  value = VuoControlCode_NewLineMacOS9;
73  else if(strcmp(valueAsString, "tab") == 0)
74  value = VuoControlCode_Tab;
75  else if(strcmp(valueAsString, "space") == 0)
76  value = VuoControlCode_Space;
77  else if(strcmp(valueAsString, "em-space") == 0)
78  value = VuoControlCode_EmSpace;
79  else if(strcmp(valueAsString, "en-space") == 0)
80  value = VuoControlCode_EnSpace;
81 
82  return value;
83 }
84 
89 {
90  char *valueAsString = "newline-unix";
91 
92  if(value == VuoControlCode_NewLineUnix)
93  valueAsString = "newline-unix";
94  else if(value == VuoControlCode_NewLineWindows)
95  valueAsString = "newline-windows";
96  else if(value == VuoControlCode_NewLineMacOS9)
97  valueAsString = "newline-macos9";
98  else if(value == VuoControlCode_Tab)
99  valueAsString = "tab";
100  else if(value == VuoControlCode_Space)
101  valueAsString = "space";
102  else if(value == VuoControlCode_EmSpace)
103  valueAsString = "em-space";
104  else if(value == VuoControlCode_EnSpace)
105  valueAsString = "en-space";
106 
107  return json_object_new_string(valueAsString);
108 }
109 
114 {
116 
117  VuoListAppendValue_VuoControlCode(l, VuoControlCode_NewLineUnix);
118  VuoListAppendValue_VuoControlCode(l, VuoControlCode_NewLineWindows);
119  VuoListAppendValue_VuoControlCode(l, VuoControlCode_NewLineMacOS9);
120 
121  // Sorted by ascending width.
122  VuoListAppendValue_VuoControlCode(l, VuoControlCode_Space);
123  VuoListAppendValue_VuoControlCode(l, VuoControlCode_EnSpace);
124  VuoListAppendValue_VuoControlCode(l, VuoControlCode_EmSpace);
125  VuoListAppendValue_VuoControlCode(l, VuoControlCode_Tab);
126 
127  return l;
128 }
129 
134 {
135  char *valueAsString = "New Line (Unix + macOS)";
136 
137  if(value == VuoControlCode_NewLineWindows)
138  valueAsString = "New Line (Windows)";
139  else if(value == VuoControlCode_NewLineMacOS9)
140  valueAsString = "New Line (Mac OS 9)";
141  else if(value == VuoControlCode_Tab)
142  valueAsString = "Tab";
143  else if(value == VuoControlCode_Space)
144  valueAsString = "Space";
145  else if(value == VuoControlCode_EmSpace)
146  valueAsString = "Em Space";
147  else if(value == VuoControlCode_EnSpace)
148  valueAsString = "En Space";
149 
150  return strdup(valueAsString);
151 }
152 
156 bool VuoControlCode_areEqual(const VuoControlCode valueA, const VuoControlCode valueB)
157 {
158  return valueA == valueB;
159 }
160 
165 {
166  return valueA < valueB;
167 }
168