/*--------------------------------------------------------------------------- File name : cook.c Authors : many Created on : May 2001 Description : Miscellaneous recipes for ISAAC. *--------------------------------------------------------------------------*/ /* $Id: cook.c,v 1.7 2001/12/04 16:01:57 yjung Exp $ $Author: yjung $ $Date: 2001/12/04 16:01:57 $ $Revision: 1.7 $ */ /*--------------------------------------------------------------------------- Includes ---------------------------------------------------------------------------*/ #include #include #include #include /*--------------------------------------------------------------------------- Private variables ---------------------------------------------------------------------------*/ static struct { char * name ; char * prep ; } recipe_list[] = { { "AppleCrumble", "\n" "\n" "*** Nccyr pehzoyr ***\n" "\n" "- 125 tenzf bs fhtne\n" "- 125 tenzf bs ohggre\n" "- 200 tenzf bs jurng\n" "- 1 cvapu bs fnyg, pvaanzba\n" "- 4-5 nccyrf\n" "\n" "Fxva gur nccyrf, znxr yvggyr qvprf.\n" "Zvk ohggre, fhtne, jurng naq fnyg\n" "lbh trg n cbjqre juvpu lbh chg ba\n" "gbc bs gur nccyrf. Nqq pvaanzba.\n" "Onxr ng 220 qrterrf sbe 45 zvahgrf.\n" "\n" "\n" }, { "TarteTatin", "\n" "\n" "*** Gnegr Gngva (N 'erirefrq' nccyr cvr) ***\n" "\n" "Freivatf: 6\n" "300 t chss cnfgel\n" "200 t fhtne\n" "100 t ohggre\n" "2 xt nccyrf, crryrq, pberq, unyirq\n" "Sbe n 26 pz qvnzrgre cvr sbez\n" "\n" "Ebyy bhg gur cnfgel (2 zz, 1/10 va, guvpx) gb n 30pz qvfp naq\n" "yrnir vg gb erfg va gur ersevtrengbe.\n" "Cer-urng gur bira gb 220P.\n" "Ohggre n 26pz-qvnzrgre qvfp bs onxvat cnepuzrag naq pnershyyl yvar\n" "gur onfr bs gur gva jvgu vg. Fcernq gur fhtne bire gur cncre,\n" "funxvat vg rirayl bire gur fhesnpr, cynpr va gur zvqqyr bs gur bira\n" "naq onxr sbe fbzr 8 zvahgrf gb pnenzryvmr gur fhtne. Pnenzryvmr\n" "gb yvtug tbyqra oebja. Gura nqq gur ohggre, yrg vg zryg, erzbir\n" "sebz bira naq yrnir gb pbby n yvggyr.\n" "Cynpr gur unyirq nccyrf iregvpnyyl fvqr ol fvqr (v.r. gurl ZHFG or\n" "uvture guna gur evz bs gur gva !). Onxr sbe fbzr 25 zvahgrf (ng\n" "gur fnzr grzcrengher), erzbir sebz bira.\n" "'Yvar' (v.r. pbire) gur nccyrf jvgu gur cnfgel qvfp . Onxr sbe 20\n" "gb 25 zvahgrf (ng gur fnzr grzcrengher), gnxr gur gva bhg bs gur\n" "bira.\n" "Yrg pbby 5 zvahgrf ba n enpx, gura ghea bire naq hazbyq gur 'gnegr\n" "gngva' ba n cyngr, erzbir gur onxvat cnepuzrag.\n" "Gur 'gnegr gngva' ybbx abj yvxr na nccyr cvr :-)\n" "Freivat: jnez be yhxrjnez jvgu 'perzr punagvyyl'\n" "Nyfb terng jvgu inavyyn vpr pernz...\n" "\n" }, { "Tiramisu", "\n" "\n" "*** Gvenzvfh ***\n" "\n" "Cebcbegvbaf cre crefba:\n" "- 1 rtt\n" "- 100 tenzf znfpnecbar\n" "- 1.5/2 fcbbaf bs fhtne\n" "- Svatreybrssry pbbxvrf (ng jvyy)\n" "- Pbssrr\n" "- Pbpbn cbjqre\n" "- Fnyg\n" "\n" "1. Chg vagb gjb frcnengr pbagnvaref gur rtt lbyxf naq gur juvgrf.\n" "2. Cercner gur purrfr pernz:\n" " n) Orng lbyxf jvgu nyy gur fhtne gvyy gurl orpbzr juvgr.\n" " o) Nqq znfpnecbar naq fgve hagvy vg trgf ernyyl pernzl.\n" " p) Nqq n ovg bs fnyg gb gur juvgrf naq orng gurz gvyy gurl\n" " trg uneq (grfg: ghea objy hcfvqr qbja, gurl fubhyq erznva\n" " nggnpurq, bgurejvfr svaq fbzr zber rttf naq fgneg ntnva).\n" " q) Zvk irel tragyl gur 2/3 bs gur juvgr fabj gb gur purrfr\n" " pernz jvgu na hc-qbja zbirzrag.\n" "3. Cercner tbbq pbssrr, chg vg va n ynetr objy. Qvyhgr vs gbb\n" " fgebat. Hfr zvyx vafgrnq sbe xvqf.\n" "4. Ebyy pbbxvrf va gur pbssrr, sbez n ynlre va n syng cna.\n" "5. Pbire jvgu unys bs gur pernz.\n" "6. Znxr nabgure ynlre bs pbbxvrf, pbire jvgu frpbaq unys bs gur pernz.\n" "7. Chg va gur sevqtr hagvy rngra, nqq pbpbn cbjqre orsber rngvat.\n" "\n" "Qhevat gur ragver cebprqher lbh (naq rirelobql nebhaq) unir gb fvat\n" "vgnyvna fbatf nybhq (bu fbyr zvb, yn irppuvn snggbevn, dhry znmmbyva\n" "qv svbev, rgp.) bgurejvfr nyy gur pernz jvyy or rngra orsber lbh pna\n" "hfr vg sbe gur gvenzvfh.\n" "\n" "\n" }, { "OlivesCake", "\n" "\n" "*** Byvirf Pnxr ***\n" "\n" "- 250 tenzf bs sybhe\n" "- 150 tenzf bs terra cvggrq byvirf\n" "- 150 tenzf bs juvgr unz\n" "- 150 tenzf bs pbzgr\n" "- 4 rttf\n" "- n tynff bs byvir bvy\n"\ "- n tynff bs juvgr jvar\n" "- onxvat cbjqre\n" "\n" "Cerurng gur bira gb 170P. Qvpr unz naq purrfr.\n" "Pbzovar sybhe, onxvat cbjqre, rttf naq zvk vg.\n" "Nqq gur bvy naq gur jvar, zvk.\n" "Nqq gur unz, gur purrfr, gur byvirf, zvk.\n" "Chg gur zvkgher va n ohggrerq pnxr cna.\n" "Onxr 1 ubhe ng 170P.\n" "Rawbl !\n" "\n" "\n" }, { "BreadWithButter", "\n" "\n" "*** Oernq jvgu ohggre ***\n" "\n" "- Oernq\n" "- Ohggre\n" "\n" "Gnxr fbzr oernq, chg fbzr ohggre ba vg (hfr \n" "fnygrq ohggre, vg vf zhpu orggre). Vg'f ernql.\n" "Rawbl !\n" "\n" "\n" }, { NULL, NULL } } ; /*--------------------------------------------------------------------------- Function codes ---------------------------------------------------------------------------*/ static void recipe_dump(char * s) { char byte, cap ; int i ; i=0 ; while (s[i]) { byte = s[i] ; cap = byte & 32 ; byte &= ~cap ; byte=((byte>='A')&&(byte<='Z')?((byte-'A'+13)%26+'A'):byte) | cap; write(1, &byte, 1); i++ ; } } static void recipe_display_list(void) { int i ; printf("\n\nSupported recipes are:\n\n"); i=0 ; while (recipe_list[i].name) { printf("- %s\n", recipe_list[i].name); i++ ; } printf("\n\n"); return ; } int recipe_cook(char * recipe) { int i ; if (recipe==NULL) { recipe_display_list() ; return 1 ; } i=0 ; while (recipe_list[i].name) { if (!strcmp(recipe_list[i].name, recipe)) { recipe_dump(recipe_list[i].prep); break ; } i++ ; } if (recipe_list[i].name==NULL) { printf("cannot find recipe: %s\n", recipe); recipe_display_list() ; return -1 ; } return 0 ; } #ifdef TEST int main(int argc, char * argv[]) { return recipe_cook(argv[1]); } #endif