File: changelog.txt

package info (click to toggle)
nforenum 4.0.0%2Bdebian1-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 744 kB
  • ctags: 898
  • sloc: cpp: 6,826; ansic: 727; makefile: 121; perl: 95; sh: 74
file content (914 lines) | stat: -rw-r--r-- 38,008 bytes parent folder | download
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
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
Changelog:
v3.4.6 to 4.0.0
- Change rename "renum" to "nforenum" including ".renum" to ."nforenum"
  so the name is less generic and the same as in several downstreams.
  You might need to update your development environment / build scripts.
- (devel) Complete rewrite of installation of binaries, so if you are
  packaging this you will have to check whether custom installation and
  such are still needed or that the Makefile does handle it correctly.
- Data file updates:
  - Enable actions 1..3 for airports, newobjects, railtypes and airport tiles.
  - Action 0 train prop 1A (change to extended byte).
  - Action 0 road vehicle prop 20,
  - Action 0 ship prop 1B.
  - Action 0 plane prop 1B.
  - Action 0 general variable properties 08, 11, 12.
  - Action 0 house props 21..22.
  - Action 0 bridge props 00, 10..13.
  - Action 0 airport properties 08..0A, 0C..10.
  - Action 0 object properties 0B..10.
  - Action 0 railtype properties 08..16.
  - Action 0 airport tile properties 08, 09, 0E..11.
  - Action 2 operators 14, 15, 16
  - Action 2 variables 12, 1D, 23, 24, 25.
  - Action 2 vehicle variable 49, 4A.
  - Action 2 stations: fix parameter limits on station var 60.
  - Action 2 house variable 47, 65, 66, 67.
  - Action 2 industry variable 46.
  - Action 2 objects variable 40..43.
  - Action 2 railtype variable 40..43, 80.
  - Action 2 airport tile variable 40..44, 60..62.
  - Action 2 station random bits: only 14h, not 20h bits are available.
  - Action 2 object random bits.
  - Action 2 canal random bits.
  - Action 2 railtype random bits.
  - Action 2 airport tile random bits.
  - Action 2 callback 149 works for objects.
  - Action 2 callbacks 14D..150, 152..154.
  - Action 5 types 07, 0D, 14, 15, 16.
  - Action 4 text IDs F960..F99A.
  - Action 4 twenty three new languages.
  - Action 7 variables A2..A4.
  - Action D variables A1..A4 were not readable.
- Fix U+E0xx characters being output quoted.
- Fix a hang when parsing non-UTF-8 quoted strings.
- Fix parameter parsing of stringcode 9A 04.
- Fix complaints about both params of action D operator 80 being FF.
- Fix assert when encountering end-of-line "comments" that begin with a
  single forward slash.
- Fix assert when $HOME ends with a slash.
- Fix comments not prefixed by whitespace could cause NFORenum to reject
  the preceding escape.
- Fix color codes in action 8 are permitted.
- Fix a 64-bit sign-extension vs zero-extension crash.
- Fix an action0 with no IDs caused a hang of NFORenum.
- Fix the error message "A portion of sprite xx could not be processed."
  reported the sprite before the one with the error.
- Fix a warning on newobject's buy menu sprite cargo type.
- Fix warning message about exceeded limits of bounding boxes.
- Fix bogus warnings when defining a range strings and then referring to
  a string in the middle of that range.
- Remove warning 135 (first sprite cannot share bounding box with
  previous sprite) as it's no longer a valid warning since both openttd
  and ttdpatch support multiple ground sprites
- Add -v to get the version.
- Make -w/-W <list> work the way it is supposed to.
- Make NFO error/warning messages go to stderr.
- Allow the beautifier to output escape sequences.
- Allow extended byte IDs in actions 3 and 4.
- Allow hex escapes that have bit 31 set.
- Allow bit 7 of the operation byte to be set when reading patch
  variables and other GRF parameters in action D.
- 0.dat can now specify that certain properties may exist multiple
  times in an action 0.
- Check action 3s for cargos that are specified twice.
- Add escapes for the new action 2 operations 10, 12, 13, 14, 15 and 16.
- Support bridge IDs 0B and 0C.
- Support random 2 type 84.
- Support string codes 9A 06, 9A 07, 9A 08, 9A 0B, 9A 0C.
- Support action 7/9 condition types 0D and 0E.
- Support action 14.
- (devel) Can no longer build without boost.
- (devel) Detect UPX and make strip optional.
- (devel) Race and bash-ism issues with the Makefile.
- (devel) Fix numerous compile warnings and harden NFORenum.

v3.4.5 to v3.4.6 (svn r1795)
- Data file updates:
  - Industry texts may have arbitrary text-stack data.
  - Action D patch variable 11.
  - Action 5 types 0F..12.
  - Action 5 type 07 takes 75 sprites.
  - Languages: Esperanto, Bulgarian, Japanese, Korean
  - House property 1F, 20.
  - Canal properties 08, 09.
  - Canal IDs 05..07.
  - Industry variables 44, 45, 68.
  - Mark variable 81 as readable in actions 7 and D.
  - Text IDs F945..F95F.
  - Adv. action 2 ops 11..13
  - House variable 63, 64.
  - Station variables 67, 68, 69.
  - Station variables 60..65 can take a parameter up to FF.
  - Callbacks 147..14C.
  - Industry properties 23, 24.
  - Action 7 variable A1.
  - Action B message 06.
  - Canal variables 82..83.
