/***********************************************************************1* *2* This software is part of the ast package *3* Copyright (c) 1990-2011 AT&T Intellectual Property *4* and is licensed under the *5* Eclipse Public License, Version 1.0 *6* by AT&T Intellectual Property *7* *8* A copy of the License is available at *9* http://www.eclipse.org/org/documents/epl-v10.html *10* (with md5 checksum b35adb5213ca9657e911e9befb180842) *11* *12* Information and Software Systems Research *13* AT&T Research *14* Florham Park NJ *15* *16* Glenn Fowler <[email protected]> *17* *18***********************************************************************/19#pragma prototyped20/*21* Glenn Fowler22* AT&T Research23*24* single quote s into sp25* if type!=0 then /<getenv(<CO_ENV_TYPE>)/ translated to /$<CO_ENV_TYPE>/26*/2728#include "colib.h"2930void31coquote(register Sfio_t* sp, register const char* s, int type)32{33register int c;3435if (type && (!state.type || !*state.type))36type = 0;37while (c = *s++)38{39sfputc(sp, c);40if (c == '\'')41{42sfputc(sp, '\\');43sfputc(sp, '\'');44sfputc(sp, '\'');45}46else if (type && c == '/' && *s == *state.type)47{48register const char* x = s;49register char* t = state.type;5051while (*t && *t++ == *x) x++;52if (!*t && *x == '/')53{54s = x;55sfprintf(sp, "'$%s'", CO_ENV_TYPE);56}57}58}59}606162