Browse code

Renamed Project to MulleScionist. Added output from mulle-scion in another view, which is moar convenient. Also reinstated the line numbering.

Nat! authored on 19/04/2014 00:10:00
Showing 11 changed files
1 1
similarity index 79%
2 2
rename from MulleScionDrake.xcodeproj/project.pbxproj
3 3
rename to MulleScionist.xcodeproj/project.pbxproj
... ...
@@ -7,6 +7,19 @@
7 7
 	objects = {
8 8
 
9 9
 /* Begin PBXAggregateTarget section */
10
+		41648E7618FFDDED00FF1A6A /* All */ = {
11
+			isa = PBXAggregateTarget;
12
+			buildConfigurationList = 41648E7718FFDDED00FF1A6A /* Build configuration list for PBXAggregateTarget "All" */;
13
+			buildPhases = (
14
+			);
15
+			dependencies = (
16
+				41648E7D18FFDE0200FF1A6A /* PBXTargetDependency */,
17
+				41648E7F18FFDE0200FF1A6A /* PBXTargetDependency */,
18
+				41648E8118FFDE0200FF1A6A /* PBXTargetDependency */,
19
+			);
20
+			name = All;
21
+			productName = All;
22
+		};
10 23
 		41741AD4182EC0440065E5FD /* grab UKSyntaxColoredTextDocument from github */ = {
11 24
 			isa = PBXAggregateTarget;
12 25
 			buildConfigurationList = 41741AD5182EC0440065E5FD /* Build configuration list for PBXAggregateTarget "grab UKSyntaxColoredTextDocument from github" */;
... ...
@@ -37,12 +50,13 @@
37 37
 		413AFCAD183B8B480055F936 /* default.plist in Resources */ = {isa = PBXBuildFile; fileRef = 413AFCAC183B8B480055F936 /* default.plist */; };
38 38
 		413AFCAF183B8C170055F936 /* default.scion in Resources */ = {isa = PBXBuildFile; fileRef = 413AFCAE183B8C170055F936 /* default.scion */; };
39 39
 		413ECAB51842D580006E14D6 /* mulle-scion.icns in Resources */ = {isa = PBXBuildFile; fileRef = 413ECAB41842D580006E14D6 /* mulle-scion.icns */; };
40
+		41648EA41900076F00FF1A6A /* NSTask+MullePATH.m in Sources */ = {isa = PBXBuildFile; fileRef = 41648EA31900076F00FF1A6A /* NSTask+MullePATH.m */; };
40 41
 		41741AD0182EB8C80065E5FD /* mulle.icns in Resources */ = {isa = PBXBuildFile; fileRef = 41741ACF182EB8C80065E5FD /* mulle.icns */; };
41 42
 		41741AD3182EBA1C0065E5FD /* MulleScionSyntax.plist in Resources */ = {isa = PBXBuildFile; fileRef = 41741AD1182EB90F0065E5FD /* MulleScionSyntax.plist */; };
42 43
 		F487F4B8141EADEF0093D633 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F487F4B7141EADEF0093D633 /* main.m */; };
43
-		F487F4BF141EADEF0093D633 /* MulleScionDrakeDokument.m in Sources */ = {isa = PBXBuildFile; fileRef = F487F4BE141EADEF0093D633 /* MulleScionDrakeDokument.m */; };
44
+		F487F4BF141EADEF0093D633 /* MulleScionistDokument.m in Sources */ = {isa = PBXBuildFile; fileRef = F487F4BE141EADEF0093D633 /* MulleScionistDokument.m */; };
44 45
 		F487F4D2141EAE730093D633 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = F487F4D0141EAE730093D633 /* MainMenu.xib */; };
45
-		F487F4D3141EAE730093D633 /* MulleScionDrakeDokument.xib in Resources */ = {isa = PBXBuildFile; fileRef = F487F4D1141EAE730093D633 /* MulleScionDrakeDokument.xib */; };
46
+		F487F4D3141EAE730093D633 /* MulleScionistDokument.xib in Resources */ = {isa = PBXBuildFile; fileRef = F487F4D1141EAE730093D633 /* MulleScionistDokument.xib */; };
46 47
 		F487F4DB141EAE910093D633 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = F487F4D5141EAE910093D633 /* Credits.rtf */; };
47 48
 		F487F4DD141EAE910093D633 /* SyntaxColorDefaults.plist in Resources */ = {isa = PBXBuildFile; fileRef = F487F4D8141EAE910093D633 /* SyntaxColorDefaults.plist */; };
48 49
 		F487F4E6141EAEA10093D633 /* MarkerLineNumberView.m in Sources */ = {isa = PBXBuildFile; fileRef = F487F4E1141EAEA10093D633 /* MarkerLineNumberView.m */; };
... ...
@@ -58,44 +72,59 @@
58 58
 		F487F503141EAEAC0093D633 /* UKSyntaxColoredTextViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F487F4F9141EAEAC0093D633 /* UKSyntaxColoredTextViewController.m */; };
59 59
 		F487F504141EAEAC0093D633 /* UKTextDocGoToBox.m in Sources */ = {isa = PBXBuildFile; fileRef = F487F4FB141EAEAC0093D633 /* UKTextDocGoToBox.m */; };
60 60
 		F487F506141EAF8A0093D633 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F487F505141EAF8A0093D633 /* WebKit.framework */; };
61
-		F487F535141EB2560093D633 /* MulleScionDrakeApplicationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F487F534141EB2560093D633 /* MulleScionDrakeApplicationDelegate.m */; };
61
+		F487F535141EB2560093D633 /* MulleScionistAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F487F534141EB2560093D633 /* MulleScionistAppDelegate.m */; };
62 62
 /* End PBXBuildFile section */
63 63
 
64 64
 /* Begin PBXContainerItemProxy section */
65
-		41741AD9182EC09B0065E5FD /* PBXContainerItemProxy */ = {
65
+		41648E7C18FFDE0200FF1A6A /* PBXContainerItemProxy */ = {
66
+			isa = PBXContainerItemProxy;
67
+			containerPortal = F487F49E141EADEF0093D633 /* Project object */;
68
+			proxyType = 1;
69
+			remoteGlobalIDString = F487F4A6141EADEF0093D633;
70
+			remoteInfo = MulleScionDrake;
71
+		};
72
+		41648E7E18FFDE0200FF1A6A /* PBXContainerItemProxy */ = {
66 73
 			isa = PBXContainerItemProxy;
67 74
 			containerPortal = F487F49E141EADEF0093D633 /* Project object */;
68 75
 			proxyType = 1;
69 76
 			remoteGlobalIDString = 41741AD4182EC0440065E5FD;
70 77
 			remoteInfo = "grab UKSyntaxColoredTextDocument from github";
71 78
 		};
72
-		41741AE318303BDC0065E5FD /* PBXContainerItemProxy */ = {
79
+		41648E8018FFDE0200FF1A6A /* PBXContainerItemProxy */ = {
73 80
 			isa = PBXContainerItemProxy;
74 81
 			containerPortal = F487F49E141EADEF0093D633 /* Project object */;
75 82
 			proxyType = 1;
76 83
 			remoteGlobalIDString = 41741ADE18303AFC0065E5FD;
77 84
 			remoteInfo = "grab MulleScion from github";
78 85
 		};
86
+		41648E8218FFDE1800FF1A6A /* PBXContainerItemProxy */ = {
87
+			isa = PBXContainerItemProxy;
88
+			containerPortal = F487F49E141EADEF0093D633 /* Project object */;
89
+			proxyType = 1;
90
+			remoteGlobalIDString = 41741AD4182EC0440065E5FD;
91
+			remoteInfo = "grab UKSyntaxColoredTextDocument from github";
92
+		};
79 93
 /* End PBXContainerItemProxy section */
80 94
 
81 95
 /* Begin PBXFileReference section */
82
-		4123C77F183D371E0019FF34 /* mulle-scion */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = "mulle-scion"; sourceTree = "<group>"; };
96
+		4123C77F183D371E0019FF34 /* mulle-scion */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = "mulle-scion"; path = "/usr/local/bin/mulle-scion"; sourceTree = "<absolute>"; };
83 97
 		413AFC80183B806E0055F936 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
84
-		413AFC81183B806E0055F936 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
85 98
 		413AFCAC183B8B480055F936 /* default.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = default.plist; sourceTree = "<group>"; };
86 99
 		413AFCAE183B8C170055F936 /* default.scion */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = default.scion; sourceTree = "<group>"; };
