--[[ libbrlapi - A library providing access to braille terminals for applications. Copyright (C) 2006-2025 by Dave Mielke libbrlapi comes with ABSOLUTELY NO WARRANTY. This is free software, placed under the terms of the GNU Lesser General Public License, as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Please see the file LICENSE-LGPL for details. Web Page: http://brltty.app/ This software is maintained by Dave Mielke . ]] programName = string.match(arg[0], "([^/]*)$") programArgumentCount = #arg programArgumentNumber = 1 function writeProgramMessage (message) io.stderr:write(string.format("%s: %s\n", programName, message)) end function syntaxError (message) writeProgramMessage(message) os.exit(2) end function haveMoreProgramArguments () return programArgumentNumber <= programArgumentCount end function nextProgramArgument (label) if not haveMoreProgramArguments() then syntaxError(string.format("missing %s", label)) end local argument = arg[programArgumentNumber] programArgumentNumber = programArgumentNumber + 1 return argument end function stringContains (string, substring) return not not string:find(substring, 1, true) end function splitString (string, delimiter) local components = {} local count = 0 local oldPosition = 1 while true do local newPosition = string:find(delimiter, oldPosition, true) if not newPosition then break end count = count + 1 components[count] = string:sub(oldPosition, newPosition-1) oldPosition = newPosition + #delimiter end count = count + 1 components[count] = string:sub(oldPosition) return components end