int execvp (const char *file, char * const argv[]) { char *path = getenv ("PATH"); char buf[MAXNAMLEN]; /* If $PATH doesn't exist, just pass FILE on unchanged. */ if (!path) return execv (file, argv); /* If FILE contains a directory, don't search $PATH. */ if (strchr (file, '/') ) return execv (file, argv); while (*path) { strccpy (buf, path, PATH_DELIM); /* An empty entry means the current directory. */ if (*buf != 0 && buf[strlen(buf) - 1] != '/') strcat (buf, "/"); strcat (buf, file); if (execv (buf, argv) == -1 && errno != ENOENT) return -1; while (*path && *path != PATH_DELIM) path++; if (*path == PATH_DELIM) path++; /* skip over delim */ } return -1; }
/* ARGSUSED */ void LoadSave_Callback ( Widget w, long which, XtPointer call ) { char groupfile[256] = "\0"; /*--------------------------------------------------------------------*/ switch ( which ) { case 0: /* Load Group List */ XtManageChild(model_select_toplevel); break; case 1: /* Save Group List */ if (MetaFile[0] != '\0') { (char *)strccpy(groupfile,MetaFile,'.'); XtVaSetValues(filenameW, XmNvalue, groupfile, NULL); } XtManageChild(save_group_popup); break; } }