|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T m
Length: 1023 (0x3ff) Types: TextFile Names: »msgs.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Adv/Compiler/msgs.c«
#include "advgen.h" static int nmsgs = 1; static char *msgs[MAXMSGS] = { "Enjoy your adventure!" }; void decl_msg(s, m) symbol *s; char *m; { switch (s->s_type) { case S_MSG: muldecl(s->s_sym, "message"); break; case S_UNKNOWN: if (nmsgs == MAXMSGS) { fatal("too many messages"); } msgs[nmsgs] = m; s->s_type = S_MSG; s->s_value = nmsgs++; break; default: confdecl(s->s_sym, "message", s->s_type); break; } } symbol * anon_msg(m) char *m; { static symbol s; int i; for (i=0; i<nmsgs; i++) { if (streq(m, msgs[i])) { s.s_value = i; return &s; } } if (nmsgs == MAXMSGS) { fatal("too many messages"); } msgs[nmsgs] = m; s.s_value = nmsgs++; s.s_type = S_MSG; return &s; } void greetmsg(m) char *m; { msgs[0] = m; } void printmsgs(f) FILE *f; { int i; fprintf(f, "%d\n", nmsgs); for (i=0; i<nmsgs; i++) { fprintf(f, "%s\n", msgs[i]); } }