|
|
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 o
Length: 1301 (0x515)
Types: TextFile
Names: »or_asc2ps.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z«
└─⟦e5a54fb17⟧
└─⟦this⟧ »pp-5.0/Lib/or/or_asc2ps.c«
/* or_asc2ps.c: convert ascii to printable string */
# ifndef lint
static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Lib/or/RCS/or_asc2ps.c,v 5.0 90/09/20 16:07:43 pp Exp Locker: pp $";
# endif
/*
* $Header: /cs/research/pp/hubris/pp-beta/Lib/or/RCS/or_asc2ps.c,v 5.0 90/09/20 16:07:43 pp Exp Locker: pp $
*
* $Log: or_asc2ps.c,v $
* Revision 5.0 90/09/20 16:07:43 pp
* rcsforce : 5.0 public release
*
*/
#include "util.h"
#include "or.h"
int or_asc2ps (ascii, ps)
char *ascii;
char *ps;
{
register char *p, *q;
int converted;
PP_DBG (("Lib/or_asc2ps()"));
q = ps;
converted = OK;
for (p = ascii; *p != '\0'; p++) {
if (or_isps (*p) && *p != ')' && *p != '(')
*q++ = *p;
else {
converted = NOTOK;
*q++ = '(';
switch (*p) {
case '@':
*q++ = 'a';
break;
case '%':
*q++ = 'p';
break;
case '!':
*q++ = 'b';
break;
case '"':
*q++ = 'q';
break;
case '_':
*q++ = 'u';
break;
case '(':
*q++ = 'l';
break;
case ')':
*q++ = 'r';
break;
default:
(void) sprintf (q, "%03d", *p);
q = q + 3;
break;
} /* end of switch */
*q++ = ')';
} /* end of if */
} /* end of for */
*q = '\0';
return converted;
}