126 lines
4.9 KiB
C
126 lines
4.9 KiB
C
|
|
/*
|
||
|
|
Author: James Bonfield
|
||
|
|
|
||
|
|
Copyright (c) 2000-2001 MEDICAL RESEARCH COUNCIL
|
||
|
|
All rights reserved
|
||
|
|
|
||
|
|
Redistribution and use in source and binary forms, with or without
|
||
|
|
modification, are permitted provided that the following conditions are met:
|
||
|
|
|
||
|
|
. Redistributions of source code must retain the above copyright notice,
|
||
|
|
this list of conditions and the following disclaimer.
|
||
|
|
|
||
|
|
. Redistributions in binary form must reproduce the above copyright notice,
|
||
|
|
this list of conditions and the following disclaimer in the documentation
|
||
|
|
and/or other materials provided with the distribution.
|
||
|
|
|
||
|
|
. Neither the name of the MEDICAL RESEARCH COUNCIL, THE LABORATORY OF
|
||
|
|
MOLECULAR BIOLOGY nor the names of its contributors may be used to endorse or
|
||
|
|
promote products derived from this software without specific prior written
|
||
|
|
permission.
|
||
|
|
|
||
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||
|
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||
|
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||
|
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||
|
|
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||
|
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||
|
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||
|
|
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||
|
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||
|
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
|
*/
|
||
|
|
|
||
|
|
/*
|
||
|
|
Copyright (c) 2008, 2009, 2013, 2018 Genome Research Ltd.
|
||
|
|
Author: James Bonfield <jkb@sanger.ac.uk>
|
||
|
|
|
||
|
|
Redistribution and use in source and binary forms, with or without
|
||
|
|
modification, are permitted provided that the following conditions are met:
|
||
|
|
|
||
|
|
1. Redistributions of source code must retain the above copyright notice,
|
||
|
|
this list of conditions and the following disclaimer.
|
||
|
|
|
||
|
|
2. Redistributions in binary form must reproduce the above copyright notice,
|
||
|
|
this list of conditions and the following disclaimer in the documentation
|
||
|
|
and/or other materials provided with the distribution.
|
||
|
|
|
||
|
|
3. Neither the names Genome Research Ltd and Wellcome Trust Sanger
|
||
|
|
Institute nor the names of its contributors may be used to endorse or promote
|
||
|
|
products derived from this software without specific prior written permission.
|
||
|
|
|
||
|
|
THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND
|
||
|
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||
|
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||
|
|
DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE
|
||
|
|
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
|
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||
|
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||
|
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||
|
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||
|
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifndef OPEN_TRACE_FILE_H
|
||
|
|
#define OPEN_TRACE_FILE_H
|
||
|
|
|
||
|
|
#include "mFILE.h"
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
extern "C" {
|
||
|
|
#endif
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Tokenises the search path splitting on colons (unix) or semicolons
|
||
|
|
* (windows).
|
||
|
|
* We also explicitly add a "./" to the end of the search path
|
||
|
|
*
|
||
|
|
* Returns: A new search path with items separated by nul chars. Two nul
|
||
|
|
* chars in a row represent the end of the tokenised path.
|
||
|
|
* Returns NULL for a failure.
|
||
|
|
*
|
||
|
|
* The returned data has been malloced. It is up to the caller to free this
|
||
|
|
* memory.
|
||
|
|
*/
|
||
|
|
char *tokenise_search_path(const char *searchpath);
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Opens a trace file named 'file'. This is initially looked for as a
|
||
|
|
* pathname relative to a file named "relative_to". This may (for
|
||
|
|
* example) be the name of an experiment file referencing the trace
|
||
|
|
* file. In this case by passing relative_to as the experiment file
|
||
|
|
* filename the trace file will be picked up in the same directory as
|
||
|
|
* the experiment file. Relative_to may be supplied as NULL.
|
||
|
|
*
|
||
|
|
* 'file' is looked for at relative_to, then the current directory, and then
|
||
|
|
* all of the locations listed in 'path' (which is a colon separated list).
|
||
|
|
* If 'path' is NULL it uses the RAWDATA environment variable instead.
|
||
|
|
*
|
||
|
|
* Returns a mFILE pointer when found.
|
||
|
|
* NULL otherwise.
|
||
|
|
*/
|
||
|
|
mFILE *open_path_mfile(const char *file, char *path, char *relative_to);
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Returns a mFILE containing the entire contents of the url;
|
||
|
|
* NULL on failure.
|
||
|
|
*/
|
||
|
|
mFILE *find_file_url(const char *file, char *url);
|
||
|
|
|
||
|
|
|
||
|
|
/*
|
||
|
|
* As per open_path_mfile, but searching only for local filenames.
|
||
|
|
* This is useful as we may avoid doing a full mfopen and loading
|
||
|
|
* the entire file into memory.
|
||
|
|
*
|
||
|
|
* Returns the expanded pathname if found.
|
||
|
|
* NULL if not
|
||
|
|
*/
|
||
|
|
char *find_path(const char *file, const char *path);
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
}
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif /* OPEN_TRACE_FILE_H */
|