Last active
June 2, 2021 06:46
-
-
Save SeijiEmery/cb0ccf75adcb5fac31bac8567cb98e5a to your computer and use it in GitHub Desktop.
format c text blocks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
corpus = """Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer vitae suscipit lectus. Nam faucibus non risus iaculis mattis. Suspendisse ligula massa, porta nec euismod vel, gravida non nisi. Mauris sit amet pulvinar odio, in pharetra dolor. Curabitur non nisi eu nisi cursus elementum nec eget diam. Praesent aliquet vehicula enim eu malesuada. Fusce euismod dolor nec lorem ultricies, ut maximus neque luctus. Maecenas sed augue pretium, condimentum elit eu, feugiat diam. | |
Nam at est nulla. Vestibulum ac lacus dolor. Morbi ultricies metus diam, et maximus justo rutrum interdum. Suspendisse non metus vitae nulla condimentum eleifend eu a ante. Aenean a ex dui. Sed tempus turpis eu ipsum facilisis, eu ultrices enim condimentum. Vestibulum vehicula est sem, at accumsan leo cursus ac. Pellentesque neque sem, posuere vitae mi eget, convallis convallis augue. Duis vestibulum cursus purus facilisis lacinia. Praesent blandit felis urna, eget suscipit diam rhoncus et. Nam lorem libero, luctus rhoncus posuere sed, euismod nec ipsum. Fusce non quam id felis imperdiet auctor. | |
Donec accumsan mi at nibh varius, quis pulvinar magna suscipit. In tempor a tortor vitae lacinia. Duis venenatis gravida quam, non euismod metus egestas quis. Nulla in luctus tellus, ornare elementum est. Praesent id volutpat sem, sit amet mattis nunc. Nulla laoreet eleifend mauris, porttitor faucibus mi feugiat sit amet. Vestibulum varius enim nibh, sit amet rhoncus nibh efficitur at. Suspendisse potenti. Donec metus magna, tincidunt eu arcu in, suscipit facilisis enim. Cras justo sapien, scelerisque nec volutpat quis, commodo ac lorem. Maecenas ipsum nisi, feugiat et gravida ac, tempor ac est. Nullam libero odio, maximus vel tincidunt sit amet, tincidunt quis mi. Sed iaculis pretium neque, eget porta massa. Aenean nisi justo, cursus in sagittis at, tempor ac felis. Praesent tincidunt eros ac massa ornare, sit amet malesuada erat euismod. | |
Sed placerat ultricies sem, ut hendrerit nisl malesuada eget. Maecenas nec egestas ligula, vitae condimentum dui. Pellentesque molestie lacus ex, eget semper odio facilisis vel. Donec vel odio fringilla odio mattis consequat ac nec elit. Cras eu commodo quam, id placerat sapien. Duis semper, arcu vitae molestie venenatis, odio libero euismod orci, et tristique tellus velit vitae metus. Mauris volutpat tellus vitae molestie pharetra. Nullam interdum diam risus, dictum varius elit blandit eget. Vivamus et lectus ut diam rhoncus posuere sed id elit. Integer sit amet eleifend risus. Integer pulvinar suscipit est, maximus euismod nulla tincidunt vel. Mauris in nisi semper mauris vulputate congue quis ut purus. | |
Sed pellentesque fermentum tellus, a aliquam erat ultrices nec. Mauris nisl lorem, pretium sed ultricies sit amet, tincidunt vitae erat. Mauris ac lacinia sapien, vitae volutpat neque. Donec mauris tortor, bibendum pulvinar dictum sed, maximus et libero. Donec efficitur elit rutrum, laoreet libero quis, finibus erat. Duis quis sapien nulla. Aenean feugiat nulla eget metus aliquam fringilla. Phasellus sagittis malesuada placerat. In non odio et nisi rutrum facilisis. Ut metus felis, rhoncus facilisis nunc eget, blandit fringilla ligula. Etiam bibendum eros ultricies lorem cursus sollicitudin. Proin elementum feugiat auctor. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur blandit quam eu nisl vehicula, eget euismod risus euismod. Maecenas rutrum lobortis justo ac porttitor. | |
Proin ullamcorper est ut erat pellentesque egestas. Aliquam erat volutpat. In ipsum dui, ultricies egestas sem vitae, faucibus tincidunt magna. Mauris facilisis auctor ligula quis vehicula. Maecenas rutrum commodo odio, in vulputate mi commodo vitae. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In fringilla nisl arcu, vel tempus risus dapibus vel. Aliquam at convallis elit. Nullam interdum risus vitae lectus consectetur vestibulum. Suspendisse nec libero nec diam eleifend mattis efficitur a orci. Praesent sed enim libero. | |
Nunc fermentum eleifend arcu non hendrerit. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla eleifend tristique justo, id varius leo accumsan eu. Nunc semper blandit pellentesque. Praesent fringilla est vitae leo commodo scelerisque. Proin enim dolor, hendrerit sit amet ligula vel, laoreet pellentesque velit. Nullam pharetra mauris mauris, id viverra elit rhoncus at. Vivamus ut nibh ac erat egestas maximus. Ut eget lectus eros. Nunc eu enim enim. | |
Mauris faucibus hendrerit ante vitae aliquet. Integer lobortis ultrices dolor, eget tincidunt velit laoreet a. Etiam vitae nulla tempus, auctor mauris consectetur, pulvinar felis. Proin ut leo rhoncus, blandit velit vel, pulvinar purus. Nulla id dolor non sapien aliquet varius sit amet vel nunc. Curabitur efficitur sem risus, a vulputate elit porta ut. Donec venenatis pellentesque ex, ut hendrerit tortor gravida eget. | |
Nunc suscipit nulla et finibus tincidunt. Sed elit diam, suscipit at mauris eu, efficitur egestas neque. Suspendisse potenti. Nunc metus dui, tempus ut vehicula consectetur, ornare ac leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Aenean vel ornare velit. Aliquam congue dictum elit, sed sagittis erat condimentum ut. | |
Nullam porta nibh a venenatis porta. Morbi rutrum orci sit amet nibh elementum iaculis. Vestibulum quis hendrerit nibh. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In eu massa luctus, facilisis eros et, pellentesque velit. Vivamus sagittis porta magna ac scelerisque. Donec vitae efficitur eros. Etiam nec urna non tellus eleifend semper. Etiam quis scelerisque augue. Sed consequat quam eu felis maximus elementum. Mauris aliquet sapien est, in porttitor ante faucibus sed.""" | |
print(to_c_block(corpus,80,4)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const char* some_c_array = | |
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer vitae " | |
"suscipit lectus. Nam faucibus non risus iaculis mattis. Suspendisse " | |
"ligula massa, porta nec euismod vel, gravida non nisi. Mauris sit amet " | |
"pulvinar odio, in pharetra dolor. Curabitur non nisi eu nisi cursus " | |
"elementum nec eget diam. Praesent aliquet vehicula enim eu malesuada. " | |
"Fusce euismod dolor nec lorem ultricies, ut maximus neque luctus. " | |
"Maecenas sed augue pretium, condimentum elit eu, feugiat diam. \nNam at " | |
"est nulla. Vestibulum ac lacus dolor. Morbi ultricies metus diam, et " | |
"maximus justo rutrum interdum. Suspendisse non metus vitae nulla " | |
"condimentum eleifend eu a ante. Aenean a ex dui. Sed tempus turpis eu " | |
"ipsum facilisis, eu ultrices enim condimentum. Vestibulum vehicula est " | |
"sem, at accumsan leo cursus ac. Pellentesque neque sem, posuere vitae mi " | |
"eget, convallis convallis augue. Duis vestibulum cursus purus facilisis " | |
"lacinia. Praesent blandit felis urna, eget suscipit diam rhoncus et. Nam " | |
"lorem libero, luctus rhoncus posuere sed, euismod nec ipsum. Fusce non " | |
"quam id felis imperdiet auctor. \nDonec accumsan mi at nibh varius, quis " | |
"pulvinar magna suscipit. In tempor a tortor vitae lacinia. Duis " | |
"venenatis gravida quam, non euismod metus egestas quis. Nulla in luctus " | |
"tellus, ornare elementum est. Praesent id volutpat sem, sit amet mattis " | |
"nunc. Nulla laoreet eleifend mauris, porttitor faucibus mi feugiat sit " | |
"amet. Vestibulum varius enim nibh, sit amet rhoncus nibh efficitur at. " | |
"Suspendisse potenti. Donec metus magna, tincidunt eu arcu in, suscipit " | |
"facilisis enim. Cras justo sapien, scelerisque nec volutpat quis, " | |
"commodo ac lorem. Maecenas ipsum nisi, feugiat et gravida ac, tempor ac " | |
"est. Nullam libero odio, maximus vel tincidunt sit amet, tincidunt quis " | |
"mi. Sed iaculis pretium neque, eget porta massa. Aenean nisi justo, " | |
"cursus in sagittis at, tempor ac felis. Praesent tincidunt eros ac massa " | |
"ornare, sit amet malesuada erat euismod. \nSed placerat ultricies sem, ut " | |
"hendrerit nisl malesuada eget. Maecenas nec egestas ligula, vitae " | |
"condimentum dui. Pellentesque molestie lacus ex, eget semper odio " | |
"facilisis vel. Donec vel odio fringilla odio mattis consequat ac nec " | |
"elit. Cras eu commodo quam, id placerat sapien. Duis semper, arcu vitae " | |
"molestie venenatis, odio libero euismod orci, et tristique tellus velit " | |
"vitae metus. Mauris volutpat tellus vitae molestie pharetra. Nullam " | |
"interdum diam risus, dictum varius elit blandit eget. Vivamus et lectus " | |
"ut diam rhoncus posuere sed id elit. Integer sit amet eleifend risus. " | |
"Integer pulvinar suscipit est, maximus euismod nulla tincidunt vel. " | |
"Mauris in nisi semper mauris vulputate congue quis ut purus. \nSed " | |
"pellentesque fermentum tellus, a aliquam erat ultrices nec. Mauris nisl " | |
"lorem, pretium sed ultricies sit amet, tincidunt vitae erat. Mauris ac " | |
"lacinia sapien, vitae volutpat neque. Donec mauris tortor, bibendum " | |
"pulvinar dictum sed, maximus et libero. Donec efficitur elit rutrum, " | |
"laoreet libero quis, finibus erat. Duis quis sapien nulla. Aenean " | |
"feugiat nulla eget metus aliquam fringilla. Phasellus sagittis malesuada " | |
"placerat. In non odio et nisi rutrum facilisis. Ut metus felis, rhoncus " | |
"facilisis nunc eget, blandit fringilla ligula. Etiam bibendum eros " | |
"ultricies lorem cursus sollicitudin. Proin elementum feugiat auctor. " | |
"Pellentesque habitant morbi tristique senectus et netus et malesuada " | |
"fames ac turpis egestas. Curabitur blandit quam eu nisl vehicula, eget " | |
"euismod risus euismod. Maecenas rutrum lobortis justo ac porttitor. \n" | |
"Proin ullamcorper est ut erat pellentesque egestas. Aliquam erat " | |
"volutpat. In ipsum dui, ultricies egestas sem vitae, faucibus tincidunt " | |
"magna. Mauris facilisis auctor ligula quis vehicula. Maecenas rutrum " | |
"commodo odio, in vulputate mi commodo vitae. Class aptent taciti " | |
"sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. " | |
"In fringilla nisl arcu, vel tempus risus dapibus vel. Aliquam at " | |
"convallis elit. Nullam interdum risus vitae lectus consectetur " | |
"vestibulum. Suspendisse nec libero nec diam eleifend mattis efficitur a " | |
"orci. Praesent sed enim libero. \nNunc fermentum eleifend arcu non " | |
"hendrerit. Orci varius natoque penatibus et magnis dis parturient " | |
"montes, nascetur ridiculus mus. Nulla eleifend tristique justo, id " | |
"varius leo accumsan eu. Nunc semper blandit pellentesque. Praesent " | |
"fringilla est vitae leo commodo scelerisque. Proin enim dolor, hendrerit " | |
"sit amet ligula vel, laoreet pellentesque velit. Nullam pharetra mauris " | |
"mauris, id viverra elit rhoncus at. Vivamus ut nibh ac erat egestas " | |
"maximus. Ut eget lectus eros. Nunc eu enim enim. \nMauris faucibus " | |
"hendrerit ante vitae aliquet. Integer lobortis ultrices dolor, eget " | |
"tincidunt velit laoreet a. Etiam vitae nulla tempus, auctor mauris " | |
"consectetur, pulvinar felis. Proin ut leo rhoncus, blandit velit vel, " | |
"pulvinar purus. Nulla id dolor non sapien aliquet varius sit amet vel " | |
"nunc. Curabitur efficitur sem risus, a vulputate elit porta ut. Donec " | |
"venenatis pellentesque ex, ut hendrerit tortor gravida eget. \nNunc " | |
"suscipit nulla et finibus tincidunt. Sed elit diam, suscipit at mauris " | |
"eu, efficitur egestas neque. Suspendisse potenti. Nunc metus dui, tempus " | |
"ut vehicula consectetur, ornare ac leo. Vestibulum ante ipsum primis in " | |
"faucibus orci luctus et ultrices posuere cubilia curae; Aenean vel " | |
"ornare velit. Aliquam congue dictum elit, sed sagittis erat condimentum " | |
"ut. \nNullam porta nibh a venenatis porta. Morbi rutrum orci sit amet nibh " | |
"elementum iaculis. Vestibulum quis hendrerit nibh. Class aptent taciti " | |
"sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. " | |
"In eu massa luctus, facilisis eros et, pellentesque velit. Vivamus " | |
"sagittis porta magna ac scelerisque. Donec vitae efficitur eros. Etiam " | |
"nec urna non tellus eleifend semper. Etiam quis scelerisque augue. Sed " | |
"consequat quam eu felis maximus elementum. Mauris aliquet sapien est, in " | |
"porttitor ante faucibus sed. \n" | |
; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def fmt_c_text_block(corpus, wrap_width=80, tab_width=4): | |
output = "" | |
lines = [ line.strip() for line in corpus.split('\n') if len(line.strip()) > 0 ] | |
line_width = 0 | |
output += " " * tab_width + '"' | |
for line in lines: | |
for word in line.split(): | |
if 2 + tab_width + line_width + len(word) + 1 >= wrap_width: | |
output += '"\n' + ' ' * tab_width + '"' | |
line_width = 0 | |
output += word + ' '; | |
line_width += len(word) + 1 | |
output += '\\n' | |
output += '"' | |
return output; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment