URL
https://opencores.org/ocsvn/thor/thor/trunk
Subversion Repositories thor
[/] [thor/] [trunk/] [FT64v5/] [software/] [AS64/] [source/] [SEARCHEN.Cpp] - Rev 48
Compare with Previous | Blame | View Log
// ============================================================================// __// \\__/ o\ (C) 2014 Robert Finch, Stratford// \ __ / All rights reserved.// \/_// robfinch<remove>@finitron.ca// ||//// A64 - Assembler// - 64 bit CPU//// This source file is free software: you can redistribute it and/or modify// it under the terms of the GNU Lesser General Public License as published// by the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// This source file is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program. If not, see <http://www.gnu.org/licenses/>.//// ============================================================================//#include "stdafx.h"/* ---------------------------------------------------------------------------void searchenv(filename, envname, pathname);char *filename;char *envname;char **pathname;Description :Search for a file by looking in the directories listed in the envnameenvironment. Puts the full path name (if you find it) into pathname.Otherwise set *pathname to 0.Returns :nothing--------------------------------------------------------------------------- */void searchenv(char *filename, char *envname, char **pathname){static char pbuf[5000];static char pname[5000];char *p;// char *strpbrk(), *strtok(), *getenv();if (pathname==(char **)NULL)return;strncpy(pname, filename, sizeof(pname)/sizeof(char)-1);pname[4999] = '\0';if (access(pname, 0) != -1) {*pathname = strdup(pname);return;}/* ----------------------------------------------------------------------The file doesn't exist in the current directory. If a specificpath was requested (ie. file contains \ or /) or if the environmentisn't set, return a NULL, else search for the file on the path.---------------------------------------------------------------------- */if (!(p = getenv(envname))){*pathname = strdup("");return;}strcpy(pbuf, "");strcat(pbuf, p);if (p = strtok(pbuf, ";")){do{sprintf(pname, "%0.4999s\\%s", p, filename);if (access(pname, 0) >= 0) {*pathname = strdup(pname);return;}}while(p = strtok(NULL, ";"));}*pathname = strdup("");}
