1*e4a6e799Ssimonb#!/usr/bin/env python 2*e4a6e799Ssimonb 3*e4a6e799Ssimonbimport time 4*e4a6e799Ssimonbimport sys 5*e4a6e799Ssimonb 6*e4a6e799Ssimonbtime = time.gmtime() 7*e4a6e799Ssimonbprint("/* This file was generated by mkhelp.py from less.hlp at "\ 8*e4a6e799Ssimonb "%d:%02d GMT on %d/%d/%d */\n" % 9*e4a6e799Ssimonb (time.tm_hour, time.tm_min, time.tm_year, time.tm_mon, time.tm_mday)) 10*e4a6e799Ssimonbprint("#include \"less.h\"") 11*e4a6e799Ssimonbprint("constant char helpdata[] = {") 12*e4a6e799Ssimonbch = 0 13*e4a6e799Ssimonbwhile True: 14*e4a6e799Ssimonb prevch = ch 15*e4a6e799Ssimonb ch = sys.stdin.read(1) 16*e4a6e799Ssimonb if ch == '': 17*e4a6e799Ssimonb break 18*e4a6e799Ssimonb if (ch == "'"): 19*e4a6e799Ssimonb print("'\\'',", end='') 20*e4a6e799Ssimonb elif (ch == "\\"): 21*e4a6e799Ssimonb print("'\\\\',", end='') 22*e4a6e799Ssimonb elif (ch == "\b"): 23*e4a6e799Ssimonb print ("'\\b',", end='') 24*e4a6e799Ssimonb elif (ch == "\t"): 25*e4a6e799Ssimonb print ("'\\t',", end='') 26*e4a6e799Ssimonb elif (ch == "\n"): 27*e4a6e799Ssimonb if prevch != "\r": print("'\\n',") 28*e4a6e799Ssimonb elif (ch == "\r"): 29*e4a6e799Ssimonb if prevch != "\n": print("'\\n',") 30*e4a6e799Ssimonb else: 31*e4a6e799Ssimonb if ((ord(ch) >= ord(' ')) and (ord(ch) < 0x7f)): 32*e4a6e799Ssimonb print(f"'{ch}',", end='') 33*e4a6e799Ssimonb else: 34*e4a6e799Ssimonb print("0x%02x," % ord(ch), end='') 35*e4a6e799Ssimonbprint(" '\\0' };") 36*e4a6e799Ssimonbprint("constant int size_helpdata = sizeof(helpdata) - 1;") 37