/*
** pg_to_html - By Mo McKinlay (ekky@ekto.org)
**
** Converts a string containing colour codes to HTML. Doesn't work with
** Dynatext, deal with it. (If you think you can, why not add support for
** dynatext? I'll be happy to credit anybody who comes up with any useful
** revisions to this).
**
*/
#define HTML_NORMAL_FG "#FFFFFF"
int
pg_to_html(char *dest, char *src) {
int fdep=1, udep=0, idep=0, ccol='N', c=0;
char *t;
if(!dest) return -1;
if(!src) {
*dest=0;
return -1;
};
dest+=sprintf(dest, "", HTML_NORMAL_FG);
while(*src) {
if(c) {
c=0;
if(*src=='^') {
*dest++='^';
} else {
if(udep) dest+=sprintf(dest, "");
if(idep) dest+=sprintf(dest, "");
if(fdep) dest+=sprintf(dest, "");
switch(*src) {
case 'N':
case 'n':
ccol='N';
idep=0;
udep=0;
fdep=1;
break;
case 'H':
case 'h':
ccol='H';
fdep=1;
break;
case 'R':
case 'r':
case 'A':
case 'a':
case 'C':
case 'c':
case 'Y':
case 'y':
case 'P':
case 'p':
case 'G':
case 'g':
ccol=*src;
fdep=1;
break;
case 'X':
case 'x':
ccol='N';
fdep=1;
break;
case 'S':
idep=1;
break;
case 's':
idep=0;
break;
case 'U':
udep=1;
break;
case 'u':
udep=0;
break;
};
dest+=sprintf(dest, "", t);
if(udep) dest+=sprintf(dest, "");
if(idep) dest+=sprintf(dest, "");
};
} else {
if(*src=='^') {
c=1;
} else if(*src=='\n') {
dest+=sprintf(dest, "
");
} else {
*dest++=*src;
};
};
src++;
};
if(udep) dest+=sprintf(dest, "");
if(idep) dest+=sprintf(dest, "");
if(fdep) dest+=sprintf(dest, "");
*dest=0;
return 0;
}