-- -- gcsd -- -- gcsd the generic command sequencer daemon can be used to serialize -- commands sent over various paralell communication channels to a -- single command output. It can be seen as a multiplexer for any -- kind of communication between a single resource and various clients -- which want to submit commands to it or query information from it. -- gcsd is written in C and Lua. The goal is to provide an easy to -- understand high level API based on Lua which can be used to -- implement the business logic of the so formed multiplexer daemon. -- -- -- Copyright (C) 2009-2010 Markus Grueneis -- Christian Pointner -- -- This file is part of gcsd. -- -- gcsd is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- any later version. -- -- gcsd is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with gcsd. If not, see . -- if not arg or not arg[1] or not arg[2] then io.stderr:write("Usage: lua bin2c.lua filename c_var_name\n") return end local filename, c_var_name = ... local content = assert(io.open(filename,"rb")):read"*a" local dump do local numtab={}; for i=0,255 do numtab[string.char(i)]=("%3d,"):format(i) end function dump(str) return (str:gsub(".", numtab):gsub(("."):rep(80), "%0\n")) end end io.write([=[ /* code automatically generated by bin2c -- DO NOT EDIT */ #include "datatypes.h" const char ]=] , c_var_name, [=[[]={ ]=], dump(content), [=[ }; const size_t ]=] , c_var_name, [=[_len = sizeof(]=] , c_var_name, [=[); ]=])