-
Notifications
You must be signed in to change notification settings - Fork 89
/
mkhelp.py
executable file
·38 lines (36 loc) · 1.07 KB
/
mkhelp.py
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
#!/usr/bin/env python
import time
import sys
import os
epoch = os.environ.get("SOURCE_DATE_EPOCH")
time = time.gmtime(None if epoch == None else int(epoch))
print("/* This file was generated by mkhelp.py from less.hlp at "\
"%d:%02d GMT on %d/%d/%d */\n" %
(time.tm_hour, time.tm_min, time.tm_year, time.tm_mon, time.tm_mday))
print("#include \"less.h\"")
print("constant char helpdata[] = {")
ch = 0
while True:
prevch = ch
ch = sys.stdin.read(1)
if ch == '':
break
if (ch == "'"):
print("'\\'',", end='')
elif (ch == "\\"):
print("'\\\\',", end='')
elif (ch == "\b"):
print ("'\\b',", end='')
elif (ch == "\t"):
print ("'\\t',", end='')
elif (ch == "\n"):
if prevch != "\r": print("'\\n',")
elif (ch == "\r"):
if prevch != "\n": print("'\\n',")
else:
if ((ord(ch) >= ord(' ')) and (ord(ch) < 0x7f)):
print(f"'{ch}',", end='')
else:
print("0x%02x," % ord(ch), end='')
print(" '\\0' };")
print("constant int size_helpdata = sizeof(helpdata) - 1;")