|
|
1.1 root 1:
2:
3: /*
4: lenfnm( scptr ) returns the length of the filename in the
5: passed scblk. the filename may take on a number of forms:
6:
7: 'filename' 'filename options' ' options'
8:
9: '!*commandstring'
10:
11: '!*commandstring*'
12:
13: '!*command string* options'
14: */
15:
16: #include "spitblks.h"
17:
18: int lenfnm( scptr )
19:
20: struct scblk *scptr;
21:
22: {
23: int cnt = 0,
24: len;
25: char *cp, delim;
26:
27: len = scptr -> len;
28: if ( len == 0 )
29: return 0;
30:
31: cp = scptr -> str;
32:
33: if ( *cp == '!' ) {
34: if ( len < 3 )
35: return -1;
36: delim = *(cp + ++cnt);
37: if ( *(cp + ++cnt) == delim )
38: return -1;
39: while ( cnt < len )
40: if ( *(cp + cnt++) == delim )
41: break;
42: } else {
43: if ( *cp == ' ' )
44: return 0;
45: while ( cnt < len )
46: if ( *(cp + cnt++) == ' ' )
47: break;
48: if ( cp[cnt - 1] == ' ' )
49: --cnt;
50: }
51: return cnt;
52: }
53:
54:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.