File: ChangeLog

package info (click to toggle)
xgridfit 2.2a-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 2,232 kB
  • sloc: python: 1,262; xml: 466; sh: 283; makefile: 114; sed: 45
file content (814 lines) | stat: -rwxr-xr-x 30,409 bytes parent folder | download | duplicates (2)
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
2010-03-30  Peter Baker  <peter@peter-laptop>

	* Makefile: added --root option to setup.py install

	* xgridfit-python.xsl, xgflib.py: restored functionality of -S
	option in Python mode.

	* xgflib.py: fixed bug that caused script to crash when numerical
	options were used.

	* *.html: Updates various docs to reflect changes in 2.2.

2010-03-28  Peter Baker  <peter@wilfrid>

	* ttx2xgf, xgfconfig, xgridfit, xgflib.py, setup.py: Most of the
	Bash scripts of version 2.1 and earlier have been rewritten as
	Python scripts depending on a Python library, xgflib.py. libxml2
	and its Python bindings are now required.

	* xgfconfig: The config system has changed significantly: see man
	page for details. In general, xgridfit now searches through a
	priority list to find an appropriate processor or validator;
	xgfconfig changes the order of the priority list (new) and
	specifies the location of jar files (as before). The config file
	is now XML.

	* xgridfit: Validation is now performed by default. Use
	--skip-validation option to, er, skip validation.

	* *.xsl: Code for passing macro and glyph parameters has been
	rewritten to allow nested and recursive calls. There are not a lot
	of limitations on how macros and glyph programs can call each
	other.

	* points.xsl: line, set and range elements are now allowed as the
	content of macro and glyph param elements.

	* xgridfit.rnc, xgridfit.rng, xgridfit.xsd: line, set and range
	elements are now allowed as the content of macro and glyph param
	elements.

	* prep.xsl: Fixed a bug that could cause a TrueType program
	generated by merge-mode to write to the wrong storage area.

