/***********************************************************************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* coshell procrun(3)25*/2627#include "colib.h"2829#include <proc.h>3031int32coprocrun(const char* path, char** argv, int flags)33{34register char* s;35register char** a;36register Sfio_t* tmp;37int n;3839if (!(a = argv))40return procclose(procopen(path, a, NiL, NiL, PROC_FOREGROUND|PROC_GID|PROC_UID|flags));41if (!(tmp = sfstropen()))42return -1;43sfputr(tmp, path ? path : "sh", -1);44while (s = *++a)45{46sfputr(tmp, " '", -1);47coquote(tmp, s, 0);48sfputc(tmp, '\'');49}50if (!(s = costash(tmp)))51return -1;52n = cosystem(s);53sfstrclose(tmp);54return n;55}565758