Check-in [dcc428b741]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Make the MIT license I assumed I had applied explicit in the Readme and in the code. The license will also be added to the public repository's documentation, and the repository publicly announced some time after this checkin.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: dcc428b741b42cc4eb6c99b465fc8967552f9e37
User & Date: Ross 2015-12-23 18:35:34
Context
2015-12-23
21:15
Clarify the comments about the name strings. check-in: ef0d83aeec user: Ross tags: trunk
18:35
Make the MIT license I assumed I had applied explicit in the Readme and in the code. The license will also be added to the public repository's documentation, and the repository publicly announced some time after this checkin. check-in: dcc428b741 user: Ross tags: trunk
18:33
Clean up some contours, restore the X in the .notdef glyph's box (which still should be redrawn without overlaps), and clean up some comments. check-in: 4ce1da6f02 user: Ross tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to Readme.md.

29
30
31
32
33
34
35
























[Fret](http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=iws-chapter08)
is one of many tools from SIL that work with TTF fonts. It is a
reporting tool that dumps the `glyf` table in graphical form coupled
with information from the `cmap` and related tables to describe each
glyph in the font and its mapping.































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
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

[Fret](http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=iws-chapter08)
is one of many tools from SIL that work with TTF fonts. It is a
reporting tool that dumps the `glyf` table in graphical form coupled
with information from the `cmap` and related tables to describe each
glyph in the font and its mapping.


# License

Copyright (C) 2015 Cheshire Engineering Corp.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Changes to src/dotfonter.lua.

1
2




3


















4
5
6
7
8
9
10
--[[
# Create a simple TTF font from dots























--]]

local ttfont = require "ttfont"

require "luaXml"
if not xml then xml = require "luaXml" end
local X = xml.new

|
>
>
>
>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







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
--[[
#Create a simple TTF font from dots
--]] 
--[[
#License
Copyright (C) 2015 Cheshire Engineering Corp.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--]]

local ttfont = require "ttfont"

require "luaXml"
if not xml then xml = require "luaXml" end
local X = xml.new

Changes to src/ttfhead.lua.



























1
2
3
4
5
6
7



























local M={ _NAME=(...) }
package.loaded[M._NAME] = M
local ttx = require 'ttxml'

M.tableVersion = '1.0'
M.fontRevision = '1.042'
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







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
--[[
#All things related to the head table
--]]
--[[
#License
Copyright (C) 2015 Cheshire Engineering Corp.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--]]

local M={ _NAME=(...) }
package.loaded[M._NAME] = M
local ttx = require 'ttxml'

M.tableVersion = '1.0'
M.fontRevision = '1.042'

Changes to src/ttfhhea.lua.



























1
2
3
4
5
6
7



























local M={ _NAME=(...) }
package.loaded[M._NAME] = M
local ttx = require 'ttxml'

M.tableVersion = '1.0'
M.ascent = 1024
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







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
--[[
#All things related to the hhea table
--]]
--[[
#License
Copyright (C) 2015 Cheshire Engineering Corp.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--]]

local M={ _NAME=(...) }
package.loaded[M._NAME] = M
local ttx = require 'ttxml'

M.tableVersion = '1.0'
M.ascent = 1024

Changes to src/ttfmaxp.lua.



























1
2
3
4
5
6
7



























local M={ _NAME=(...) }
package.loaded[M._NAME] = M
local ttx = require 'ttxml'

M.tableVersion = '0x10000'
M.numGlyphs = "4"
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







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
--[[
#All things related to the maxp table
--]]
--[[
#License
Copyright (C) 2015 Cheshire Engineering Corp.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--]]

local M={ _NAME=(...) }
package.loaded[M._NAME] = M
local ttx = require 'ttxml'

M.tableVersion = '0x10000'
M.numGlyphs = "4"

Changes to src/ttfname.lua.

76
77
78
79
80
81
82























83
84
85
86
87
88
89
           that the designer thinks is the best sample text to show what
           the font looks like.
20         PostScript CID findfont name.
21-255     Reserved for future expansion.
256-32767  Font-specific names.

--]]
























local M={ _NAME=(...) }
package.loaded[M._NAME] = M
require "luaXml"
if not xml then xml = require "luaXml" end









>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







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
           that the designer thinks is the best sample text to show what
           the font looks like.
20         PostScript CID findfont name.
21-255     Reserved for future expansion.
256-32767  Font-specific names.

--]]
--[[
#License
Copyright (C) 2015 Cheshire Engineering Corp.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--]]

local M={ _NAME=(...) }
package.loaded[M._NAME] = M
require "luaXml"
if not xml then xml = require "luaXml" end


Changes to src/ttfont.lua.

21
22
23
24
25
26
27























28
29
30
31
32
33
34
unicode coverage, for instance.

An OpenType font can use PostScript or SVG to draw character outlines, and 
supports some really powerful features for advanced typography, none of which
are likely to be useful to any user of this tool.

--]]
























require "luaXml"
if not xml then xml = require "luaXml" end
local X = xml.new
local M={ _NAME=(...) }
package.loaded[M._NAME] = M
local ttx = require 'ttxml'







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







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
unicode coverage, for instance.

An OpenType font can use PostScript or SVG to draw character outlines, and 
supports some really powerful features for advanced typography, none of which
are likely to be useful to any user of this tool.

--]]
--[[
#License
Copyright (C) 2015 Cheshire Engineering Corp.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--]]

require "luaXml"
if not xml then xml = require "luaXml" end
local X = xml.new
local M={ _NAME=(...) }
package.loaded[M._NAME] = M
local ttx = require 'ttxml'

Changes to src/ttfos_2.lua.






























1
2
3
4
5
6
7






























local M={ _NAME=(...) }
package.loaded[M._NAME] = M
local ttx = require 'ttxml'

M.version = 3
M.xAvgCharWidth =1024
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







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
--[[
#All things related to the OS/2 table

Note that TTX knows this table as OS_2 since '/' cannot be part of 
an XML tag name.
--]]
--[[
#License
Copyright (C) 2015 Cheshire Engineering Corp.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--]]

local M={ _NAME=(...) }
package.loaded[M._NAME] = M
local ttx = require 'ttxml'

M.version = 3
M.xAvgCharWidth =1024

Changes to src/ttfpost.lua.




























1
2
3
4
5
6
7




























local M={ _NAME=(...) }
package.loaded[M._NAME] = M
local ttx = require 'ttxml'

M.formatType = '2.0'
M.italicAngle = '0.0'
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







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
--[[
#All things related to the post table
--]]

--[[
#License
Copyright (C) 2015 Cheshire Engineering Corp.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--]]

local M={ _NAME=(...) }
package.loaded[M._NAME] = M
local ttx = require 'ttxml'

M.formatType = '2.0'
M.italicAngle = '0.0'

Changes to src/ttxml.lua.

1
2
3
4
5
6
7























8
9
10
11
12
13
14
--[[
#TTXML - Utilities for TTX via LuaXML

TTX is an XML dialect which we will write through the lens of LuaXML
from relatively ordinary Lua tables.

--]]
























local M={ _NAME=(...) }
package.loaded[M._NAME] = M
require "luaXml"
if not xml then xml = require "luaXml" end
local X = xml.new








>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







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
--[[
#TTXML - Utilities for TTX via LuaXML

TTX is an XML dialect which we will write through the lens of LuaXML
from relatively ordinary Lua tables.

--]]
--[[
#License
Copyright (C) 2015 Cheshire Engineering Corp.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--]]

local M={ _NAME=(...) }
package.loaded[M._NAME] = M
require "luaXml"
if not xml then xml = require "luaXml" end
local X = xml.new