2009-12-18  Peter Baker  <peter@gouldbaker.net>

	* getinstrs: New utility uses FontForge Python extension to
	extract instructions from a font; presents them as valid Xgridfit
	code.

	* xgridfit-merge.xsl, xgridfit-python.xsl: outfile-script-name and
	outfile-script-base don't make any sense when the output is
	Python.

	* *: Xgridfit namespace http://xgridfit.sourceforge.net/Xgridfit2
	is now required on the xgridfit element. Use xgfupdate to add it
	automatically.

	* xgfupdate: Now mainly takes care of adding namespace in xgridfit
	and xi:include elements; use option -v 1 to make it do what it
	used to do.

	* ttx2xgf, xgfmerge: Now namespace-aware.

	* ff-functions.xgf: File contains macros that provide access to
	the functions inserted into a font by the FontForge
	auto-instructor. These functions are well crafted and extremely
	useful!

	* xgridfit-merge.xsl, xgridfit: Data can now be saved in a file
	instead of in font.persistent. So data can still be available when
	project is saved as ttf. Use -F option or <datafile> element to
	name the datafile.

	* xgridfit-merge.xsl: auto-instruct now skips any glyphs that are
	going to be installed by the script: less redundancy.

	* xgridfit-python.xsl: when compile-globals=no (-c no), Python
	code leaves global elements completely undisturbed. Assumes
	indexes to functions, control-values, storage area are correct!

	* xgridfit-merge.xsl: when compile-globals=no (-c no), merge-mode
	leaves global elements completely undisturbed. Looks for
	font.persistent data or the same in a file so it can fix up
	indexes; exits with a message if it can't find what it needs. The
	idea is that one should be able to run first the script with
	global elements, then any number of scripts containing just glyph
	programs.

	* xgridfit.xsl, xgridfit-python.xsl, xgridfit-merge.xsl,
	xgridfit-debug.xsl: Check for xgridfit namespace and issue helpful
	message if not found.

	* catalog.xml: Local catalog entries for schemas.

	* xgridfit.xml: Possible entries for global catalog. But our
	installer does not install these!

	* Makefile: Various changes, refinements to support 2.1 changes;
	Makefile now has an install-mac command to support Mac OS (where
	sed has slightly different options).

	* docs/*.html: Lots of minor revisions re: namespace; extensive
	revision of merge-mode documentation.

	* xgridfit.xsd: XML Schema generated automatically from
	xgridfit.rnc. Why not, since XML Schema can do most of what Relax
	NG can do?

	* xgridfit: Can control choice of output language with environment
	variable XGRIDFIT_OUTPUT_LANG, set to either ff or py.

2009-12-01  Peter Baker  <peter@gouldbaker.net>

	* numbers.xsl, *.xsl: Replace get-number-literal and push-value
	with a single named template, expression, for resolving all
	numbers.

	* xgridfit-python.xsl: Exception handling means that script does
	not always stop on error, but rather displays a message. We no
	longer make super-long lines.

	* xgridfit-merge.xsl: Merge-mode generates a script that cleanly
	merges Xgridfit instuctions with existing instructions in any
	font.

	* xgridfit-merge.xsl: Can now set blue values (or any PS private
	dictionary entry) via the ps-private element.

	* numbers.xsl, xgfdata.xml: There were significant bugs in the way
	some templates addressed the storage area, and errors in
	xgfdata.xml.

	* xgridfit*.xsl, std-vars.xsl: Some standard variables (which do
	not differ among the various modes) are defined in std-vars.xsl,
	imported by all modes.

	* flow.xsl, numbers.xsl: we can force cv indexes to show up as
	numbers in compile-if element even in merge-mode: allows
	evaluation of cv indexes for compatitibility with older code.

	* function.xsl: bug fix: default code in param element was not
	getting compiled.

	* function.xsl: we no longer try to check the correctness of
	with-param elements in call-macro and call-glyph. This is better
	done by the schema.

	* function.xsl: code passed to a macro via with-param was not
	always getting compiled.

	* xgridfit: Python is now the default output; new options to
	support mrge-mode.

	* xgridfit.rnc, xgridfit.rng: schema support for ps-private and a
	few new attribues to support merge-mode.

	* Makefile: changes to support Fedora contributed by Nicolas
	Mailhot; revisions and addition of SHELL directive ensure that it
	works with Ubuntu/Debian.

	* all: Files now moved from /usr/[local/]share/ to
	/usr/[local/]share/xml.

2009-06-18  Peter Baker  <peter@wulfstan>

	* xgridfit.rnc, xgridfit.rng: I forgot to update the schemas for
	1.19a, so this is done in 1.19b.

	* xgridfit.xsl, xgridfit-debug.xsl, xgridfit-python.xsl,
	convert-ttx.xsl: The correct setting for MaxFunctionDefs is one
	higher than the highest function number, NOT the number of
	function definitions (as the spec says, and as permitted by
	FreeType). This means that we have no use for a count of function
	definitions, and we can use MaxFunctionDefs in any correctly
	formed font as the first number for Xgridfit's pre- and
	user-defined functions. However, it is still recommended that
	users check the legacy-functions element after running ttx2xgf.

2009-06-09  Peter Baker  <peter@wulfstan>

	* numbers.xsl: store-value was flummoxed if asked to store to a
	variable or control-value passed to a macro as a param. Now it can
	handle these cases.

	* convert-ttx.xsl: This script used to produce a silly empty
	function as a template for others. It got in the way of using
	ttx2xgf in Makefiles. Now it's gone.

2009-01-31  Peter Baker  <peter@wulfstan>

	* xgfconfig, defaults.xml: Configuration utility now uses locate
	to try to find needed jar file if it doesn't find it in
	/usr/share/java.

	* xgridfit: typo disabled -b option; now corrected.

	* xgridfit.1: Error explaining -f option; now fixed.

	* install.html, xgfconfig.1: takes into account the minor changes
	in xgfconfig.

2009-01-06  Peter Baker  <peter@Godwine>

	* xgfmerge, merge.xsl: Now is happy to merge a series of file with
	the main target file (the first in the list). Rules somewhat
	refined so that an element in file-a is replaced by an equivalent
	in file-b, but kept if there is no equivalent.

	* xgfmerge, sort-glyphs.xsl: glyphs can be sorted in output file.

	* xgfmerge: -o option causes output to be saved in a file.

	* xgridfit: New -f option pipes output of Xgridfit compiler
	directly to FontForge.

	* xgridfit, xgfconfig, configure.xsl, defaults.xml: The system of
	templates that Xgridfit uses to generate command lines includes an
	"outfile-template"; this allows the outfile parameter to the XSLT
	processor to be omitted, causing output to be sent to stdout and
	allowing it to be piped to FontForge. Downside is that anyone who
	has run xgfconfig to choose a processor has to run it again, since
	the old template no longer works.

	* tutorial3.html: New tutorial shows by example how to fix up a
	glyph auto-instructed by FontForge.

2008-12-27  Peter Baker  <psb6m@peter-bakers-macbook-pro.local>

	* ttx2xgf: Fix of test for ttx file, which was being done too
	soon.

	* xgfmerge, xinclude.xsl: minor refinements; and xgfmerge can now
	execute XIncludes in "file-b" before performing the
	merge. XIncludes whose source is "file-a" are automatically
	excluded.

	* xgridfit: More routine output suppressed when -q option is
	present.

2008-12-24  Peter Baker  <psb6m@peter-bakers-macbook-pro.local>

	* xgridfit, *.xsl, xgfdata.xml: Default color can be set with a
	command-line option or with default element (type="color"); it
	should affect default in command element where color bits are
	used. New round-gray() operator added. Internal renaming of
	variables to make this all work.

	* xgridfit, ttx2xgf, xgfupdate: Better file checking in
	executables.

	* xgfmerge, merge.xsl: new utility for merging Xgridfit programs.

	* fontforge.html: new doc on collaborating with the FontForge
	auto-instructor.

	* numbers.xsl: get-number-literal can now resolve a function name
	to a number. Useful in push elements.

	* messages.xsl: silent-mode takes a string parameter instead of an
	expression.

	* convert-ttx.xsl: ttx2xgf now puts an xml:id attribute on every
	glyph element. It is the same as the ps-name attribute, except for
	".notdef" which has a name that is not a valid xml:id.

2008-12-12  Peter Baker  <peter@wulfstan>

	* xgfconfig, configure.xsl, defaults.xml, xgridfit: a new system
	for configuring Xgridfit: instead of choosing among different
	Xgridfit binaries for the different XSLT processors, use a new
	utility, xgfconfig, to choose processors and also validators. This
	writes a configuration file to be read by the xgridfit Bash
	script, which then invokes the right processor and validator. The
	specialized xgridfit executables (xgridfit-saxon-6, etc.) have
	been removed, and also the script choose-processor.

	* xgridfit: new -x option suppresses compilation (use when only
	validation is needed). New -e option echoes command lines before
	they are executed (for debugging).

	* xgridfit: minor changes promote Mac friendliness.

	* xgridfit.xsl, xgridfit-debug.xsl, flow.xsl: 4xslt didn't like
	the way exslt:document was used. Fixed that, and now 4xslt runs
	fine, tho slowly (old XPath problems apparently fixed).

	* defaults.xml: Xgridfit now works with the 4xslt processor and
	with Jing, MSV, RNV and xmlstarlet validators.

2008-12-07  Peter Baker  <peter@wulfstan>

	* xgridfit.rnc, xgridfit.rng: Xgridfit schemas extensively
	rewritten, providing improved checking of correctness of Xgridfit
	programs. Users should at least use -V option to take advantage of
	this.

	* xgridfit-saxon-6: Corrected a bug that made it impossible to
	keep temp files.

	* xgridfit.1: minus signs were not escaped.

	* graphics.xsl: set-dropout-control requires number literals.

	* schema.html: New documentation explaining whys and hows of the
	Xgridfit schema.

	* reference.html: Schema fragments removed, since the new
	organization of the schema makes this uninformative. Each entry
	for an element has instead "Content" and "Attributes" sections
	explaining what is required or allowed.

2008-11-22  Peter Baker  <peter@wulfstan>

	* xgridfit.xsl, xgridfit-debug.xsl, numbers.xsl, graphics.xsl,
	function.xsl, prep.xsl, primitives.xsl, func-predef.xsl: New
	mechanism for handling leading newlines. We don't try to guess
	where they won't be wanted, but just generate them and peel them
	off when necessary.

	* xgridfit.xsl, xgridfit-debug.xsl: init-graphics parameter to
	control whether graphics variable tracking is initialized at the
	beginnings of glyph programs.

	* xgridfit (and related files): G option controls init-graphics
	param.

	* convert-ttx.xsl: We now supply attribute init-graphics="no" for
	each glyph.

	* prep.xsl, function.xsl, xgridfit.xsl, xgridfit-debug.xsl: New
	variant element allows for variant versions of functions to be
	defined in the cvt program.

	* numbers.xsl, graphics.xsl: New set-control-value and
	with-control-value elements for setting control values with either
	pixel units or font units.

	* xgridfit.rnc, xgridfit.rng: Some tightening of rules to better
	capture requirements of language.

2008-11-07  Peter Baker  <peter@wulfstan>

	* numbers.xsl, primitives.xsl: push-list element had to look at
	with-leading-newline to avoid breaking legacy-functions element.

2008-11-04  Peter Baker  <peter@wulfstan>

	* *.xsl: Deprecated elements and attributes have now been removed.

	* *.xsl: All templates that need to place multiple numbers on the
	stack now use a single, well-optimized routine, push-list.

	* xgridfit.xsl, xgridfit-debug.xsl, numbers.xsl: push-break
	parameter causes long push instructions to be broken up. By
	default it is delta-break * 2.

	* xgfdata.xml: This file was not committed before last release, so
	point operator was non-functional.

	* xgridfit-transitional.rnc, .rng: removed.

	* xgridfit-strict.rnc, .rng: renamed to xgridfit.rnc,
	xgridfit.rng.

	* xgridfit (and variants): Validation now only against
	xgridfit.rng; so -V option does not take an argument.

	* xgridfit (and variants): -p option specifies a value for
	push-break.

	* xgridfit variants (those that use xmllint for Xinclude
	processing): These now use mktemp to create a temporary file when
	needed.

2008-10-13  Peter Baker  <peter@Godwine>

	* function.xsl: Reorganized code for pushing function parameters
	onto stack before call: macro and glyph params and now visible
	from inside call-function elements.

	* numbers.xsl: macro and glyph params were not visible in some
	expressions. This is now fixed.

	* numbers.xsl, xgfdata.xsl: There is now a point operator that
	causes its argument to be treated just like the num attribute of a
	point element.

	* move-els.xsl: min-amount attribute on diagonal-stem element is
	now deprecated. Use of it generates a warning message (use
	xgfupdate to fix it).

	* points.xsl: Requirement that distance attribute of move element
	must be the name of a control-value element is relaxed so that
	function parameter can be used.

	* xgridit-strict.rnc: obsolete offset attribute on point and
	with-param elements removed; obsolete min-amount attribute on
	diagonal-stem removed. Use xgfupdate to update files that used
	these.

	* xgf-update.xsl: This script (accessed from the xgfupdate shell
	script) now updates an Xgridfit program file to the current
	version, rather than to version 1.0.

2008-08-17  Peter Baker  <peter@wulfstan>

	* xgridfit-saxon-6, xgridfit-saxon-9, xgridfit-xalan-c,
	xgridfit-xalan-j, xgridfit-xsltproc: executables for specific
	processors. These may be copied to xgridfit before installation.

	* choose-processor: a script for selecting one of five supported
	XSLT processors for running Xgridfit.

	* xgridfit: -V option runs xmllint to validate program file before
	compilation.

	* xgridfit-strict.rng, xgridfit-transitional.rng: Relax NG
	schemas, long form, for use by xmllint.

	* xgridfit-transitional.dtd: an old fashioned DTD for those who
	want it.

	* xgridfit-saxon-6, xgridfit-saxon-9, xgridfit-xalan-c,
	xgridfit-xalan-j: When processor is not xsltproc, xmllint may be
	run so that XIncludes can be done. -T option names a temporary
	file in which to store results of running XInclude.

	* xgridfit-saxon-6, xgridfit-saxon-9, xgridfit-xalan-j: -j option
	specifies a classpath for the Java virtual machine.

	* messages.xsl: Line numbers are now displayed with warnings and
	error messages when the processor is xsltproc, saxon-6, saxon-9,
	xalan-j. Space added above and below warnings and above errors to
	make them look better when Xalan is the processor.

2008-08-06  Peter Baker  <peter@wulfstan>

	* xgridfit-saxon-6: Added experimental executable that uses Saxon
	6.5.5 (the version packaged with Ubuntu) rather than xsltproc.

	* delta.xsl: Deltas now correctly process a control value with
	index over 255 and a point with number over 255

	* delta.xsl: delta element can now start with a default point, so
	point can often be omitted in delta-set element.

	* function.xsl: It is now possible to pass code to a macro or
	glyph program in a parameter.

2008-07-29  Peter Baker  <peter@wulfstan>

	* delta.xsl: Fixed bug that prevented compilation of delta nested
	in move element when compile-if attribute was present.

	* func-predef.xsl: Fixed a bug that sometimes caused RUTG to be
	set instead of ROFF.

	* graphics.xsl: Fixed a bug that causes the wrong round state to
	be restored after move with round attribute.

	* move-els.xsl: min-distance attribute of element diagonal-stem
	now takes a value like move, not just yes|no.

	* xgfdata.xml, numbers.xsl: added read-only values for access to
	GETINFO; also constants to test for various engine versions.

	* misc.xsl, numbers.xsl: Added getinfo element.

	* numbers.xsl: added permanent debugging code.

2008-04-06  Peter Baker  <peter@wulfstan>

	* xgridfit: -O option specifies the name of an output file, rather
	than the default.

	* xgridfit.xsl: infile and outfile elements are now independent:
	an outfile element is functional even if infile is not present,
	and outfile is not assumed from infile.

	* xgridfit.xsl, xgridfit-default.xsl: compile-globals param and
	default/@type and prevent cvt, fpgm, prep and maxp from being
	compiled.

	* xgridfit.xsl, xgridfit-debug.xsl: Parameters and options to
	support use of Xgridfit in Makefiles: -S output separate file for
	each glyph; -c suppress compilation of functions, control-values,
	pre-program, maxp entries.

	* xgridfit.xsl, xgridfit-debug.xsl, numbers.xsl, function.xsl: If
	enclosed in a no-compile elements, glyph is visible for reference
	purposes but is not compiled.

	* xgridfit.xsl, xgridfit-debug.xsl, flow.xsl: -g (glyph-select)
	option overrides no-compile element; -c option now requires yes|no
	value.

	* xgridfit.xsl: Xgridfit now saves the output of the outfile
	element in a separate script file when the -S option is
	present. Use the -z option or the outfile-script-name element to
	name this file.

	* xgridfit-strict.rnc, xgridfit-transitional.rnc: Schemas brought
	up to date with no-compile, outfile-base, outfile-script-name
	elements. Also compile-globals default type.

2008-03-06  Peter Baker  <peter@Godwine>

	* numbers.xsl: alias element for accessing things under different
	names.

	* xgridfit.xsl: glyph element can now be treated as a macro. It
	can take parameters (including a special "offset" parameter
	automatically added to all point numbers) and be called from any
	glyph program via the call-glyph element. This is intended to
	support those who prefer not to use the TrueType component
	mechanism.

	* graphics.xsl: restore-default element for restoring default
	values of graphics variables.

	* function.xsl: Improved setting up of variable frame: it is set
	up only when needed, and saved/altered only when necessary. A
	small efficiency.

	* move-els.xsl: Fixed bug that caused some deeply nested move
	elements to misbehave.

	* *.xsl: various minor efficiencies and improvements.

2008-02-09  Peter Baker  <peter@Godwine>

	* function.xsl: We now check to make sure the function we are
	trying to call actually does exist.

	* function.xsl: Code that pushes function parameters onto the
	stack rewritten for neatness and improved optimization: we now
	push all numbers with a single instruction whenever all params can
	be resolved at compile time (before this was true only for bytes).

	* flow.xsl, xgridfit.xsl, xgridfit-debug.xsl: Compile a single
	glyph, as in last release, or a list of glyphs. On command line,
	separate glyph-names with a plus-sign. Or in the program file, use
	a glyph-select element, separating glyphs with either a plus-sign
	or spaces. Can't use space separator on the command line.

	* message.xsl: We now display line numbers with warning and error
	messages. Only if Saxon line-number extension function is
	supported (it is in xsltproc).

2008-01-28  Peter Baker  <peter@Godwine>

	* xgridfit: All Xgridfit's XSLT params are now accessible via the
	command-line of the xgridfit executable. Debug mode is
	available. Multiple files can now be compiled with one command.

	* *.xsl: Hooks for debug mode added to all elements that produce
	code.

	* xgridfit-debug.xsl: New Xgridfit file implements debug mode.

	* xgridfit.xsl, xgridfit-debug.xsl: It is now possible to compile
	a single glyph.

	* messages.xsl: no-warning element suppresses warning messages for
	all code it contains.

2008-01-19  Peter Baker  <peter@Godwine>

	* move-els.xsl, move-lib.xsl: Wholly revised code that rounds
	points after an interpolate or shift. We now use low-level
	instructions to do the rounding, avoiding all problems with
	changed reference pointers. There is no need to save and restore
	RP0, RP1 and RP2, so all that code has been deleted.

2008-01-15  Peter Baker  <peter@Godwine>

	* move-els.xsl: Fixed a bug that caused RP0 to be wrongly restored
	after an interpolate or shift with rounding embedded in a move
	element.

	* move-els.xsl: RP1 and RP2 must sometimes be saved before
	rounding an interpolated point and restored afterwards.

2008-01-08  Peter Baker  <peter@Godwine>

	* flow.xsl: Fixed a bug that caused else to be wrongly interpreted
	when compile-if was nested in if.

	* move-els.xsl, numbers.xsl: Fixed a bug that sometimes made the
	compiler fail when evaluating point numbers in glyph/constant
	format.

	* move-els.xsl: An optional round attribute for interpolate and
	shift cause points to be rounded to the grid after being
	interpolated or shifted. Works only on point elements, not range
	or set. Revision to move element prevents this feature from
	messing up handling of RP0 when interpolate or shift is nested.

	* numbers.xsl, xgfdata.xml: Added four new operators for obtaining
	the coordinates of points in expressions: x-coord,
	initial-x-coord, y-coord, initial-y-coord.

	* numbers.xsl, xgfdata.xml: Added two new operators for obtaining
	the distance between two points in expressions: -- for the current
	outline and --- for the original outline.

	* xgfdata.xml, expressions.xsl: -- and --- are now
	fourth-precedence operators. All operators that were
	fourth-precedence are now fifth-precedence.

2008-01-01  Peter Baker  <peter@Godwine>

	* xgfdata.xml, expressions: Added operators: round-black and
	round-white round a value with "colors"; coord returns the current
	coordinate of a point (depending on projection vector);
	initial-coord returns the coordinate of a point at the beginning
	of the glyph program.

2007-12-24  Peter Baker  <peter@Godwine>

	* numbers.xsl, expressions.xsl: Fixed a bug that caused compiler
	to fail when evaluating expressions like round(stem-width / 2.0).

2007-11-17  Peter Baker  <psb6m@virginia.edu>

	* ttx2xgf: A new executable creates an Xgridfit file from a TTX
	file in one step.

	* xgfupdate, xgf-update.xsl, add-blanks.sed: A new executable,
	with supporting scripts, updates any Xgridfit file < version 1.0
	to version 1.0.

	* *.xsl: All container elements (<profile>, <control-values>,
	<functions>, <macros>, <declarations>, <variables>, <params>) are
	no longer necessary and are deprecated.

	* *.xsl: "id" attribute deprecated in function, macro,
	control-value, variable: use "name" instead. "function-id,"
	"macro-id," "param-id" attributes deprecated: use "name"
	instead. The change is required for function, macro and
	control-value.

	* numbers.xsl: "num" attribute for <constant> is deprecated: use
	"value" instead.

	* xgridfit-ttx, misc.xsl: TTX mode is removed. "max-instructions"
	default type is deprecated and is no longer consulted; asm element
	is no longer permitted: use convert-asm.sed script to convert to
	command elements.

	* function.xsl: "param-set" not always required in call-function
	and call-macro if there is only one set of parameters.

	* xgridfit-strict.rnc, xgridfit-transitional.rnc: xgridfit.rnc is
	removed. Now the "strict" schema requires all changes to Xgridfit
	language, while the "transitional" schema allows features that
	have been deprecated but not removed.

	* numbers.xsl, xgridfit.xsl: Variable can be assigned a default
	value via "value" attribute.

	* numbers.xsl: A bug interfered with passing variable name as
	parameter to a macro.

	* *.xsl: Switched to using key (fast indexing) to locate
	control-value, function and macro elements.

	* xgridfit.xsl: "fmflags" attribute on <outfile> passes flags to
	FontForge "Generate" command.

	* xgridfit.xsd, xgridfit.dtd: DTD and XML schemas no longer
	provided. Get Trang and make your own!

2007-10-15  Peter Baker  <psb6m@virginia.edu>

	* move-els.xsl, points.xsl, func-predef.xsl, xgridfit-ttx.xsl,
	xgridfit.xsl: Added flip-on and flip-off elements, which move
	ranges of points on and off of lines; also a new predefined
	function to make sure the parameters to the corresponding TrueType
	instructions are always in the right order.

	* points.xsl: It is now possible to pass a set, line or range to a
	macro by defining it as the child of a with-param element.

	* function.xsl: Function and macro parameters are checked for
	validity by the compiler, since the schema is a bit vague.

	* func-predef.xsl: Fixed a bug that would have kept round states
	from being correctly restored in some circumstances.

2007-09-30  Peter Baker  <psb6m@virginia.edu>

	* *.xsl: Internal cleanups and improvements: conflating templates
	that didn't have to be separate.

	* *.xsl: Implemented new set element: an arbitrary collection of
	points.

	* *.xsl: programming for range and line elements recast, so that
	they (along with set) can now be passed by name to macros as
	parameters.

	* numbers.xsl: new operator nan makes it possible to detect when
	an expression can't be resolved at compile time. Useful for
	detecting macro parameters.

	* *.doc: updated documentation to reflect these changes. Also more
	examples in reference.html.

2007-09-15  Peter Baker  <psb6m@virginia.edu>

	* numbers.xsl: Increased the number of operators evaluated at
	compile time. Includes and or not + - = != &lt; &lt;= &gt; &gt;=.

	* move-els.xsl: multiple delta, align, interpolate, shift and move
	elements are now permitted inside a move element. compile-if
	attributes are implemented for all elements permitted inside a
	move.

	* flow.xsl: a compile-if element permits conditional
	compilation. It can include an else element as the last child.

	* delta.xsl: compile-if attribute now permitted on a delta
	element.

	* functions.xsl: (from July: it somehow didn't get into the
	ChangeLog then). Implemented parameterized macros.

2007-01-13  Peter Baker  <psb6m@virginia.edu>

	* move-lib.xsl, graphics.xsl: Fixed a bug that would sometimes
	have prevented round states from being inherited properly when
	move elements were nested.

2007-01-13  Peter Baker  <psb6m@virginia.edu>

	* convert-asm.sed, convert-ttx.xsl: Scripts for creating a new
	Xgridfit program file from a font containing instructions
	(requires TTX).

	* deltas.xsl: It's now possible to embed delta elements in move
	elements. The first delta is executed before any shifts, aligns or
	interpolations; the second is executed after. If a delta within a
	move element lacks a point element, it operates on the point that
	is the child of the move. A delta element may be empty.

	* move-els.xsl: Move elements can now be nested: nested move
	elements take the point in the parent move as a reference point
	(if no reference/point is present), and they do not leave RP0 set
	behind them.

	* deltas.xsl: A long push before a DELTAP or DELTAC instruction
	now is broken into segments; the size of the segments can be set
	via the delta-break param or default.

	* numbers.xsl: A new index operator gets an index of (pointer to)
	a control value or variable in contexts where the value would
	normally be returned. This permits passing function parameters by
	reference rather than by value.

	* xgfdata.xml: A new variable operator treats the argument as the
	index of a variable and returns the value.

	* function.xsl: New legacy-function element contains function
	definitions inherited from a font that was converted for use with
	Xgridfit.

	* primitives.xsl: New to-stack element takes any value and places
	it on the stack: much more flexible than the push element, but it
	cannot push multiple values.

	* xgridfit.xsl, xgridfit-ttx.xsl: Corrected bug that could
	sometimes prevent setting defaults.

2006-03-16  Peter Baker  <peter@localhost.localdomain>

	* xgridfit-ttx.xsl: This file adds TTX mode, which merges compiled
	instructions into a TTX file (an XML representation of a font).

	* xgridfit-ttx: A simple script for running Xgridfit in TTX mode
	in Linux.

	* delta.xsl: Delta code cleaned up to be more portable.

	* xgridfit.xsl: Hook for delta code removed as no longer
	necessary.

	* xgridfit, xgridfit-ttx: Simple scripts revised so that file
	extensions matter less. xgridfit will handle extensions .xgf or
	.xml; xgridfit-ttx will handle .xgf, .xml or .ttx.

2006-03-07  Peter Baker  <psb6m@virginia.edu>

	* xgridfit.xsl: The script generated by Xgridfit now can read and
	write TrueType font files as well as FontForge source files.

	* xgridfit.xsl: profile/infile and profile/outfile added so that
	changes need not be written back to the same
	file. profile/font-file is now deprecated.

	* xgridfit.xsl: params always override corresponding entries in
	profile.

	* xgridfit.xsl: param var-max-storage is renamed max-storage. Its
	value can never be less than 24.

	* delta.xsl, xgridfit.xsl: All FontForge-specific code now in
	xgridfit.xsl

	* schemas: profile/infile and profile/outfile added.

	* xgridfit.dtd: Documentation removed from xgridfit.dtd (use
	element reference instead).