File: brltty-prologue.lua

package info (click to toggle)
brltty 6.8-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 35,776 kB
  • sloc: ansic: 150,447; java: 13,484; sh: 9,667; xml: 5,702; tcl: 2,634; makefile: 2,328; awk: 713; lisp: 366; python: 321; ml: 301
file content (69 lines) | stat: -rw-r--r-- 1,764 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
--[[
  libbrlapi - A library providing access to braille terminals for applications.
 
  Copyright (C) 2006-2025 by Dave Mielke <dave@mielke.cc>
 
  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 <dave@mielke.cc>.
]]

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