87 100
 		413ECAB41842D580006E14D6 /* mulle-scion.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "mulle-scion.icns"; sourceTree = "<group>"; };
101
+		41648EA21900076F00FF1A6A /* NSTask+MullePATH.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSTask+MullePATH.h"; sourceTree = "<group>"; };
102
+		41648EA31900076F00FF1A6A /* NSTask+MullePATH.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSTask+MullePATH.m"; sourceTree = "<group>"; };
88 103
 		41741ACF182EB8C80065E5FD /* mulle.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = mulle.icns; sourceTree = "<group>"; };
89 104
 		41741AD1182EB90F0065E5FD /* MulleScionSyntax.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = MulleScionSyntax.plist; sourceTree = "<group>"; };
90 105
 		41C5DE71183CBCD200EAD1C5 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = text; path = README.md; sourceTree = SOURCE_ROOT; };
91
-		F487F4A7141EADEF0093D633 /* MulleScionDrake.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MulleScionDrake.app; sourceTree = BUILT_PRODUCTS_DIR; };
106
+		F487F4A7141EADEF0093D633 /* MulleScionist.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MulleScionist.app; sourceTree = BUILT_PRODUCTS_DIR; };
92 107
 		F487F4AE141EADEF0093D633 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
93
-		F487F4B3141EADEF0093D633 /* MulleScionDrake-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "MulleScionDrake-Info.plist"; path = "../MulleScionDrake-Info.plist"; sourceTree = "<group>"; };
108
+		F487F4B3141EADEF0093D633 /* MulleScionist-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "MulleScionist-Info.plist"; path = "../MulleScionist-Info.plist"; sourceTree = "<group>"; };
94 109
 		F487F4B7141EADEF0093D633 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
95
-		F487F4BD141EADEF0093D633 /* MulleScionDrakeDokument.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MulleScionDrakeDokument.h; sourceTree = "<group>"; };
96
-		F487F4BE141EADEF0093D633 /* MulleScionDrakeDokument.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MulleScionDrakeDokument.m; sourceTree = "<group>"; };
110
+		F487F4BD141EADEF0093D633 /* MulleScionistDokument.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MulleScionistDokument.h; sourceTree = "<group>"; };
111
+		F487F4BE141EADEF0093D633 /* MulleScionistDokument.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MulleScionistDokument.m; sourceTree = "<group>"; };
97 112
 		F487F4D0141EAE730093D633 /* MainMenu.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainMenu.xib; sourceTree = "<group>"; };
98
-		F487F4D1141EAE730093D633 /* MulleScionDrakeDokument.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MulleScionDrakeDokument.xib; sourceTree = "<group>"; };
113
+		F487F4D1141EAE730093D633 /* MulleScionistDokument.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MulleScionistDokument.xib; sourceTree = "<group>"; };
99 114
 		F487F4D5141EAE910093D633 /* Credits.rtf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.rtf; path = Credits.rtf; sourceTree = "<group>"; };
100 115
 		F487F4D8141EAE910093D633 /* SyntaxColorDefaults.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = SyntaxColorDefaults.plist; sourceTree = "<group>"; };
101 116
 		F487F4E0141EAEA10093D633 /* MarkerLineNumberView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MarkerLineNumberView.h; sourceTree = "<group>"; };
... ...
@@ -123,8 +152,8 @@
123 123
 		F487F4FA141EAEAC0093D633 /* UKTextDocGoToBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UKTextDocGoToBox.h; sourceTree = "<group>"; };
124 124
 		F487F4FB141EAEAC0093D633 /* UKTextDocGoToBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UKTextDocGoToBox.m; sourceTree = "<group>"; };
125 125
 		F487F505141EAF8A0093D633 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /System/Library/Frameworks/WebKit.framework; sourceTree = "<absolute>"; };
126
-		F487F533141EB2560093D633 /* MulleScionDrakeApplicationDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MulleScionDrakeApplicationDelegate.h; sourceTree = "<group>"; };
127
-		F487F534141EB2560093D633 /* MulleScionDrakeApplicationDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MulleScionDrakeApplicationDelegate.m; sourceTree = "<group>"; };
126
+		F487F533141EB2560093D633 /* MulleScionistAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MulleScionistAppDelegate.h; sourceTree = "<group>"; };
127
+		F487F534141EB2560093D633 /* MulleScionistAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MulleScionistAppDelegate.m; sourceTree = "<group>"; };
128 128
 /* End PBXFileReference section */
129 129
 
130 130
 /* Begin PBXFrameworksBuildPhase section */