- Fix parameter check for global 60+x variables.
- Allow variational 2s to take var 1A with an <and-mask> of 0.
- Check that variational 2 operator 0F's left-hand side side was stored.
- Prohibit storing to persistent registers when they don't exist.
- Fix several bugs in the formatting of variable-length properties.
- Check cargo types against the cargo translation table.
- Add \2ror and \2rot for Adv2 op 11.
- Add \d<YMD> and \d<DMY> to generate long format intro dates.
- Support the extended action 5 format.
- Add support for string codes 9A 01 through 9A 04.

v3.4.4 to v3.4.5 (svn r1396)
- Data file updates:
  - New signals.
  - Variable 20.
  - Text IDs F941..F944.
- Fix yet more array index vs char* problems.
- Add offset info to a message that failed to have it.
- Ensure that VERSIONCHECK gets its required two arguments.
- Fix version 1 industry production callback support.
- Support Action 7/9's new GRFID/mask format.
- (minime) Allow @@LET variables to be redefined.

v3.4.3 to v3.4.4 (svn r1350)
- Data file updates:
  - Variable 7D.
  - Industries do not use GRM.
  - Industry tile variable 62.
  - Industry variables 43, 65, 66, 67, 7C.
  - New objects properties.
- Make unknown action 5 types look for real sprites or recolor sprites.
- Recognize action 2 operations 0E and 0F.
- Catch Action Fs that chain to themselves.
- Add escapes for the new action 2 operations 0E and 0F.
- Support new signals. (Actions 5, variational 2, and 3.)
- Process var. and random 2s and action 3 even when the feature is not
  recognized.
- (fix) Don't correct the feature of a var. or random 2 to match the
  preceding action 1.
- Industry production callback version 1.
- Produce a useful error message when data files are out of sync with each
  other.
- Variational action 2 operator 10.
- Make --data also report the data-file location.
- Check for duplicate IDs in an action 3.
- Check that prop 08 has been set before the action 3, when necessary.

v3.4.2 to v3.4.3 (svn r1244)
- Permit Action 1/2/3 for bridges (Callback 33)
- Data file updates:
  - Articulated RV callbacks and variables.
  - The long date properties
  - (fix) Station prop 18 is a word, not a byte
  - (fix) Callbacks 140..142 are for stations.
  - Action 7/9 variable 9A.
  - Version 2.5 beta 9.
  - TextIDs F90A..F940.
- Add $HOMEDRIVE$HOMEPATH to the list of search paths for .renum/
- Allow multiple sizes for some action 7/9 variables.
- Accept GRF version 7 lang-id bytes in action Bs that precede the action 8.
- Allow Action 6 <param-size> entries with bit 7 set.

v3.4.1 to v3.4.2 (svn r1057)
- Data file updates:
  - Callback 144
  - Callback 145
  - Action B messages 04 & 05
  - New action 5 sprites for trams and the GUI
- Action 13
- (bugfix) Enable autocorrection for feature 0B (cargo) action 4s
- Require two slashes before dismissing anything as a C++ style comment.
- Fix reading of real sprites with Unixy absolute paths.
- Add check for <and> B/W/Ds of 0 in varaction 2s.
- Fix off-by-one error when checking block extents in Action 12.

v3.4.0 to 3.4.1 (svn r820)
- Check that in GRF version 6, Action F declares names for all five standard
  languages.
- (bugfix) Slight change to action F formating, for increased consistancy.
- Prevent the beautifier from adding newlines after the end of a sprite.
- Fix: Version number is revision in hex digits, not converted to hex.
- Fix: LOCATEID2 now reports the correct feature byte.
- Data file updates:
  - Version 2.5 beta 8
  - Callback 143
- (bugfix) Correct reading of \7c, \7C, \D| and \D&.

v3.3.1 to v3.4.0 (svn r688)
- (devel) Can now make the version without \w<date> with NO_BOOST=1.
- (devel) By Patchman: non-release versions show last-committed revision, not
  repository revision.
- Added support for:
  - Industry variable 64.
  - String code 94.
  - Variable 7E (procedure calls).
- Added 2.<minor>r<revision> format for @@VERSIONCHECK.
- Added a missing check for 00 byte following string code 99.
- (devel) Terse build mode.
- Corrected handling of action 2 CargoIDs; all share the same table.
- Added offset info to the variational 2 messages that didn't have it.
- (bugfix) No longer crashes when an industry production callback is not 15
  bytes long.
- (autocorrect) Feature byte for actions 2 and 3.
- Made <feature> optional in most commands taking <feature> <id>.
- Fixed two over-long lines in the --help message.
- (devel) Removed Boost headers from Makefile.dep.
- Remove warning about moving to a smaller ypos.
- Added check for second use of a single bit in Action F.
- (bugfix) Action Fs that try to use too many bits now report the correct
  <offset> and <available-bits>, instead of having them swapped.
