mirror of
https://github.com/ascii-boxes/boxes.git
synced 2024-12-12 09:51:10 +01:00
Add test cases for unicode and invalid manual encoding #1
This commit is contained in:
parent
c370772ee0
commit
363e0266e0
@ -2197,7 +2197,6 @@ shapes {
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ")
|
||||
|
||||
s ("_",
|
||||
@ -2208,7 +2207,6 @@ shapes {
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ")
|
||||
|
||||
w ("|")
|
||||
@ -2221,8 +2219,7 @@ shapes {
|
||||
" . . . ",
|
||||
" / ) | ",
|
||||
"' _.' | ",
|
||||
"'-'/ \\ ",
|
||||
" ")
|
||||
"'-'/ \\ ")
|
||||
|
||||
sse ("_ __",
|
||||
" |/ ",
|
||||
@ -2232,7 +2229,6 @@ shapes {
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ")
|
||||
}
|
||||
|
||||
|
@ -1380,7 +1380,7 @@ static int read_all_input(const int use_stdin)
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*/
|
||||
{
|
||||
char buf[LINE_MAX_BYTES + 2]; /* input buffer */
|
||||
char buf[LINE_MAX_BYTES + 3]; /* input buffer incl. newline + zero terminator */
|
||||
size_t len_chars;
|
||||
size_t input_size = 0; /* number of elements allocated */
|
||||
uint32_t *mbtemp = NULL; /* temp string for preparing the multi-byte input */
|
||||
@ -1396,7 +1396,7 @@ static int read_all_input(const int use_stdin)
|
||||
/*
|
||||
* Start reading
|
||||
*/
|
||||
while (fgets(buf, LINE_MAX_BYTES + 1, opt.infile)) {
|
||||
while (fgets(buf, LINE_MAX_BYTES + 2, opt.infile)) {
|
||||
if (input.anz_lines % 100 == 0) {
|
||||
input_size += 100;
|
||||
line_t *tmp = (line_t *) realloc(input.lines, input_size * sizeof(line_t));
|
||||
|
@ -263,7 +263,7 @@ size_t expand_tabs_into(const uint32_t *input_buffer, const int tabstop, uint32_
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*/
|
||||
{
|
||||
static uint32_t temp[LINE_MAX_BYTES * MAX_TABSTOP + 1]; /* work string */
|
||||
static uint32_t temp[LINE_MAX_BYTES + 100]; /* work string */
|
||||
size_t io; /* character position in work string */
|
||||
size_t tabnum = 0; /* index of the current tab */
|
||||
|
||||
@ -294,7 +294,7 @@ size_t expand_tabs_into(const uint32_t *input_buffer, const int tabstop, uint32_
|
||||
ucs4_t puc;
|
||||
const uint32_t *rest = input_buffer;
|
||||
io = 0;
|
||||
while ((rest = u32_next(&puc, rest))) {
|
||||
while ((rest = u32_next(&puc, rest)) && io < (LINE_MAX_BYTES - 12)) {
|
||||
if (puc == char_tab) {
|
||||
if (*tabpos_len > 0) {
|
||||
(*tabpos)[tabnum++] = io;
|
||||
@ -314,7 +314,6 @@ size_t expand_tabs_into(const uint32_t *input_buffer, const int tabstop, uint32_
|
||||
if (*text == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return io;
|
||||
}
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
:ARGS
|
||||
-s 15x7 -a l
|
||||
:INPUT
|
||||
aaa
|
||||
bbbb
|
||||
aaa
|
||||
bbbb
|
||||
ccccc
|
||||
:OUTPUT-FILTER
|
||||
:EXPECTED
|
||||
@ -13,4 +13,4 @@ ccccc
|
||||
/* ccccc */
|
||||
/* */
|
||||
/*************/
|
||||
:EOF
|
||||
:EOF
|
||||
|
15
test/112_manual_encoding_invalid.txt
Normal file
15
test/112_manual_encoding_invalid.txt
Normal file
@ -0,0 +1,15 @@
|
||||
:DESC
|
||||
A non-existent encoding is specified. Boxes falls back to the system encoding and logs a warning.
|
||||
|
||||
:ARGS
|
||||
-n NON-EXISTENT
|
||||
:INPUT
|
||||
foo
|
||||
:OUTPUT-FILTER
|
||||
s/( falling back to) .*$/\1 [system encoding]/
|
||||
:EXPECTED
|
||||
boxes: Invalid character encoding: NON-EXISTENT - falling back to [system encoding]
|
||||
/*******/
|
||||
/* foo */
|
||||
/*******/
|
||||
:EOF
|
430
test/115_lots_of_lines.txt
Normal file
430
test/115_lots_of_lines.txt
Normal file
@ -0,0 +1,430 @@
|
||||
:DESC
|
||||
The function read_all_input() in 'boxes' module has a hard-coded increment of 100, and the buffer must be extended
|
||||
after that. Test more than 100 lines.
|
||||
:ARGS
|
||||
:INPUT
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
||||
eiusmod tempor incididunt ut labore et dolore magna aliqua. Sit
|
||||
amet massa vitae tortor condimentum lacinia quis vel eros.
|
||||
Feugiat in ante metus dictum at tempor. Neque aliquam
|
||||
vestibulum morbi blandit cursus. Non pulvinar neque laoreet
|
||||
suspendisse interdum consectetur libero. Sit amet massa vitae
|
||||
tortor condimentum lacinia. Faucibus pulvinar elementum integer
|
||||
enim neque volutpat ac tincidunt vitae. Tortor dignissim
|
||||
convallis aenean et tortor at risus. Nunc sed blandit libero
|
||||
volutpat. Dolor magna eget est lorem. Aliquet nec ullamcorper
|
||||
sit amet risus nullam eget. Pellentesque elit eget gravida cum
|
||||
sociis natoque penatibus et. Elit scelerisque mauris
|
||||
pellentesque pulvinar pellentesque habitant morbi. Tincidunt
|
||||
eget nullam non nisi est sit. Eu non diam phasellus vestibulum
|
||||
lorem sed risus. Integer eget aliquet nibh praesent.
|
||||
|
||||
Nascetur ridiculus mus mauris vitae ultricies leo integer
|
||||
malesuada. Nulla facilisi morbi tempus iaculis urna id volutpat
|
||||
lacus laoreet. Eu mi bibendum neque egestas. Arcu felis
|
||||
bibendum ut tristique et egestas quis ipsum suspendisse. Dolor
|
||||
sit amet consectetur adipiscing. Turpis massa sed elementum
|
||||
tempus egestas sed sed risus. Est pellentesque elit ullamcorper
|
||||
dignissim cras tincidunt lobortis. Arcu risus quis varius quam
|
||||
quisque id diam vel. Ornare aenean euismod elementum nisi quis
|
||||
eleifend. Duis at consectetur lorem donec massa sapien faucibus
|
||||
et molestie. Lorem ipsum dolor sit amet consectetur adipiscing
|
||||
elit. Feugiat nibh sed pulvinar proin gravida hendrerit. Amet
|
||||
mauris commodo quis imperdiet massa tincidunt nunc. Nisl purus
|
||||
in mollis nunc sed. Nec ultrices dui sapien eget mi. Sagittis
|
||||
eu volutpat odio facilisis mauris sit.
|
||||
|
||||
In nulla posuere sollicitudin aliquam ultrices sagittis orci a.
|
||||
At in tellus integer feugiat scelerisque varius. Mauris
|
||||
pellentesque pulvinar pellentesque habitant morbi tristique
|
||||
senectus. Tortor dignissim convallis aenean et tortor at risus.
|
||||
Sed turpis tincidunt id aliquet risus. Odio eu feugiat pretium
|
||||
nibh. Est pellentesque elit ullamcorper dignissim cras
|
||||
tincidunt lobortis feugiat vivamus. Vel pretium lectus quam id
|
||||
leo in. Nec ullamcorper sit amet risus nullam eget felis eget.
|
||||
In hac habitasse platea dictumst quisque sagittis. Augue lacus
|
||||
viverra vitae congue eu. Eu tincidunt tortor aliquam nulla
|
||||
facilisi cras fermentum.
|
||||
|
||||
A pellentesque sit amet porttitor. Fringilla phasellus faucibus
|
||||
scelerisque eleifend donec. Pulvinar sapien et ligula
|
||||
ullamcorper malesuada proin libero nunc. Cursus vitae congue
|
||||
mauris rhoncus aenean vel elit scelerisque mauris. Elementum eu
|
||||
facilisis sed odio. Est ultricies integer quis auctor elit sed
|
||||
vulputate mi sit. Congue quisque egestas diam in arcu cursus
|
||||
euismod quis. Amet mauris commodo quis imperdiet massa
|
||||
tincidunt nunc pulvinar. Sit amet consectetur adipiscing elit
|
||||
pellentesque habitant morbi. Laoreet non curabitur gravida arcu
|
||||
ac tortor dignissim convallis aenean. Amet dictum sit amet
|
||||
justo donec enim diam. Sagittis aliquam malesuada bibendum arcu
|
||||
vitae elementum curabitur vitae nunc. Porta lorem mollis
|
||||
aliquam ut porttitor. At in tellus integer feugiat scelerisque.
|
||||
Viverra maecenas accumsan lacus vel facilisis. Suscipit tellus
|
||||
mauris a diam. Mi sit amet mauris commodo. Ut eu sem integer
|
||||
vitae justo eget. Senectus et netus et malesuada fames ac turpis.
|
||||
|
||||
Euismod elementum nisi quis eleifend quam. Auctor neque vitae
|
||||
tempus quam pellentesque nec nam aliquam sem. Ultricies mi eget
|
||||
mauris pharetra et ultrices neque ornare. Vel turpis nunc eget
|
||||
lorem dolor sed viverra ipsum nunc. Nibh praesent tristique
|
||||
magna sit amet purus gravida quis. Suspendisse in est ante in
|
||||
nibh mauris cursus mattis. Rutrum quisque non tellus orci ac
|
||||
auctor augue mauris. Elit at imperdiet dui accumsan sit. Eu
|
||||
consequat ac felis donec et. Integer malesuada nunc vel risus
|
||||
commodo. Aenean pharetra magna ac placerat vestibulum lectus.
|
||||
Lacus viverra vitae congue eu consequat ac felis. Risus viverra
|
||||
adipiscing at in. Dolor sit amet consectetur adipiscing elit ut
|
||||
aliquam. Scelerisque mauris pellentesque pulvinar pellentesque
|
||||
habitant morbi. Pulvinar etiam non quam lacus suspendisse
|
||||
faucibus. Quam lacus suspendisse faucibus interdum posuere.
|
||||
Imperdiet nulla malesuada pellentesque elit eget gravida cum
|
||||
sociis. Pretium aenean pharetra magna ac placerat. Turpis nunc
|
||||
eget lorem dolor sed viverra.
|
||||
|
||||
Tellus at urna condimentum mattis pellentesque id nibh tortor
|
||||
id. Est sit amet facilisis magna etiam tempor orci. Est lorem
|
||||
ipsum dolor sit amet. Quis viverra nibh cras pulvinar mattis
|
||||
nunc sed. Magnis dis parturient montes nascetur ridiculus mus
|
||||
mauris. Justo eget magna fermentum iaculis eu non diam
|
||||
phasellus vestibulum. Ipsum dolor sit amet consectetur
|
||||
adipiscing elit ut aliquam. Mi proin sed libero enim sed.
|
||||
Quisque egestas diam in arcu. Proin libero nunc consequat
|
||||
interdum varius sit amet. Turpis massa tincidunt dui ut. Erat
|
||||
nam at lectus urna duis. Tristique senectus et netus et
|
||||
malesuada fames ac turpis. Fermentum posuere urna nec
|
||||
tincidunt. Risus nullam eget felis eget. Odio facilisis mauris
|
||||
sit amet. Adipiscing elit pellentesque habitant morbi tristique
|
||||
senectus et netus. In hac habitasse platea dictumst vestibulum.
|
||||
Sit amet volutpat consequat mauris nunc congue nisi vitae.
|
||||
|
||||
Lacus luctus accumsan tortor posuere ac ut consequat semper. In
|
||||
ornare quam viverra orci sagittis eu volutpat odio facilisis.
|
||||
Lobortis scelerisque fermentum dui faucibus in ornare.
|
||||
Penatibus et magnis dis parturient. Consectetur adipiscing elit
|
||||
duis tristique. Amet dictum sit amet justo donec enim diam.
|
||||
Sapien faucibus et molestie ac. Amet volutpat consequat mauris
|
||||
nunc. Tortor condimentum lacinia quis vel eros donec. Commodo
|
||||
sed egestas egestas fringilla. Pulvinar sapien et ligula
|
||||
ullamcorper malesuada proin. Diam volutpat commodo sed egestas
|
||||
egestas fringilla phasellus.
|
||||
|
||||
Ut faucibus pulvinar elementum integer enim neque volutpat ac
|
||||
tincidunt. Egestas tellus rutrum tellus pellentesque eu
|
||||
tincidunt tortor aliquam nulla. Quisque id diam vel quam
|
||||
elementum. Non sodales neque sodales ut etiam. Consectetur a
|
||||
erat nam at lectus urna duis convallis. Felis imperdiet proin
|
||||
fermentum leo vel orci porta. Tellus in metus vulputate eu
|
||||
scelerisque felis. Pharetra convallis posuere morbi leo urna
|
||||
molestie at. Auctor augue mauris augue neque gravida. In
|
||||
iaculis nunc sed augue lacus viverra vitae congue. Senectus et
|
||||
netus et malesuada fames ac turpis egestas integer. Non nisi
|
||||
est sit amet facilisis magna etiam tempor. Blandit cursus risus
|
||||
at ultrices mi tempus imperdiet. Enim ut sem viverra aliquet
|
||||
eget sit amet tellus cras. Ultrices mi tempus imperdiet nulla
|
||||
malesuada pellentesque elit eget. Justo laoreet sit amet
|
||||
cursus. Amet consectetur adipiscing elit pellentesque. Pulvinar
|
||||
sapien et ligula ullamcorper malesuada proin libero nunc
|
||||
consequat.
|
||||
|
||||
Sem fringilla ut morbi tincidunt augue interdum. Tempor orci eu
|
||||
lobortis elementum nibh. Elementum eu facilisis sed odio morbi
|
||||
quis commodo odio aenean. Vitae nunc sed velit dignissim
|
||||
sodales ut eu. Felis eget nunc lobortis mattis aliquam
|
||||
faucibus. Viverra tellus in hac habitasse. Tristique senectus
|
||||
et netus et malesuada fames ac turpis. Nisl rhoncus mattis
|
||||
rhoncus urna neque viverra justo. Praesent elementum facilisis
|
||||
leo vel fringilla. Pellentesque adipiscing commodo elit at.
|
||||
Libero enim sed faucibus turpis in eu mi bibendum. Faucibus
|
||||
nisl tincidunt eget nullam non nisi est sit amet. Bibendum est
|
||||
ultricies integer quis. Mattis enim ut tellus elementum
|
||||
sagittis vitae et leo. Vitae aliquet nec ullamcorper sit amet
|
||||
risus nullam eget. Vestibulum sed arcu non odio euismod lacinia
|
||||
at. Enim neque volutpat ac tincidunt. Scelerisque in dictum non
|
||||
consectetur. Rhoncus dolor purus non enim praesent. Convallis
|
||||
posuere morbi leo urna molestie at elementum eu.
|
||||
|
||||
In iaculis nunc sed augue. Massa massa ultricies mi quis
|
||||
hendrerit dolor. Est velit egestas dui id ornare arcu odio ut
|
||||
sem. Ac turpis egestas integer eget aliquet nibh praesent
|
||||
tristique magna. Massa enim nec dui nunc mattis. Diam phasellus
|
||||
vestibulum lorem sed risus ultricies. Vivamus at augue eget
|
||||
arcu. Ullamcorper velit sed ullamcorper morbi tincidunt ornare
|
||||
massa. Aliquam sem fringilla ut morbi tincidunt augue. Tellus
|
||||
in metus vulputate eu scelerisque felis imperdiet. Venenatis a
|
||||
condimentum vitae sapien pellentesque habitant morbi. Penatibus
|
||||
et magnis dis parturient montes nascetur ridiculus. Eros donec
|
||||
ac odio tempor orci dapibus ultrices in iaculis. Massa eget
|
||||
egestas purus viverra accumsan in. Ut lectus arcu bibendum at
|
||||
varius. Ultricies tristique nulla aliquet enim. Ullamcorper
|
||||
malesuada proin libero nunc consequat interdum. Leo in vitae
|
||||
turpis massa sed elementum tempus. Faucibus nisl tincidunt eget
|
||||
nullam non nisi est sit amet.
|
||||
|
||||
Purus sit amet luctus venenatis lectus magna fringilla urna
|
||||
porttitor. Maecenas accumsan lacus vel facilisis volutpat est
|
||||
velit egestas dui. In nulla posuere sollicitudin aliquam
|
||||
ultrices sagittis orci. Vitae nunc sed velit dignissim sodales
|
||||
ut eu. Adipiscing bibendum est ultricies integer quis auctor.
|
||||
Tempus imperdiet nulla malesuada pellentesque. Dapibus ultrices
|
||||
in iaculis nunc. Tortor id aliquet lectus proin nibh nisl
|
||||
condimentum id venenatis. Pretium lectus quam id leo in vitae
|
||||
turpis. Sagittis aliquam malesuada bibendum arcu vitae
|
||||
elementum curabitur vitae nunc. In nulla posuere sollicitudin
|
||||
aliquam ultrices sagittis. Ut lectus arcu bibendum at varius
|
||||
vel pharetra. Fusce ut placerat orci nulla pellentesque
|
||||
dignissim. Ac tortor vitae purus faucibus ornare suspendisse
|
||||
sed nisi. Non consectetur a erat nam. Eget sit amet tellus cras.
|
||||
|
||||
Purus non enim praesent elementum facilisis leo vel fringilla.
|
||||
Feugiat vivamus at augue eget arcu dictum varius duis. Nibh
|
||||
nisl condimentum id venenatis. Feugiat nisl pretium fusce id.
|
||||
Adipiscing commodo elit at imperdiet dui. Varius vel pharetra
|
||||
vel turpis nunc eget lorem dolor sed. Nullam ac tortor vitae
|
||||
purus. Nunc mattis enim ut tellus elementum sagittis vitae et.
|
||||
Justo nec ultrices dui sapien. Tempus iaculis urna id volutpat
|
||||
lacus laoreet.
|
||||
|
||||
Quam pellentesque nec nam aliquam sem et tortor consequat.
|
||||
Scelerisque varius morbi enim nunc faucibus a pellentesque.
|
||||
Arcu non odio euismod lacinia at quis. Vivamus arcu felis
|
||||
bibendum ut tristique et egestas quis ipsum. Malesuada proin
|
||||
libero nunc consequat interdum varius. Laoreet sit amet cursus
|
||||
sit amet. Odio pellentesque diam volutpat commodo sed egestas
|
||||
egestas fringilla. Massa placerat duis ultricies lacus sed
|
||||
turpis tincidunt id. Ultricies mi eget mauris pharetra et
|
||||
ultrices neque ornare aenean. Lacus vestibulum sed arcu non
|
||||
odio euismod lacinia. Turpis egestas integer eget aliquet nibh.
|
||||
Faucibus pulvinar elementum integer enim. At tempor commodo
|
||||
ullamcorper a lacus vestibulum sed. Non pulvinar neque laoreet
|
||||
suspendisse interdum consectetur. Cursus risus at ultrices mi
|
||||
tempus imperdiet nulla malesuada pellentesque. At auctor urna
|
||||
nunc id cursus metus aliquam. Elementum nisi quis eleifend quam
|
||||
adipiscing. Gravida cum sociis natoque penatibus et magnis dis
|
||||
parturient montes.
|
||||
|
||||
Aliquet bibendum enim facilisis gravida neque convallis. Tempor
|
||||
nec feugiat nisl pretium. Nunc vel risus commodo viverra
|
||||
maecenas accumsan lacus vel. Felis donec et odio pellentesque.
|
||||
Pulvinar elementum integer enim neque volutpat ac tincidunt.
|
||||
Mattis ullamcorper velit sed ullamcorper morbi tincidunt. Quis
|
||||
imperdiet massa tincidunt nunc. Faucibus et molestie ac feugiat
|
||||
sed lectus. Tortor aliquam nulla facilisi cras fermentum odio
|
||||
eu feugiat pretium. Lorem ipsum dolor sit amet consectetur
|
||||
adipiscing elit. Semper risus in hendrerit gravida rutrum
|
||||
quisque non tellus. Diam sit amet nisl suscipit adipiscing
|
||||
bibendum est.
|
||||
:OUTPUT-FILTER
|
||||
:EXPECTED
|
||||
/*********************************************************************/
|
||||
/* Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do */
|
||||
/* eiusmod tempor incididunt ut labore et dolore magna aliqua. Sit */
|
||||
/* amet massa vitae tortor condimentum lacinia quis vel eros. */
|
||||
/* Feugiat in ante metus dictum at tempor. Neque aliquam */
|
||||
/* vestibulum morbi blandit cursus. Non pulvinar neque laoreet */
|
||||
/* suspendisse interdum consectetur libero. Sit amet massa vitae */
|
||||
/* tortor condimentum lacinia. Faucibus pulvinar elementum integer */
|
||||
/* enim neque volutpat ac tincidunt vitae. Tortor dignissim */
|
||||
/* convallis aenean et tortor at risus. Nunc sed blandit libero */
|
||||
/* volutpat. Dolor magna eget est lorem. Aliquet nec ullamcorper */
|
||||
/* sit amet risus nullam eget. Pellentesque elit eget gravida cum */
|
||||
/* sociis natoque penatibus et. Elit scelerisque mauris */
|
||||
/* pellentesque pulvinar pellentesque habitant morbi. Tincidunt */
|
||||
/* eget nullam non nisi est sit. Eu non diam phasellus vestibulum */
|
||||
/* lorem sed risus. Integer eget aliquet nibh praesent. */
|
||||
/* */
|
||||
/* Nascetur ridiculus mus mauris vitae ultricies leo integer */
|
||||
/* malesuada. Nulla facilisi morbi tempus iaculis urna id volutpat */
|
||||
/* lacus laoreet. Eu mi bibendum neque egestas. Arcu felis */
|
||||
/* bibendum ut tristique et egestas quis ipsum suspendisse. Dolor */
|
||||
/* sit amet consectetur adipiscing. Turpis massa sed elementum */
|
||||
/* tempus egestas sed sed risus. Est pellentesque elit ullamcorper */
|
||||
/* dignissim cras tincidunt lobortis. Arcu risus quis varius quam */
|
||||
/* quisque id diam vel. Ornare aenean euismod elementum nisi quis */
|
||||
/* eleifend. Duis at consectetur lorem donec massa sapien faucibus */
|
||||
/* et molestie. Lorem ipsum dolor sit amet consectetur adipiscing */
|
||||
/* elit. Feugiat nibh sed pulvinar proin gravida hendrerit. Amet */
|
||||
/* mauris commodo quis imperdiet massa tincidunt nunc. Nisl purus */
|
||||
/* in mollis nunc sed. Nec ultrices dui sapien eget mi. Sagittis */
|
||||
/* eu volutpat odio facilisis mauris sit. */
|
||||
/* */
|
||||
/* In nulla posuere sollicitudin aliquam ultrices sagittis orci a. */
|
||||
/* At in tellus integer feugiat scelerisque varius. Mauris */
|
||||
/* pellentesque pulvinar pellentesque habitant morbi tristique */
|
||||
/* senectus. Tortor dignissim convallis aenean et tortor at risus. */
|
||||
/* Sed turpis tincidunt id aliquet risus. Odio eu feugiat pretium */
|
||||
/* nibh. Est pellentesque elit ullamcorper dignissim cras */
|
||||
/* tincidunt lobortis feugiat vivamus. Vel pretium lectus quam id */
|
||||
/* leo in. Nec ullamcorper sit amet risus nullam eget felis eget. */
|
||||
/* In hac habitasse platea dictumst quisque sagittis. Augue lacus */
|
||||
/* viverra vitae congue eu. Eu tincidunt tortor aliquam nulla */
|
||||
/* facilisi cras fermentum. */
|
||||
/* */
|
||||
/* A pellentesque sit amet porttitor. Fringilla phasellus faucibus */
|
||||
/* scelerisque eleifend donec. Pulvinar sapien et ligula */
|
||||
/* ullamcorper malesuada proin libero nunc. Cursus vitae congue */
|
||||
/* mauris rhoncus aenean vel elit scelerisque mauris. Elementum eu */
|
||||
/* facilisis sed odio. Est ultricies integer quis auctor elit sed */
|
||||
/* vulputate mi sit. Congue quisque egestas diam in arcu cursus */
|
||||
/* euismod quis. Amet mauris commodo quis imperdiet massa */
|
||||
/* tincidunt nunc pulvinar. Sit amet consectetur adipiscing elit */
|
||||
/* pellentesque habitant morbi. Laoreet non curabitur gravida arcu */
|
||||
/* ac tortor dignissim convallis aenean. Amet dictum sit amet */
|
||||
/* justo donec enim diam. Sagittis aliquam malesuada bibendum arcu */
|
||||
/* vitae elementum curabitur vitae nunc. Porta lorem mollis */
|
||||
/* aliquam ut porttitor. At in tellus integer feugiat scelerisque. */
|
||||
/* Viverra maecenas accumsan lacus vel facilisis. Suscipit tellus */
|
||||
/* mauris a diam. Mi sit amet mauris commodo. Ut eu sem integer */
|
||||
/* vitae justo eget. Senectus et netus et malesuada fames ac turpis. */
|
||||
/* */
|
||||
/* Euismod elementum nisi quis eleifend quam. Auctor neque vitae */
|
||||
/* tempus quam pellentesque nec nam aliquam sem. Ultricies mi eget */
|
||||
/* mauris pharetra et ultrices neque ornare. Vel turpis nunc eget */
|
||||
/* lorem dolor sed viverra ipsum nunc. Nibh praesent tristique */
|
||||
/* magna sit amet purus gravida quis. Suspendisse in est ante in */
|
||||
/* nibh mauris cursus mattis. Rutrum quisque non tellus orci ac */
|
||||
/* auctor augue mauris. Elit at imperdiet dui accumsan sit. Eu */
|
||||
/* consequat ac felis donec et. Integer malesuada nunc vel risus */
|
||||
/* commodo. Aenean pharetra magna ac placerat vestibulum lectus. */
|
||||
/* Lacus viverra vitae congue eu consequat ac felis. Risus viverra */
|
||||
/* adipiscing at in. Dolor sit amet consectetur adipiscing elit ut */
|
||||
/* aliquam. Scelerisque mauris pellentesque pulvinar pellentesque */
|
||||
/* habitant morbi. Pulvinar etiam non quam lacus suspendisse */
|
||||
/* faucibus. Quam lacus suspendisse faucibus interdum posuere. */
|
||||
/* Imperdiet nulla malesuada pellentesque elit eget gravida cum */
|
||||
/* sociis. Pretium aenean pharetra magna ac placerat. Turpis nunc */
|
||||
/* eget lorem dolor sed viverra. */
|
||||
/* */
|
||||
/* Tellus at urna condimentum mattis pellentesque id nibh tortor */
|
||||
/* id. Est sit amet facilisis magna etiam tempor orci. Est lorem */
|
||||
/* ipsum dolor sit amet. Quis viverra nibh cras pulvinar mattis */
|
||||
/* nunc sed. Magnis dis parturient montes nascetur ridiculus mus */
|
||||
/* mauris. Justo eget magna fermentum iaculis eu non diam */
|
||||
/* phasellus vestibulum. Ipsum dolor sit amet consectetur */
|
||||
/* adipiscing elit ut aliquam. Mi proin sed libero enim sed. */
|
||||
/* Quisque egestas diam in arcu. Proin libero nunc consequat */
|
||||
/* interdum varius sit amet. Turpis massa tincidunt dui ut. Erat */
|
||||
/* nam at lectus urna duis. Tristique senectus et netus et */
|
||||
/* malesuada fames ac turpis. Fermentum posuere urna nec */
|
||||
/* tincidunt. Risus nullam eget felis eget. Odio facilisis mauris */
|
||||
/* sit amet. Adipiscing elit pellentesque habitant morbi tristique */
|
||||
/* senectus et netus. In hac habitasse platea dictumst vestibulum. */
|
||||
/* Sit amet volutpat consequat mauris nunc congue nisi vitae. */
|
||||
/* */
|
||||
/* Lacus luctus accumsan tortor posuere ac ut consequat semper. In */
|
||||
/* ornare quam viverra orci sagittis eu volutpat odio facilisis. */
|
||||
/* Lobortis scelerisque fermentum dui faucibus in ornare. */
|
||||
/* Penatibus et magnis dis parturient. Consectetur adipiscing elit */
|
||||
/* duis tristique. Amet dictum sit amet justo donec enim diam. */
|
||||
/* Sapien faucibus et molestie ac. Amet volutpat consequat mauris */
|
||||
/* nunc. Tortor condimentum lacinia quis vel eros donec. Commodo */
|
||||
/* sed egestas egestas fringilla. Pulvinar sapien et ligula */
|
||||
/* ullamcorper malesuada proin. Diam volutpat commodo sed egestas */
|
||||
/* egestas fringilla phasellus. */
|
||||
/* */
|
||||
/* Ut faucibus pulvinar elementum integer enim neque volutpat ac */
|
||||
/* tincidunt. Egestas tellus rutrum tellus pellentesque eu */
|
||||
/* tincidunt tortor aliquam nulla. Quisque id diam vel quam */
|
||||
/* elementum. Non sodales neque sodales ut etiam. Consectetur a */
|
||||
/* erat nam at lectus urna duis convallis. Felis imperdiet proin */
|
||||
/* fermentum leo vel orci porta. Tellus in metus vulputate eu */
|
||||
/* scelerisque felis. Pharetra convallis posuere morbi leo urna */
|
||||
/* molestie at. Auctor augue mauris augue neque gravida. In */
|
||||
/* iaculis nunc sed augue lacus viverra vitae congue. Senectus et */
|
||||
/* netus et malesuada fames ac turpis egestas integer. Non nisi */
|
||||
/* est sit amet facilisis magna etiam tempor. Blandit cursus risus */
|
||||
/* at ultrices mi tempus imperdiet. Enim ut sem viverra aliquet */
|
||||
/* eget sit amet tellus cras. Ultrices mi tempus imperdiet nulla */
|
||||
/* malesuada pellentesque elit eget. Justo laoreet sit amet */
|
||||
/* cursus. Amet consectetur adipiscing elit pellentesque. Pulvinar */
|
||||
/* sapien et ligula ullamcorper malesuada proin libero nunc */
|
||||
/* consequat. */
|
||||
/* */
|
||||
/* Sem fringilla ut morbi tincidunt augue interdum. Tempor orci eu */
|
||||
/* lobortis elementum nibh. Elementum eu facilisis sed odio morbi */
|
||||
/* quis commodo odio aenean. Vitae nunc sed velit dignissim */
|
||||
/* sodales ut eu. Felis eget nunc lobortis mattis aliquam */
|
||||
/* faucibus. Viverra tellus in hac habitasse. Tristique senectus */
|
||||
/* et netus et malesuada fames ac turpis. Nisl rhoncus mattis */
|
||||
/* rhoncus urna neque viverra justo. Praesent elementum facilisis */
|
||||
/* leo vel fringilla. Pellentesque adipiscing commodo elit at. */
|
||||
/* Libero enim sed faucibus turpis in eu mi bibendum. Faucibus */
|
||||
/* nisl tincidunt eget nullam non nisi est sit amet. Bibendum est */
|
||||
/* ultricies integer quis. Mattis enim ut tellus elementum */
|
||||
/* sagittis vitae et leo. Vitae aliquet nec ullamcorper sit amet */
|
||||
/* risus nullam eget. Vestibulum sed arcu non odio euismod lacinia */
|
||||
/* at. Enim neque volutpat ac tincidunt. Scelerisque in dictum non */
|
||||
/* consectetur. Rhoncus dolor purus non enim praesent. Convallis */
|
||||
/* posuere morbi leo urna molestie at elementum eu. */
|
||||
/* */
|
||||
/* In iaculis nunc sed augue. Massa massa ultricies mi quis */
|
||||
/* hendrerit dolor. Est velit egestas dui id ornare arcu odio ut */
|
||||
/* sem. Ac turpis egestas integer eget aliquet nibh praesent */
|
||||
/* tristique magna. Massa enim nec dui nunc mattis. Diam phasellus */
|
||||
/* vestibulum lorem sed risus ultricies. Vivamus at augue eget */
|
||||
/* arcu. Ullamcorper velit sed ullamcorper morbi tincidunt ornare */
|
||||
/* massa. Aliquam sem fringilla ut morbi tincidunt augue. Tellus */
|
||||
/* in metus vulputate eu scelerisque felis imperdiet. Venenatis a */
|
||||
/* condimentum vitae sapien pellentesque habitant morbi. Penatibus */
|
||||
/* et magnis dis parturient montes nascetur ridiculus. Eros donec */
|
||||
/* ac odio tempor orci dapibus ultrices in iaculis. Massa eget */
|
||||
/* egestas purus viverra accumsan in. Ut lectus arcu bibendum at */
|
||||
/* varius. Ultricies tristique nulla aliquet enim. Ullamcorper */
|
||||
/* malesuada proin libero nunc consequat interdum. Leo in vitae */
|
||||
/* turpis massa sed elementum tempus. Faucibus nisl tincidunt eget */
|
||||
/* nullam non nisi est sit amet. */
|
||||
/* */
|
||||
/* Purus sit amet luctus venenatis lectus magna fringilla urna */
|
||||
/* porttitor. Maecenas accumsan lacus vel facilisis volutpat est */
|
||||
/* velit egestas dui. In nulla posuere sollicitudin aliquam */
|
||||
/* ultrices sagittis orci. Vitae nunc sed velit dignissim sodales */
|
||||
/* ut eu. Adipiscing bibendum est ultricies integer quis auctor. */
|
||||
/* Tempus imperdiet nulla malesuada pellentesque. Dapibus ultrices */
|
||||
/* in iaculis nunc. Tortor id aliquet lectus proin nibh nisl */
|
||||
/* condimentum id venenatis. Pretium lectus quam id leo in vitae */
|
||||
/* turpis. Sagittis aliquam malesuada bibendum arcu vitae */
|
||||
/* elementum curabitur vitae nunc. In nulla posuere sollicitudin */
|
||||
/* aliquam ultrices sagittis. Ut lectus arcu bibendum at varius */
|
||||
/* vel pharetra. Fusce ut placerat orci nulla pellentesque */
|
||||
/* dignissim. Ac tortor vitae purus faucibus ornare suspendisse */
|
||||
/* sed nisi. Non consectetur a erat nam. Eget sit amet tellus cras. */
|
||||
/* */
|
||||
/* Purus non enim praesent elementum facilisis leo vel fringilla. */
|
||||
/* Feugiat vivamus at augue eget arcu dictum varius duis. Nibh */
|
||||
/* nisl condimentum id venenatis. Feugiat nisl pretium fusce id. */
|
||||
/* Adipiscing commodo elit at imperdiet dui. Varius vel pharetra */
|
||||
/* vel turpis nunc eget lorem dolor sed. Nullam ac tortor vitae */
|
||||
/* purus. Nunc mattis enim ut tellus elementum sagittis vitae et. */
|
||||
/* Justo nec ultrices dui sapien. Tempus iaculis urna id volutpat */
|
||||
/* lacus laoreet. */
|
||||
/* */
|
||||
/* Quam pellentesque nec nam aliquam sem et tortor consequat. */
|
||||
/* Scelerisque varius morbi enim nunc faucibus a pellentesque. */
|
||||
/* Arcu non odio euismod lacinia at quis. Vivamus arcu felis */
|
||||
/* bibendum ut tristique et egestas quis ipsum. Malesuada proin */
|
||||
/* libero nunc consequat interdum varius. Laoreet sit amet cursus */
|
||||
/* sit amet. Odio pellentesque diam volutpat commodo sed egestas */
|
||||
/* egestas fringilla. Massa placerat duis ultricies lacus sed */
|
||||
/* turpis tincidunt id. Ultricies mi eget mauris pharetra et */
|
||||
/* ultrices neque ornare aenean. Lacus vestibulum sed arcu non */
|
||||
/* odio euismod lacinia. Turpis egestas integer eget aliquet nibh. */
|
||||
/* Faucibus pulvinar elementum integer enim. At tempor commodo */
|
||||
/* ullamcorper a lacus vestibulum sed. Non pulvinar neque laoreet */
|
||||
/* suspendisse interdum consectetur. Cursus risus at ultrices mi */
|
||||
/* tempus imperdiet nulla malesuada pellentesque. At auctor urna */
|
||||
/* nunc id cursus metus aliquam. Elementum nisi quis eleifend quam */
|
||||
/* adipiscing. Gravida cum sociis natoque penatibus et magnis dis */
|
||||
/* parturient montes. */
|
||||
/* */
|
||||
/* Aliquet bibendum enim facilisis gravida neque convallis. Tempor */
|
||||
/* nec feugiat nisl pretium. Nunc vel risus commodo viverra */
|
||||
/* maecenas accumsan lacus vel. Felis donec et odio pellentesque. */
|
||||
/* Pulvinar elementum integer enim neque volutpat ac tincidunt. */
|
||||
/* Mattis ullamcorper velit sed ullamcorper morbi tincidunt. Quis */
|
||||
/* imperdiet massa tincidunt nunc. Faucibus et molestie ac feugiat */
|
||||
/* sed lectus. Tortor aliquam nulla facilisi cras fermentum odio */
|
||||
/* eu feugiat pretium. Lorem ipsum dolor sit amet consectetur */
|
||||
/* adipiscing elit. Semper risus in hendrerit gravida rutrum */
|
||||
/* quisque non tellus. Diam sit amet nisl suscipit adipiscing */
|
||||
/* bibendum est. */
|
||||
/*********************************************************************/
|
||||
:EOF
|
13
test/116_lots_of_tabs.txt
Normal file
13
test/116_lots_of_tabs.txt
Normal file
@ -0,0 +1,13 @@
|
||||
:DESC
|
||||
Test that an ultra-long line consisting almost only of tabs is handled correctly. The line consists of 510 tabs and
|
||||
two 'x' at the ends, which makes for 4081 columns in the result. Because of LINE_MAX_BYTES from boxes.h.in at 4096,
|
||||
we should get a correct box. This is not 100% precise at the edges (don't go to 4096 exactly), which is fine.
|
||||
:ARGS
|
||||
:INPUT
|
||||
x x
|
||||
:OUTPUT-FILTER
|
||||
:EXPECTED
|
||||
/*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
||||
/* x x */
|
||||
/*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
||||
:EOF
|
40
test/117_unicode_ansi_mending.txt
Normal file
40
test/117_unicode_ansi_mending.txt
Normal file
@ -0,0 +1,40 @@
|
||||
:DESC
|
||||
This test case checks that a broken box with unicode and ansi sequences can be properly mended.
|
||||
:ARGS
|
||||
-d diamonds -ac -m
|
||||
:INPUT
|
||||
/\ /\ /\ /\
|
||||
/\//\\/\ /\//\\/\ /\//\\/\ /\//\\/\
|
||||
/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\
|
||||
//\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\
|
||||
\\//\/ \/\\//
|
||||
\/ \/
|
||||
/\ 申提小[96m作氷食[m京豆贈画容平上護整的京。 /\
|
||||
//\\ 筑にじ[96mルげ物[m綱て流43写タフウ
|
||||
\\// Y4 [96mn0w[m 54y, (pdf) 1nDeX3D \\//
|
||||
\/ Lorem ipsum. \/
|
||||
/\ /\
|
||||
//\\/\ /\//\\
|
||||
\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\//
|
||||
\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/
|
||||
\/\\//\/ \/\\//\/ \/\\//\/ \/\\//\/
|
||||
\/ \/ \/ \/
|
||||
:OUTPUT-FILTER
|
||||
:EXPECTED
|
||||
/\ /\ /\ /\
|
||||
/\//\\/\ /\//\\/\ /\//\\/\ /\//\\/\
|
||||
/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\
|
||||
//\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\
|
||||
\\//\/ \/\\//
|
||||
\/ \/
|
||||
/\ 申提小[96m作氷食[m京豆贈画容平上護整的京。 /\
|
||||
//\\ 筑にじ[96mルげ物[m綱て流43写タフウ //\\
|
||||
\\// Y4 [96mn0w[m 54y, (pdf) 1nDeX3D \\//
|
||||
\/ Lorem ipsum. \/
|
||||
/\ /\
|
||||
//\\/\ /\//\\
|
||||
\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\//
|
||||
\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/
|
||||
\/\\//\/ \/\\//\/ \/\\//\/ \/\\//\/
|
||||
\/ \/ \/ \/
|
||||
:EOF
|
31
test/118_unicode_ansi_align_center.txt
Normal file
31
test/118_unicode_ansi_align_center.txt
Normal file
@ -0,0 +1,31 @@
|
||||
:DESC
|
||||
Center align colored unicode text.
|
||||
:ARGS
|
||||
-d unicornsay -ac
|
||||
:INPUT
|
||||
[38;5;39m [0m[38;5;44m [0m[38;5;44m [0m[38;5;44m [0m[38;5;49m [0m[38;5;49m [0m[38;5;48m [0m[38;5;84m [0m[38;5;83m [0m[38;5;83m試[0m
|
||||
[38;5;44m [0m[38;5;49m [0m[38;5;49m [0m[38;5;48m [0m[38;5;84m [0m[38;5;83m常[0m[38;5;83m盤[0m
|
||||
[38;5;48m [0m[38;5;84m [0m[38;5;83m [0m[38;5;83m運[0m[38;5;118m作[0m[38;5;118m能[0m
|
||||
[38;5;83m [0m[38;5;118m [0m[38;5;118m [0m[38;5;154m申[0m[38;5;154m見[0m[38;5;184m売[0m[38;5;184m映[0m
|
||||
[38;5;154m [0m[38;5;154m [0m[38;5;184m [0m[38;5;184m海[0m[38;5;214m棋[0m[38;5;214m事[0m[38;5;208m行[0m[38;5;208m変[0m
|
||||
[38;5;184m [0m[38;5;214m [0m[38;5;214m [0m[38;5;208mf[0m[38;5;208mö[0m[38;5;203mó[0m[38;5;203mb[0m[38;5;204mé[0m[38;5;198mç[0m[38;5;199m¿[0m
|
||||
:OUTPUT-FILTER
|
||||
:EXPECTED
|
||||
______________
|
||||
/ \
|
||||
| [38;5;49m [0m[38;5;48m [0m[38;5;84m [0m[38;5;83m [0m[38;5;83m試[0m |
|
||||
| [38;5;48m [0m[38;5;84m [0m[38;5;83m常[0m[38;5;83m盤[0m |
|
||||
| [38;5;83m運[0m[38;5;118m作[0m[38;5;118m能[0m |
|
||||
| [38;5;154m申[0m[38;5;154m見[0m[38;5;184m売[0m[38;5;184m映[0m |
|
||||
| [38;5;184m海[0m[38;5;214m棋[0m[38;5;214m事[0m[38;5;208m行[0m[38;5;208m変[0m |
|
||||
| [38;5;208mf[0m[38;5;208mö[0m[38;5;203mó[0m[38;5;203mb[0m[38;5;204mé[0m[38;5;198mç[0m[38;5;199m¿[0m |
|
||||
\________ __'\
|
||||
|/ \\
|
||||
\ \\ .
|
||||
|\\/|
|
||||
/ " '\
|
||||
. . .
|
||||
/ ) |
|
||||
' _.' |
|
||||
'-'/ \
|
||||
:EOF
|
31
test/119_unicode_ansi_align_right.txt
Normal file
31
test/119_unicode_ansi_align_right.txt
Normal file
@ -0,0 +1,31 @@
|
||||
:DESC
|
||||
Right align colored unicode text.
|
||||
:ARGS
|
||||
-d unicornsay -ar
|
||||
:INPUT
|
||||
[38;5;39m [0m[38;5;44m [0m[38;5;44m [0m[38;5;44m [0m[38;5;49m [0m[38;5;49m [0m[38;5;48m [0m[38;5;84m [0m[38;5;83m [0m[38;5;83m試[0m
|
||||
[38;5;44m [0m[38;5;49m [0m[38;5;49m [0m[38;5;48m [0m[38;5;84m [0m[38;5;83m常[0m[38;5;83m盤[0m
|
||||
[38;5;48m [0m[38;5;84m [0m[38;5;83m [0m[38;5;83m運[0m[38;5;118m作[0m[38;5;118m能[0m
|
||||
[38;5;83m [0m[38;5;118m [0m[38;5;118m [0m[38;5;154m申[0m[38;5;154m見[0m[38;5;184m売[0m[38;5;184m映[0m
|
||||
[38;5;154m [0m[38;5;154m [0m[38;5;184m [0m[38;5;184m海[0m[38;5;214m棋[0m[38;5;214m事[0m[38;5;208m行[0m[38;5;208m変[0m
|
||||
[38;5;184m [0m[38;5;214m [0m[38;5;214m [0m[38;5;208mf[0m[38;5;208mö[0m[38;5;203mó[0m[38;5;203mb[0m[38;5;204mé[0m[38;5;198mç[0m[38;5;199m¿[0m
|
||||
:OUTPUT-FILTER
|
||||
:EXPECTED
|
||||
______________
|
||||
/ \
|
||||
| [38;5;44m [0m[38;5;49m [0m[38;5;49m [0m[38;5;48m [0m[38;5;84m [0m[38;5;83m [0m[38;5;83m試[0m |
|
||||
| [38;5;48m [0m[38;5;84m [0m[38;5;83m常[0m[38;5;83m盤[0m |
|
||||
| [38;5;83m運[0m[38;5;118m作[0m[38;5;118m能[0m |
|
||||
| [38;5;154m申[0m[38;5;154m見[0m[38;5;184m売[0m[38;5;184m映[0m |
|
||||
| [38;5;184m海[0m[38;5;214m棋[0m[38;5;214m事[0m[38;5;208m行[0m[38;5;208m変[0m |
|
||||
| [38;5;208mf[0m[38;5;208mö[0m[38;5;203mó[0m[38;5;203mb[0m[38;5;204mé[0m[38;5;198mç[0m[38;5;199m¿[0m |
|
||||
\________ __'\
|
||||
|/ \\
|
||||
\ \\ .
|
||||
|\\/|
|
||||
/ " '\
|
||||
. . .
|
||||
/ ) |
|
||||
' _.' |
|
||||
'-'/ \
|
||||
:EOF
|
Loading…
Reference in New Issue
Block a user