diff options
author | Philipp Gesang <phg@phi-gamma.net> | 2016-07-28 00:06:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-28 00:06:07 +0200 |
commit | 2fcdccf7edfa1cfb0f03fe8f2163c7c5d8281984 (patch) | |
tree | fcb876f65c47989ecdf254c5ea9d54caa3be10ae /src/fontloader/misc/fontloader-util-fil.lua | |
parent | deef74c357ff2f88d53bc6a745b36b6a75717d2d (diff) | |
parent | d37cfaf8b6bd3e82c8220d385e5da53793f332e1 (diff) | |
download | luaotfload-2fcdccf7edfa1cfb0f03fe8f2163c7c5d8281984.tar.gz |
Merge pull request #373 from phi-gamma/master
fix adding of custom features
Diffstat (limited to 'src/fontloader/misc/fontloader-util-fil.lua')
-rw-r--r-- | src/fontloader/misc/fontloader-util-fil.lua | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/fontloader/misc/fontloader-util-fil.lua b/src/fontloader/misc/fontloader-util-fil.lua index 47d9d03..eeb6856 100644 --- a/src/fontloader/misc/fontloader-util-fil.lua +++ b/src/fontloader/misc/fontloader-util-fil.lua @@ -6,8 +6,10 @@ if not modules then modules = { } end modules ['util-fil'] = { license = "see context related readme files" } -local byte = string.byte +local byte = string.byte +local char = string.char local extract = bit32.extract +local floor = math.floor -- Here are a few helpers (the starting point were old ones I used for parsing -- flac files). In Lua 5.3 we can probably do this better. Some code will move @@ -36,6 +38,8 @@ function files.size(f) return f:seek("end") end +files.getsize = files.size + function files.setposition(f,n) if zerobased[f] then f:seek("set",n) @@ -180,3 +184,32 @@ end function files.skiplong(f,n) f:read(4*(n or 1)) end + +-- writers (kind of slow) + +function files.writecardinal2(f,n) + local a = char(n % 256) + n = floor(n/256) + local b = char(n % 256) + f:write(b,a) +end + +function files.writecardinal4(f,n) + local a = char(n % 256) + n = floor(n/256) + local b = char(n % 256) + n = floor(n/256) + local c = char(n % 256) + n = floor(n/256) + local d = char(n % 256) + f:write(d,c,b,a) +end + +function files.writestring(f,s) + f:write(char(byte(s,1,#s))) +end + +function files.writebyte(f,b) + f:write(char(b)) +end + |