- (bugfix) Fix parsing of quoted \##.

v3.3.0 to v3.3.1 (svn r320)
- Recognize Info version 7.
- Warn about generic action 4s that declare no texts.
- More auto-corrector changes:
  - Append an FF to action 6s.
  - Append a 00 to strings.
- @@BEAUTIFY CONVERTONLY now converts hex to "strings", not "s" "t" "r" ...
- (bugfix) Action4s declaring texts for language FF could cause NFORenum to
  abort.

v3.2.1 to v3.3.0 (svn r284)
- Add an auto corrector, which will attempt to correct some portions of some
  pseudo-sprites when enabled. (See README)
- (bugfix) Specifying -f could potentially cause undefined behaviour.
- Allow + and - in more places on the commandline. Specifically, in eg
  "-b convertonly+", rather than just "-b-".
- (devel, docs) fixed release scripts that caused breakage in the 3.2.1 docs,
  and repaired the breakage.
- Also check for embedded 00 bytes after the 01 and 1F control characters.
- Add a length-check for actions 7 and 9.
- Produce more useful and reliable messages when a file-system-related call
  fails.
- If the input file can't be deleted, report about that, instead of just
  reporting that the rename failed.
- Check that action 7/9 don't jump past the end of the file.
- (bugfix) Fix an issue creating the .renum folder on Win9x
- Update langs.dat for the new languages.
- (bugfix) Warn about action 4s that declare no texts, rather than dying.

v3.2.0 to v3.2.1 (svn r187)
- @@USEOLDSPRITENUMS
- @@DEFINEID2
- @@LOCATEID2
- @@TESTID2
- (bugfix) Error message when Action B contains an invalid parameter now
  reports correct offset and parameter.
- Check for including textIDs with a 00 byte.
- (bugfix) Prevent beautifier from inserting extraneous blank lines a line
  that contains only quoted characters.
- Merge the <xoff>/<yoff> checks with the <xoff>+<xextent>/<yoff>+<yextent>
  checks, and reduce them to Warn3.
- Remove the check requiring that callbacks 40..FF be checked with a
  doubleword var2. 1) It's a word var2, and 2) they're invalid anyway.
- New properties, variables, and callbacks:
  - Station properties: 16, 17, 18
  - Station variables: 4A, 66
  - Callbacks: 140, 141, 142
- New action 5 type 0D

Changelog:
v3.1.4 to v3.2.0 (svn r156)
- (hotfix) TextIDs F900..F904.
- (hotfix) Callbacks 3C and 3D.
- (hotfix) Industry variable 63, industry tile variable 61,
  vehicle variable 48.
- (devel) Parse pseudos into strings of bytes, not strings of hex characters.
  (~33% speed increase, ~50% memory usage reduction)
- New format for lang bytes.
- Check that lang byte contains a known language.
- @@BEAUTIFY LINEBREAKS (see README[.txt])
- @@BEAUTIFY CONVERTONLY (see README[.txt])
- (devel) Use boost for current-function macro.
- (devel) Split act123.cpp since I could never find anything in it.
- (change) Ensure that Action 2s of at least three bytes always define
  their ID.
- (devel) Lose the goto that sometimes succeded at the above.
- (devel) Merge the two forms of INTERNAL_ERROR (file/line)
- Check for duplicate style-names for all languages.
- Allow ON and OFF on the command line as + and -, resp.
- @@CLEARACTION2
- @@CLEARACTIONF

v3.1.3 to v3.1.4
- Action 02 feature 07/09 <xofs> and <yofs> no are longer limited to 00..0F.
- (bugfix) Fix check for non-decreasing ypos in real sprites.

v3.1.2 to v3.1.3
- (bugfix) Bit 7 of <triggers> is not a trigger.
- (hotfix) Add industry property 10.

v3.1.1 to v3.1.2
- Enable pretty-printing of overlength action 0s.
- Tightened resultant range from shift-and-add-mod varadjusts in some cases.
- (bugfix) Reinstate check for random 2 <nrand>s of 00.
- Always check triggers and bits in random 2s, not just if <nrand> is valid.
- (bugfix) Skip the offset byte after code 01 in strings.
- (bugfix) Report correct offsets when random 2s misuse the available bits.
- Complain about shift-and-add-mod when add%mod==0, not just when add==0.
- (hotfix) Added station variable 65.

v3.1.0 to v3.1.1
- (bugfix) Check for UTF-8 in UTF-8 strings, not Latin-TTD strings.
- Added 2.0.1a<num>, 25b<num>, and 2.5b<num> formats to VERSIONCHECK.

v3.0.2 to v3.1.0
- Varaction range checking now checks ranges for agreement with <var-adjust>.
- Randactions are checked for using valid bits and triggers.
- Added check for both high bits set in varaction <shift>s.
- Reverted "Do not break if the remaining bytes are guaranteed to fit" in
  favor of an explicit "no line break here" when line breaks do not belong.
