The outage for Sunday 24th November has been cancelled.
Bioplib
Protein Structure C Library
Main Page
Related Pages
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Macros
Pages
src
GetFilestem.c
Go to the documentation of this file.
1
/************************************************************************/
2
/**
3
4
\file GetFilestem.c
5
6
\version V1.21
7
\date 07.07.14
8
\brief
9
10
\copyright (c) UCL / Dr. Andrew C. R. Martin 1991-2014
11
\author Dr. Andrew C. R. Martin
12
\par
13
Institute of Structural & Molecular Biology,
14
University College London,
15
Gower Street,
16
London.
17
WC1E 6BT.
18
\par
19
andrew@bioinf.org.uk
20
andrew.martin@ucl.ac.uk
21
22
**************************************************************************
23
24
This code is NOT IN THE PUBLIC DOMAIN, but it may be copied
25
according to the conditions laid out in the accompanying file
26
COPYING.DOC.
27
28
The code may be modified as required, but any modifications must be
29
documented so that the person responsible can be identified.
30
31
The code may not be sold commercially or included as part of a
32
commercial product except as described in the file COPYING.DOC.
33
34
**************************************************************************
35
36
Description:
37
============
38
39
40
**************************************************************************
41
42
Usage:
43
======
44
45
**************************************************************************
46
47
Revision History:
48
=================
49
- V1.1 08.02.91 Added KillLine()
50
- V1.2 10.02.91 Added setextn() and index()
51
- V1.3 20.03.91 Added Word()
52
- V1.4 28.05.92 ANSIed
53
- V1.5 22.06.92 Added tab check to Word(). Improved setextn().
54
Added WordN(). Documented other routines.
55
- V1.6 27.07.93 Corrected fsscanf() for double precision
56
- V1.7 07.10.93 Checks made on case before toupper()/tolower()
57
for SysV compatibility. Also index() becomes
58
chindex()
59
- V1.8 18.03.94 getc() -> fgetc()
60
- V1.9 11.05.94 Added GetFilestem(), upstrcmp(), upstrncmp() &
61
GetWord()
62
- V1.10 24.08.94 Added OpenStdFiles()
63
- V1.11 08.03.95 Corrected OpenFile() for non-UNIX
64
- V1.12 09.03.95 Added check on non-NULL filename in OpenFile()
65
- V1.13 17.07.95 Added countchar()
66
- V1.14 18.10.95 Moved YorN() to WindIO.c
67
- V1.15 06.11.95 Added StoreString(), InStringList() and FreeStringList()
68
- V1.16 22.11.95 Moved ftostr() to generam.c
69
- V1.17 15.12.95 Added QueryStrStr()
70
- V1.18 18.12.95 OpenStdFiles() treats filename of - as stdin/stdout
71
- V1.19 05.02.96 OpenStdFiles() allows NULL pointers instead if filenames
72
- V1.20 18.09.96 Added padchar()
73
- V1.21 07.07.14 Use bl prefix for functions By: CTP
74
75
*************************************************************************/
76
/* Doxygen
77
-------
78
#GROUP General Programming
79
#SUBGROUP File IO
80
#FUNCTION blGetFilestem()
81
Extracts the filestem from a complete filename. Should work under
82
Unix, VMS, MS-DOS, AmigaDOS, etc.
83
*/
84
/************************************************************************/
85
/* Includes
86
*/
87
#include <string.h>
88
89
/************************************************************************/
90
/* Defines and macros
91
*/
92
93
/************************************************************************/
94
/* Globals
95
*/
96
97
/************************************************************************/
98
/* Prototypes
99
*/
100
101
102
/************************************************************************/
103
/*>void blGetFilestem(char *filename, char *stem)
104
----------------------------------------------
105
*/
/**
106
107
\param[in] *filename Complete filename
108
\param[out] *stem The filestem
109
110
Extracts the filestem from a complete filename. Should work under
111
Unix, VMS, MS-DOS, AmigaDOS, etc.
112
113
- 14.04.94 Original By: ACRM
114
- 07.07.14 Use bl prefix for functions By: CTP
115
*/
116
void
blGetFilestem
(
char
*filename,
char
*stem)
117
{
118
char
*p,
119
*q;
120
121
q = filename;
122
123
/* First step past a ] if found (VMS) */
124
if
((p=strchr(q,
']'
))!=
NULL
) q=p+1;
125
126
/* Step past any colons/double colons (VMS, AmigaDOS, Unix, MS-DOS) */
127
while
((p=strchr(q,
':'
))!=
NULL
) q=p+1;
128
129
/* Step past any / (Unix, AmigaDOS) */
130
while
((p=strchr(q,
'/'
))!=
NULL
) q=p+1;
131
132
/* Step past any \ (MS-DOS) */
133
while
((p=strchr(q,
'\\'
))!=
NULL
) q=p+1;
134
135
/* We should now have the actual filename, with the path removed.
136
Copy it into our output array
137
*/
138
strcpy(stem, q);
139
140
/* Terminate at the last . to remove the extension. */
141
q = stem;
142
for
(p = q + strlen(q) - 1; p!=q; p--)
143
{
144
if
(*p ==
'.'
)
145
{
146
*p =
'\0'
;
147
break
;
148
}
149
}
150
}
151
152
blGetFilestem
void blGetFilestem(char *filename, char *stem)
Definition:
GetFilestem.c:116
NULL
#define NULL
Definition:
array2.c:99
Generated on Tue Oct 24 2017 10:57:08 for Bioplib by
1.8.8