summaryrefslogtreecommitdiffstats
path: root/Mac/OSX/PythonLauncher/PythonLauncher.pbproj/project.pbxproj
blob: badee8785b5b176f39f217f7044ccd15328cd95d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 38;
	objects = {
		080E96D9FE201CDB7F000001 = {
			fileRef = 2A37F4B9FDCFA73011CA2CEA;
			isa = PBXBuildFile;
			settings = {
			};
		};
		080E96DAFE201CDB7F000001 = {
			fileRef = 2A37F4B6FDCFA73011CA2CEA;
			isa = PBXBuildFile;
			settings = {
			};
		};
		080E96DBFE201CDB7F000001 = {
			fileRef = 2A37F4B4FDCFA73011CA2CEA;
			isa = PBXBuildFile;
			settings = {
			};
		};
		089C165FFE840EACC02AAC07 = {
			children = (
				089C1660FE840EACC02AAC07,
			);
			isa = PBXVariantGroup;
			name = InfoPlist.strings;
			refType = 4;
		};
		089C1660FE840EACC02AAC07 = {
			fileEncoding = 10;
			isa = PBXFileReference;
			name = English;
			path = English.lproj/InfoPlist.strings;
			refType = 4;
		};
		089C1661FE840EACC02AAC07 = {
			fileRef = 089C165FFE840EACC02AAC07;
			isa = PBXBuildFile;
			settings = {
			};
		};
//080
//081
//082
//083
//084
//100
//101
//102
//103
//104
		1058C7A6FEA54F5311CA2CBB = {
			children = (
				1058C7A7FEA54F5311CA2CBB,
				F5AA9D0102F807EE0110C447,
			);
			isa = PBXGroup;
			name = "Linked Frameworks";
			refType = 4;
		};
		1058C7A7FEA54F5311CA2CBB = {
			isa = PBXFrameworkReference;
			name = Cocoa.framework;
			path = /System/Library/Frameworks/Cocoa.framework;
			refType = 0;
		};
		1058C7A8FEA54F5311CA2CBB = {
			children = (
				2A37F4C5FDCFA73011CA2CEA,
				2A37F4C4FDCFA73011CA2CEA,
			);
			isa = PBXGroup;
			name = "Other Frameworks";
			refType = 4;
		};
		1058C7A9FEA54F5311CA2CBB = {
			fileRef = 1058C7A7FEA54F5311CA2CBB;
			isa = PBXBuildFile;
			settings = {
			};
		};
//100
//101
//102
//103
//104
//170
//171
//172
//173
//174
		1758732AFF379DA111CA2CBB = {
			isa = PBXApplicationReference;
			path = PythonLauncher.app;
			refType = 3;
		};
//170
//171
//172
//173
//174
//190
//191
//192
//193
//194
		19C28FB0FE9D524F11CA2CBB = {
			children = (
				1758732AFF379DA111CA2CBB,
			);
			isa = PBXGroup;
			name = Products;
			refType = 4;
		};
//190
//191
//192
//193
//194
//2A0
//2A1
//2A2
//2A3
//2A4
		2A37F4A9FDCFA73011CA2CEA = {
			buildStyles = (
				4A9504D0FFE6A4CB11CA0CBA,
				4A9504D1FFE6A4CB11CA0CBA,
			);
			hasScannedForEncodings = 1;
			isa = PBXProject;
			mainGroup = 2A37F4AAFDCFA73011CA2CEA;
			projectDirPath = "";
			targets = (
				2A37F4C6FDCFA73011CA2CEA,
			);
		};
		2A37F4AAFDCFA73011CA2CEA = {
			children = (
				2A37F4ABFDCFA73011CA2CEA,
				2A37F4AFFDCFA73011CA2CEA,
				2A37F4B8FDCFA73011CA2CEA,
				2A37F4C3FDCFA73011CA2CEA,
				19C28FB0FE9D524F11CA2CBB,
			);
			isa = PBXGroup;
			name = PythonLauncher;
			path = "";
			refType = 4;
		};
		2A37F4ABFDCFA73011CA2CEA = {
			children = (
				2A37F4AEFDCFA73011CA2CEA,
				2A37F4ACFDCFA73011CA2CEA,
				F52A90CD02EB5C6A01000102,
				F52A90CE02EB5C6A01000102,
				F5A4C14002F2055C01000102,
				F5A4C14102F2055C01000102,
				F5A4C14402F2070D01000102,
				F5A4C14502F2070D01000102,
			);
			isa = PBXGroup;
			name = Classes;
			path = "";
			refType = 4;
		};
		2A37F4ACFDCFA73011CA2CEA = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = MyDocument.m;
			refType = 4;
		};
		2A37F4AEFDCFA73011CA2CEA = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = MyDocument.h;
			refType = 4;
		};
		2A37F4AFFDCFA73011CA2CEA = {
			children = (
				F5AA9C6A02F8042D0110C447,
				2A37F4B0FDCFA73011CA2CEA,
				F5AAA21D02F8115D0110C447,
			);
			isa = PBXGroup;
			name = "Other Sources";
			path = "";
			refType = 4;
		};
		2A37F4B0FDCFA73011CA2CEA = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = main.m;
			refType = 4;
		};
		2A37F4B4FDCFA73011CA2CEA = {
			children = (
				2A37F4B5FDCFA73011CA2CEA,
			);
			isa = PBXVariantGroup;
			name = MyDocument.nib;
			path = "";
			refType = 4;
		};
		2A37F4B5FDCFA73011CA2CEA = {
			isa = PBXFileReference;
			name = English;
			path = English.lproj/MyDocument.nib;
			refType = 4;
		};
		2A37F4B6FDCFA73011CA2CEA = {
			children = (
				2A37F4B7FDCFA73011CA2CEA,
			);
			isa = PBXVariantGroup;
			name = MainMenu.nib;
			path = "";
			refType = 4;
		};
		2A37F4B7FDCFA73011CA2CEA = {
			isa = PBXFileReference;
			name = English;
			path = English.lproj/MainMenu.nib;
			refType = 4;
		};
		2A37F4B8FDCFA73011CA2CEA = {
			children = (
				F58D4A3A02F1F94B01000102,
				F58D4A3B02F1F94B01000102,
				F58D4A3C02F1F94B01000102,
				F5449B4B02FB3F7E01000102,
				2A37F4B9FDCFA73011CA2CEA,
				2A37F4B6FDCFA73011CA2CEA,
				2A37F4B4FDCFA73011CA2CEA,
				F5A4C13E02F203F601000102,
				089C165FFE840EACC02AAC07,
				F5A42167038BDD8E0110C447,
			);
			isa = PBXGroup;
			name = Resources;
			path = "";
			refType = 4;
		};
		2A37F4B9FDCFA73011CA2CEA = {
			children = (
				2A37F4BAFDCFA73011CA2CEA,
			);
			isa = PBXVariantGroup;
			name = Credits.rtf;
			path = "";
			refType = 4;
		};
		2A37F4BAFDCFA73011CA2CEA = {
			isa = PBXFileReference;
			name = English;
			path = English.lproj/Credits.rtf;
			refType = 4;
		};
		2A37F4C3FDCFA73011CA2CEA = {
			children = (
				1058C7A6FEA54F5311CA2CBB,
				1058C7A8FEA54F5311CA2CBB,
			);
			isa = PBXGroup;
			name = Frameworks;
			path = "";
			refType = 4;
		};
		2A37F4C4FDCFA73011CA2CEA = {
			isa = PBXFrameworkReference;
			name = AppKit.framework;
			path = /System/Library/Frameworks/AppKit.framework;
			refType = 0;
		};
		2A37F4C5FDCFA73011CA2CEA = {
			isa = PBXFrameworkReference;
			name = Foundation.framework;
			path = /System/Library/Frameworks/Foundation.framework;
			refType = 0;
		};
		2A37F4C6FDCFA73011CA2CEA = {
			buildPhases = (
				2A37F4C7FDCFA73011CA2CEA,
				2A37F4C9FDCFA73011CA2CEA,
				2A37F4CEFDCFA73011CA2CEA,
				2A37F4D1FDCFA73011CA2CEA,
			);
			buildSettings = {
				FRAMEWORK_SEARCH_PATHS = "";
				HEADER_SEARCH_PATHS = "";
				INSTALL_MODE_FLAG = "a+rX";
				INSTALL_PATH = /Applications/Python;
				LIBRARY_SEARCH_PATHS = "";
				OPTIMIZATION_CFLAGS = "-O0";
				OTHER_LDFLAGS = "";
				PRODUCT_NAME = PythonLauncher;
				SECTORDER_FLAGS = "";
				WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
				WRAPPER_EXTENSION = app;
			};
			dependencies = (
			);
			isa = PBXApplicationTarget;
			name = PythonLauncher;
			productInstallPath = /Applications/Python;
			productName = PythonLauncher;
			productReference = 1758732AFF379DA111CA2CBB;
			productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>English</string>
	<key>CFBundleDocumentTypes</key>
	<array>
		<dict>
			<key>CFBundleTypeExtensions</key>
			<array>
				<string>py</string>
			</array>
			<key>CFBundleTypeIconFile</key>
			<string>PythonSource.icns</string>
			<key>CFBundleTypeName</key>
			<string>Python Script</string>
			<key>CFBundleTypeRole</key>
			<string>Viewer</string>
			<key>NSDocumentClass</key>
			<string>MyDocument</string>
		</dict>
		<dict>
			<key>CFBundleTypeExtensions</key>
			<array>
				<string>pyw</string>
			</array>
			<key>CFBundleTypeIconFile</key>
			<string>PythonWSource.icns</string>
			<key>CFBundleTypeName</key>
			<string>Python GUI Script</string>
			<key>CFBundleTypeRole</key>
			<string>Viewer</string>
			<key>NSDocumentClass</key>
			<string>MyDocument</string>
		</dict>
		<dict>
			<key>CFBundleTypeExtensions</key>
			<array>
				<string>pyc</string>
			</array>
			<key>CFBundleTypeIconFile</key>
			<string>PythonCompiled.icns</string>
			<key>CFBundleTypeName</key>
			<string>Python Bytecode Document</string>
			<key>CFBundleTypeRole</key>
			<string>Viewer</string>
			<key>NSDocumentClass</key>
			<string>MyDocument</string>
		</dict>
	</array>
	<key>CFBundleExecutable</key>
	<string>PythonLauncher</string>
	<key>CFBundleGetInfoString</key>
	<string>Python Launcher</string>
	<key>CFBundleIconFile</key>
	<string>PythonInterpreter.icns</string>
	<key>CFBundleIdentifier</key>
	<string>org.python.PythonLauncher</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>Python Launcher</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleSignature</key>
	<string>PytL</string>
	<key>CFBundleVersion</key>
	<string>2.3a0</string>
	<key>NSMainNibFile</key>
	<string>MainMenu</string>
	<key>NSPrincipalClass</key>
	<string>NSApplication</string>
</dict>
</plist>
";
		};
		2A37F4C7FDCFA73011CA2CEA = {
			buildActionMask = 2147483647;
			files = (
				2A37F4C8FDCFA73011CA2CEA,
				F52A90D002EB5C6A01000102,
				F5A4C14202F2055D01000102,
				F5A4C14702F2070D01000102,
				F5AA9C6C02F8042D0110C447,
			);
			isa = PBXHeadersBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		2A37F4C8FDCFA73011CA2CEA = {
			fileRef = 2A37F4AEFDCFA73011CA2CEA;
			isa = PBXBuildFile;
			settings = {
			};
		};
		2A37F4C9FDCFA73011CA2CEA = {
			buildActionMask = 2147483647;
			files = (
				080E96D9FE201CDB7F000001,
				080E96DAFE201CDB7F000001,
				080E96DBFE201CDB7F000001,
				089C1661FE840EACC02AAC07,
				F58D4A3D02F1F94B01000102,
				F58D4A3E02F1F94B01000102,
				F58D4A3F02F1F94B01000102,
				F5A4C13F02F203F701000102,
				F5449B4C02FB3F7E01000102,
				F5A42168038BDD8E0110C447,
			);
			isa = PBXResourcesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		2A37F4CEFDCFA73011CA2CEA = {
			buildActionMask = 2147483647;
			files = (
				2A37F4CFFDCFA73011CA2CEA,
				2A37F4D0FDCFA73011CA2CEA,
				F52A90CF02EB5C6A01000102,
				F5A4C14302F2055D01000102,
				F5A4C14602F2070D01000102,
				F5AAA21E02F8115D0110C447,
			);
			isa = PBXSourcesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		2A37F4CFFDCFA73011CA2CEA = {
			fileRef = 2A37F4ACFDCFA73011CA2CEA;
			isa = PBXBuildFile;
			settings = {
				ATTRIBUTES = (
				);
			};
		};
		2A37F4D0FDCFA73011CA2CEA = {
			fileRef = 2A37F4B0FDCFA73011CA2CEA;
			isa = PBXBuildFile;
			settings = {
				ATTRIBUTES = (
				);
			};
		};
		2A37F4D1FDCFA73011CA2CEA = {
			buildActionMask = 2147483647;
			files = (
				1058C7A9FEA54F5311CA2CBB,
				F5AA9D9B02F807EF0110C447,
			);
			isa = PBXFrameworksBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
//2A0
//2A1
//2A2
//2A3
//2A4
//4A0
//4A1
//4A2
//4A3
//4A4
		4A9504D0FFE6A4CB11CA0CBA = {
			buildRules = (
			);
			buildSettings = {
				COPY_PHASE_STRIP = NO;
				OPTIMIZATION_CFLAGS = "-O0";
			};
			isa = PBXBuildStyle;
			name = Development;
		};
		4A9504D1FFE6A4CB11CA0CBA = {
			buildRules = (
			);
			buildSettings = {
				COPY_PHASE_STRIP = YES;
			};
			isa = PBXBuildStyle;
			name = Deployment;
		};
//4A0
//4A1
//4A2
//4A3
//4A4
//F50
//F51
//F52
//F53
//F54
		F52A90CD02EB5C6A01000102 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = FileSettings.m;
			refType = 4;
		};
		F52A90CE02EB5C6A01000102 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = FileSettings.h;
			refType = 4;
		};
		F52A90CF02EB5C6A01000102 = {
			fileRef = F52A90CD02EB5C6A01000102;
			isa = PBXBuildFile;
			settings = {
			};
		};
		F52A90D002EB5C6A01000102 = {
			fileRef = F52A90CE02EB5C6A01000102;
			isa = PBXBuildFile;
			settings = {
			};
		};
		F5449B4B02FB3F7E01000102 = {
			isa = PBXFileReference;
			path = PythonWSource.icns;
			refType = 4;
		};
		F5449B4C02FB3F7E01000102 = {
			fileRef = F5449B4B02FB3F7E01000102;
			isa = PBXBuildFile;
			settings = {
			};
		};
		F58D4A3A02F1F94B01000102 = {
			isa = PBXFileReference;
			path = PythonCompiled.icns;
			refType = 4;
		};
		F58D4A3B02F1F94B01000102 = {
			isa = PBXFileReference;
			path = PythonInterpreter.icns;
			refType = 4;
		};
		F58D4A3C02F1F94B01000102 = {
			isa = PBXFileReference;
			path = PythonSource.icns;
			refType = 4;
		};
		F58D4A3D02F1F94B01000102 = {
			fileRef = F58D4A3A02F1F94B01000102;
			isa = PBXBuildFile;
			settings = {
			};
		};
		F58D4A3E02F1F94B01000102 = {
			fileRef = F58D4A3B02F1F94B01000102;
			isa = PBXBuildFile;
			settings = {
			};
		};
		F58D4A3F02F1F94B01000102 = {
			fileRef = F58D4A3C02F1F94B01000102;
			isa = PBXBuildFile;
			settings = {
			};
		};
		F5A42167038BDD8E0110C447 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = factorySettings.plist;
			refType = 4;
		};
		F5A42168038BDD8E0110C447 = {
			fileRef = F5A42167038BDD8E0110C447;
			isa = PBXBuildFile;
			settings = {
			};
		};
		F5A4C13E02F203F601000102 = {
			isa = PBXFileReference;
			path = PreferenceWindow.nib;
			refType = 4;
		};
		F5A4C13F02F203F701000102 = {
			fileRef = F5A4C13E02F203F601000102;
			isa = PBXBuildFile;
			settings = {
			};
		};
		F5A4C14002F2055C01000102 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = PreferencesWindowController.h;
			refType = 4;
		};
		F5A4C14102F2055C01000102 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = PreferencesWindowController.m;
			refType = 4;
		};
		F5A4C14202F2055D01000102 = {
			fileRef = F5A4C14002F2055C01000102;
			isa = PBXBuildFile;
			settings = {
			};
		};
		F5A4C14302F2055D01000102 = {
			fileRef = F5A4C14102F2055C01000102;
			isa = PBXBuildFile;
			settings = {
			};
		};
		F5A4C14402F2070D01000102 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = MyAppDelegate.m;
			refType = 4;
		};
		F5A4C14502F2070D01000102 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = MyAppDelegate.h;
			refType = 4;
		};
		F5A4C14602F2070D01000102 = {
			fileRef = F5A4C14402F2070D01000102;
			isa = PBXBuildFile;
			settings = {
			};
		};
		F5A4C14702F2070D01000102 = {
			fileRef = F5A4C14502F2070D01000102;
			isa = PBXBuildFile;
			settings = {
			};
		};
		F5AA9C6A02F8042D0110C447 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = doscript.h;
			refType = 4;
		};
		F5AA9C6C02F8042D0110C447 = {
			fileRef = F5AA9C6A02F8042D0110C447;
			isa = PBXBuildFile;
			settings = {
			};
		};
		F5AA9D0102F807EE0110C447 = {
			isa = PBXFrameworkReference;
			name = Carbon.framework;
			path = /System/Library/Frameworks/Carbon.framework;
			refType = 0;
		};
		F5AA9D9B02F807EF0110C447 = {
			fileRef = F5AA9D0102F807EE0110C447;
			isa = PBXBuildFile;
			settings = {
			};
		};
		F5AAA21D02F8115D0110C447 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = doscript.m;
			refType = 4;
		};
		F5AAA21E02F8115D0110C447 = {
			fileRef = F5AAA21D02F8115D0110C447;
			isa = PBXBuildFile;
			settings = {
			};
		};
	};
	rootObject = 2A37F4A9FDCFA73011CA2CEA;
}
; i--) if (qstrncmp(pos--,str,slen)==0) return i;
@@ -204,9 +204,7 @@ bool QCString::stripPrefix(const char *prefix)
int len = qstrlen(prefix);
if (qstrncmp(prefix,data(),len)==0)
{
- int newlen = length()-len+1;
- qmemmove(data(),data()+len,newlen);
- resize(newlen);
+ m_rep=mid(len,length()-len).m_rep; // need to make a deep copy
return TRUE;
}
return FALSE;
@@ -225,7 +223,7 @@ QCString QCString::left( uint len ) const
else
{
QCString s( len+1 );
- memcpy( s.data(), data(), len);
+ memcpy( s.rawData(), data(), len);
return s;
}
}
@@ -255,9 +253,9 @@ QCString QCString::mid( uint index, uint len) const
}
else
{
- register char *p = data()+index;
+ register const char *p = data()+index;
QCString s(len+1);
- qstrncpy( s.data(), p, len+1 );
+ qstrncpy( s.rawData(), p, len+1 );
return s;
}
}
@@ -266,7 +264,7 @@ QCString QCString::lower() const
{
if (length()==0) return QCString();
QCString s(data());
- register char *pos = s.data();
+ register char *pos = s.rawData();
if (pos)
{
while (*pos)
@@ -282,7 +280,7 @@ QCString QCString::upper() const
{
if (length()==0) return QCString();
QCString s(data());
- register char *pos = s.data();
+ register char *pos = s.rawData();
if (pos)
{
while (*pos)
@@ -299,13 +297,13 @@ QCString QCString::stripWhiteSpace() const
if ( isEmpty() ) // nothing to do
return *this;
- register char *s = data();
+ register const char *cs = data();
int reslen = length();
- if ( !isspace((uchar)s[0]) && !isspace((uchar)s[reslen-1]) )
+ if ( !isspace((uchar)cs[0]) && !isspace((uchar)cs[reslen-1]) )
return *this; // returns a copy
- QCString result(s);
- s = result.data();
+ QCString result(cs);
+ register char *s = result.rawData();
int start = 0;
int end = reslen - 1;
while ( isspace((uchar) s[start]) ) // skip white space from start
@@ -317,7 +315,7 @@ QCString QCString::stripWhiteSpace() const
while ( end && isspace((uchar) s[end]) ) // skip white space from end
end--;
end -= start - 1;
- qmemmove( result.data(), &s[start], end );
+ qmemmove( s, &s[start], end );
result.resize( end + 1 );
return result;
}
@@ -328,8 +326,8 @@ QCString QCString::simplifyWhiteSpace() const
return *this;
QCString result( length()+1 );
- char *from = data();
- char *to = result.data();
+ const char *from = data();
+ char *to = result.rawData();
char *first = to;
while ( TRUE )
{
@@ -363,14 +361,14 @@ QCString &QCString::insert( uint index, const char *s )
if ((int)index>=olen)
{
resize(nlen+index-olen+1);
- memset(data()+olen, ' ', index-olen);
- memcpy(data()+index,s, len+1);
+ memset(rawData()+olen, ' ', index-olen);
+ memcpy(rawData()+index,s, len+1);
}
else
{
resize(nlen+1);
- qmemmove(data()+index+len,data()+index,olen-index+1);
- memcpy(data()+index,s,len);
+ qmemmove(rawData()+index+len,data()+index,olen-index+1);
+ memcpy(rawData()+index,s,len);
}
return *this;
}
@@ -402,8 +400,10 @@ QCString &QCString::remove( uint index, uint len )
}
else if ( len != 0 )
{
- qmemmove( data()+index, data()+index+len, olen-index-len+1 );
+ QCString tmp(olen-index-len+1);
+ qmemmove( tmp.rawData(), data()+index+len, olen-index-len+1 );
resize( olen-len+1 );
+ memcpy( rawData()+index,tmp.data(),tmp.length() );
}
return *this;
}
@@ -635,7 +635,7 @@ QDataStream &operator>>( QDataStream &s, QCString &str )
len = 0;
}
if ( len > 0 ) // not null array
- s.readRawBytes( str.data(), (uint)len );
+ s.readRawBytes( str.rawData(), (uint)len );
return s;
}
diff --git a/qtools/qcstring.h b/qtools/qcstring.h
index bc3a091..8854aa7 100644
--- a/qtools/qcstring.h
+++ b/qtools/qcstring.h
@@ -204,11 +204,20 @@ public:
}
/** Returns a pointer to the contents of the string in the form of a 0-terminated C string */
- char *data() const
+ const char *data() const
{
return m_rep.data();
}
+ /** Returns a writable pointer to the data.
+ * @warning if the string is shared it will modifying the string directly and
+ * this will overwrite all copies as well!
+ */
+ char *rawData() const
+ {
+ return m_rep.rawData();
+ }
+
/** Resizes the string to hold \a newlen characters
* (this value should include the 0-terminator). If the string is enlarged the contents will
* be left unmodified.
@@ -242,7 +251,7 @@ public:
{
if (length()==0) return QCString();
QCString cs(length()+1);
- memcpy(cs.data(),data(),length());
+ memcpy(cs.rawData(),data(),length());
return cs;
}
@@ -299,7 +308,7 @@ public:
int len1 = length();
int len2 = (int)strlen(str);
resize(len1+len2+1);
- memcpy(data()+len1,str,len2);
+ memcpy(rawData()+len1,str,len2);
return *this;
}
@@ -308,7 +317,7 @@ public:
{
int len = length();
resize(len+2);
- data()[len]=c;
+ rawData()[len]=c;
return *this;
}
@@ -568,9 +577,21 @@ public:
}
uint length() const
{
- return u.s.isShort ? u.s.len : u.l.d->len;
+ uint l = u.s.isShort ? u.s.len : u.l.d->len;
+ return l;
}
- char *data() const
+ const char *data() const
+ {
+ if (u.s.isShort)
+ {
+ return u.s.len==0 ? 0 : u.s.str;
+ }
+ else
+ {
+ return u.l.d->len==0 ? 0 : u.l.d->toStr();
+ }
+ }
+ char *rawData() const
{
if (u.s.isShort)
{
@@ -578,6 +599,7 @@ public:
}
else
{
+ //assert(u.l.d->refCount==0); // string may not be shared when accessed raw
return u.l.d->len==0 ? 0 : u.l.d->toStr();
}
}
@@ -645,24 +667,20 @@ public:
bool fill( char c, int len )
{
if (len<0) len=length();
- if (len!=(int)length())
+ if (!u.s.isShort) // detach from shared string
+ {
+ resize(len+1);
+ }
+ else if (len!=(int)length())
{
if (len>0)
{
resize(len+1);
}
- else
- {
- if (!u.s.isShort)
- {
- u.l.d->dispose();
- }
- initEmpty();
- }
}
if (len>0)
{
- memset(data(),c,len);
+ memset(rawData(),c,len);
}
return TRUE;
}
diff --git a/qtools/qstring.cpp b/qtools/qstring.cpp
index 3673c20..f51c0d4 100644
--- a/qtools/qstring.cpp
+++ b/qtools/qstring.cpp
@@ -11963,7 +11963,7 @@ QChar* QString::asciiToUnicode( const QByteArray& ba, uint* len )
int l = 0;
while ( l < (int)ba.size() && ba[l] )
l++;
- char* str = ba.data();
+ const char* str = ba.data();
QChar *uc = new QChar[ l ]; // Can't use macro, since function is public
QChar *result = uc;
if ( len )
@@ -11982,7 +11982,7 @@ static QChar* internalAsciiToUnicode( const QByteArray& ba, uint* len )
int l = 0;
while ( l < (int)ba.size() && ba[l] )
l++;
- char* str = ba.data();
+ const char* str = ba.data();
QChar *uc = QT_ALLOC_QCHAR_VEC( l );
QChar *result = uc;
if ( len )
@@ -15257,7 +15257,7 @@ QCString qt_winQString2MB( const QString& s, int uclen )
QCString mb(bufSize);
int len;
while ( !(len=WideCharToMultiByte(CP_ACP, 0, (const WCHAR*)s.unicode(), uclen,
- mb.data(), bufSize-1, 0, &used_def)) )
+ mb.rawData(), bufSize-1, 0, &used_def)) )
{
int r = GetLastError();
if ( r == ERROR_INSUFFICIENT_BUFFER ) {
diff --git a/qtools/qtextcodec.cpp b/qtools/qtextcodec.cpp
index 168445f..bd874bb 100644
--- a/qtools/qtextcodec.cpp
+++ b/qtools/qtextcodec.cpp
@@ -1192,7 +1192,7 @@ public:
lenInOut = uc.length();
int rlen = lenInOut*max_bytes_per_char;
QCString rstr(rlen);
- char* cursor = rstr.data();
+ char* cursor = rstr.rawData();
char* s=0;
int l = lenInOut;
int lout = 0;
@@ -1881,7 +1881,7 @@ QCString QSimpleTextCodec::fromUnicode(const QString& uc, int& len ) const
int i = len;
int u;
const QChar* ucp = uc.unicode();
- char* rp = r.data();
+ char* rp = r.rawData();
char* rmp = reverseMap->data();
int rmsize = (int) reverseMap->size();
while( i-- )
diff --git a/qtools/qtextstream.cpp b/qtools/qtextstream.cpp
index bae072d..4ebf59e 100644
--- a/qtools/qtextstream.cpp
+++ b/qtools/qtextstream.cpp
@@ -1443,17 +1443,17 @@ QTextStream &QTextStream::operator>>( QCString &str )
if ( i >= buflen-1 ) {
if ( !dynbuf ) { // create dynamic buffer
dynbuf = new QCString(buflen*2);
- memcpy( dynbuf->data(), s, i ); // copy old data
+ memcpy( dynbuf->rawData(), s, i ); // copy old data
} else if ( i >= (int)dynbuf->size()-1 ) {
dynbuf->resize( dynbuf->size()*2 );
}
- s = dynbuf->data();
+ s = dynbuf->rawData();
}
s[i++] = c;
c = ts_getc();
}
str.resize( i+1 );
- memcpy( str.data(), s, i );
+ memcpy( str.rawData(), s, i );
delete dynbuf;
return *this;
}
diff --git a/qtools/qutfcodec.cpp b/qtools/qutfcodec.cpp
index c7094ad..a37e37f 100644
--- a/qtools/qutfcodec.cpp
+++ b/qtools/qutfcodec.cpp
@@ -203,14 +203,14 @@ public:
if ( headerdone ) {
len_in_out = uc.length()*(int)sizeof(QChar);
QCString d(len_in_out);
- memcpy(d.data(),uc.unicode(),len_in_out);
+ memcpy(d.rawData(),uc.unicode(),len_in_out);
return d;
} else {
headerdone = TRUE;
len_in_out = (1+uc.length())*(int)sizeof(QChar);
QCString d(len_in_out);
- memcpy(d.data(),&QChar::byteOrderMark,sizeof(QChar));
- memcpy(d.data()+sizeof(QChar),uc.unicode(),uc.length()*sizeof(QChar));
+ memcpy(d.rawData(),&QChar::byteOrderMark,sizeof(QChar));
+ memcpy(d.rawData()+sizeof(QChar),uc.unicode(),uc.length()*sizeof(QChar));
return d;
}
}
diff --git a/src/cite.cpp b/src/cite.cpp
index f0d7d66..2ea6300 100644
--- a/src/cite.cpp
+++ b/src/cite.cpp
@@ -63,7 +63,6 @@ void CiteDict::writeLatexBibliography(FTextStream &t)
t << "\\bibliographystyle{" << style << "}\n"
"\\bibliography{";
QStrList &citeDataList = Config_getList("CITE_BIB_FILES");
- QCString latexOutputDir = Config_getString("LATEX_OUTPUT")+"/";
int i = 0;
const char *bibdata = citeDataList.first();
while (bibdata)
@@ -211,7 +210,7 @@ void CiteDict::generatePage() const
QCString doc;
QFileInfo fi(citeListFile);
QCString input(fi.size()+1);
- f.readBlock(input.data(),fi.size());
+ f.readBlock(input.rawData(),fi.size());
f.close();
input.at(fi.size())='\0';
int p=0,s;
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 5c42f57..3a103af 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -3123,18 +3123,19 @@ void ClassDef::mergeCategory(ClassDef *category)
Protection prot = mi->prot;
//if (makePrivate) prot = Private;
MemberDef *newMd = mi->memberDef->deepCopy();
- //printf("Copying member %s\n",mi->memberDef->name().data());
- newMd->moveTo(this);
-
- MemberInfo *newMi=new MemberInfo(newMd,prot,mi->virt,mi->inherited);
- newMi->scopePath=mi->scopePath;
- newMi->ambigClass=mi->ambigClass;
- newMi->ambiguityResolutionScope=mi->ambiguityResolutionScope;
- newMni->append(newMi);
-
- // also add the newly created member to the global members list
if (newMd)
{
+ //printf("Copying member %s\n",mi->memberDef->name().data());
+ newMd->moveTo(this);
+
+ MemberInfo *newMi=new MemberInfo(newMd,prot,mi->virt,mi->inherited);
+ newMi->scopePath=mi->scopePath;
+ newMi->ambigClass=mi->ambigClass;
+ newMi->ambiguityResolutionScope=mi->ambiguityResolutionScope;
+ newMni->append(newMi);
+
+ // also add the newly created member to the global members list
+
MemberName *mn;
QCString name = newMd->name();
if ((mn=Doxygen::memberNameSDict->find(name)))
@@ -3147,17 +3148,17 @@ void ClassDef::mergeCategory(ClassDef *category)
mn->append(newMd);
Doxygen::memberNameSDict->append(name,mn);
}
+
+ newMd->setCategory(category);
+ newMd->setCategoryRelation(mi->memberDef);
+ mi->memberDef->setCategoryRelation(newMd);
+ if (makePrivate || isExtension)
+ {
+ newMd->makeImplementationDetail();
+ }
+ internalInsertMember(newMd,prot,FALSE);
}
-
- newMd->setCategory(category);
- newMd->setCategoryRelation(mi->memberDef);
- mi->memberDef->setCategoryRelation(newMd);
- if (makePrivate || isExtension)
- {
- newMd->makeImplementationDetail();
- }
- internalInsertMember(newMd,prot,FALSE);
- }
+ }
// add it to the dictionary
dstMnd->append(newMni->memberName(),newMni);
@@ -4031,7 +4032,6 @@ int ClassDef::countMemberDeclarations(MemberListType lt,ClassDef *inheritedFrom,
static bool inlineInheritedMembers = Config_getBool("INLINE_INHERITED_MEMB");
if (!inlineInheritedMembers) // show inherited members as separate lists
{
- QPtrDict<void> visited(17);
count+=countInheritedDecMembers(lt,inheritedFrom,invert,showAlways,visitedClasses);
}
}
diff --git a/src/code.l b/src/code.l
index d96067e..09f1177 100644
--- a/src/code.l
+++ b/src/code.l
@@ -1236,7 +1236,6 @@ static void generateMemberLink(CodeOutputInterface &ol,const QCString &varName,
{
int vi;
QCString vn=varName;
- QCString scope;
if ((vi=vn.findRev("::"))!=-1 || (vi=vn.findRev('.'))!=-1) // explicit scope A::b(), probably static member
{
ClassDef *jcd = getClass(vn.left(vi));
diff --git a/src/config.l b/src/config.l
index a237faf..a10626e 100644
--- a/src/config.l
+++ b/src/config.l
@@ -85,7 +85,7 @@ static QCString convertToComment(const QCString &s, const QCString &u)
if (!s.isEmpty())
{
QCString tmp=s.stripWhiteSpace();
- char *p=tmp.data();
+ const char *p=tmp.data();
char c;
result+="#";
if (*p && *p!='\n')
@@ -431,19 +431,11 @@ static bool *b=0;
static QStrList *l=0;
static int lastState;
static QCString elemStr;
-static QCString includeName;
static QStrList includePathList;
static QStack<ConfigFileState> includeStack;
static int includeDepth;
static bool config_upd = FALSE;
-static QCString tabSizeString;
-static QCString maxInitLinesString;
-static QCString colsInAlphaIndexString;
-static QCString enumValuesPerLineString;
-static QCString treeViewWidthString;
-static QCString maxDotGraphWidthString;
-static QCString maxDotGraphHeightString;
static QCString encoding;
static Config *config;
@@ -495,8 +487,8 @@ static QCString configStringRecode(
}
size_t iLeft=(size_t)inputSize;
size_t oLeft=(size_t)outputSize;
- char *inputPtr = str.data();
- char *outputPtr = output.data();
+ char *inputPtr = str.rawData();
+ char *outputPtr = output.rawData();
if (!portable_iconv(cd, &inputPtr, &iLeft, &outputPtr, &oLeft))
{
outputSize-=(int)oLeft;
@@ -1695,7 +1687,7 @@ static QCString configFileToString(const char *name)
QCString contents(bSize);
int totalSize=0;
int size;
- while ((size=f.readBlock(contents.data()+totalSize,bSize))==bSize)
+ while ((size=f.readBlock(contents.rawData()+totalSize,bSize))==bSize)
{
totalSize+=bSize;
contents.resize(totalSize+bSize);
@@ -1721,7 +1713,7 @@ static QCString configFileToString(const char *name)
{
int fsize=f.size();
QCString contents(fsize+2);
- f.readBlock(contents.data(),fsize);
+ f.readBlock(contents.rawData(),fsize);
f.close();
if (fsize==0 || contents[fsize-1]=='\n')
contents[fsize]='\0';
diff --git a/src/declinfo.l b/src/declinfo.l
index f238be3..a90077e 100644
--- a/src/declinfo.l
+++ b/src/declinfo.l
@@ -45,7 +45,6 @@ static QCString funcTempList;
static QCString type;
static QCString name;
static QCString args;
-static QCString tmpType;
static int sharpCount;
static bool classTempListFound;
static bool funcTempListFound;
diff --git a/src/definition.cpp b/src/definition.cpp
index 6cb26de..8014a37 100644
--- a/src/definition.cpp
+++ b/src/definition.cpp
@@ -543,7 +543,7 @@ bool Definition::_docsAlreadyAdded(const QCString &doc,QCString &sigList)
// double whitespaces...
QCString docStr = doc.simplifyWhiteSpace();
MD5Buffer((const unsigned char *)docStr.data(),docStr.length(),md5_sig);
- MD5SigToString(md5_sig,sigStr.data(),33);
+ MD5SigToString(md5_sig,sigStr.rawData(),33);
//printf("%s:_docsAlreadyAdded doc='%s' sig='%s' docSigs='%s'\n",
// name().data(),doc.data(),sigStr.data(),sigList.data());
if (sigList.find(sigStr)==-1) // new docs, add signature to prevent re-adding it
diff --git a/src/dirdef.cpp b/src/dirdef.cpp
index d4af3f0..067daa0 100644
--- a/src/dirdef.cpp
+++ b/src/dirdef.cpp
@@ -80,16 +80,15 @@ void DirDef::addFile(FileDef *fd)
static QCString encodeDirName(const QCString &anchor)
{
- QCString result;
-
// convert to md5 hash
uchar md5_sig[16];
QCString sigStr(33);
MD5Buffer((const unsigned char *)anchor.data(),anchor.length(),md5_sig);
- MD5SigToString(md5_sig,sigStr.data(),33);
+ MD5SigToString(md5_sig,sigStr.rawData(),33);
return sigStr;
// old algorithm
+// QCString result;
// int l = anchor.length(),i;
// for (i=0;i<l;i++)
diff --git a/src/docbookgen.cpp b/src/docbookgen.cpp
index edcafdb..8530f31 100644
--- a/src/docbookgen.cpp
+++ b/src/docbookgen.cpp
@@ -589,11 +589,9 @@ static void generateDocbookForMember(MemberDef *md,FTextStream &t,Definition *de
t << "_1" << md->anchor() << "\">" << convertToXML(md->name()) << "</link>";
t << " (" << endl;
ArgumentList *declAl = md->declArgumentList();
- ArgumentList *defAl = md->argumentList();
if (declAl && declAl->count()>0)
{
ArgumentListIterator declAli(*declAl);
- ArgumentListIterator defAli(*defAl);
Argument *a;
int cnt=0;
for (declAli.toFirst();(a=declAli.current());++declAli)
@@ -812,7 +810,7 @@ static void generateDocbookForMember(MemberDef *md,FTextStream &t,Definition *de
}
}
-static void generateDocbookSection(Definition *d,FTextStream &t,MemberList *ml,const char *kind,
+static void generateDocbookSection(Definition *d,FTextStream &t,MemberList *ml,const char *,
bool detailed=0, const char *header=0,const char *documentation=0)
{
if (ml==0) return;
@@ -820,7 +818,6 @@ static void generateDocbookSection(Definition *d,FTextStream &t,MemberList *ml,c
MemberDef *md;
int count=0;
int doc_count=0;
- QCString compkind = kind;
QCString title, desctitle;
for (mli.toFirst();(md=mli.current());++mli)
diff --git a/src/docbookvisitor.cpp b/src/docbookvisitor.cpp
index 90262e3..29b3ea5 100644
--- a/src/docbookvisitor.cpp
+++ b/src/docbookvisitor.cpp
@@ -1326,7 +1326,6 @@ void DocbookDocVisitor::writeDotFile(const QCString &baseName, DocVerbatim *s)
shortName=shortName.right(shortName.length()-i-1);
}
QCString outDir = Config_getString("DOCBOOK_OUTPUT");
- QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
writeDotGraphFromFile(baseName+".dot",outDir,shortName,GOF_BITMAP);
visitPreStart(m_t, s->hasCaption(), baseName + ".dot", s->width(),s->height());
visitCaption(this, s->children());
diff --git a/src/docparser.cpp b/src/docparser.cpp
index 9a120dc..5208bbe 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -236,7 +236,8 @@ static void docParserPopContext(bool keepParamInfo=FALSE)
// replaces &gt; with < and &gt; with > within string s
static void unescapeCRef(QCString &s)
{
- char *p = s.data();
+ QCString tmp(s);
+ char *p = tmp.rawData();
if (p)
{
char c;
@@ -247,8 +248,9 @@ static void unescapeCRef(QCString &s)
}
}
- s=substitute(s,"&lt;","<");
- s=substitute(s,"&gt;",">");
+ tmp=substitute(tmp,"&lt;","<");
+ tmp=substitute(tmp,"&gt;",">");
+ s = tmp;
}
//---------------------------------------------------------------------------
@@ -844,7 +846,6 @@ static int handleStyleArgument(DocNode *parent,QList<DocNode> &children,
const QCString &cmdName)
{
DBG(("handleStyleArgument(%s)\n",qPrint(cmdName)));
- QCString tokenName = g_token->name;
int tok=doctokenizerYYlex();
if (tok!=TK_WHITESPACE)
{
@@ -1178,7 +1179,6 @@ static void handleParameterType(DocNode *parent,QList<DocNode> &children,const Q
{
QCString name = g_token->name;
int p=0,i;
- QCString type;
while ((i=paramTypes.find('|',p))!=-1)
{
g_token->name = paramTypes.mid(p,i-p);
@@ -2137,7 +2137,6 @@ DocXRefItem::DocXRefItem(DocNode *parent,int id,const char *key) :
bool DocXRefItem::parse()
{
- QCString listName;
RefList *refList = Doxygen::xrefLists->find(m_key);
if (refList &&
(
@@ -2571,7 +2570,6 @@ DocCite::DocCite(DocNode *parent,const QCString &target,const QCString &) //cont
{
static uint numBibFiles = Config_getList("CITE_BIB_FILES").count();
m_parent = parent;
- QCString anchor;
//printf("DocCite::DocCite(target=%s)\n",target.data());
ASSERT(!target.isEmpty());
m_relPath = g_relPath;
@@ -6939,7 +6937,7 @@ static QCString extractCopyDocId(const char *data, uint &j, uint len)
}
e=j;
QCString id(e-s+1);
- if (e>s) memcpy(id.data(),data+s,e-s);
+ if (e>s) memcpy(id.rawData(),data+s,e-s);
id.at(e-s)='\0';
//printf("extractCopyDocId='%s' input='%s'\n",id.data(),&data[s]);
return id;
diff --git a/src/doctokenizer.l b/src/doctokenizer.l
index d018450..f30e829 100644
--- a/src/doctokenizer.l
+++ b/src/doctokenizer.l
@@ -1150,8 +1150,8 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
<St_Comment>"-->" { /* end of html comment */
BEGIN(g_commentState);
}
-<St_Comment>[^-\n]+ /* inside html comment */
-<St_Comment>. /* inside html comment */
+<St_Comment>[^-]+ /* inside html comment */
+<St_Comment>. /* inside html comment */
/* State for skipping title (all chars until the end of the line) */
diff --git a/src/dot.cpp b/src/dot.cpp
index f9b4302..036cc86 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -156,8 +156,6 @@ static const char svgZoomFooter[] =
//--------------------------------------------------------------------
-static const int maxCmdLine = 40960;
-
/*! mapping from protection levels to color names */
static const char *normalEdgeColorMap[] =
{
@@ -383,7 +381,7 @@ static bool convertMapFile(FTextStream &t,const char *mapName,
while (!f.atEnd()) // foreach line
{
QCString buf(maxLineLen);
- int numBytes = f.readLine(buf.data(),maxLineLen);
+ int numBytes = f.readLine(buf.rawData(),maxLineLen);
buf[numBytes-1]='\0';
if (buf.left(5)=="<area")
@@ -733,7 +731,7 @@ static bool checkAndUpdateMd5Signature(const QCString &baseName,
{
// read checksum
QCString md5stored(33);
- int bytesRead=f.readBlock(md5stored.data(),32);
+ int bytesRead=f.readBlock(md5stored.rawData(),32);
md5stored[32]='\0';
// compare checksum
if (bytesRead==32 && md5==md5stored)
@@ -988,7 +986,7 @@ bool DotFilePatcher::run()
while (!fi.atEnd()) // foreach line
{
QCString line(maxLineLen);
- int numBytes = fi.readLine(line.data(),maxLineLen);
+ int numBytes = fi.readLine(line.rawData(),maxLineLen);
if (numBytes<=0)
{
break;
@@ -1135,11 +1133,12 @@ bool DotFilePatcher::run()
while (!fi.atEnd()) // foreach line
{
QCString line(maxLineLen);
- int numBytes = fi.readLine(line.data(),maxLineLen);
+ int numBytes = fi.readLine(line.rawData(),maxLineLen);
if (numBytes<=0)
{
break;
}
+ line.resize(numBytes+1);
Map *map = m_maps.at(0); // there is only one 'map' for a SVG file
t << replaceRef(line,map->relPath,map->urlOnly,map->context,"_top");
}
@@ -1964,8 +1963,8 @@ void DotNode::writeXML(FTextStream &t,bool isClassGraph)
if (!m_url.isEmpty())
{
QCString url(m_url);
- char *refPtr = url.data();
- char *urlPtr = strchr(url.data(),'$');
+ const char *refPtr = url.data();
+ char *urlPtr = strchr(url.rawData(),'$');
if (urlPtr)
{
*urlPtr++='\0';
@@ -2032,8 +2031,8 @@ void DotNode::writeDocbook(FTextStream &t,bool isClassGraph)
if (!m_url.isEmpty())
{
QCString url(m_url);
- char *refPtr = url.data();
- char *urlPtr = strchr(url.data(),'$');
+ const char *refPtr = url.data();
+ char *urlPtr = strchr(url.rawData(),'$');
if (urlPtr)
{
*urlPtr++='\0';
@@ -2105,8 +2104,8 @@ void DotNode::writeDEF(FTextStream &t)
if (!m_url.isEmpty())
{
QCString url(m_url);
- char *refPtr = url.data();
- char *urlPtr = strchr(url.data(),'$');
+ const char *refPtr = url.data();
+ char *urlPtr = strchr(url.rawData(),'$');
if (urlPtr)
{
*urlPtr++='\0';
@@ -2300,7 +2299,7 @@ void DotGfxHierarchyTable::createGraph(DotNode *n,FTextStream &out,
uchar md5_sig[16];
QCString sigStr(33);
MD5Buffer((const unsigned char *)theGraph.data(),theGraph.length(),md5_sig);
- MD5SigToString(md5_sig,sigStr.data(),33);
+ MD5SigToString(md5_sig,sigStr.rawData(),33);
bool regenerate=FALSE;
if (checkAndUpdateMd5Signature(absBaseName,sigStr) ||
!checkDeliverables(absImgName,absMapName))
@@ -3028,7 +3027,7 @@ QCString computeMd5Signature(DotNode *root,
uchar md5_sig[16];
QCString sigStr(33);
MD5Buffer((const unsigned char *)buf.data(),buf.length(),md5_sig);
- MD5SigToString(md5_sig,sigStr.data(),33);
+ MD5SigToString(md5_sig,sigStr.rawData(),33);
if (reNumber)
{
resetReNumbering();
@@ -3147,8 +3146,6 @@ QCString DotClassGraph::writeGraph(FTextStream &out,
regenerate=TRUE;
if (graphFormat==GOF_BITMAP) // run dot to create a bitmap image
{
- QCString dotArgs(maxCmdLine);
-
DotRunner *dotRun = new DotRunner(absDotName,
d.absPath().data(),TRUE,absImgName);
dotRun->addJob(imgExt,absImgName);
@@ -3506,7 +3503,6 @@ QCString DotInclDepGraph::writeGraph(FTextStream &out,
if (graphFormat==GOF_BITMAP)
{
// run dot to create a bitmap image
- QCString dotArgs(maxCmdLine);
DotRunner *dotRun = new DotRunner(absDotName,d.absPath().data(),TRUE,absImgName);
dotRun->addJob(imgExt,absImgName);
if (generateImageMap) dotRun->addJob(MAP_CMD,absMapName);
@@ -3819,7 +3815,6 @@ QCString DotCallGraph::writeGraph(FTextStream &out, GraphOutputFormat graphForma
if (graphFormat==GOF_BITMAP)
{
// run dot to create a bitmap image
- QCString dotArgs(maxCmdLine);
DotRunner *dotRun = new DotRunner(absDotName,d.absPath().data(),TRUE,absImgName);
dotRun->addJob(imgExt,absImgName);
if (generateImageMap) dotRun->addJob(MAP_CMD,absMapName);
@@ -3962,7 +3957,7 @@ QCString DotDirDeps::writeGraph(FTextStream &out,
uchar md5_sig[16];
QCString sigStr(33);
MD5Buffer((const unsigned char *)theGraph.data(),theGraph.length(),md5_sig);
- MD5SigToString(md5_sig,sigStr.data(),33);
+ MD5SigToString(md5_sig,sigStr.rawData(),33);
bool regenerate=FALSE;
if (checkAndUpdateMd5Signature(absBaseName,sigStr) ||
!checkDeliverables(graphFormat==GOF_BITMAP ? absImgName :
@@ -3984,7 +3979,6 @@ QCString DotDirDeps::writeGraph(FTextStream &out,
if (graphFormat==GOF_BITMAP)
{
// run dot to create a bitmap image
- QCString dotArgs(maxCmdLine);
DotRunner *dotRun = new DotRunner(absDotName,d.absPath().data(),TRUE,absImgName);
dotRun->addJob(imgExt,absImgName);
if (generateImageMap) dotRun->addJob(MAP_CMD,absMapName);
@@ -4108,7 +4102,7 @@ void generateGraphLegend(const char *path)
uchar md5_sig[16];
QCString sigStr(33);
MD5Buffer((const unsigned char *)theGraph.data(),theGraph.length(),md5_sig);
- MD5SigToString(md5_sig,sigStr.data(),33);
+ MD5SigToString(md5_sig,sigStr.rawData(),33);
QCString absBaseName = (QCString)path+"/graph_legend";
QCString absDotName = absBaseName+".dot";
QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
@@ -4508,11 +4502,10 @@ QCString DotGroupCollaboration::writeGraph( FTextStream &t,
uchar md5_sig[16];
QCString sigStr(33);
MD5Buffer((const unsigned char *)theGraph.data(),theGraph.length(),md5_sig);
- MD5SigToString(md5_sig,sigStr.data(),33);
+ MD5SigToString(md5_sig,sigStr.rawData(),33);
QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
QCString baseName = m_diskName;
QCString imgName = baseName+"."+imgExt;
- QCString mapName = baseName+".map";
QCString absPath = d.absPath().data();
QCString absBaseName = absPath+"/"+baseName;
QCString absDotName = absBaseName+".dot";
@@ -4539,8 +4532,6 @@ QCString DotGroupCollaboration::writeGraph( FTextStream &t,
if (graphFormat==GOF_BITMAP) // run dot to create a bitmap image
{
- QCString dotArgs(maxCmdLine);
-
DotRunner *dotRun = new DotRunner(absDotName,d.absPath().data(),FALSE);
dotRun->addJob(imgExt,absImgName);
if (writeImageMap) dotRun->addJob(MAP_CMD,absMapName);
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index e127b8e..30ee02b 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -2458,7 +2458,6 @@ static MemberDef *addVariableToFile(
// see if the function is inside a namespace
NamespaceDef *nd = 0;
- QCString nscope;
if (!scope.isEmpty())
{
if (scope.find('@')!=-1) return 0; // anonymous scope!
@@ -5493,7 +5492,6 @@ static bool findGlobalMember(EntryNav *rootNav,
{
Debug::print(Debug::FindMembers,0,"4. Try to add member `%s' to scope `%s'\n",
md->name().data(),namespaceName.data());
- QCString nsName = nd ? nd->name().data() : "";
NamespaceDef *rnd = 0;
if (!namespaceName.isEmpty()) rnd = Doxygen::namespaceSDict->find(namespaceName);
@@ -9962,7 +9960,7 @@ static void usage(const char *name)
msg(" If - is used for configName doxygen will read from standard input.\n\n");
msg("4) Use doxygen to generate a template file controlling the layout of the\n");
msg(" generated documentation:\n");
- msg(" %s -l layoutFileName.xml\n\n",name);
+ msg(" %s -l [layoutFileName.xml]\n\n",name);
msg("5) Use doxygen to generate a template style sheet file for RTF, HTML or Latex.\n");
msg(" RTF: %s -w rtf styleSheetFile\n",name);
msg(" HTML: %s -w html headerFile footerFile styleSheetFile [configFile]\n",name);
diff --git a/src/filedef.cpp b/src/filedef.cpp
index dd97c1c..c582a4b 100644
--- a/src/filedef.cpp
+++ b/src/filedef.cpp
@@ -1296,7 +1296,6 @@ void FileDef::addIncludedUsingDirectives()
visited=TRUE;
//printf("( FileDef::addIncludedUsingDirectives for file %s\n",name().data());
- NamespaceList nl;
if (m_includeList) // file contains #includes
{
{
@@ -1542,7 +1541,6 @@ static Directory *findDirNode(Directory *root,const QCString &name)
static void mergeFileDef(Directory *root,FileDef *fd)
{
- QCString rootPath = root->name();
QCString filePath = fd->absFilePath();
//printf("merging %s\n",filePath.data());
Directory *dirNode = findDirNode(root,filePath);
diff --git a/src/fortrancode.l b/src/fortrancode.l
index 51934cd..17a28c3 100644
--- a/src/fortrancode.l
+++ b/src/fortrancode.l
@@ -724,7 +724,7 @@ ATTR_SPEC (IMPLICIT|ALLOCATABLE|DIMENSION{ARGS}|EXTERNAL|{INTENT_SPEC}|INTRINSIC
ACCESS_SPEC (PROTECTED|PRIVATE|PUBLIC)
/* Assume that attribute statements are almost the same as attributes. */
ATTR_STMT {ATTR_SPEC}|DIMENSION
-FLOW (DO|SELECT|CASE|SELECT{BS}(CASE|TYPE)|WHERE|IF|THEN|ELSE|WHILE|FORALL|ELSEWHERE|ELSEIF|RETURN|CONTINUE|EXIT)
+FLOW (DO|SELECT|CASE|SELECT{BS}(CASE|TYPE)|WHERE|IF|THEN|ELSE|WHILE|FORALL|ELSEWHERE|ELSEIF|RETURN|CONTINUE|EXIT|GO{BS}TO)
COMMANDS (FORMAT|CONTAINS|MODULE{BS_}PROCEDURE|WRITE|READ|ALLOCATE|ALLOCATED|ASSOCIATED|PRESENT|DEALLOCATE|NULLIFY|SIZE|INQUIRE|OPEN|CLOSE|FLUSH|DATA|COMMON)
IGNORE (CALL)
PREFIX (RECURSIVE{BS_}|IMPURE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,3}(RECURSIVE|IMPURE|PURE|ELEMENTAL)?
diff --git a/src/fortranscanner.l b/src/fortranscanner.l
index 4875606..3c35a7d 100644
--- a/src/fortranscanner.l
+++ b/src/fortranscanner.l
@@ -72,7 +72,7 @@
#define YY_NEVER_INTERACTIVE 1
#define YY_NO_INPUT 1
-enum ScanVar { V_IGNORE, V_VARIABLE, V_PARAMETER};
+enum ScanVar { V_IGNORE, V_VARIABLE, V_PARAMETER, V_RESULT};
enum InterfaceType { IF_NONE, IF_SPECIFIC, IF_GENERIC, IF_ABSTRACT };
// {{{ ----- Helper structs -----
@@ -165,7 +165,6 @@ static ScanVar v_type = V_IGNORE; // type of parsed variable
static QList<Entry> moduleProcedures; // list of all interfaces which contain unresolved
// module procedures
static QCString docBlock;
-static QCString docBlockName;
static bool docBlockInBody = FALSE;
static bool docBlockJavaStyle;
@@ -202,6 +201,7 @@ static int yyread(char *buf,int max_size);
static void startCommentBlock(bool);
static void handleCommentBlock(const QCString &doc,bool brief);
static void subrHandleCommentBlock(const QCString &doc,bool brief);
+static void subrHandleCommentBlockResult(const QCString &doc,bool brief);
static void addCurrentEntry(int case_insens);
static void addModule(const char *name, bool isModule=FALSE);
static void addSubprogram(const char *text);
@@ -844,6 +844,7 @@ private {
QCString rght;
if (strt != -1)
{
+ v_type = V_RESULT;
lft = "";
rght = "";
if (strt != 0) lft = current_root->type.left(strt).stripWhiteSpace();
@@ -864,6 +865,10 @@ private {
}
if (current_root->type.length() > 0) current_root->type += " ";
current_root->type += "function";
+ if (!docBlock.isNull())
+ {
+ subrHandleCommentBlockResult(docBlock,TRUE);
+ }
}
else
{
@@ -982,6 +987,8 @@ private {
result=result.stripWhiteSpace();
addSubprogram(result);
BEGIN(Subprog);
+ current->bodyLine = yyLineNr + lineCountPrepass + 1; // we have to be at the line after the definition and we have to take continuation lines into account.
+ current->startLine = yyLineNr;
}
<Start,ModuleBody,SubprogBody,InterfaceBody,ModuleBodyContains,SubprogBodyContains>^{BS}({PREFIX}{BS_})?{SUBPROG}{BS_} {
@@ -1105,6 +1112,10 @@ private {
{
subrHandleCommentBlock(docBlock,TRUE);
}
+ else if (v_type == V_RESULT)
+ {
+ subrHandleCommentBlockResult(docBlock,TRUE);
+ }
yy_pop_state();
docBlock.resize(0);
}
@@ -2222,14 +2233,10 @@ static void subrHandleCommentBlock(const QCString &doc,bool brief)
current->inbodyDocs = "";
// strip \\param or @param, so we can do some extra checking. We will add it later on again.
- if (loc_doc.find("\\param") == 0)
- {
- loc_doc = loc_doc.right(loc_doc.length()-strlen("\\param")).stripWhiteSpace();
- }
- else if (loc_doc.find("@param") == 0)
- {
- loc_doc = loc_doc.right(loc_doc.length()-strlen("@param")).stripWhiteSpace();
- }
+ if (!loc_doc.stripPrefix("\\param") &&
+ !loc_doc.stripPrefix("@param")
+ ); // Do nothing work has been done by stripPrefix
+ loc_doc.stripWhiteSpace();
// direction as defined with the declaration of the parameter
int dir1 = modifiers[current_root][argName.lower()].direction;
@@ -2242,6 +2249,7 @@ static void subrHandleCommentBlock(const QCString &doc,bool brief)
{
// strip direction
loc_doc = loc_doc.right(loc_doc.length()-strlen(directionParam[SymbolModifiers::IN]));
+ loc_doc.stripWhiteSpace();
// in case of emty documentation or (now) just name, consider it as no documemntation
if (loc_doc.isEmpty() || (loc_doc.lower() == argName.lower()))
{
@@ -2268,6 +2276,7 @@ static void subrHandleCommentBlock(const QCString &doc,bool brief)
(directionParam[dir1] == directionParam[SymbolModifiers::OUT]))
{
loc_doc = loc_doc.right(loc_doc.length()-strlen(directionParam[SymbolModifiers::OUT]));
+ loc_doc.stripWhiteSpace();
if (loc_doc.isEmpty() || (loc_doc.lower() == argName.lower()))
{
current=tmp_entry;
@@ -2291,6 +2300,7 @@ static void subrHandleCommentBlock(const QCString &doc,bool brief)
(directionParam[dir1] == directionParam[SymbolModifiers::INOUT]))
{
loc_doc = loc_doc.right(loc_doc.length()-strlen(directionParam[SymbolModifiers::INOUT]));
+ loc_doc.stripWhiteSpace();
if (loc_doc.isEmpty() || (loc_doc.lower() == argName.lower()))
{
current=tmp_entry;
@@ -2322,6 +2332,37 @@ static void subrHandleCommentBlock(const QCString &doc,bool brief)
// reset current back to the part inside the routine
current=tmp_entry;
}
+//----------------------------------------------------------------------------
+/// Handle result description as defined after the declaration of the parameter
+static void subrHandleCommentBlockResult(const QCString &doc,bool brief)
+{
+ QCString loc_doc;
+ loc_doc = doc.stripWhiteSpace();
+
+ Entry *tmp_entry = current;
+ current = subrCurrent.getFirst(); // temporarily switch to the entry of the subroutine / function
+
+ // Still in the specification section so no inbodyDocs yet, but parameter documentation
+ current->inbodyDocs = "";
+
+ // strip \\returns or @returns. We will add it later on again.
+ if (!loc_doc.stripPrefix("\\returns") &&
+ !loc_doc.stripPrefix("\\return") &&
+ !loc_doc.stripPrefix("@returns") &&
+ !loc_doc.stripPrefix("@return")
+ ); // Do nothing work has been done by stripPrefix
+ loc_doc.stripWhiteSpace();
+
+ if (loc_doc.isEmpty() || (loc_doc.lower() == argName.lower()))
+ {
+ current=tmp_entry;
+ return;
+ }
+ handleCommentBlock(QCString("\n\n@returns ") + loc_doc,brief);
+
+ // reset current back to the part inside the routine
+ current=tmp_entry;
+}
//----------------------------------------------------------------------------
#if 0
diff --git a/src/groupdef.cpp b/src/groupdef.cpp
index 5c08048..64a3902 100644
--- a/src/groupdef.cpp
+++ b/src/groupdef.cpp
@@ -508,29 +508,21 @@ void GroupDef::removeMember(MemberDef *md)
}
}
-bool GroupDef::containsGroup(const GroupDef *def)
+bool GroupDef::findGroup(const GroupDef *def) const
{
if (this==def)
{
return TRUE;
}
- else if (groupList->find(def)>=0)
+ else if (groupList)
{
- return TRUE;
- }
- else // look for subgroups as well
- {
- GroupList *groups = partOfGroups();
- if (groups)
+ GroupListIterator it(*groupList);
+ GroupDef *gd;
+ for (;(gd=it.current());++it)
{
- GroupListIterator it(*groups);
- GroupDef *gd;
- for (;(gd=it.current());++it)
+ if (gd->findGroup(def))
{
- if (gd->containsGroup(def))
- {
- return TRUE;
- }
+ return TRUE;
}
}
}
@@ -1377,12 +1369,12 @@ void addGroupToGroups(Entry *root,GroupDef *subGroup)
warn(root->fileName,root->startLine,"Refusing to add group %s to itself",
gd->name().data());
}
- else if (gd->containsGroup(subGroup))
+ else if (subGroup->findGroup(gd))
{
warn(root->fileName,root->startLine,"Refusing to add group %s to group %s, since the latter is already a "
"subgroup of the former\n", subGroup->name().data(),gd->name().data());
}
- else
+ else if (!gd->findGroup(subGroup))
{
gd->addGroup(subGroup);
subGroup->makePartOfGroup(gd);
diff --git a/src/groupdef.h b/src/groupdef.h
index a21311b..a6ae533 100644
--- a/src/groupdef.h
+++ b/src/groupdef.h
@@ -64,7 +64,7 @@ class GroupDef : public Definition
void addDir(const DirDef *dd);
bool insertMember(MemberDef *def,bool docOnly=FALSE);
void removeMember(MemberDef *md);
- bool containsGroup(const GroupDef *def); // true if def is already a subgroup
+ bool findGroup(const GroupDef *def) const; // true if def is a subgroup of this group
void writeDocumentation(OutputList &ol);
void writeMemberPages(OutputList &ol);
void writeQuickMemberLinks(OutputList &ol,MemberDef *currentMd) const;
diff --git a/src/htags.cpp b/src/htags.cpp
index 1e18ae1..9535be7 100644
--- a/src/htags.cpp
+++ b/src/htags.cpp
@@ -105,7 +105,6 @@ bool Htags::execute(const QCString &htmldir)
bool Htags::loadFilemap(const QCString &htmlDir)
{
QCString fileMapName = htmlDir+"/HTML/FILEMAP";
- QCString fileMap;
QFileInfo fi(fileMapName);
/*
* Construct FILEMAP dictionary using QDict.
@@ -126,8 +125,10 @@ bool Htags::loadFilemap(const QCString &htmlDir)
line.at(maxlen)='\0';
if (f.open(IO_ReadOnly))
{
- while (f.readLine(line.data(),maxlen)>0)
+ int len;
+ while ((len=f.readLine(line.rawData(),maxlen))>0)
{
+ line.resize(len+1);
//printf("Read line: %s",line.data());
int sep = line.find('\t');
if (sep!=-1)
diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp
index cd6b635..ebef0d4 100644
--- a/src/htmldocvisitor.cpp
+++ b/src/htmldocvisitor.cpp
@@ -1063,7 +1063,6 @@ void HtmlDocVisitor::visitPost(DocPara *p)
}
}
- QCString context;
// if the last element of a paragraph is something that should be outside of
// the paragraph (<ul>,<dl>,<table>) then that will already have ended the
// paragraph and we don't need to do it here
diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp
index 3bb6792..582da45 100644
--- a/src/htmlgen.cpp
+++ b/src/htmlgen.cpp
@@ -125,7 +125,7 @@ QCString clearBlock(const char *s,const char *begin,const char *end)
QCString result(resLen+1);
char *r;
- for (r=result.data(), p=s; (q=strstr(p,begin))!=0; p=q+endLen)
+ for (r=result.rawData(), p=s; (q=strstr(p,begin))!=0; p=q+endLen)
{
int l = (int)(q-p);
memcpy(r,p,l);
@@ -186,7 +186,7 @@ static QCString getSearchBox(bool serverSide, QCString relPath, bool highlightSe
static QCString removeEmptyLines(const QCString &s)
{
BufStr out(s.length()+1);
- char *p=s.data();
+ const char *p=s.data();
if (p)
{
char c;
@@ -194,7 +194,7 @@ static QCString removeEmptyLines(const QCString &s)
{
if (c=='\n')
{
- char *e = p;
+ const char *e = p;
while (*e==' ' || *e=='\t') e++;
if (*e=='\n')
{
diff --git a/src/htmlhelp.cpp b/src/htmlhelp.cpp
index 2629ab3..7c12890 100644
--- a/src/htmlhelp.cpp
+++ b/src/htmlhelp.cpp
@@ -599,8 +599,8 @@ QCString HtmlHelp::recode(const QCString &s)
QCString output(oSize);
size_t iLeft = iSize;
size_t oLeft = oSize;
- char *iPtr = s.data();
- char *oPtr = output.data();
+ char *iPtr = s.rawData();
+ char *oPtr = output.rawData();
if (!portable_iconv(m_fromUtf8,&iPtr,&iLeft,&oPtr,&oLeft))
{
oSize -= (int)oLeft;
diff --git a/src/index.cpp b/src/index.cpp
index bc0b48e..9f7542f 100644
--- a/src/index.cpp
+++ b/src/index.cpp
@@ -1601,7 +1601,6 @@ static void writeAnnotatedClassList(OutputList &ol)
}
if (cd->isLinkableInProject() && cd->templateMaster()==0)
{
- QCString type=cd->compoundTypeString();
ol.startIndexKey();
if (cd->getLanguage()==SrcLangExt_VHDL)
{
diff --git a/src/mangen.cpp b/src/mangen.cpp
index dc02ccf..b5c2d4d 100644
--- a/src/mangen.cpp
+++ b/src/mangen.cpp
@@ -107,7 +107,6 @@ ManGenerator::~ManGenerator()
void ManGenerator::init()
{
- QCString ext = getExtension();
QCString &manOutput = Config_getString("MAN_OUTPUT");
QDir d(manOutput);
diff --git a/src/markdown.cpp b/src/markdown.cpp
index fdf1b0f..ee66127 100644
--- a/src/markdown.cpp
+++ b/src/markdown.cpp
@@ -132,7 +132,7 @@ static void convertStringFragment(QCString &result,const char *data,int size)
{
if (size<0) size=0;
result.resize(size+1);
- memcpy(result.data(),data,size);
+ memcpy(result.rawData(),data,size);
result.at(size)='\0';
}
@@ -810,7 +810,6 @@ static int processLink(GrowBuf &out,const char *data,int,int size)
{
return 0;
}
- static QRegExp re("^[@\\]ref ");
if (isToc) // special case for [TOC]
{
if (g_current) g_current->stat=TRUE;
diff --git a/src/marshal.cpp b/src/marshal.cpp
index 04f426d..af14978 100644
--- a/src/marshal.cpp
+++ b/src/marshal.cpp
@@ -456,7 +456,7 @@ QCString unmarshalQCString(StorageIntf *s)
result.at(len)='\0';
if (len>0)
{
- s->read(result.data(),len);
+ s->read(result.rawData(),len);
}
//printf("unmarshalQCString: result=%s\n",result.data());
return result;
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index 72f3e3c..9198960 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -2553,7 +2553,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
QCString cname = container->name();
QCString cfname = getOutputFileBase();
- QCString cfiname = container->getOutputFileBase();
// get member name
QCString doxyName=name();
@@ -3331,7 +3330,7 @@ void MemberDef::setAnchor()
QCString sigStr(33);
MD5Buffer((const unsigned char *)memAnchor.data(),memAnchor.length(),md5_sig);
//printf("memAnchor=%s\n",memAnchor.data());
- MD5SigToString(md5_sig,sigStr.data(),33);
+ MD5SigToString(md5_sig,sigStr.rawData(),33);
m_impl->anc = "a"+sigStr;
}
diff --git a/src/membergroup.cpp b/src/membergroup.cpp
index aa0a36e..d073173 100644
--- a/src/membergroup.cpp
+++ b/src/membergroup.cpp
@@ -312,7 +312,7 @@ QCString MemberGroup::anchor() const
QCString locHeader = grpHeader;
if (locHeader.isEmpty()) locHeader="[NOHEADER]";
MD5Buffer((const unsigned char *)locHeader.data(),locHeader.length(),md5_sig);
- MD5SigToString(md5_sig,sigStr.data(),33);
+ MD5SigToString(md5_sig,sigStr.rawData(),33);
return "amgrp"+sigStr;
}
diff --git a/src/msc.cpp b/src/msc.cpp
index f9e919c..3dd8841 100644
--- a/src/msc.cpp
+++ b/src/msc.cpp
@@ -169,7 +169,6 @@ QCString getMscImageMapFromFile(const QCString& inFile, const QCString& outDir,
QCString mscExe = Config_getString("MSCGEN_PATH")+"mscgen"+portable_commandExtension();
QCString mscArgs = "-T ismap -i \"";
mscArgs+=inFile;
- QFileInfo fi(inFile);
mscArgs+="\" -o \"";
mscArgs+=outFile + "\"";
@@ -201,7 +200,6 @@ void writeMscImageMapFromFile(FTextStream &t,const QCString &inFile,
)
{
QCString mapName = baseName+".map";
- QCString mapFile = inFile+".map";
t << "<img src=\"" << relPath << baseName << ".";
switch (format)
{
diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp
index c636cdf..c903d3d 100644
--- a/src/perlmodgen.cpp
+++ b/src/perlmodgen.cpp
@@ -1371,7 +1371,6 @@ void PerlModDocVisitor::visitPost(DocParBlock *)
static void addTemplateArgumentList(ArgumentList *al,PerlModOutput &output,const char *)
{
- QCString indentStr;
if (!al)
return;
output.openList("template_parameters");
diff --git a/src/portable.cpp b/src/portable.cpp
index 7f6be6e..ff29303 100644
--- a/src/portable.cpp
+++ b/src/portable.cpp
@@ -194,7 +194,10 @@ uint portable_pid()
return pid;
}
-static char **last_environ;
+#if defined(_WIN32) && !defined(__CYGWIN__)
+#else
+ static char **last_environ;
+#endif
void portable_setenv(const char *name,const char *value)
{
diff --git a/src/pycode.l b/src/pycode.l
index 585b587..4f9e396 100644
--- a/src/pycode.l
+++ b/src/pycode.l
@@ -79,7 +79,6 @@ static int g_paramParens;
static bool g_exampleBlock;
static QCString g_exampleName;
-static QCString g_exampleFile;
static QCString g_type;
static QCString g_name;
diff --git a/src/pyscanner.l b/src/pyscanner.l
index 1ac7b7a..6b68849 100644
--- a/src/pyscanner.l
+++ b/src/pyscanner.l
@@ -83,7 +83,6 @@ static Specifier virt;
static int docBlockContext;
static QCString docBlock;
-static QCString docBlockName;
static bool docBlockInBody;
static bool docBlockJavaStyle;
static bool docBrief;
@@ -97,7 +96,6 @@ static int g_indent = 0;
static int g_curIndent = 0;
static QDict<QCString> g_packageNameCache(257);
-static QCString g_packageScope;
static char g_atomStart;
static char g_atomEnd;
@@ -931,7 +929,6 @@ STARTDOCSYMS "##"
"=" { // default value
// TODO: this rule is too simple, need to be able to
// match things like =")" as well!
- QCString defVal=&yytext[1];
g_defVal.resize(0);
g_braceCount=0;
BEGIN(FunctionParamDefVal);
diff --git a/src/resourcemgr.cpp b/src/resourcemgr.cpp
index a15a702..4b504e4 100644
--- a/src/resourcemgr.cpp
+++ b/src/resourcemgr.cpp
@@ -132,7 +132,7 @@ bool ResourceMgr::copyResourceAs(const char *name,const char *targetDir,const ch
if (f.open(IO_WriteOnly))
{
QCString buf(res->size+1);
- memcpy(buf.data(),res->data,res->size);
+ memcpy(buf.rawData(),res->data,res->size);
FTextStream t(&f);
buf = replaceColorMarkers(buf);
if (qstrcmp(name,"navtree.css")==0)
@@ -172,7 +172,7 @@ QCString ResourceMgr::getAsString(const char *name) const
if (res)
{
QCString result(res->size+1);
- memcpy(result.data(),res->data,res->size);
+ memcpy(result.rawData(),res->data,res->size);
return result;
}
else
diff --git a/src/rtfdocvisitor.cpp b/src/rtfdocvisitor.cpp
index a11e42f..20fbf53 100644
--- a/src/rtfdocvisitor.cpp
+++ b/src/rtfdocvisitor.cpp
@@ -1414,6 +1414,11 @@ void RTFDocVisitor::visitPre(DocXRefItem *x)
if (x->title().isEmpty()) return;
bool anonymousEnum = x->file()=="@";
DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocXRefItem)}\n");
+ if (!m_lastIsPara)
+ {
+ m_t << "\\par" << endl;
+ m_lastIsPara=TRUE;
+ }
m_t << "{"; // start param list
//m_t << "{\\b "; // start bold
m_t << "{" << rtf_Style["Heading5"]->reference << endl;
diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp
index 354469b..3f09eec 100644
--- a/src/rtfgen.cpp
+++ b/src/rtfgen.cpp
@@ -2362,19 +2362,24 @@ static bool preProcessFile(QDir &d,QCString &infName, FTextStream &t, bool bIncl
// this is EXTREEEEEEEMLY brittle. It works on OUR rtf
// files because the first line before the body
// ALWAYS contains "{\comment begin body}"
+ int len;
do
{
- if (f.readLine(lineBuf.data(),maxLineLength)==-1)
+ lineBuf.resize(maxLineLength);
+ if ((len=f.readLine(lineBuf.rawData(),maxLineLength))==-1)
{
err("read error in %s before end of RTF header!\n",infName.data());
return FALSE;
}
+ lineBuf.resize(len+1);
if (bIncludeHeader) encodeForOutput(t,lineBuf.data());
} while (lineBuf.find("\\comment begin body")==-1);
- while (f.readLine(lineBuf.data(),maxLineLength)!=-1)
+ lineBuf.resize(maxLineLength);
+ while ((len=f.readLine(lineBuf.rawData(),maxLineLength))!=-1)
{
+ lineBuf.resize(len+1);
int pos;
if ((pos=lineBuf.find("INCLUDETEXT"))!=-1)
{
@@ -2406,6 +2411,7 @@ static bool preProcessFile(QDir &d,QCString &infName, FTextStream &t, bool bIncl
encodeForOutput(t,lineBuf);
}
}
+ lineBuf.resize(maxLineLength);
}
f.close();
// remove temporary file
diff --git a/src/scanner.l b/src/scanner.l
index d012b93..821959c 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -83,7 +83,6 @@ static int roundCount = 0 ;
static int curlyCount = 0 ;
static int squareCount = 0 ;
static int padCount = 0 ;
-static QCString slString;
static Entry* current_root = 0 ;
static Entry* global_root = 0 ;
static Entry* current = 0 ;
@@ -114,7 +113,6 @@ static QCString aliasName;
static QCString baseName;
static QCString* specName;
static QCString formulaText;
-static QCString formulaEnd;
static bool useOverrideCommands = FALSE;
static SrcLangExt language;
@@ -162,13 +160,7 @@ static bool needsSemi;
//static int depthIf;
static int initBracketCount;
-static QCString memberGroupRelates;
-static QCString memberGroupInside;
-static QCString xrefItemKey;
-static QCString xrefItemTitle;
-static QCString xrefListTitle;
-static QCString g_skipBlockName;
static QCString oldStyleArgType;
static QCString docBackup;
static QCString briefBackup;
diff --git a/src/searchindex.cpp b/src/searchindex.cpp
index 22727fe..d8ec491 100644
--- a/src/searchindex.cpp
+++ b/src/searchindex.cpp