- (bugfix) Action F checker occasionally requested one too many random bits.
- (devel) Data files now contain two meta-info bytes; format and version.
- (hotfix) Pulled industry var 5F.
- (hotfix) Added industry var 62.
- (hotfix) Added type 0C action 5s.
- (bugfix) Removed extraneous "m/" from message when a datafile read failed.
- Fully functional UTF-8 parser:
  - Encoded Thorn is C3 9E. (again, grr...)
  - Encoded control characters are now checked.
  - 7B..7E in UTF-8 strings are quoted.

v3.0.1 to v3.0.2
- (bugfix) Check proper range when checking default on type 89/8A varactions.
- (bugfix) Action 0 feat 8 prop 10 is 384 bytes.
- Added pretty-printing for action 0 feature 8 prop 10.

v3.0.0 to v3.0.1
- Added variational range accessibility checks.
- 2.0.1 alpha 74 updates:
  - Widened industry variable 61 to a word.
  - General variables prop 10.
- Added missing \n to --help message.

v3.0.0 pre 2 to v3.0.0
- Added pretty-printing for action 0 and F.
- Several beautifier bugfixes/changes:
  - Obey LINELENGTH.
  - Add missing newline between <message> and <data> in action B.
  - Whitespace between code and comment from the previous line(s) in a sprite
    no longer added to the current line.
  - Do not break if the remaining bytes are guaranteed to fit.
- Action F updates:
  - Uses the action 4/8/B string parsing routines.
  - New language byte format applies to action F too.
- Added --lock, to prevent NFO files from overriding the commandline.
- (bugfix) "Unexpected EOF: Unused town name IDs" message goes to the
  console, not the NFO.
- (bugfix) Make -k not cause crashes.
- Add check for presence of <description> in action 8.
- (bugfix) Action Bs with message-id FF now check <data> ...

v3.0.0 pre 1 to v3.0.0 pre 2
- Added pretty-printing for all actions except 0 and F.
- Added pretty-printing for recolor maps and binary imports.
- All strings now obey QUOTEUTF8.
- All GRFIDs now obey HEXGRFID.
- Changed beautifier's cookie format.
- Changed LEADINGSPACE to allow three independent settings.
- Changed line breaks to start 15 characters before max.
- (bugfix) GETCOOKIE returns a valid comment command.
- (bugfix) Corrected NOPRESERVE's meaning when following @@BEAUTIFY
- (bugfix) UTF-8 encoded Thorn is C3 9E, not C3 93.
- (bugfix) Action 7/9 test 06 is a GRFid test.

v2.8.5 to v2.8.6/v3.0.0 pre 1
- Made comment commands case insensitive (except for variable names).
- Made undef @@BEAUTIFY options and settings complain instead of set default.
- More a73 updates:
  - Callback 3B.
  - Industry production callback's <again> may have any value.
  - Industry variable 61.
  - TextIDs F8FB..F8FF.
- (3.0.0 pre 1 only) Enabled the beautifier.
- (2.8.6 only) diked out @@BEAUTIFY, &c.

v2.8.4 to v2.8.5
- (bugfix) -? message now says @@REALSPRITES.
- (bugfix) Checked to ensure that pseudo continuation lines were being
   attached to pseudosprites, rather than turning into independent sprites.
- Added @@BEAUTIFY/--beautify/-b. (No beautifier to control, though.)
- Added '=' as an acceptable delimiter for comment commands.
- Changed @@DIFF to imply @@LINT NONE.

v2.8.3 to v2.8.4
- (hotfix) Added industry variable 60.
- Added support and checks for action 12.

