-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathextension.c
83 lines (77 loc) · 2.12 KB
/
extension.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
* Copyright (C) 1992 by Rush Record
* Copyright (C) 1993 by Charles Sandmann (sandmann@clio.rice.edu)
*
* This file is part of ED.
*
* ED is free software; you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Foundation.
*
* ED 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 ED
* (see the file COPYING). If not, write to the Free Software Foundation, 675
* Mass Ave, Cambridge, MA 02139, USA.
*/
#include "opsys.h"
#include <string.h>
/******************************************************************************\
|Routine: extension
|Callby: load_file output_file
|Purpose: Returns the address of a file's extension, or NULL if it has no
| extension. This is opsys-sensitive.
|Arguments:
| file is the file name being analyzed.
\******************************************************************************/
Char *extension(file)
Char *file;
{
register Char *c,v;
c = file + strlen(file);
while(c != file)
{
if((v = *--c) == '.')
return(c);
#ifdef VMS
if(v == ']' || v == '>' || v == ':')
#else
#ifdef GNUDOS
if(v == '/' || v == '\\')
#else
if(v == '/')
#endif
#endif
return(0);
}
return(0);
}
/******************************************************************************\
|Routine: filename
|Callby: cfg command help load_file store_param
|Purpose: Returns the address of a file's name. This is opsys-sensitive.
|Arguments:
| file is the file name being analyzed.
\******************************************************************************/
Char *filename(file)
Char *file;
{
register Char *c,v;
c = file + strlen(file);
while(c != file)
{
v = *--c;
#ifdef VMS
if(v == ']' || v == '>' || v == ':')
#else
#ifdef GNUDOS
if(v == '/' || v == '\\' || v == ':') /* CWS 11-93 (DOS) */
#else
if(v == '/')
#endif
#endif
return(++c);
}
return(file);
}