... ...
@@ -143,7 +172,7 @@
143 143
 		41741ACE182EB7E80065E5FD /* Supporting Files */ = {
144 144
 			isa = PBXGroup;
145 145
 			children = (
146
-				F487F4B3141EADEF0093D633 /* MulleScionDrake-Info.plist */,
146
+				F487F4B3141EADEF0093D633 /* MulleScionist-Info.plist */,
147 147
 			);
148 148
 			name = "Supporting Files";
149 149
 			path = src/Resources;
... ...
@@ -152,7 +181,7 @@
152 152
 		F487F49C141EADEF0093D633 = {
153 153
 			isa = PBXGroup;
154 154
 			children = (
155
-				F487F4B1141EADEF0093D633 /* MulleScionDrake */,
155
+				F487F4B1141EADEF0093D633 /* MulleScionist */,
156 156
 				F487F4B2141EADEF0093D633 /* Resources */,
157 157
 				41741ACE182EB7E80065E5FD /* Supporting Files */,
158 158
 				F487F4AA141EADEF0093D633 /* Frameworks */,
... ...
@@ -163,7 +192,7 @@
163 163
 		F487F4A8141EADEF0093D633 /* Products */ = {
164 164
 			isa = PBXGroup;
165 165
 			children = (
166
-				F487F4A7141EADEF0093D633 /* MulleScionDrake.app */,
166
+				F487F4A7141EADEF0093D633 /* MulleScionist.app */,
167 167
 			);
168 168
 			name = Products;
169 169
 			sourceTree = "<group>";
... ...
@@ -171,26 +200,27 @@
171 171
 		F487F4AA141EADEF0093D633 /* Frameworks */ = {
172 172
 			isa = PBXGroup;
173 173
 			children = (
174
-				F487F4AE141EADEF0093D633 /* AppKit.framework */,
175
-				413AFC81183B806E0055F936 /* CoreData.framework */,
176 174
 				413AFC80183B806E0055F936 /* Foundation.framework */,
175
+				F487F4AE141EADEF0093D633 /* AppKit.framework */,
177 176
 				F487F505141EAF8A0093D633 /* WebKit.framework */,
178 177
 			);
179 178
 			name = Frameworks;
180 179
 			sourceTree = "<group>";
181 180
 		};
182
-		F487F4B1141EADEF0093D633 /* MulleScionDrake */ = {
181
+		F487F4B1141EADEF0093D633 /* MulleScionist */ = {
183 182
 			isa = PBXGroup;
184 183
 			children = (
185 184
 				F487F4B7141EADEF0093D633 /* main.m */,
186
-				F487F533141EB2560093D633 /* MulleScionDrakeApplicationDelegate.h */,
187
-				F487F534141EB2560093D633 /* MulleScionDrakeApplicationDelegate.m */,
188
-				F487F4BD141EADEF0093D633 /* MulleScionDrakeDokument.h */,
189
-				F487F4BE141EADEF0093D633 /* MulleScionDrakeDokument.m */,
185
+				F487F533141EB2560093D633 /* MulleScionistAppDelegate.h */,
186
+				F487F534141EB2560093D633 /* MulleScionistAppDelegate.m */,
187
+				F487F4BD141EADEF0093D633 /* MulleScionistDokument.h */,
188
+				F487F4BE141EADEF0093D633 /* MulleScionistDokument.m */,
189
+				41648EA21900076F00FF1A6A /* NSTask+MullePATH.h */,
190
+				41648EA31900076F00FF1A6A /* NSTask+MullePATH.m */,
190 191
 				F487F4E9141EAEAC0093D633 /* UKSyntaxColoredTextDocument */,
191 192
 				F487F4DF141EAEA10093D633 /* LineNumbering */,
192 193
 			);
193
-			name = MulleScionDrake;
194
+			name = MulleScionist;
194 195
 			path = src;
195 196
 			sourceTree = "<group>";
196 197
 		};
... ...
@@ -203,7 +233,7 @@
203 203
 				41741AD1182EB90F0065E5FD /* MulleScionSyntax.plist */,
204 204
 				F487F4D8141EAE910093D633 /* SyntaxColorDefaults.plist */,
205 205
 				F487F4D0141EAE730093D633 /* MainMenu.xib */,
206
-				F487F4D1141EAE730093D633 /* MulleScionDrakeDokument.xib */,
206
+				F487F4D1141EAE730093D633 /* MulleScionistDokument.xib */,
207 207
 				413AFCAE183B8C170055F936 /* default.scion */,
208 208
 				413AFCAC183B8B480055F936 /* default.plist */,
209 209
 				41741ACF182EB8C80065E5FD /* mulle.icns */,
... ...
@@ -255,9 +285,9 @@
255 255
 /* End PBXGroup section */
256 256
 
257 257
 /* Begin PBXNativeTarget section */
258
-		F487F4A6141EADEF0093D633 /* MulleScionDrake */ = {
258
+		F487F4A6141EADEF0093D633 /* MulleScionist */ = {
259 259
 			isa = PBXNativeTarget;
260
-			buildConfigurationList = F487F4C8141EADEF0093D633 /* Build configuration list for PBXNativeTarget "MulleScionDrake" */;
260
+			buildConfigurationList = F487F4C8141EADEF0093D633 /* Build configuration list for PBXNativeTarget "MulleScionist" */;
261 261
 			buildPhases = (
262 262
 				F487F4A3141EADEF0093D633 /* Sources */,
263 263
 				F487F4A4141EADEF0093D633 /* Frameworks */,
... ...
@@ -266,12 +296,11 @@
266 266
 			buildRules = (
267 267
 			);
268 268
 			dependencies = (
269
-				41741AE418303BDC0065E5FD /* PBXTargetDependency */,
270
-				41741ADA182EC09B0065E5FD /* PBXTargetDependency */,
269
+				41648E8318FFDE1800FF1A6A /* PBXTargetDependency */,
271 270
 			);
272
-			name = MulleScionDrake;
271
+			name = MulleScionist;
273 272
 			productName = ManDrake;
274
-			productReference = F487F4A7141EADEF0093D633 /* MulleScionDrake.app */;
273
+			productReference = F487F4A7141EADEF0093D633 /* MulleScionist.app */;
275 274
 			productType = "com.apple.product-type.application";
276 275
 		};
277 276
 /* End PBXNativeTarget section */
... ...
@@ -282,7 +311,7 @@
282 282
 			attributes = {
283 283
 				LastUpgradeCheck = 0410;
284 284
 			};
285
-			buildConfigurationList = F487F4A1141EADEF0093D633 /* Build configuration list for PBXProject "MulleScionDrake" */;
285
+			buildConfigurationList = F487F4A1141EADEF0093D633 /* Build configuration list for PBXProject "MulleScionist" */;
286 286
 			compatibilityVersion = "Xcode 3.2";
287 287
 			developmentRegion = English;
288 288
 			hasScannedForEncodings = 0;
... ...
@@ -294,7 +323,8 @@
294 294
 			projectDirPath = "";
295 295
 			projectRoot = "";
296 296
 			targets = (
297
-				F487F4A6141EADEF0093D633 /* MulleScionDrake */,
297
+				41648E7618FFDDED00FF1A6A /* All */,
298
+				F487F4A6141EADEF0093D633 /* MulleScionist */,
298 299
 				41741AD4182EC0440065E5FD /* grab UKSyntaxColoredTextDocument from github */,
299 300
 				41741ADE18303AFC0065E5FD /* grab MulleScion from github */,
300 301
 			);
... ...
@@ -308,7 +338,7 @@
308 308
 			files = (
309 309
 				4123C780183D371E0019FF34 /* mulle-scion in Resources */,
310 310
 				F487F4D2141EAE730093D633 /* MainMenu.xib in Resources */,
311
-				F487F4D3141EAE730093D633 /* MulleScionDrakeDokument.xib in Resources */,
311
+				F487F4D3141EAE730093D633 /* MulleScionistDokument.xib in Resources */,
312 312
 				413AFCAF183B8C170055F936 /* default.scion in Resources */,
313 313
 				41741AD3182EBA1C0065E5FD /* MulleScionSyntax.plist in Resources */,
314 314
 				413ECAB51842D580006E14D6 /* mulle-scion.icns in Resources */,
... ...
@@ -360,7 +390,7 @@
360 360
 			buildActionMask = 2147483647;
361 361
 			files = (
362 362
 				F487F4B8141EADEF0093D633 /* main.m in Sources */,
363
-				F487F4BF141EADEF0093D633 /* MulleScionDrakeDokument.m in Sources */,
363
+				F487F4BF141EADEF0093D633 /* MulleScionistDokument.m in Sources */,
364 364
 				F487F4E6141EAEA10093D633 /* MarkerLineNumberView.m in Sources */,
365 365
 				F487F4E7141EAEA10093D633 /* NoodleLineNumberMarker.m in Sources */,
366 366
 				F487F4E8141EAEA10093D633 /* NoodleLineNumberView.m in Sources */,
... ...
@@ -368,31 +398,56 @@
368 368
 				F487F4FD141EAEAC0093D633 /* NSMenu+DeepSearch.m in Sources */,
369 369
 				F487F4FE141EAEAC0093D633 /* NSScanner+SkipUpToCharset.m in Sources */,
370 370
 				F487F4FF141EAEAC0093D633 /* UKSCTDColorWellPrefsController.m in Sources */,
371
+				41648EA41900076F00FF1A6A /* NSTask+MullePATH.m in Sources */,
371 372
 				F487F500141EAEAC0093D633 /* UKSCTDGradientBar.m in Sources */,
372 373
 				F487F501141EAEAC0093D633 /* UKSCTDUserIdentifiersPrefsController.m in Sources */,
373 374
 				F487F502141EAEAC0093D633 /* UKSyntaxColoredTextDocument.m in Sources */,
374 375
 				F487F503141EAEAC0093D633 /* UKSyntaxColoredTextViewController.m in Sources */,
375 376
 				F487F504141EAEAC0093D633 /* UKTextDocGoToBox.m in Sources */,
376
-				F487F535141EB2560093D633 /* MulleScionDrakeApplicationDelegate.m in Sources */,
377
+				F487F535141EB2560093D633 /* MulleScionistAppDelegate.m in Sources */,
377 378
 			);
378 379
 			runOnlyForDeploymentPostprocessing = 0;
379 380
 		};
380 381
 /* End PBXSourcesBuildPhase section */
381 382
 
382 383
 /* Begin PBXTargetDependency section */
383
-		41741ADA182EC09B0065E5FD /* PBXTargetDependency */ = {
384
+		41648E7D18FFDE0200FF1A6A /* PBXTargetDependency */ = {
385
+			isa = PBXTargetDependency;
386
+			target = F487F4A6141EADEF0093D633 /* MulleScionist */;
387
+			targetProxy = 41648E7C18FFDE0200FF1A6A /* PBXContainerItemProxy */;
388
+		};
389
+		41648E7F18FFDE0200FF1A6A /* PBXTargetDependency */ = {
384 390
 			isa = PBXTargetDependency;
385 391
 			target = 41741AD4182EC0440065E5FD /* grab UKSyntaxColoredTextDocument from github */;
386
-			targetProxy = 41741AD9182EC09B0065E5FD /* PBXContainerItemProxy */;
392
+			targetProxy = 41648E7E18FFDE0200FF1A6A /* PBXContainerItemProxy */;
387 393
 		};
388
-		41741AE418303BDC0065E5FD /* PBXTargetDependency */ = {
394
+		41648E8118FFDE0200FF1A6A /* PBXTargetDependency */ = {
389 395
 			isa = PBXTargetDependency;
390 396
 			target = 41741ADE18303AFC0065E5FD /* grab MulleScion from github */;
391
-			targetProxy = 41741AE318303BDC0065E5FD /* PBXContainerItemProxy */;
397
+			targetProxy = 41648E8018FFDE0200FF1A6A /* PBXContainerItemProxy */;
398
+		};
399
+		41648E8318FFDE1800FF1A6A /* PBXTargetDependency */ = {
400
+			isa = PBXTargetDependency;
401
+			target = 41741AD4182EC0440065E5FD /* grab UKSyntaxColoredTextDocument from github */;
402
+			targetProxy = 41648E8218FFDE1800FF1A6A /* PBXContainerItemProxy */;
392 403
 		};
393 404
 /* End PBXTargetDependency section */
394 405
 
395 406
 /* Begin XCBuildConfiguration section */
407
+		41648E7818FFDDED00FF1A6A /* Debug */ = {
408
+			isa = XCBuildConfiguration;
409
+			buildSettings = {
410
+				PRODUCT_NAME = "$(TARGET_NAME)";
411
+			};
412
+			name = Debug;
413
+		};
414
+		41648E7918FFDDED00FF1A6A /* Release */ = {
415
+			isa = XCBuildConfiguration;
416
+			buildSettings = {
417
+				PRODUCT_NAME = "$(TARGET_NAME)";
418
+			};
419
+			name = Release;
420
+		};
396 421
 		41741AD6182EC0440065E5FD /* Debug */ = {
397 422
 			isa = XCBuildConfiguration;
398 423
 			buildSettings = {
... ...
@@ -459,8 +514,10 @@
459 459
 		F487F4C9141EADEF0093D633 /* Debug */ = {
460 460
 			isa = XCBuildConfiguration;
461 461
 			buildSettings = {
462
-				INFOPLIST_FILE = "src/MulleScionDrake-Info.plist";
463
-				PRODUCT_NAME = MulleScionDrake;
462
+				DYLIB_COMPATIBILITY_VERSION = 0.18.0;
463
+				DYLIB_CURRENT_VERSION = 0.18.48;
464
+				INFOPLIST_FILE = "src/MulleScionist-Info.plist";
465
+				PRODUCT_NAME = MulleScionist;
464 466
 				WRAPPER_EXTENSION = app;
465 467
 			};
466 468
 			name = Debug;
... ...
@@ -468,8 +525,10 @@
468 468
 		F487F4CA141EADEF0093D633 /* Release */ = {
469 469
 			isa = XCBuildConfiguration;
470 470
 			buildSettings = {
471
-				INFOPLIST_FILE = "src/MulleScionDrake-Info.plist";
472
-				PRODUCT_NAME = MulleScionDrake;
471
+				DYLIB_COMPATIBILITY_VERSION = 0.18.0;
472
+				DYLIB_CURRENT_VERSION = 0.18.48;
473
+				INFOPLIST_FILE = "src/MulleScionist-Info.plist";
474
+				PRODUCT_NAME = MulleScionist;
473 475
 				WRAPPER_EXTENSION = app;
474 476
 			};
475 477
 			name = Release;
... ...
@@ -477,6 +536,15 @@
477 477
 /* End XCBuildConfiguration section */
478 478
 
479 479
 /* Begin XCConfigurationList section */
480
+		41648E7718FFDDED00FF1A6A /* Build configuration list for PBXAggregateTarget "All" */ = {
481
+			isa = XCConfigurationList;
482
+			buildConfigurations = (
483
+				41648E7818FFDDED00FF1A6A /* Debug */,
484
+				41648E7918FFDDED00FF1A6A /* Release */,
485
+			);
486
+			defaultConfigurationIsVisible = 0;
487
+			defaultConfigurationName = Release;
488
+		};
480 489
 		41741AD5182EC0440065E5FD /* Build configuration list for PBXAggregateTarget "grab UKSyntaxColoredTextDocument from github" */ = {
481 490
 			isa = XCConfigurationList;
482 491
 			buildConfigurations = (
... ...
@@ -495,7 +563,7 @@
495 495
 			defaultConfigurationIsVisible = 0;
496 496
 			defaultConfigurationName = Release;
497 497
 		};
498
-		F487F4A1141EADEF0093D633 /* Build configuration list for PBXProject "MulleScionDrake" */ = {
498
+		F487F4A1141EADEF0093D633 /* Build configuration list for PBXProject "MulleScionist" */ = {
499 499
 			isa = XCConfigurationList;
500 500
 			buildConfigurations = (
501 501
 				F487F4C6141EADEF0093D633 /* Debug */,
... ...
@@ -504,7 +572,7 @@
504 504
 			defaultConfigurationIsVisible = 0;
505 505
 			defaultConfigurationName = Release;
506 506
 		};
507
-		F487F4C8141EADEF0093D633 /* Build configuration list for PBXNativeTarget "MulleScionDrake" */ = {
507
+		F487F4C8141EADEF0093D633 /* Build configuration list for PBXNativeTarget "MulleScionist" */ = {
508 508
 			isa = XCConfigurationList;
509 509
 			buildConfigurations = (
510 510
 				F487F4C9141EADEF0093D633 /* Debug */,
... ...
@@ -25,9 +25,8 @@ Special thanks:
25 25
 
26 26
 > Uli Kusterer for syntax coloring
27 27
 > 
28
-> The anonymous author of NoodleLineView
28
+> Paul Kim for NoodleLineView
29 29
 > 
30
-> Dirk Engling
31
-
30
+> Dirk Engling 
32 31
 
33 32
 
34 33
similarity index 92%
35 34
rename from src/MulleScionDrake-Info.plist
36 35
rename to src/MulleScionist-Info.plist
... ...
@@ -18,7 +18,7 @@
18 18
 			<key>CFBundleTypeRole</key>
19 19
 			<string>Editor</string>
20 20
 			<key>NSDocumentClass</key>
21
-			<string>MulleScionDrakeDokument</string>
21
+			<string>MulleScionistDokument</string>
22 22
 		</dict>
23 23
 	</array>
24 24
 	<key>CFBundleExecutable</key>
... ...
@@ -26,7 +26,7 @@
26 26
 	<key>CFBundleIconFile</key>
27 27
 	<string>mulle-scion.icns</string>
28 28
 	<key>CFBundleIdentifier</key>
29
-	<string>com.mulle-kybernetik.software.MulleScionDrake</string>
29
+	<string>com.mulle-kybernetik.software.${PRODUCT_NAME}</string>
30 30
 	<key>CFBundleInfoDictionaryVersion</key>
31 31
 	<string>6.0</string>
32 32
 	<key>CFBundleName</key>
33 33
similarity index 91%
34 34
rename from src/MulleScionDrakeApplicationDelegate.h
35 35
rename to src/MulleScionistAppDelegate.h
... ...
@@ -21,7 +21,7 @@
21 21
  */
22 22
 #import <AppKit/AppKit.h>
23 23
 
24
-@interface MulleScionDrakeApplicationDelegate : NSObject <NSApplicationDelegate>
24
+@interface MulleScionistAppDelegate : NSObject <NSApplicationDelegate>
25 25
 
26 26
 + (void)initialize;
27 27
 
28 28
similarity index 82%
29 29
rename from src/MulleScionDrakeApplicationDelegate.m
30 30
rename to src/MulleScionistAppDelegate.m
... ...
@@ -18,21 +18,11 @@
18 18
  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 19
  
20 20
  */
21
-#import "MulleScionDrakeApplicationDelegate.h"
21
+#import "MulleScionistAppDelegate.h"
22 22
 
23
-@implementation MulleScionDrakeApplicationDelegate
23
+@implementation MulleScionistAppDelegate
24 24
 
25
-- (id)init
26
-{
27
-    self = [super init];
28
-    if (self) {
29
-        // Initialization code here.
30
-    }
31
-    
32
-    return self;
33
-}
34
-
35
-+ (void)initialize
25
++ (void) initialize
36 26
 {
37 27
     // create and register the user defaults here if none exists
38 28
     NSMutableDictionary *defaultPrefs = [NSMutableDictionary dictionary];
39 29
similarity index 53%
40 30
rename from src/MulleScionDrakeDokument.h
41 31
rename to src/MulleScionistDokument.h
... ...
@@ -23,51 +23,37 @@
23 23
 #import <WebKit/WebKit.h>
24 24
 
25 25
 @class NoodleLineNumberView;
26
-@interface FakeDocument : NSDocument
26
+
27
+@interface MulleScionistDokument : UKSyntaxColoredTextDocument
27 28
 {
28
-   IBOutlet NSTextView*				textView;					// The text view used for editing code.
29
-   IBOutlet NSProgressIndicator*		progress;					// Progress indicator while coloring syntax.
30
-   IBOutlet NSTextField*				status;						// Status display for things like syntax coloring or background syntax checks.
31
-   IBOutlet UKTextDocGoToBox*			gotoPanel;					// Controller for our "go to line" panel.
32
-   IBOutlet NSImageView*				selectionKindImage;			// Image indicating whether it's an insertion mark or a selection range.
33
-   NSString*							sourceCode;					// Temp. storage for data from file until NIB has been read.
34
-   UKSyntaxColoredTextViewController*	syntaxColoringController;	// This guy actually does the work of coloring the field.
35
-   IBOutlet WebView        *webView;
36
-   IBOutlet id             refreshTypePopupButton;
37
-   IBOutlet id             refreshProgressIndicator;
38
-   
39
-   IBOutlet NSScrollView   *scrollView;
40
-   NoodleLineNumberView    *lineNumberView;
41 29
    IBOutlet NSWindow       *syntaxCheckerWindow;
42
-   IBOutlet id             syntaxCheckResultTextField;
30
+
31
+   IBOutlet WebView        *webView;
43 32
    
44 33
    IBOutlet NSTextView     *plistTextView;
45
-   NSPoint                 currentScrollPosition;
46
-   NSTimer                 *refreshTimer;
47
-   id                      dataSource_;
48
-}
49
-@end
34
+   IBOutlet NSTextView     *logTextView;
35
+   IBOutlet NSButton       *traceEnabledButton;
50 36
 
51
-@interface MulleScionDrakeDokument : UKSyntaxColoredTextDocument
52
-{
53
-   IBOutlet WebView        *webView;
37
+   IBOutlet id             syntaxCheckResultTextField;
54 38
    IBOutlet id             refreshTypePopupButton;
55 39
    IBOutlet id             refreshProgressIndicator;
56 40
    
57
-   IBOutlet NSScrollView   *scrollView;
41
+   NSScrollView            *scrollView;
58 42
    NoodleLineNumberView    *lineNumberView;
59
-   IBOutlet NSWindow       *syntaxCheckerWindow;
60
-   IBOutlet id             syntaxCheckResultTextField;
61
-   
62
-   IBOutlet NSTextView     *plistTextView;
43
+
63 44
    NSPoint                 currentScrollPosition;
64 45
    NSTimer                 *refreshTimer;
65 46
    BOOL                    loadDefault_;
47
+   
48
+   NSString                *mulleScionDirPath_;
49
+   NSMutableDictionary     *environment_;
66 50
 }
67 51
 
52
+
68 53
 - (IBAction)refresh:(id)sender;
69 54
 - (IBAction)refreshChanged:(id)sender;
70 55
 //- (IBAction)makeTextLarger:(id)sender;
71 56
 //- (IBAction)makeTextSmaller:(id)sender;
72 57
 - (void)drawWebView;
73 58
 @end
59
+
74 60
similarity index 76%
75 61
rename from src/MulleScionDrakeDokument.m
76 62
rename to src/MulleScionistDokument.m
... ...
@@ -18,14 +18,15 @@
18 18
  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 19
  
20 20
  */
21
-#import "MulleScionDrakeDokument.h"
21
+#import "MulleScionistDokument.h"
22 22
 #import <Foundation/NSDebug.h>
23 23
 
24 24
 #import "UKSyntaxColoredTextViewController.H"
25 25
 #import "MarkerLineNumberView.h"
26
+#import "NSTask+MullePATH.h"
26 27
 
27 28
 
28
-@implementation MulleScionDrakeDokument
29
+@implementation MulleScionistDokument
29 30
 
30 31
 - (id)init
31 32
 {
... ...
@@ -74,19 +75,22 @@
74 74
 
75 75
 - (NSString *)windowNibName
76 76
 {
77
-    return @"MulleScionDrakeDokument";
77
+    return @"MulleScionistDokument";
78 78
 }
79 79
 
80 80
 - (void)windowControllerDidLoadNib:(NSWindowController *) aController
81 81
 {
82 82
    [self loadDefaultScionAndPlistIfNeeded];
83 83
    
84
-	// set up line numbering for text view
85
-	scrollView = [textView enclosingScrollView];
86
-	lineNumberView = [[MarkerLineNumberView alloc] initWithScrollView:scrollView];
87
-    [scrollView setVerticalRulerView:lineNumberView];
88
-    [scrollView setHasHorizontalRuler:NO];
89
-    [scrollView setHasVerticalRuler:YES];
84
+   // set up line numbering for text view
85
+   scrollView = [textView enclosingScrollView];
86
+   NSParameterAssert( scrollView);
87
+
88
+   lineNumberView = [[[MarkerLineNumberView alloc] initWithScrollView:scrollView] autorelease];
89
+   [scrollView setVerticalRulerView:lineNumberView];
90
+   [scrollView setHasHorizontalRuler:NO];
91
+   [scrollView setHasVerticalRuler:YES];
92
+   [scrollView setRulersVisible:YES];
90 93
    
91 94
    [textView setSmartInsertDeleteEnabled:YES];
92 95
    if( [textView respondsToSelector:@selector( setAutomaticQuoteSubstitutionEnabled:)])
... ...
@@ -95,20 +99,20 @@
95 95
       [textView setAutomaticDashSubstitutionEnabled:NO];
96 96
    if( [textView respondsToSelector:@selector( setAutomaticTextReplacementEnabled:)])
97 97
       [textView setAutomaticTextReplacementEnabled:NO];
98
-    [refreshTypePopupButton selectItemWithTitle: [[NSUserDefaults standardUserDefaults] objectForKey: @"Refresh"]];
99
-	
100
-	// Register for "text changed" notifications of the text storage:
101
-	[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(textDidChange:)
102
-												 name: NSTextStorageDidProcessEditingNotification
103
-											   object: [textView textStorage]];
104
-		
105
-    [super windowControllerDidLoadNib: aController];
98
+   [refreshTypePopupButton selectItemWithTitle: [[NSUserDefaults standardUserDefaults] objectForKey: @"Refresh"]];
99
+   
100
+   // Register for "text changed" notifications of the text storage:
101
+   [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(textDidChange:)
102
+                                                name: NSTextStorageDidProcessEditingNotification
103
+                                              object: [textView textStorage]];
104
+   
105
+   [super windowControllerDidLoadNib: aController];
106 106
 }
107 107
 
108 108
 -(void)dealloc
109 109
 {
110
-	[lineNumberView release];
111
-	[super dealloc];
110
+   [mulleScionDirPath_ release];
111
+   [super dealloc];
112 112
 }
113 113
 
114 114
 #pragma mark Web Preview
... ...
@@ -162,14 +166,16 @@
162 162
    NSPropertyListFormat   format;
163 163
    NSString               *cmdString;
164 164
    NSString               *mulleScionPath;
165
-   NSString               *mulleScionDirPath;
166 165
    NSString               *plistPath;
167 166
    id                     plist;
168 167
    
169
-   bundle = [NSBundle mainBundle];
170
-   //   catPath        = [bundle pathForResource: @"cat2html" ofType: NULL];
171
-   mulleScionPath    = [bundle pathForResource: @"mulle-scion" ofType: NULL];
172
-   mulleScionDirPath = [mulleScionPath stringByDeletingLastPathComponent];
168
+   if( ! mulleScionDirPath_)
169
+   {
170
+      bundle = [NSBundle mainBundle];
171
+   //   catPath         = [bundle pathForResource: @"cat2html" ofType: NULL];
172
+      mulleScionPath    = [bundle pathForResource: @"mulle-scion" ofType: NULL];
173
+      mulleScionDirPath_ = [[mulleScionPath stringByDeletingLastPathComponent] copy];
174
+   }
173 175
    
174 176
    plistPath = @"none";
175 177
    if( [plistString length])
... ...
@@ -200,37 +206,51 @@
200 200
    // give preference to "OS" mulle-scion, using included mulle-scion only as
201 201
    // a fallback
202 202
    //
203
-   cmdString = [NSString stringWithFormat: @"PATH=\"$PATH:%@\" mulle-scion /tmp/MulleScionDrakeTemp.scion %@ > /tmp/MulleScionDrakeTemp.html", mulleScionDirPath, plistPath];
203
+   cmdString = [NSString stringWithFormat: @"PATH=\"$PATH:/usr/local/bin:%@\" mulle-scion /tmp/MulleScionDrakeTemp.scion %@ > /tmp/MulleScionDrakeTemp.html", mulleScionDirPath_, plistPath];
204 204
    return( cmdString);
205 205
 }
206 206
 
207 207
 
208
-- (void)drawWebView
208
+- (void) drawWebView
209 209
 {
210
-   NSString *cmdString;
211
-   char     *s;
210
+   NSString    *cmdString;
211
+   NSString    *log;
212 212
    
213 213
    cmdString = [self commandStringWithTemplateString:[textView string]
214 214
                                   propertyListString:[plistTextView string]];
215 215
    if( ! cmdString)
216 216
       return;
217 217
    
218
-	// run the command
219
-   s = (char *) [cmdString cStringUsingEncoding: NSUTF8StringEncoding];
218
+   if( ! environment_)
219
+      environment_ = [[[NSProcessInfo processInfo] environment] mutableCopy];
220
+
221
+   if( [traceEnabledButton state] == NSOnState)
222
+   {
223
+      [environment_ setObject:@"egal"
224
+                       forKey:@"MulleScionTrace"];
225
+   }
226
+   else
227
+      [environment_ removeObjectForKey:@"MulleScionTrace"];
228
+   
229
+   // run the command
220 230
 #ifndef DEBUG
221 231
    if( NSDebugEnabled)
222 232
 #endif
223
-      NSLog( @"%s", s);
224
-   system( s);
225
-	
226
-	// get the current scroll position of the document view of the web view
227
-	NSScrollView *theScrollView = [[[[webView mainFrame] frameView] documentView] enclosingScrollView];
228
-	NSRect scrollViewBounds = [[theScrollView contentView] bounds];
229
-	currentScrollPosition=scrollViewBounds.origin; 	
230
-
231
-	// tell the web view to load the generated, local html file
232
-	[[webView mainFrame] loadRequest: [NSURLRequest requestWithURL: [NSURL fileURLWithPath: @"/tmp/MulleScionDrakeTemp.html"]]];
233
-	
233
+      NSLog( @"%@", cmdString);
234
+   log = [NSTask mulleSystem:cmdString
235
+                 environment:environment_
236
+             returningStderr:YES];
237
+   
238
+   [logTextView setString:log ? log : @"No errors"];
239
+   
240
+   // get the current scroll position of the document view of the web view
241
+   NSScrollView *theScrollView = [[[[webView mainFrame] frameView] documentView] enclosingScrollView];
242
+   NSRect scrollViewBounds = [[theScrollView contentView] bounds];
243
+   currentScrollPosition=scrollViewBounds.origin;
244
+   
245
+   // tell the web view to load the generated, local html file
246
+   [[webView mainFrame] loadRequest: [NSURLRequest requestWithURL: [NSURL fileURLWithPath: @"/tmp/MulleScionDrakeTemp.html"]]];
247
+   
234 248
 }
235 249
 
236 250
 // delegate method we receive when it's done loading the html file. 
237 251
new file mode 100644
... ...
@@ -0,0 +1,24 @@
0
+//
1
+//  NSTask+Path.h
2
+//  MulleScionDrake
3
+//
4
+//  Created by Nat! on 17.04.14.
5
+//
6
+//
7
+
8
+#import <Foundation/Foundation.h>
9
+
10
+
11
+@interface NSTask( MullePATH)
12
+
13
++ (NSString *) mulleSystem:(NSString *) command
14
+               environment:(NSDictionary *) environment
15
+           returningStderr:(BOOL) flag;
16
+
17
++ (NSString *) mullePATH;
18
++ (NSString *) mulleLaunchPathForExecutable:(NSString *) command
19
+                                       PATH:(NSString *) PATH;
20
+
21
+@end
22
+
23
+extern char   **mulleEnvironmentARGV( NSDictionary *environment);
0 24
new file mode 100644
... ...
@@ -0,0 +1,315 @@
0
+//
1
+//  NSTask+Path.m
2
+//  MulleScionDrake
3
+//
4
+//  Created by Nat! on 17.04.14.
5
+//
6
+//
7
+
8
+#import "NSTask+MullePATH.h"
9
+#include <string.h>
10
+#include <errno.h>
11
+
12
+
13
+@implementation NSTask (MullePATH)
14
+
15
+#include <sys/types.h>
16
+#include <sys/wait.h>
17
+#include <signal.h>
18
+#include <stdlib.h>
19
+#include <stddef.h>
20
+#include <unistd.h>
21
+#include <spawn.h>
22
+#include <paths.h>
23
+#include <errno.h>
24
+#include <crt_externs.h>
25
+
26
+
27
+//
28
+// this is stolen from FreeBSD and rewitten
29
+/*
30
+ * Copyright (c) 1988, 1993
31
+ *	The Regents of the University of California.  All rights reserved.
32
+ *
33
+ * Redistribution and use in source and binary forms, with or without
34
+ * modification, are permitted provided that the following conditions
35
+ * are met:
36
+ * 1. Redistributions of source code must retain the above copyright
37
+ *    notice, this list of conditions and the following disclaimer.
38
+ * 2. Redistributions in binary form must reproduce the above copyright
39
+ *    notice, this list of conditions and the following disclaimer in the
40
+ *    documentation and/or other materials provided with the distribution.
41
+ * 4. Neither the name of the University nor the names of its contributors
42
+ *    may be used to endorse or promote products derived from this software
43
+ *    without specific prior written permission.
44
+ *
45
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
46
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
47
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
48
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
49
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
50
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
51
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
52
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
53
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
54
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
55
+ * SUCH DAMAGE.
56
+ */
57
+
58
+typedef struct
59
+{
60
+   struct sigaction   intact;
61
+   struct sigaction   quitact;
62
+   sigset_t           defaultsig;
63
+   sigset_t           oldsigblock;
64
+   int                flags;
65
+} system_context;
66
+
67
+
68
+// call this before __system and fork
69
+
70
+static void  __pre_system( system_context *info)
71
+{
72
+   struct sigaction   ign;
73
+   sigset_t           newsigblock;
74
+   
75
+   sigemptyset( &info->defaultsig);
76
+   
77
+   /*
78
+    * Ignore SIGINT and SIGQUIT, block SIGCHLD. Remember to save
79
+    * existing signal dispositions.
80
+    */
81
+   ign.sa_handler = SIG_IGN;
82
+   sigemptyset( &ign.sa_mask);
83
+   ign.sa_flags = 0;
84
+   
85
+   info->flags = POSIX_SPAWN_SETSIGMASK;
86
+   sigaction(SIGINT, &ign, &info->intact);
87
+   if( info->intact.sa_handler != SIG_IGN)
88
+   {
89
+      sigaddset( &info->defaultsig, SIGINT);
90
+      info->flags |= POSIX_SPAWN_SETSIGDEF;
91
+   }
92
+   
93
+   sigaction( SIGQUIT, &ign, &info->quitact);
94
+   if( info->quitact.sa_handler != SIG_IGN)
95
+   {
96
+      sigaddset( &info->defaultsig, SIGQUIT);
97
+      info->flags |= POSIX_SPAWN_SETSIGDEF;
98
+   }
99
+   
100
+   sigemptyset( &newsigblock);
101
+   sigaddset( &newsigblock, SIGCHLD);
102
+   sigprocmask( SIG_BLOCK, &newsigblock, &info->oldsigblock);
103
+}
104
+
105
+
106
+
107
+// call this after wait
108
+static void  __post_system( system_context *info)
109
+{
110
+   sigaction( SIGINT, &info->intact, NULL);
111
+   sigaction( SIGQUIT,  &info->quitact, NULL);
112
+   sigprocmask( SIG_SETMASK, &info->oldsigblock, NULL);
113
+}
114
+
115
+
116
+static int   __system( char *command, system_context *info, char  **env)
117
+{
118
+   posix_spawnattr_t   attr;
119
+   char               *argv[] = {"sh", "-c", command, NULL};
120
+   int                 err;
121
+   int                 pid;
122
+   
123
+   if( (err = posix_spawnattr_init( &attr)) != 0)
124
+   {
125
+      errno = err;
126
+      return -1;
127
+   }
128
+   
129
+   posix_spawnattr_setsigmask( &attr, &info->oldsigblock);
130
+   if( info->flags & POSIX_SPAWN_SETSIGDEF)
131
+      posix_spawnattr_setsigdefault( &attr, &info->defaultsig);
132
+   posix_spawnattr_setflags( &attr, info->flags);
133
+   
134
+   err = posix_spawn( &pid, _PATH_BSHELL, NULL, &attr, (char *const *)argv, env);
135
+   posix_spawnattr_destroy( &attr);
136
+   
137
+   if( err != 0)
138
+   {
139
+      errno = err;
140
+      return( -1);
141
+   }
142
+   
143
+   return( pid);
144
+}
145
+
146
+
147
+static NSString   *environmentString( NSString *key, id value)
148
+{
149
+   return( [NSString stringWithFormat:@"%@=%@", key, [value description]]);
150
+}
151
+
152
+
153
+char   **mulleEnvironmentARGV( NSDictionary *environment)
154
+{
155
+   NSEnumerator   *rover;
156
+   NSString       *key;
157
+   NSString       *s;
158
+   NSUInteger     i, n;
159
+   char           **env;
160
+   char           *buf;
161
+   size_t         len;
162
+   size_t         total;
163
+   
164
+   n = [environment count];
165
+   if( ! n)
166
+      return( NULL);
167
+   
168
+   len   = 0;
169
+   rover = [environment keyEnumerator];
170
+   while( key = [rover nextObject])
171
+   {
172
+      s    = environmentString( key, [environment objectForKey:key]);
173
+      len += [s cStringLength] + 1;
174
+   }
175
+   
176
+   total  = sizeof( char *) * (n + 1);
177
+   total += len;
178
+   env = (char **) [[NSMutableData dataWithLength:total] mutableBytes];
179
+   if( ! env)
180
+      [NSException raise:NSMallocException
181
+                  format:@"fail"];
182
+   
183
+   buf = (char *) &env[ n + 1];
184
+   i   = 0;
185
+   rover = [environment keyEnumerator];
186
+   while( key = [rover nextObject])
187
+   {
188
+      s = environmentString( key, [environment objectForKey:key]);
189
+      strcpy( buf, [s cString]);
190
+      
191
+      env[ i++] = buf;
192
+      buf       = &buf[ strlen( buf) + 1];
193
+      
194
+   }
195
+   env[ i] = 0;
196
+   
197
+   return( env);
198
+}
199
+
200
+
201
++ (NSString *) mulleSystem:(NSString *) command
202
+               environment:(NSDictionary *) environment
203
+           returningStderr:(BOOL) flag
204
+{
205
+   NSMutableString   *s;
206
+   char              buf[ 256];
207
+   int               fd[ 2];
208
+   int               fdx[ 2];
209
+   int               i;
210
+   ssize_t           len;
211
+   int               rval;
212
+   int               status;
213
+   int               wrfd[ 2];
214
+   pid_t             pid;
215
+   system_context    info;
216
+   char              **env;
217
+   
218
+   rval  = pipe( fd);
219
+   rval |= pipe( fdx);
220
+   rval |= pipe( wrfd);
221
+   if( rval)
222
+      [NSException raise:NSInternalInconsistencyException
223
+                  format:@"%s", strerror( errno)];
224
+   
225
+   pid = fork();
226
+   if( pid == -1)
227
+      [NSException raise:NSInternalInconsistencyException
228
+                  format:@"%s", strerror( errno)];
229
+   
230
+   __pre_system( &info);
231
+   
232
+   if( ! pid)
233
+   {
234
+      dup2( fd[ 1],  flag ? STDERR_FILENO : STDOUT_FILENO);
235
+      dup2( fdx[ 1], flag ? STDOUT_FILENO : STDERR_FILENO);
236
+      dup2( wrfd[ 0], STDIN_FILENO);
237
+      
238
+      for( i = 0; i < 2; i++)
239
+      {
240
+         close( fd[ i]);
241
+         close( fdx[ i]);
242
+         close( wrfd[ i]);
243
+      }
244
+      
245
+      env = mulleEnvironmentARGV( environment);
246
+
247
+      _exit( __system( [command cString], &info, env));
248
+   }
249
+   
250
+   close( fd[ 1]);
251
+   close( fdx[ 1]);
252
+   close( wrfd[ 0]);
253
+   
254
+   s = nil;
255
+   for(;;)
256
+   {
257
+      len = read( fd[ 0], buf, 256);
258
+      if( len == -1)
259
+      {
260
+         NSLog( @"%s", strerror( errno));
261
+         s = nil;  // this apparently happens if nothing has been written too...
262
+         break;
263
+      }
264
+
265
+      if( ! len)
266
+         break;
267
+      
268
+      if( ! s)
269
+         s = [NSMutableString string];
270
+      [s appendString:[NSString stringWithCString:buf
271
+                                           length:len]];
272
+   }
273
+   
274
+   close( fd[ 0]);
275
+   close( fdx[ 0]);
276
+   close( wrfd[ 1]);
277
+   
278
+   wait( &status);
279
+
280
+   __post_system( &info);
281
+   
282
+   return( s);
283
+}
284
+
285
+
286
++ (NSString *) mullePATH
287
+{
288
+   return( [self mulleSystem:@"echo $PATH"
289
+                 environment:NULL
290
+             returningStderr:NO]);
291
+}
292
+
293
+
294
++ (NSString *) mulleLaunchPathForExecutable:(NSString *) command
295
+                                       PATH:(NSString *) PATH
296
+{
297
+   NSArray         *components;
298
+   NSEnumerator    *rover;
299
+   NSString        *path;
300
+   NSFileManager   *manager;
301
+   
302
+   manager    = [NSFileManager defaultManager];
303
+   components = [PATH componentsSeparatedByString:@":"];
304
+   rover = [components objectEnumerator];
305
+   while( path = [rover nextObject])
306
+   {
307
+      path = [path stringByAppendingPathComponent:command];
308
+      if( [manager isExecutableFileAtPath:path])
309
+         return( path);
310
+   }
311
+   return( nil);
312
+}
313
+
314
+@end
... ...
@@ -2,13 +2,13 @@
2 2
 <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
3 3
 	<data>
4 4
 		<int key="IBDocument.SystemTarget">1060</int>
5
-		<string key="IBDocument.SystemVersion">13A603</string>
6
-		<string key="IBDocument.InterfaceBuilderVersion">4514</string>
7
-		<string key="IBDocument.AppKitVersion">1265</string>
8
-		<string key="IBDocument.HIToolboxVersion">695.00</string>
5
+		<string key="IBDocument.SystemVersion">13C64</string>
6
+		<string key="IBDocument.InterfaceBuilderVersion">5053</string>
7
+		<string key="IBDocument.AppKitVersion">1265.19</string>
8
+		<string key="IBDocument.HIToolboxVersion">697.40</string>
9 9
 		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
10 10
 			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
11
-			<string key="NS.object.0">4514</string>
11
+			<string key="NS.object.0">5053</string>
12 12
 		</object>
13 13
 		<array key="IBDocument.IntegratedClassDependencies">
14 14
 			<string>NSBox</string>
... ...
@@ -47,7 +47,7 @@
47 47
 				<array class="NSMutableArray" key="NSMenuItems">
48 48
 					<object class="NSMenuItem" id="694149608">
49 49
 						<reference key="NSMenu" ref="649796088"/>
50
-						<string key="NSTitle">ManDrake</string>
50
+						<string key="NSTitle">MulleScionist</string>
51 51
 						<string key="NSKeyEquiv"/>
52 52
 						<int key="NSKeyEquivModMask">1048576</int>
53 53
 						<int key="NSMnemonicLoc">2147483647</int>
... ...
@@ -62,11 +62,11 @@
62 62
 						<string key="NSAction">submenuAction:</string>
63 63
 						<reference key="NSTarget" ref="110575045"/>
64 64
 						<object class="NSMenu" key="NSSubmenu" id="110575045">
65
-							<string key="NSTitle">ManDrake</string>
65
+							<string key="NSTitle">MulleScionist</string>
66 66
 							<array class="NSMutableArray" key="NSMenuItems">
67 67
 								<object class="NSMenuItem" id="238522557">
68 68
 									<reference key="NSMenu" ref="110575045"/>
69
-									<string key="NSTitle">About ManDrake</string>
69
+									<string key="NSTitle">About MulleScionist</string>
70 70
 									<string key="NSKeyEquiv"/>
71 71
 									<int key="NSMnemonicLoc">2147483647</int>
72 72
 									<reference key="NSOnImage" ref="1033313550"/>
... ...
@@ -132,7 +132,7 @@
132 132
 								</object>
133 133
 								<object class="NSMenuItem" id="755159360">
134 134
 									<reference key="NSMenu" ref="110575045"/>
135
-									<string key="NSTitle">Hide ManDrake</string>
135
+									<string key="NSTitle">Hide MulleScionist</string>
136 136
 									<string key="NSKeyEquiv">h</string>
137 137
 									<int key="NSKeyEquivModMask">1048576</int>
138 138
 									<int key="NSMnemonicLoc">2147483647</int>
... ...
@@ -170,7 +170,7 @@
170 170
 								</object>
171 171
 								<object class="NSMenuItem" id="632727374">
172 172
 									<reference key="NSMenu" ref="110575045"/>
173
-									<string key="NSTitle">Quit ManDrake</string>
173
+									<string key="NSTitle">Quit MulleScionist</string>
174 174
 									<string key="NSKeyEquiv">q</string>
175 175
 									<int key="NSKeyEquivModMask">1048576</int>
176 176
 									<int key="NSMnemonicLoc">2147483647</int>
... ...
@@ -1200,7 +1200,7 @@
1200 1200
 				<bool key="NSWindowIsRestorable">YES</bool>
1201 1201
 			</object>
1202 1202
 			<object class="NSCustomObject" id="347893185">
1203
-				<string key="NSClassName">MulleScionDrakeApplicationDelegate</string>
1203
+				<string key="NSClassName">MulleScionistAppDelegate</string>
1204 1204
 			</object>
1205 1205
 		</array>
1206 1206
 		<object class="IBObjectContainer" key="IBDocument.Objects">
... ...
@@ -2558,11 +2558,82 @@
2558 2558
 					</object>
2559 2559
 				</object>
2560 2560
 				<object class="IBPartialClassDescription">
2561
-					<string key="className">MulleScionDrakeApplicationDelegate</string>
2561
+					<string key="className">MulleScionistAppDelegate</string>
2562 2562
 					<string key="superclassName">NSObject</string>
2563 2563
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
2564 2564
 						<string key="majorKey">IBProjectSource</string>
2565
-						<string key="minorKey">./Classes/MulleScionDrakeApplicationDelegate.h</string>
2565
+						<string key="minorKey">./Classes/MulleScionistAppDelegate.h</string>
2566
+					</object>
2567
+				</object>
2568
+				<object class="IBPartialClassDescription">
2569
+					<string key="className">MulleScionistDokument</string>
2570
+					<string key="superclassName">UKSyntaxColoredTextDocument</string>
2571
+					<dictionary class="NSMutableDictionary" key="actions">
2572
+						<string key="openDataSource:">id</string>
2573
+						<string key="refresh:">id</string>
2574
+						<string key="refreshChanged:">id</string>
2575
+					</dictionary>
2576
+					<dictionary class="NSMutableDictionary" key="actionInfosByName">
2577
+						<object class="IBActionInfo" key="openDataSource:">
2578
+							<string key="name">openDataSource:</string>
2579
+							<string key="candidateClassName">id</string>
2580
+						</object>
2581
+						<object class="IBActionInfo" key="refresh:">
2582
+							<string key="name">refresh:</string>
2583
+							<string key="candidateClassName">id</string>
2584
+						</object>
2585
+						<object class="IBActionInfo" key="refreshChanged:">
2586
+							<string key="name">refreshChanged:</string>
2587
+							<string key="candidateClassName">id</string>
2588
+						</object>
2589
+					</dictionary>
2590
+					<dictionary class="NSMutableDictionary" key="outlets">
2591
+						<string key="logTextView">NSTextView</string>
2592
+						<string key="plistTextView">NSTextView</string>
2593
+						<string key="refreshProgressIndicator">id</string>
2594
+						<string key="refreshTypePopupButton">id</string>
2595
+						<string key="syntaxCheckResultTextField">id</string>
2596
+						<string key="syntaxCheckerWindow">NSWindow</string>
2597
+						<string key="traceEnabledButton">NSButton</string>
2598
+						<string key="webView">WebView</string>
2599
+					</dictionary>
2600
+					<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
2601
+						<object class="IBToOneOutletInfo" key="logTextView">
2602
+							<string key="name">logTextView</string>
2603
+							<string key="candidateClassName">NSTextView</string>
2604
+						</object>
2605
+						<object class="IBToOneOutletInfo" key="plistTextView">
2606
+							<string key="name">plistTextView</string>
2607
+							<string key="candidateClassName">NSTextView</string>
2608
+						</object>
2609
+						<object class="IBToOneOutletInfo" key="refreshProgressIndicator">
2610
+							<string key="name">refreshProgressIndicator</string>
2611
+							<string key="candidateClassName">id</string>
2612
+						</object>
2613
+						<object class="IBToOneOutletInfo" key="refreshTypePopupButton">
2614
+							<string key="name">refreshTypePopupButton</string>
2615
+							<string key="candidateClassName">id</string>
2616
+						</object>
2617
+						<object class="IBToOneOutletInfo" key="syntaxCheckResultTextField">
2618
+							<string key="name">syntaxCheckResultTextField</string>
2619
+							<string key="candidateClassName">id</string>
2620
+						</object>
2621
+						<object class="IBToOneOutletInfo" key="syntaxCheckerWindow">
2622
+							<string key="name">syntaxCheckerWindow</string>
2623
+							<string key="candidateClassName">NSWindow</string>
2624
+						</object>
2625
+						<object class="IBToOneOutletInfo" key="traceEnabledButton">
2626
+							<string key="name">traceEnabledButton</string>
2627
+							<string key="candidateClassName">NSButton</string>
2628
+						</object>
2629
+						<object class="IBToOneOutletInfo" key="webView">
2630
+							<string key="name">webView</string>
2631
+							<string key="candidateClassName">WebView</string>
2632
+						</object>
2633
+					</dictionary>
2634
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
2635
+						<string key="majorKey">IBProjectSource</string>
2636
+						<string key="minorKey">./Classes/MulleScionistDokument.h</string>
2566 2637
 					</object>
2567 2638
 				</object>
2568 2639
 				<object class="IBPartialClassDescription">
2569 2640
similarity index 64%
2570 2641
rename from src/Resources/MulleScionDrakeDokument.xib
2571 2642
rename to src/Resources/MulleScionistDokument.xib
... ...
@@ -2,13 +2,13 @@
2 2
 <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
3 3
 	<data>
4 4
 		<int key="IBDocument.SystemTarget">1060</int>
5
-		<string key="IBDocument.SystemVersion">12E55</string>
6
-		<string key="IBDocument.InterfaceBuilderVersion">4510</string>
7
-		<string key="IBDocument.AppKitVersion">1187.39</string>
8
-		<string key="IBDocument.HIToolboxVersion">626.00</string>
5
+		<string key="IBDocument.SystemVersion">13C64</string>
6
+		<string key="IBDocument.InterfaceBuilderVersion">5053</string>
7
+		<string key="IBDocument.AppKitVersion">1265.19</string>
8
+		<string key="IBDocument.HIToolboxVersion">697.40</string>
9 9
 		<dictionary class="NSMutableDictionary" key="IBDocument.PluginVersions">
10
-			<string key="com.apple.InterfaceBuilder.CocoaPlugin">4510</string>
11
-			<string key="com.apple.WebKitIBPlugin">3336</string>
10
+			<string key="com.apple.InterfaceBuilder.CocoaPlugin">5053</string>
11
+			<string key="com.apple.WebKitIBPlugin">5053</string>
12 12
 		</dictionary>
13 13
 		<array key="IBDocument.IntegratedClassDependencies">
14 14
 			<string>NSBox</string>
... ...
@@ -42,7 +42,7 @@
42 42
 		</object>
43 43
 		<array class="NSMutableArray" key="IBDocument.RootObjects" id="580458321">
44 44
 			<object class="NSCustomObject" id="512844837">
45
-				<string key="NSClassName">FakeDocument</string>
45
+				<string key="NSClassName">MulleScionDrakeDokument</string>
46 46
 			</object>
47 47
 			<object class="NSCustomObject" id="613418571">
48 48
 				<string key="NSClassName">FirstResponder</string>
... ...
@@ -50,7 +50,7 @@
50 50
 			<object class="NSWindowTemplate" id="275939982">
51 51
 				<int key="NSWindowStyleMask">15</int>
52 52
 				<int key="NSWindowBacking">2</int>
53
-				<string key="NSWindowRect">{{133, 201}, {760, 447}}</string>
53
+				<string key="NSWindowRect">{{133, 201}, {760, 517}}</string>
54 54
 				<int key="NSWTFlags">1886912512</int>
55 55
 				<string key="NSWindowTitle">Window</string>
56 56
 				<string key="NSWindowClass">NSWindow</string>
... ...
@@ -65,99 +65,204 @@
65 65
 							<reference key="NSNextResponder" ref="568628114"/>
66 66
 							<int key="NSvFlags">274</int>
67 67
 							<array class="NSMutableArray" key="NSSubviews">
68
-								<object class="NSSplitView" id="620058627">
68
+								<object class="NSSplitView" id="789528749">
69 69
 									<reference key="NSNextResponder" ref="177522710"/>
70 70
 									<int key="NSvFlags">256</int>
71 71
 									<array class="NSMutableArray" key="NSSubviews">
72
-										<object class="NSCustomView" id="446689206">
73
-											<reference key="NSNextResponder" ref="620058627"/>
72
+										<object class="NSScrollView" id="956423577">
73
+											<reference key="NSNextResponder" ref="789528749"/>
74 74
 											<int key="NSvFlags">256</int>
75 75
 											<array class="NSMutableArray" key="NSSubviews">
76
-												<object class="NSTextField" id="129308751">
77
-													<reference key="NSNextResponder" ref="446689206"/>
78
-													<int key="NSvFlags">270</int>
79
-													<string key="NSFrame">{{8, 323}, {254, 14}}</string>
80
-													<reference key="NSSuperview" ref="446689206"/>
81
-													<reference key="NSWindow"/>
82
-													<reference key="NSNextKeyView" ref="4684126"/>
83
-													<bool key="NSEnabled">YES</bool>
84
-													<object class="NSTextFieldCell" key="NSCell" id="16721969">
85
-														<int key="NSCellFlags">68157504</int>
86
-														<int key="NSCellFlags2">272761856</int>
87
-														<string key="NSContents"/>
88
-														<object class="NSFont" key="NSSupport" id="26">
89
-															<string key="NSName">LucidaGrande</string>
90
-															<double key="NSSize">11</double>
91
-															<int key="NSfFlags">3100</int>
92
-														</object>
93
-														<reference key="NSControlView" ref="129308751"/>
94
-														<object class="NSColor" key="NSBackgroundColor" id="195287575">
95
-															<int key="NSColorSpace">6</int>
96
-															<string key="NSCatalogName">System</string>
97
-															<string key="NSColorName">controlColor</string>
98
-															<object class="NSColor" key="NSColor" id="461823611">
99
-																<int key="NSColorSpace">3</int>
100
-																<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
76
+												<object class="NSClipView" id="74212334">
77
+													<reference key="NSNextResponder" ref="956423577"/>
78
+													<int key="NSvFlags">2322</int>
79
+													<array class="NSMutableArray" key="NSSubviews">
80
+														<object class="NSTextView" id="153826488">
81
+															<reference key="NSNextResponder" ref="74212334"/>
82
+															<int key="NSvFlags">2322</int>
83
+															<set class="NSMutableSet" key="NSDragTypes">
84
+																<string>Apple HTML pasteboard type</string>
85
+																<string>Apple PDF pasteboard type</string>
86
+																<string>Apple PICT pasteboard type</string>
87
+																<string>Apple PNG pasteboard type</string>
88
+																<string>Apple URL pasteboard type</string>
89
+																<string>CorePasteboardFlavorType 0x6D6F6F76</string>
90
+																<string>NSColor pasteboard type</string>
91
+																<string>NSFilenamesPboardType</string>
92
+																<string>NSStringPboardType</string>
93
+																<string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
94
+																<string>NeXT RTFD pasteboard type</string>
95
+																<string>NeXT Rich Text Format v1.0 pasteboard type</string>
96
+																<string>NeXT TIFF v4.0 pasteboard type</string>
97
+																<string>NeXT font pasteboard type</string>
98
+																<string>NeXT ruler pasteboard type</string>
99
+																<string>WebURLsWithTitlesPboardType</string>
100
+																<string>public.url</string>
101
+															</set>
102
+															<string key="NSFrameSize">{528, 225}</string>
103
+															<reference key="NSSuperview" ref="74212334"/>
104
+															<reference key="NSWindow"/>
105
+															<reference key="NSNextKeyView" ref="469203446"/>
106
+															<string key="NSReuseIdentifierKey">_NS:13</string>
107
+															<object class="NSTextContainer" key="NSTextContainer" id="727140953">
108
+																<object class="NSLayoutManager" key="NSLayoutManager">
109
+																	<object class="NSTextStorage" key="NSTextStorage">
110
+																		<object class="NSMutableString" key="NSString">
111
+																			<characters key="NS.bytes"/>
112
+																		</object>
113
+																		<nil key="NSDelegate"/>
114
+																	</object>
115
+																	<array class="NSMutableArray" key="NSTextContainers">
116
+																		<reference ref="727140953"/>
117
+																	</array>
118
+																	<int key="NSLMFlags">166</int>
119
+																	<nil key="NSDelegate"/>
120
+																</object>
121
+																<reference key="NSTextView" ref="153826488"/>
122
+																<double key="NSWidth">528</double>
123
+																<int key="NSTCFlags">1</int>
124
+															</object>
125
+															<object class="NSTextViewSharedData" key="NSSharedData">
126
+																<int key="NSFlags">44483</int>
127
+																<int key="NSTextCheckingTypes">0</int>
128
+																<nil key="NSMarkedAttributes"/>
129
+																<object class="NSColor" key="NSBackgroundColor" id="871380574">
130
+																	<int key="NSColorSpace">3</int>
131
+																	<bytes key="NSWhite">MQA</bytes>
132
+																</object>
133
+																<dictionary key="NSSelectedAttributes">
134
+																	<object class="NSColor" key="NSBackgroundColor" id="660141078">
135
+																		<int key="NSColorSpace">6</int>
136
+																		<string key="NSCatalogName">System</string>
137
+																		<string key="NSColorName">selectedTextBackgroundColor</string>
138
+																		<object class="NSColor" key="NSColor" id="461823611">
139
+																			<int key="NSColorSpace">3</int>
140
+																			<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
141
+																		</object>
142
+																	</object>
143
+																	<object class="NSColor" key="NSColor" id="1040153555">
144
+																		<int key="NSColorSpace">6</int>
145
+																		<string key="NSCatalogName">System</string>
146
+																		<string key="NSColorName">selectedTextColor</string>
147
+																		<object class="NSColor" key="NSColor" id="1051975581">
148
+																			<int key="NSColorSpace">3</int>
149
+																			<bytes key="NSWhite">MAA</bytes>
150
+																		</object>
151
+																	</object>
152
+																</dictionary>
153
+																<reference key="NSInsertionColor" ref="1051975581"/>
154
+																<dictionary key="NSLinkAttributes">
155
+																	<object class="NSColor" key="NSColor" id="31659357">
156
+																		<int key="NSColorSpace">1</int>
157
+																		<bytes key="NSRGB">MCAwIDEAA</bytes>
158
+																	</object>
159
+																	<object class="NSCursor" key="NSCursor" id="271550422">
160
+																		<string key="NSHotSpot">{8, -8}</string>
161
+																		<int key="NSCursorType">13</int>
162
+																	</object>
163
+																	<integer value="1" key="NSUnderline"/>
164
+																</dictionary>
165
+																<nil key="NSDefaultParagraphStyle"/>
166
+																<nil key="NSTextFinder"/>
167
+																<int key="NSPreferredTextFinderStyle">1</int>
101 168
 															</object>
169
+															<int key="NSTVFlags">6</int>
170
+															<string key="NSMaxSize">{528, 10000000}</string>
171
+															<string key="NSMinize">{311, 225}</string>
172
+															<nil key="NSDelegate"/>
102 173
 														</object>
103
-														<object class="NSColor" key="NSTextColor" id="724317515">
104
-															<int key="NSColorSpace">6</int>
105
-															<string key="NSCatalogName">System</string>
106
-															<string key="NSColorName">controlTextColor</string>
107
-															<object class="NSColor" key="NSColor" id="1051975581">
174
+													</array>
175
+													<string key="NSFrame">{{1, 1}, {311, 225}}</string>
176
+													<reference key="NSSuperview" ref="956423577"/>
177
+													<reference key="NSWindow"/>
178
+													<reference key="NSNextKeyView" ref="153826488"/>
179
+													<string key="NSReuseIdentifierKey">_NS:11</string>
180
+													<reference key="NSDocView" ref="153826488"/>
181
+													<reference key="NSBGColor" ref="871380574"/>
182
+													<object class="NSCursor" key="NSCursor">
183
+														<string key="NSHotSpot">{4, 5}</string>
184
+														<object class="NSImage" key="NSImage">
185
+															<int key="NSImageFlags">12582912</int>
186
+															<array class="NSMutableArray" key="NSReps">
187
+																<array>
188
+																	<integer value="0"/>
189
+																	<object class="NSBitmapImageRep">