v2.8.2 to v2.8.3
- Beginnings of sprite-rewriting system. No new functionality yet, though.
- (devel) Moved data-file version bytes to data.cpp.
- Changed "Length does not match ..." (#40) to contain more information.
- (bugfix) Reverted "(bugfix) Checks length of extended house/industry tile
  action2s before processing." from 2.4.8.
- (bugfix) Callback 30 is for industry tiles, not industries.
- Added check for action 8 before GRM action Ds.

v2.8.1 to v2.8.2
- More a72 and GRFv7 updates:
  - Action 7 condition 0C
  - Allow action 4s for industry tiles
  - Allow line breaks in industry texts (hotfix)
  - Industry property 22 (hotfix)
- (bugfix) Actually add --real-sprites.
- Add check for "looks like an NFO file" (override with -f).
- (bugfix) Set EPARSE when encountering a file with a too-large version.

v2.8.0 to v2.8.1
- Up to date with 2.0.1 alpha 72 (all hotfix)
  - Train variable 48 (still undocumented)
  - House variable 62
  - Industry tile variable 60 (widened to 4 bytes)
  - Cargo properties 19..1A
  - Callbacks 38..3A
- (bugfix) Fixed hang when outputting a wider-than-specified value.

v2.7.0 to v2.8.0
- Added @@REALSPRITES/--real-sprites/-r.
- Made sprite numbers optional most of the time.
- Up to date with a70's action 7/9/10 handling.
- Add checks for valid usage of variable 0C. (messages 163..165)
- Made "-1 * 1 00" only parse as a real sprite when looking for real sprites.
- (bugfix) Report proper ID range on invalid non-text ids.

v2.6.4 to v2.7.0
- Change @@DIFF to set sprite lengths to 0 and sprite 0 to "00 00 00 00".
- Add several command-line arguments (see renum -?).
- Look for .renum directory in HOME too, if defined.
- (bugfix) Crash when directory could not be created.
- (devel) Use GNU getopt for command-line parsing.
- (devel) Split and sanify data directory location & creation.

v2.6.3 to v2.6.4
- Complain when DCxx IDs are included.
- (bugfix) Allow changing class E0 TextIDs.
- (devel) Revert %e format specifier.
- Revert format/arguement agreement checks.
- Make argument supercede format for width determination.

v2.6.2 to v2.6.3
- (hotfix) Add new class F8 TextIDs.
- (bugfix) Allow including TextID C7FF (81 FF C7).
- (bugfix) Format/argument agreement for some instances of INVALID_ID (141).
- (bugfix) No longer die on (non-Text)IDs above FF.
- (devel) Added %e format specifier, for extended bytes.
- Added format/argument agreement checks. (non-fatal)
- (bugfix) Re-write import sprites in canon format.
- (bugfix) Allow setting properties for sound ID 49.

v2.6.1 to v2.6.2
- (bugfix) No warnings about backwards gotos when skipping 20..DF sprites.
- (bugfix) Fixed hangs when using control characters where they are ignored.
- (devel) Moved Action 0 feature 8 special-casing to 0f8.dat
- Added checks for generic textIDs.
- Checks for setting out-of-range texts using too-large <num-ent>.
- Up to date with 2.0.1 alpha 69:
  - (hotfix) Action D variable 9F.
  - (hotfix) Action 0 feature 08 props 0A..0F.

v2.6.0 to v2.6.1
- Up to date with 2.0.1 alpha 68:
  - Added UTF-8 support
  - Action 5 type 0B
  - Action D variable 9E
- (bugfix) Really fixed the broken param checking for 60+x vars.
- Added missing checks for extra data in action 8s.
- Removed special casing in action 8s that permitted non-terminated strings.

v2.5.5 to v2.6.0
- Added RPN calculations in real sprites. (see README.RPN)
- Added @@LET comment command.
- (devel) s/setcode/SetCode/g.
- (devel) split check_sprite into two functions.
- (devel) removed a write-only string in verify_real.
- Changed "Cannot read sprite metadata" message to report where it failed.

v2.5.4 to v2.5.5
- (devel) Split action 5 processing off to act5.cpp.
- (devel) New datafile: 5.dat.
- Added action 5 types 09 and 0A.
- Added missing num-sprites checks for action 5.
- Added support for recolor maps.
- Accept recolor maps in action A blocks.
- (bugfix) Correctly number pseudo/include sprites that precede real sprites.

v2.5.3 to v2.5.4
- Added 201a66 format to @@VERSIONCHECK.
- (devel) More reworking of the message system.
- (bugfix) Fixed a GPF on invalid real sprites.
- (bugfix) Accept real sprites where ".pcx" is followed by a non-space
  whitespace character.
- Added numerous checks of the real sprite meta data. (156-60)
- (hotfix) Fixed an off-by-one in GRM (D.dat).

v2.5.2 to v2.5.3
- Up to date with a66:
  - General prop 09
  - Cargo prop 17
  - Action 2 variable 47 (vehicles)
  - Action 3 cargo type checks
  - Ignore high bit of action B severities.
  - Changed @@VERSIONCHECK to agree more closely with the documentation.
  - Action 7 condition 0B.
- Fixed general variable ID checks
- Added check for setting sound props for IDs <74 (4Ah)
- (devel) Removed action 2 variable range data and associated loading code.
- (bugfix) Check correct byte in "0*0 00 01 00 FF xx xx 01 1A".
- (devel) New data-file loading #define, GetCheckEOF.
- (bugfix) Add several missing fcloses.
- (devel) Substantial rework of the message output system.
- (bugfix) Remove an idiotic check in the message output system.

v2.5.1 to v2.5.2
- (bugfix) fixed @@VERSIONCHECK (also shortened the output by 3 bytes).
- Added patch variable 9D.
- Made patch variable 99 write-only.
- (bugfix) Re-added action D operations 09..0C.

v2.5.0 to v2.5.1
- Added @@LINT command; deprecated @@SANITY.
- Changed/fixed exit codes.
- (bugfix) Fixed stack checking for data other than words.
- Added @@VERSIONCHECK command.
- Redid livery override checks (valid feature and follows std 3).
- (bugfix) Added missing data-clearing between files for actions 1-3.
- Downgraded the "Not a recolor sprite" message to Warn 1.
- (devel) renamed defines.h to renum.h

v2.4.9 to v2.5.0
- (hotfix) Made variables 10 and 18 always accessible.
- NFORenum will now automatically write its data files if old or not found.
- (devel) Added versioning byte to beginning of every data file.
- Added full recognition of all string control characters.
- Added (some) string consistancy checking. (actions 4/8/B) (messages 144-9)
- Added action B checking. (messages 150-3)
- (devel) added %K, for stack types.
- (devel) removed attempts at Mac compatibility (still endian-safe, though)
- Reversed the file search order.
- (bugfix) no longer append an 'L' to language names.
- (devel) changed many of the global objects to singletons.
- Up to date with alpha 63:
  - Widened vehicle variable 43.
  - Accept action 1 <num-ent>==0. (features 0-4 only, though)
  - Action 7/9 tests 09 and 0A.
  - GRM operation 06.
- Updated the strings containing "Sanity".

v2.4.8 to v2.4.9
- (bugfix) Don't issue an invalid action byte message on import sprites.

v2.4.7 to v2.4.8
- (hotfix) Added houses variables 10 and 18.
- (hotfix) Widened house var 44 to a dword.
- Up to date with a61:
  - Supports sound imports
  - Action 0 <id> is now an extended byte
- (devel) added %S to my *printf spec, for "expandable string".
- Some message considation.
- (devel) s/LengthCheck/CheckLength/g
- (bugfix) Checks length of extended house/industry tile action2s before
  processing.
- (bugfix) Fixed callback result check (id&0x8000, not &0xF000)
- Added check for valid transparent translation sprite.
- Added offset leaders to three more messages
- (devel) removed offset leaders from strings; added HAS_OFFSET bit instead.
- (docs) removed suppression comment from SANITY.txt
- Added check for using only constant variables (1A and 1C). (message 113)
- Removed duplicate default warning if (and only if) nvar == 1 and the
  referenced cargo ID checks variable 1C.

v2.4.6 to v2.4.7
- (devel) completed datafile reworking.
- Up to date with a59:
  - Added variables 1C, 5F.
  - Added train variable 46.
  - Added station variable 49.
- (change) Added variable 42 to RVs, ships, planes. (only low byte, though)
- Added property to message 65 (unexpected end-of-sprite).

v2.4.5 to v2.4.6
- (bugfix) Revert to 2.4.2's newline handling.
  (My "fix" in 2.4.3 had a tightloop that would terminate in ENOMEMORY.)
- (packing) Removed an old file from source dir.
- (devel) started reworking of datafile handling
- Up to date with a59pre3:
  - Action 2 variable 7F
  - Action 2 trains variable 46
  - Action D operations 09..0C
- Renumbered messages.

v2.4.4 to v2.4.5
- (bugfix) Added variables 10 and 18 to houses.
- (bugfix) Enabled cargotypes 1D..1F in action 3s.

v2.4.3 to v2.4.4
- Up to date with a58:
  - Newsounds properties

v2.4.2 to v2.4.3
- Removed check for not-variational action 2 (now it's a callback return).
- (bugfix) Fatal errors on action 2s define the associated ID.
- (devel) moved meat of LENGTH_CHECK into LengthCheck.
- States version on startup.
- (bugfix) Using standard in/out works again. Also, explicitly state that
  stdin/out are being used.
- (bugfix) Correct handling of quoted newlines.
- Checks ID(s) given in actions 0,3,4 (1 byte IDs only in 4s) (message 139)
- (bugfix) No longer errors on no-groundsprite house action 2s.
- Checks for at least one non-transparent building sprite if no ground sprite
  in house/industry tile action 2s.
- (devel) "%#x" now safely produces little endian text, as XX XX ...
  (bugfix) GRFids no longer come out reversed on LE systems. (message 119)
- (bugfix) Reports the correct sprite number if an incorrect number of
  reals follow an action 5.
- (devel) Some cleanup in act123.cpp.
  (bugfix?) Probably some fixes in standard action 2 handling.
- Checks <num-cid> in action 3s (must be 0 for features 5,7,9..B).
  (message 140)
- Attempted to be up-to-date with a58:
  - Train props 27..29
  - RV props 1C..1E
  - Ship props 17..19
  - Plane props 17..19
  - Cargo prop 16
  - Variable 1B
  - Industry tile variable 60
- Checks that livery overrides are only used with features 0 and 3.

v2.4.1 to v2.4.2
- Added check for Action E disabling reserved GRFID (FF .. .. ..)
  (message 134)
- Increases nfo version, if necessary.
- Up to date with documentation for alpha 57:
  - Binary include sprites (and their pre-grfcodec 0.9.7 equivilants)
    (messsages 135..137)
  - Action 11
- (bugfix) Fixed resource management feature check.
- (bugfix) Now complains about 79Dv.dat, not 7Dv.dat.
- (devel) Changed resouce management to use a data file.
- Added <count> checks for resource management. (message 138)
- (devel) Messages are now stored as char*s, not std::strings.
- Removed the whole "Can disable following warnings/errors" concept.
  (and some associated bugs.)
- (bugfix) No longer eats NFO files with an unknown version.
- (bugfix) No longer eats NFO files that follow a file with an unknown
  version.

v2.4.0 to v2.4.1
- Cargo prop 15 (alpha 57)
- (bugfix) Action 2s can refer to their own ID.
- Train variable 60 (alpha 57)

v2.3.6 to v2.4.0
- Checks actions D, E, F (messages 119..129)
- Up to date with alpha 55 vcs 3
  - House props 1D, 1E (a55vcs2)
  - Parameterized variable support (message 130)
  - Station variables 48, 60..64
  - House variables 60, 61
  - New house/industry tile action 2 format (messages 131..133)
- (bugfix) probable crash on incorrect length basic 07/09 standard 2s.
- (bugfix) color translation checks didn't.
- (devel) added 79Dv.dat for the 7/9/D variable information.
- (devel) renamed 7.cpp 79D.cpp to more accurately reflect its purpose.

v2.3.5 to v2.3.6
- Up to date with alpha 55 vcs
  - newcargos
  - global variable 1A
  - multiply, and, or, and xor operations
- Added warning for too many sprites in set.
- Added warning for an unusual set size (features 0-3, sizes 5-7)

v2.3.4 to v2.3.5
- (bugfix) Gives the correct offset for an incorrect operation code.
- (bugfix) Enabled variable 80 for vehicles. (Used in AI callbacks.)
- (bugfix) Reports correct location of preceding action 1.

v2.3.3 to v2.3.4
- (bugfix) No longer overruns the sprite on variational action 2s where
  <nvar> is greater than 1.

v2.3.2 to v2.3.3
- Parses a54's new variational action 2s.
- Checks for valid operation in new variational action 2s.
- Added <variable> to message 84. (Testing nonexistent variable)
- (bugfix) Unused industry cargoIDs are now reported.
- (bugfix) Message 23 (Unexpected EOF: Unused cargo ids...) now displays
  feature in hex. (invisible)
- Added variable 18 for industries.

v2.3.1 to v2.3.2
- (bugfix) Standard action 2s not preceded by an action 1 now returns a more
  meaningful error.
- (bugfix) Standard action 2s that do not require new graphics do not check
  the preceding action 1 (if it exists)
- Up to date with alpha 53 vcs:
  - Industry production callbacks
  - Industry tile properties 0E-11
  - Industry tile variable 44
  - Industry variables 40-42
- Changed one more sprite-too-long type message to warning level 2.
- (devel) Changed INTERNAL_ERROR to be more useful.
- (devel) Cleared up gcc compilation.

v2.3.0 to v2.3.1
- Added station variables 46 and 47 (a51).
- (bugfix) Now checking correct byte of action 7s for potential goto.
- Changed all the sprite-too-long type messages to warning level 2.
- Added checks for Action 6:
  Changes following sprite
  Does not attempt to extend following sprite
  Following sprite exists
- (packaging fix) Removed renum.tar.bz2 from the src/ dir (renum.rar and
  renum.zip) Please don't ask me how it got there.

v2.2.3 to v2.3.0
- (devel) Moved action 1-3 checking to its own .cpp file
- (bugfix) "Feature byte does not match..." message would output jibberish
  instead of the location of the previous action 3.
- Added checks:
  Standard action 3 precedes override action 3
  Override action 3 closely follows standard 3
  Variable in variational action 2 exists.
  Variable in variational action 2 is not being shifted into oblivion.
- (bugfixes) Validated 0.dat:
  Fixed house props 11, 12, and 16
  Fixed bridge props 0B-0D, added 0E
  Added station props 14 (a47) and 15 (a51)
  Fixed industry props 1B, 1C

v2.2.2 to v2.2.3
- Removed check for comments at the end of pseudo-sprite lines
- (bugfix) '/' is now an acceptable directory separator
- (bugfix) String support no longer breaks when high-ASCII characters are quoted.
- (devel) fixed gcc 3.4.3 compilation

v2.2.1 to v2.2.2
- Added @@WARNING command.
- Changed FAILURE to FATAL.
- Changed/combined some strings.
- (bugfix) No longer warns about "-1*6 00 00 01 00 ?? 1A" (Finally!)
- Raised error messages to always.
- Enabled var/rand action 2 and action 3 for feature 0A.
- (devel) fixed gcc warnings when compiled -W -Wall.

v2.2.0 to v2.2.1
- (bugfix) TTD defines sprites up to #4894.
- (bugfix) changing TTD's last sprite is permissible.

v2.1.0 to v2.2.0
- (bugfix) 0.dat can be updated for new features without changing the source.
- (devel) Added MSVC .NET project files to src/
- Up-to-date with alpha 49:
  New action 0 properties for industry tiles and industries
  Extended-byte <num-ent> for action 1 and <num-sprites> for action 5
  Action 10
- (bugfix) Terminated repetition now correctly handles multi-byte terminators.
- Updated the action 1/2/3 linter:
  Feature bytes larger than 07 are permissible.
  Checks ALL standard action 2s
  Accepts callback results in standard action 2s
- Added detection for property repetition in an action 0.
- Added string support (but only if "Info version 5" or no NFO header)
- (devel) Cleaned up whitespace
- Added @@PRESERVEMESSAGES and made @@REMOVEMESSAGES default.
- Added checks:
  Action 8:
    Presence
    Duplicate
    Valid GRFID
  Action 7/9:
    <variable>, <varsize>, and <condition-type> agreement
    Backwards goto
  Action 10:
    Duplicate
    Usage
  Action 4:
    String count
  Action A:
    Sprite number
- Adjusted some warning levels.
- (bugfix) Feature 0A prop 1A is a dword, not a byte.
- Do not lint NFO files where the first sprite is a real sprite.
- (linter) Do not accept real sprites prior to the first Action 1/5/A.

v2.0.4 to v2.1.0
- Added checking of Action 0s
- (Bugfix) Removed various incorrect messages that could be issued on an
  overlength Action 3
- Moved source files to the src/ directory

v2.0.3 to v2.0.4
- Changed supression of errors and warnings by failures.
- Added a @@DIFF comment-command -- causes all sprites to be numbered -1, to
  help produce useful diffs.
- Changed "Invalid action byte" to a failure.
- (devel) Removed ugly system calls; replaced with real file-handling funcs.
- (Bugfix) removed "invalid ID" message for @@USEID2
- (Bugfix) Added some missing "can't happen"s
- (devel) Moved all messages to messages.h
- Up-to-date with a43

v2.0.2 to v2.0.3
- Corrected number of sprites required for foundations.
- Ensure that the sanity checker will never try to read bytes that do not
  exist.

v2.0.1 to v2.0.2
- Added missing checks for Variational/Random Action 2s
  Action 2 pointing to itself
  All choices the same in random 2
  Default ID appearing before the end of the sprite in var 2
- Added missing check for action 3
  Default ID appearing before the end of the sprite
- Added a list of the sanity checker's messages (SANITY or SANITY.txt)
- Downgraded severity of some messages.
- Made sanity failures suppress following non-failure-level messages

v2.0 to v2.0.1
- Added sanity checking to ensure that there is a chain from all vehicle
  sprites to an action 3.
- Added a comment command (USESET) to work around unchecked Action 6s.
- Fixed condition where pseudosprite continuations could be replaced with
  real sprites.
  This occured when the line could be parsed as a single decimal number.
- (devel) passed memory allocation and bit-packing off to the vector class.

v1.2.1 to v2.0
- Added sanity checking for Actions 1-3, 5, and A.
- Added comment commands.
- Changed *nix version to look in the "sprites/" directory.
- (devel) Split source yet again (hopefully for the last time)
- (devel) Changed NFO output to a global ostream*
- (devel) removed some outdated stuff from defines.h
- (devel) Added an exit value of 3 to indicate internal failure.

v1.2 to v1.2.1
- Fixed real-sprite validity check to agree with GRFCodec.
  Now properly handles whitespace in filenames and trailing comments.
- Fixed condition where sprites could get numbered in hex.
  This occured when renumbering a non-patch NFO after a patch NFO.
- (devel) Changed message and error output to global ostream*s

v1.1 to v1.2
- Now adds missing NFO header.
- Checks real sprites for validity. This mostly solves the problem of
  destroying continuation lines of pseudo-sprites with invalid characters.
- Changed backup and temp file names in some cases, to always use .NFO.BAK
  and .NFO.NEW
- (devel) code for checking sanity of actions 1, 5, and A included, but
  #ifdef-ed out. NO_SANITY_CHECKING is the controlling symbol.
- (devel) more source rearranging and cleanup.

v1.0 to v1.1
- Now processes all files listed on the command line, not just the last one.
- Always produces output.
- Warning and error messages will now be sent to both the console and the NFO.
  In the NFO, messages are commented and prefixed with "!!"
- Changed handling of invalid pseudo-sprites.
    Instead of dying, comments the sprite out and continues.
    Message to console and NFO.
- (bugfix) Added a check to ensure that the output file got opened.
- (devel) moved file processing to a separate function.
- (devel) substantially cleaned up the i/o stream selection system.
  It actually makes sense again.
- (devel) general code cleaning and organizing
- (devel) upgraded to UPX 1.25

v0.4 to v1.0
- Now handles multi-line pseudo-sprites correctly.
- Now writes sprite 0 in the correct location.
- More permissive TTDPatch NFO detection
  If the first sprite is a pseudo-sprite, treat as a TTDPatch NFO.
    If the first sprite claims to be 4 bytes long, discard and recreate.
    Otherwise, comment old sprite 0 and create new sprite 0.
- Successful runs no longer produce output, other than the fixed NFOs.
- (devel) Now stores most of the NFO in memory while processing.

v0.3.1 to v0.4
- (devel) Now does its own file handling (disable by #defining NO_FILE_HANDLING)
- Accepts absolute paths for .NFO locations.
- Drag&drop from Windows explorer now works.
- The executable is now UPX packed.
- renum.bat is no longer necessary; the executable is now renum.exe.
- GNU/Linux systems (GNU fileutils) receive a new backup everytime the NFO is
  renumbered.

v0.3 to v0.3.1(bugfix)
- No longer destroys real sprites.

v0.2 to v0.3
- Now also reports on potential continued pseudo-sprites with trailing comments
- No longer eats whitespace before comments
- No longer eats blank lines

v0.1 to v0.2
- No longer silently destroys data in multi-line pseudo-sprites.
- Return value of 1 now indicates potential data destruction.
- (side effect) Renum.bat will not delete the old version of the NFO if
  pseudosprite data may have been destroyed.
- Detects TTDPatch NFOs, and reports size stats.
- In TTDPatch NFOs, if sprite 0 does not report the exact size of the NFO,
  outputs corrected sprite 0 to the console, and, commented, as the last line
  of the NFO.
- Now returns 2 to indicate error.