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