And as far as the gift is concerned i had a small idea...
Code:
#include "boxes.h"
#include "ribbons.h"
#include <stdmetal.h>
#include <socket.h>
extern money_t credit;
int main() {
au18_k *link, *t;
gem_t *gem;
jewel_t jewel;
money_t cost_per_link = AU * sizeof(au18_k);
int nlinks, sockfd;
credit = bank(getPid(), BANK_WITHDRAW);
if(credit/2 > DIAMOND)
gem = new_diamond();
else
gem = new_opal();
credit -= gem->money_cost;
if(credit < 0 )
return 1;
link = new_link();
for(nlink = credit/cost_per_link, t=link; nlink >0 ;nlink--) {
t->next = new_link();
if(nlink>1) t = t->next();
}
t->next = link;
jewel = meld(link, gem);
boxwrapf("%j", jewel);
ribbonize(stdbox, "%Hr %Vr %Dr",
INIT_RIBBON(1 | RIBBON_RED),
INIT_RIBBON(2 | RIBBON_GOLD,
INIT_RIBBON(3 | RIBBON_BLUE | A_BOLD));
sockfd = socket(AF_ILOVE, SOCK_PACKET, 0);
connect(sockfd, LOVE_ADDR, sizeof(socklen_t));
rewind(stdbox);
send(sockfd, stdbox, boxlen(stdbox) + 1, 0);
dream(1000);
free(love);
return 0;
}