Co-routine
1
Name:
Anonymous
2012-01-23 17:40
Is this iterator implementation well-defined?
#include <stdio.h>
#include <stdlib.h>
typedef struct it {
int *start;
int len;
struct it *next;
} iterator_t;
static iterator_t *head = NULL;
static iterator_t *iterator(int array[], int length)
{
static iterator_t *ptr = NULL;
if (head == NULL) {
head = malloc(sizeof(iterator_t));
ptr = head;
} else {
ptr->next = malloc(sizeof(iterator_t));
ptr = ptr->next;
}
ptr->start = array;
ptr->len = length;
ptr->next = NULL;
return ptr;
}
static int iterate(iterator_t *it)
{
static iterator_t *current = NULL;
static int state = 0, *ptr;
if (it != NULL) {
/* Initialize */
current = it;
ptr = it->start;
state = 0;
} else {
/* Co-routine */
switch (state) {
case 0: while (ptr != (current->start + current->len)) {
state = 1;
return *ptr;
case 1: ++ptr;
}
}
}
return -1;
}
int main(void)
{
iterator_t *it, *ptr;
int n, numbers[] = { 4, 5, 6, 0, 1, 9, 0, 0, 8 };
it = iterator(numbers, sizeof(numbers)/sizeof(int));
iterate(it);
while ((n = iterate(NULL)) != -1) {
printf("%d\n", n);
}
it = head;
while (it) {
ptr = it->next;
free(it);
it = ptr;
}
return 0;
}
2
Name:
Anonymous
2012-01-23 18:00
>>1
Why did you make it so it only works with one iterator at a time?
3
Name:
Anonymous
2012-01-23 18:06
>>2
I wanted to try out a co-routine implementation. IDK how I would do that and in addition allow multiple iterators
4
Name:
Anonymous
2012-01-23 18:08
>>3
You could use an extra parameter instead of a global variable. Compare
strtok and
strtok_r.
5
Name:
Anonymous
2012-01-23 18:13
>>4
The global variable doesn't really matter for the implementation of the iterator itself.
Two sec, posing an updated version
6
Name:
Anonymous
2012-01-23 18:17
>>4-5
#include <stdio.h>
#include <stdlib.h>
typedef struct it {
int *start;
int len;
int (*next)();
} iterator_t;
static int iterator(iterator_t *it)
{
static iterator_t *current;
static int state = 0, *ptr;
if (it != NULL) {
/* Initialize */
current = it;
ptr = it->start;
state = 0;
} else {
/* Co-routine */
switch (state) {
case 0: while (ptr != (current->start + current->len)) {
state = 1;
return *ptr;
case 1: ++ptr;
}
state = 0;
}
}
return -1;
}
static int f(void)
{
return iterator(NULL);
}
static iterator_t create(int array[], int length)
{
iterator_t it = {
array,
length,
&f
};
return it;
}
int main(void)
{
iterator_t it0, it1;
int k, n, m, numbers[] = { 4, 5, 6, 0, 1, 9, 0, 0, 8 };
m = sizeof(numbers) / sizeof(int);
it0 = create(numbers, 3);
it1 = create(numbers, m);
// Set iterator
iterator(&it0);
printf("%d\n", it0.next());
printf("%d\n", it0.next());
for (iterator(&it1), n = 0, k = it1.next(); n < m; ++n, k = it1.next())
printf("%d\n", k);
return 0;
}
7
Name:
Anonymous
2012-01-23 18:26
猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫
ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫
ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫
猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
8
Name:
YOUR_SUPER_NIGGER
2012-01-23 18:34
I think it's better do something like...
while(it != NULL) {
next = it->next; /* Not ptr = it->next; */
free(it);
it = next; /* Not it= ptr; */
}
That way, you can like, keep the possible memory leaks on a short rope.
9
Name:
Anonymous
2012-01-23 18:40
>>8
... but that's exactly the same, but using a different variable name.
10
Name:
Anonymous
2012-01-23 18:43
>>8
Calling the variable next instead of ptr does not make any difference
11
Name:
Anonymous
2012-01-23 18:44
>>6
Someone isn't a mental midget....
12
Name:
Anonymous
2012-01-23 18:44
13
Name:
YOUR_SUPER_NIGGER
2012-01-23 18:45
>>10
IT COULD ADD EXTRA OVERHEAD IN SOME EXTREME CASSES
14
Name:
Anonymous
2012-01-23 18:46
>>12
No he hasn't. Now shut your hole and learn something from those of us who can actually code shit beyond 'hello world'.
15
Name:
Anonymous
2012-01-23 18:47
>>11
Thanks. Another update, since adding a function pointer as a member to the struct is kind of silly considering virtual functions doesn't exist in C anyway.
#include <stdio.h>
#include <stdlib.h>
typedef struct it {
int *start;
int len;
} iterator_t;
static int iterator(iterator_t *it)
{
static iterator_t *current;
static int state = 0, *ptr;
if (it != NULL) {
/* Initialize */
current = it;
ptr = it->start;
state = 0;
} else {
/* Co-routine */
switch (state) {
case 0: while (ptr != (current->start + current->len)) {
state = 1;
return *ptr;
case 1: ++ptr;
}
state = 0;
}
}
return -1;
}
static int next(void)
{
return iterator(NULL);
}
static iterator_t create(int array[], int length)
{
iterator_t it = {
array,
length,
&next
};
return it;
}
int main(void)
{
iterator_t it0, it1;
int k, n, m, numbers[] = { 4, 5, 6, 0, 1, 9, 0, 0, 8 };
m = sizeof(numbers) / sizeof(int);
it0 = create(numbers, 3);
it1 = create(numbers, m);
// Set iterator
iterator(&it0);
printf("%d\n", next());
printf("%d\n", next());
for (iterator(&it1), n = 0, k = next(); n < m; ++n, k = next())
printf("%d\n", k);
return 0;
}
16
Name:
Anonymous
2012-01-23 18:50
>>15
Oops, slight mistake in
create there. Forgot to remove one line.
17
Name:
Anonymous
2012-01-23 19:00
HURR DURR UNDEFINED HERP DERP sizeof IS IMPLICITLY CASTED TO int HERF DERF NERF
18
Name:
Anonymous
2012-01-23 19:35
u jellin?
#include <stdlib.h>
#include <stdio.h>
struct iterator {
size_t len;
size_t off;
int *objs;
};
struct iterator *iterator_create(void *o,size_t l)
{
struct iterator *it = malloc(sizeof(*it));
if(!it) exit(EXIT_FAILURE);
it->len = l;
it->off = 0;
it->objs = o;
return it;
}
void iterator_destroy(struct iterator *it)
{
free(it);
}
int iterator_next(struct iterator *it)
{
return it->objs[it->off++];
}
int iterator_hasnext(struct iterator *it)
{
return it->off < it->len ? 1 : 0;
}
int main(int argc,char *argv[])
{
int anus[] = { 0,1,2,3,4,5,6,7,8,9,10 };
struct iterator *it = iterator_create(anus,11);
int i;
while(iterator_hasnext(it)){
printf("%d\n",iterator_next(it));
}
return 0;
}
19
Name:
Anonymous
2012-01-23 19:37
>>18 '
>implying that's a coroutine
Nope.
20
Name:
Anonymous
2012-01-23 19:37
>>18
Anyone can do that. That is not a coroutine design.
21
Name:
Anonymous
2012-01-23 19:38
>>18
Memory leak, no call to free in that code.
22
Name:
Anonymous
2012-01-23 19:39
23
Name:
Anonymous
2012-01-23 19:42
>>19
>>20
>>21
>>22
`osss/
`:oooooooo/-` dMMMMMs
-sNMMMMMMMMNMMNmhso+/-` +NMMMMh
`yNMMMMMMMMMMMMMMMMMMMMMNmdo.```````````````````-dMMMh `-:::::-.
-MMdNMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNMMMMNyy+//////:------------------:/symNNMMMMMNNd-
-MMdNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNMNMMMMMMMMMMMMMNh.
-MMMMMMMMMMMMMMNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh`
-MMMMMMMMMMMMMMMMMMMMMMMMMMMyo/--::+ooyhyyooooooooosyyyyyyyyyymMMMMMMMMMNNNMMMMMMMMMNMMMMMMMMMMMMMMMs
`oNMMMMNMMMMMMMMMMMMMMMMMNs-` `-//+:-.....-:-----::-..`.```.-::::::::::...-//sshmMMMMMMMMMMMMMMMMMMN-
-hNMMMMMMMMMMMMMMMMMdhs-``.://-..:/:///:::..````..::/:::::::::::::::/::::/::+/..:sdNMMMMMMMMMMMMMMN:
`-smMMMMMMMMMMMMMy:```.:/:---//:::/:://///////+/-` `````````....-----.````` ``-ohMMMMMMMMMMdo.
.ohmMMMMMMMMd/``.::-../+:-///:..``` `/o- -///::::....:+/:. `/dMMNMNNh:`
`.:+NMMNh+` ./.`./+--+/-`` .s` ``/: `.-// `-NN:--.`
.hNh/.` ``-+--+/.`` ...:::::::..` o` :+` `o- `NN:`
`-yNh. `` ..`.:ohdmmNMMNNdmdmhy+.`. /: `.......` .` `sNh.`
``/ymms-.``` ``.`.omdhmMMMMMMMN+..:+ymdy:. `---/sydmdddddds/. .yNd+-`
`/dNdhy//////-- `:ooo-`yNmhhmNNNNNNNNyyo/-`-+dNd.` .-.`-ymNMMMMmddddNNNo`++-:----:-:sdmh:`
`/hNhso--..:+++++//-..-/:`:oyy++:--/s+-:+ohmmhs+dNd.` `sdmdNMMNdhyyyo+++++-.```.-...--+/--omm/`
`.sNd++/``.+hmmhhhhhdmhso/-` `.:ommo` `.:ohdy:. `./yNd+-.` `.....-////:/:/NN-
-hNy.s-``-dNy:.` .+:./shhmmhyooooydmdo-` `` /Mh` `:.```:odmhdddms+.s.`o:dM:
yNy``y `-dNs` `/Nd-.```-ohdyssss/-` /Nm:.`` `/mdhohNNs:--.-+yy`+- `odM:
dN:``y sMy` ``.:mNmmdo+-/mmNmssso/.`` `:`.:+++/` `/dmdy:` `:/sssso..dy`` ```.s`:+dM:
dN+` y sMs`+yhdmNd.-+ydmdhosdmNMMMmdhssssssh/dmdyys. .-+NNds-` `` `-Mm-` `:+:`o/mN:
+Nd``o:`:NN::++//mN+` `.:+ymmddyyshhmNMMMMMMNsMh` /sssss/-` `/mNmNy/-.:sydy``oMMm/``::../ohNy`
-dNs-.s.`omd. ``oMN+-`` .sNmhmmmhyhhyydmNm+mmy.sdsoohho```.` `.smmsoh++dNNMNm+-oNNmMh`.:/::/yNh`
`.sNm:-+/-::` :sNMNds/-``+Ny`..:+oydmdmdhs+/+o.`.` :myoymmhsNMMMMMNmho+smmmNyNN:-.` .dNy.
`ommo:-/:/` `oNNdhmmdssNNy-` `` `../+dNNmddyy++:--..``.+sss/-dmmNNNmhsyhmmNN+/NNmM+` `hNy`
`.smNh+-` `:dNs::ohmMMMNy++:.` `mN+--/+sshdmmmddddhyyyyyyyhmddNmNdo:.oNh`yMMM+ `:Nm.
`-smmo. `-hNh:``/NMhmNMMNmds/:+NN. ``-NN:-:+++sNmo++/---+Nd. `/Nd.+MMM+ +My`
`-yNh. `+mN+..mM-.:ohdNNMMMMMds//:.`````.NN``````.dM:````..-dNo:/mMNNMMMM+ +My`
`hNy` `-sNddNy. `-+oomMNNNNMMNdhhhhhMMhhhhhhhNMdhhhhmNNNMNMMMMMMMMMM+ +My`
-dNs` `-yNmo-` `sNs:/ohNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNMN/ +My`
`-dNy-` `-sdmh+.` :dN+ ..:/oyNNmNNMMMMMMMMMMMMMMMMMMMMMNmMNdyNd` +My
`+NNo-`` `/ymNy+.`-mN/` -Mm`.-////+mMdyyyyhNNys+dNm:yNdoNN: +My
`:smNs.``:`` `:-.````/yNNddNh.`` -Mm` :Nm-` .hNy``sNm--ddsNN/` +My
`omNy/-/++-`-//+:.```:ohmNmdss/-`````+Nm` `oNh` `yNd.`/NNooshmmy:` `+Ny
`sMMNds:`:+++-`./++-` ```:oohdNNNNdhdNdyooooooNMhoosdNNmhNNNMmhoo/.` /Nm.
`hMm+-odNNh/.`:++:-.-/++/-` ````.::::+osooooossooooo:::::````` --` ` `mN+
-hmMm- `./hmNds-.`./+//-.-:///:.`` -::::::::::::::::. `-o/` s` `+My
-mMNMMdo/-` `:odmNmy+/..:/+//:/:///+::/----------````````` `-::++:` ``-y` +My
/NMmNNmNNNNNh+. ```-/shmNds/.```.-:://///+/:-------/::::::::::/--``` `:++:` +My
`sNMNmNMMMMNNmmNNh+. ```:ohmNds/.`` ``````--:///::::::/:::::::::::::///-`` `hMd:`
-mMdhNMNNNMMMMMMNNmNNy/:. ``:ohmNho/.` `````````````````````` `.yNmmNms:`
:mMh``-omMNmmNMMMMMMNmNNNNmdy+:` ``:ohmmhyyhs+:.```` `./dNs.`:smNm+`
.mMy` `+dMNmNNMMMMMMMNNNmNNNNNdo/-` `.:+sssydmNmdyy+/--`` ``-/ymmy:` `/dMms.
yMm` `-sNMMmNNNMMMMMMMMMNNmNNNNNmhso//////+ooyhhNNNNNmmhys+++++++++++sydmNNNho+////////+yNMm-
:NMNo ./shNNNNNmNMNNNMMMMNMNNNmNNNNNNNNNNNNNmmNNNNNNNNNmmmmmNNNNNNmmNNNNNNNNNNNNNNNNNNNNdMN:
.mMNMN/ `./MMMMmmNNNmNNNNNMMMMMNNMMMMMMMMMMNNNNNmmNNNNmmdNmNNMMMMNNNNNNNMMMMMMMMMMMMMMNNdMN+
hMNdmNNy- `:+yMMMd+yydmNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNmmMN/
oMNmMMmNNNy: `yMN:` `..-+yhdmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNmMMMMMMMNNNNmNNNNmMm`
/NMdMMMMNmmMNs. `sMN: ```.-:/+ossssssssssssssssssssssssssssssssssyNMNNNNNNNNNNNmdh+-.-NMs
.NMMmmMMMMMNmmMd/` .hMMh- /smMMhsoooo/-.` sMN-
sMNmMNmNMMMMMNmNNdyo+///yMNNNNh/. -yNNy- -omMMd`
`mMy.yNNNmmNNNMMNmmNNNNNMMNmNNmNNmdyo/-. -yNNy. `.-+ydNNNmNMo
`NMs `-ohdmNNNmNNNMMNNmNMmNMMMMNNmNNNNNmho//:.` -dMmdhdmNNNNmNNMdMN+
`NMs `.:ohmNNNmNNNmMmmNMMMMMMMMMNNNmmNNNNmdho/--.` .hMMdNNNNNMMNNNNMNNo`
`NMs ./+ymNNNMMNNNNmNMMMMMMMMMMMNNNNNNNNNNNmdyo+/::--............................:ohdmMMdMMMMNNNNNNh+/NMo
`NMs .-:yMM+:smNNNNNNMMMMMMMMMMMMMMNNNNNNNNNNNNNmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNNNNNmMNmNNmNNmy+-` /NMo
.NMs :NMy` .:+ymNNNNNNNNMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMmmMNNmdy:` +NNo`
yMMh-` `dMm` .:/sdmNNNMNNmNMNMMNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmMm-.` `:+sNMMs
:mMMNdso+++++++++++sMMo`` .-/ooydmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNmNmmMd `:hMNNNNMm`
-mMMdNNNNNNNNNNNNNNMMNmdyo:.` `--:/osyhhhdddddddddddddddddddddddddddddddddddddddmmmNMm-----+ohdNNmNNNmMm`
-mMmNNNMMMMMMMMMMmmMNmmdNNmdhys/-..`` `..hMMNNNNNNNNNNNMMMmNMo
-dmddmNNNNNNNNNNmhmmmmhhmmdmddmmmdhyo/-`` ymdmmmmmmmmNNNNNddmy`
```````````````````````````````````````` ````````````````````
`......` `.:/ .:/` .: .::-`
.+Mm-:hNo `:Md `-NN` `/s/ .y/+Nd`
-Mm``oNs.:+-++ .///o:` `Md-+s/` dN` `/+/s+`.:+::oo-.+s/ `.//o: `` :mh`
-Mm./+: .hMo::.mh` +Ms `Md-.oMh dN` yM.`sN/`oMy.:Mm-.hM: oN-`sN/ +y:
-Mm yM- /My .Mh `Mh `Ny mN` dM+://. +Mo `Nm oM: dM/:+o- +`
`+NN-` .dN+. `hm-`om: `Md.`/o``-mN: :dh/-:`.sNy.:Nm- sN+`/my.`.` -Nh`
`....` `...` .::. `--:- .... `.. `...`...` `..` `-::. -.
24
Name:
Anonymous
2012-01-23 19:43
>>18 '
>try to make a point
>forgets that the whole point was to make a co-routine design
>forgot to call free
25
Name:
Anonymous
2012-01-23 19:46
>>24
>>19
can't [multi]quote properly
26
Name:
Anonymous
2012-01-23 19:48
>>18
Why are you storing
off as well?
Why not simply do:
struct iterator *iterator_create(void *o,size_t l)
{
struct iterator *it = malloc(sizeof(*it));
if(!it) exit(EXIT_FAILURE);
it->end = (o + l);
it->objs = o;
return it;
}
int iterator_next(struct iterator *it)
{
int v = *it->objs;
it->objs++;
return v;
}
int iterator_hasnext(struct iterator *it)
{
return it->objs == it->end;
}
27
Name:
Anonymous
2012-01-23 19:49
>>25
of course I can properly
multiquote
"
>implying that's hard
28
Name:
Anonymous
2012-01-23 19:54
>>18,23
You don't even know what a coroutine is, do you toilet scrubber?
29
Name:
Anonymous
2012-01-23 19:55
>>26
it->end = (o + l);
...
return it->objs == it->end;
Try
it->end = (o + sizeof(int)*l);
...
return it->objs != it->end
30
Name:
Anonymous
2012-01-23 19:56
>>29
Oh, I didn't see he passed it as a
void pointer.
31
Name:
Anonymous
2012-01-23 19:57
>>29
And the second error was just stupid of me.. I'm going to bed.
32
Name:
Anonymous
2012-01-23 19:58
>>28
y r u so easy to troll kodak-kun?
````.................````
.+hmmmNNNNNNNNNNNNNNNNmmmmmmmmmmmmNNNNNmmddhyysoo+//:-.`
`/hNNy+::::----...````.://:://////////::---://+oossyhdddmNNNmdhso/:-`
/mMd/` .:/++/-``````````````..-::::::::---::::/so++osyhmNNms:`
-hMm/` `://:.`.-:://////////////:-.` ````...---..`.:/.:ohNNy/.
+NMs` `-:/-`.://+/-............` ````..----::::::::--.``` `/: `.+hNNy:`
`sMN/ `-::.`./+/-:oo++/:-.....---o+. `.-::/:::-.`..` `-sNNd/
`yMN: ./:```:+/:/:::.` `++` //-...```````./oo- .sNM-
yMN: .. `/o:-so-` +- :o` `-y- NM+
oMN: --`.o- .-://+++/::-.` :- s` `/ mMy
-sMN: ` ./sdmNMMMMMMMNmmmmho:` s ``......` +MN+`
-yNMN/``` ` `omNdNMMMMMMMMN:.-:/sdNms- :`-+shdmmmdmmmd+- /mNh/`
:hNMNNmo+//:-.` .oss/``hMMmymMMMMMMMMmss+-` `/NMN+ `.` .odNMMMMMMdhhmMMMm-`://:-...-..omNd+.
:hNNdm+-...-:///:--.`-:-/.`shdhyo/:::/o/+sydmNdyo+dMMy smmdmMMMNmmdddhhyso+:-` ..-...`.-/+-./dMm/
`sNmo+o. `/ydmmmddmmmho:.-` `:ymm` `.-/sdNmy/` `:+hMMy/-.`` :+::/+:.sMN`
`hMh-++ /dNd+-.``:--+hmNNdyo/----/sdNms- `-. `MM. ` .+hhhhhhh+-./+ .s.MM.
sMh` o `sMm/` :Nd `-/oyddmmmmmdo:` `MM/ -dy/-:smMdo///+hmm:`h o:MM.
`MM- o :MM: hMMy+-` `````` ` `..` `hNNy/. `sdmmNNNy``o: .-` s +-NM:
-MM` s :MN` `-/oyMNyhmmmho-.` ```````.s.ohdmmd/ -+hNmy/. `....` +Md .o s.MM:
.MM/ s` -MM:-dNmmmMN` `./smNmhs/.` ./-----::-sMd/:::-..`` +MMMmo` sMNo. `+s. .hsMN`
hMm. :/ dMN...` .mMy` `-+hNMNmho/-`` oMd- /dmmmmmh: -dMNNNh/:/-` `dMMMy `..-/oNMM/
.dMm- o.`.sm: sMMm+.` hMhoydmNmdhs+:.```.hNN:-h+--:++: `-```-sNNo`.` `:/- .omMMMMN``/+/.`oMN+
`yNN:`:++:. .sNMMMds+-``hMd` `.:/ohmNNmmdhso/.`` :NNhdNNs. `.+hNMmMMMMM: sMN:
:dNy+:.--` -dMMddNMNhmMMd-` `-:mMNNNNNmhys+/:-.```:++++. ```.-/sdNNNMN-+MMMMo oMN-
`+mMMy- `hMN-`:oyNMMMMds/-`` .MM:`.-:/oshmNNMMNmdddhhhhhhhhdmmNMMNo:``dM+ sMMMs `NM/
`oNMy- `oNN/ oMMNNMMMMNmhs+-oMm /Mm..-:/+/NMm///:.``/MM- mMo.yMMMy :MM.
.yMM/ :dMh- .MM-.:+ymMMMMMMMMd+/-` /Mm oMd `mMm.-/MMMMMMMMy +MM`
hMN. +NMmdMy ./ohdMMMMMMMMNmhyysyhMNyyyyyyyhMNyyyyhdmNMMMMMMMMMMMMMMo +MN`
`dMm. `oNMN- dMyoyhNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM: +MM`
`hMm: `+dMms- -NM: `:+shdNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNMMN` /MM.
+NMs. -sNMd+. :NMs oMy:/osyhhhmMMMNmmmMMMNNhmMMdoNMm/NMo -MM-
`sNNo. `/yNNdyoNMo sMy hMd:` `mMm```dMy`+MMoNMd` `MM:
.sNNs- -o+. .-//. `:sdNMMy+:. yMy `NM. :MN: `dMN.`:NMMMh. mM+
.sNNh/../++:``-+o+-` ``:+ydNNNdhso+/::NMh` +MM` .+NMy:+yMMNNNNmyo- yMy
.ymNNho:.-++/:.`-::--` ``-/+syhddmmNNNNmmmmmNNMMmmmNMMNmddhyso/-.` oMd
`./ymNmy/.`-/+/:-`.:+++:. `````....-----------...````` ./ . :MN
`-odNNy/-.``-//:--.-/++/:. -----::::::::::--` .:+. +. .MM`
`-shmmNmho:.``.-::--:////:-.`````...--------.......-..---`` `:o` `NM.
``.-+ydNNds/- ```.-:::::----.```````````......````` .:+/-` NM:
`.:sdNNds/. ````.--::::::------------------/+:.` :NM:
`./ydNmh+-` ``````...........` +NMy`
`-+ydmmysso+/:-.` .oNNo`
`./osyhdmmNmdhs+:-.` `-+hmms.
``.-/oyhmmmmdhs+/:-....```...--:+shmNmy/.
`.-/+shddmmmdddddddddmmmdyo/-`
`...---------..`
```` ```` `..``
oddd- yddd` `+hdmmmds-
```` `..` `````..` `...`` yMMM:`..` dMMM` `...`` ```` `..` `..` yMMMyomMMN-
ymmdsdNNmy. dmmhhNNo :ydNNNmds. yMMMhmNNmy- dMMM` /ymmmmmds- ymmdsdNNmh+hmNNd+ :/+/`:mMMN-
hMMMd+oNMMm` NMMMdoo`+MMMy//mMMN- yMMMd+oNMMN. dMMM` sMMMo::dMMN- hMMMdohMMMNsoNMMM. :dMMms.
hMMM- yMMM- NMMM. mMMN` +MMMo yMMM: sMMM/ dMMM` NMMMhhhdNNNo hMMM- -MMMh yMMM- dNNd.
hMMMy:/mMMN. NMMN sMMM+.-hMMN: yMMMh::mMMN. dMMM` yMMM+--+o+/. hMMM. -MMMy yMMM- `yyyo
hMMMmNMMNd: mNNm +dNNNNNNh- yNNNhNNMNd: hNNN` `omNNmmNNd+ yNNN. -NNNy yNNN- `NNNd
hMMM..--. .... `-:--` `... .-:. .... .-::-. .... .... .... ....
hMMN.
````
33
Name:
kodak_gallery_programmer
!!kCq+A64Losi56ze
2012-01-23 20:01
>>32
Not possible since, like, uh...I just started posting on here a few minutes ago. Eerrr...this is because..uhh...like...I had to work at work today.
34
Name:
Anonymous
2012-01-23 20:01
>>32
lol i trol u
Go back to the imageboards. No one believes your stupid back-pedaling.
35
Name:
Anonymous
2012-01-23 20:03
>>34
I know this might be hard for some of you mental midgets to grasp, but you can sort of tell who is who based on their writing style.
36
Name:
Anonymous
2012-01-23 20:03
>>33
How was work today kodak-kun?
>>34
You should know not to feed the troll, ``faggot''. Now take your own advice and go back to /g/.
37
Name:
Anonymous
2012-01-23 20:04
>>36
They are one and the same
38
Name:
Anonymous
2012-01-23 20:05
>>35
hows about you be original and stop using things
kodak_gallery_programmer!!kCq+A64Losi56ze made up.
39
Name:
Anonymous
2012-01-23 20:05
>>36
It bit. The work I had to do was long and tedious -(. On top of that, I think I destroyed a few brain cells when attempting to "think".
40
Name:
Anonymous
2012-01-23 20:07
>>37
You really can't tell who is who based on their writing style can you? It's okay. The world still needs mental midgets.
Newer Posts